ตอนที่ 52
บทที่ 52 โปรแกรมมิ่ง? เรียนเองน่ะ
minibunny · 5,517 ตัวอักษร
สามคนถอยออกไปโดยสัญชาตญาณ
ไม่ใช่ความสุภาพที่ตั้งใจ แต่เป็นปฏิกิริยาอัตโนมัติ
เหมือนแพทย์ฝึกหัดที่กำลังเถียงกันไม่หยุดบนโต๊ะผ่าตัด พอเห็นศัลยแพทย์หลักเปิดประตูเข้ามา ร่างกายก็ถอยออกสองข้างเองโดยอัตโนมัติ
แม้พวกเขารู้ดีว่าลู่เฟิงเรียนสายวิศวกรรมเครื่องกล
แต่ก็ไม่รู้ทำไม ความเชื่อใจในตัวเขามันเกิดขึ้นเองโดยไม่มีเหตุผล ไม่ใช่เพราะความเข้าใจคณิตศาสตร์อย่างสมบูรณ์แบบของเขา ดูเหมือนไม่ใช่ แต่แค่เชื่อใจในตัวเขาในฐานะคนคนหนึ่ง
ลู่เฟิงก้มดูหน้าจอ
ข้อความบักทีสีแดงเต็มจอ อักษรอังกฤษซ้อนทับกันหนาแน่น เหมือนคำตัดสินประหารชีวิตที่ประกาศผลไปแล้ว
แต่สำหรับเขา สิ่งเหล่านี้อ่านง่ายกว่าเมนูอาหารหน้าโรงอาหารอีก
"IndexError: matrix dimension mismatch at line 247."
สายตาลู่เฟิงเลื่อนย้อนขึ้นตามข้อความบักทีไปยังตัวแก้ไขโค้ด กวาดตาอย่างรวดเร็ว
บรรทัดที่ 218 นิยามเมทริกซ์ข้อจำกัด
บรรทัดที่ 233 การกำหนดอินเด็กซ์ตัวแปร
บรรทัดที่ 247 การคูณเมทริกซ์
เข้าใจแล้ว
เขาไม่พูด ไม่อธิบาย ดึงเก้าอี้นั่งลงตรงๆ
มือสองข้างลงบนคีย์บอร์ด
"ตุ้ก ตุ้ก ตุ้ก ตุ้ก—"
เสียงเคาะถี่ยิบเกือบต่อเนื่องไม่มีช่วงหยุด ระเบิดขึ้นในห้องแล็บที่เงียบสงัด ใสและชัด
จังหวะนั้นเร็วจนไม่เหมือนกำลังเขียนโค้ด เหมือนกำลังเล่นเปียโนมากกว่า
วิ่งดุ่มๆ อย่างรวดเร็ว
หวังเจ๋อเพิ่งอ้าปากจะพูดว่า "อธิบายโครงสร้างโค้ดให้ฟังก่อนนะ" แต่คำยังไม่ทันออก ก็ถูกสิ่งที่เห็นตรงหน้าดึงกลับหมด
เขาเห็นนิ้วของลู่เฟิงวิ่งบนคีย์บอร์ดอย่างรวดเร็ว เคอร์เซอร์กระโดดแม่นยำไปที่บรรทัด 218 เลือกโค้ดนิยามเมทริกซ์ทั้งส่วน ลบออก
พิมพ์ใหม่
สามบรรทัดโค้ด แทนที่สิบสองบรรทัดเดิม
จากนั้นเคอร์เซอร์กระโดดไปบรรทัด 233
คราวนี้ลู่เฟิงแม้แต่จะแก้ทีละบรรทัดก็ไม่ทำ ตัดลูปฟอร์ทั้งส่วนออก แล้วแทนด้วยการดำเนินการเวกเตอร์ไรเซชันของนัมพายบรรทัดเดียว
รูม่านตาหวังเจ๋อหดวูบ
เขาเป็นคนที่เคยได้รางวัลรองชนะเลิศระดับจังหวัดในการแข่งขันโปรแกรมมิ่งของคณะวิทยาศาสตร์คอมพิวเตอร์ มีสายตาที่ไวมากต่อคุณภาพโค้ด สิ่งที่ลู่เฟิงเพิ่งทำไม่ใช่แค่แก้บักทีอย่างง่าย แต่คือการรีแฟคเตอร์
เขาแปลงการคำนวณเมทริกซ์ที่มีลูปซ้อนกันสามชั้นและประสิทธิภาพต่ำ ให้กลายเป็นคำสั่งเวกเตอร์ไรเซชันบรรทัดเดียวโดยตรง
ทำได้ต้องมีความเข้าใจลึกซึ้งมากในกลไกการบรอดแคสต์ระดับล่างของนัมพาย พร้อมกับต้องมีความเชี่ยวชาญแม่นยำในกฎการแปลงมิติเมทริกซ์ของพีชคณิตเชิงเส้น
ที่สำคัญคือเร็วมาก
จากที่นั่งลงมาถึงตอนนี้ ไม่ถึงหนึ่งนาที
หวังเจ๋อมองลงไปที่มือตัวเอง มือที่ผ่านการฝึกโปรแกรมมิ่งมาสามปี คิดว่าตัวเองไม่ได้ช้านัก
เร็วขนาดนี้ต้องรู้จักคีย์บอร์ดดีแค่ไหน
ตอนนี้มันห้อยอยู่สองข้างลำตัวเฉยๆ ไม่ขยับ
เทียบกับคนนั้น มือเขาแทบไม่ผ่านเกณฑ์ขึ้นโต๊ะด้วยซ้ำ
พวกเขาตอนนี้เหมาะแค่เป็นฉากหลัง
เสียงเคาะยังดำเนินต่อ
เคอร์เซอร์ลู่เฟิงกระโดดไปที่การคูณเมทริกซ์บรรทัด 247 แปลงการคูณด้วยมือแบบลูปซ้อนสองชั้นเดิมให้เป็นการเรียก np.dot() หนึ่งครั้ง
แล้วเลื่อนลงอีกสองสามบรรทัด หยุดที่นิยามฟังก์ชันเป้าหมายของแบบจำลองการวางแผน
เขาขมวดคิ้วนิดหน่อย
"ตรงนี้เขียนสัญลักษณ์ผิดด้านครับ ปัญหาการหาค่าต่ำสุด พวกพี่ใช้ maximize ทิศทางของตัวแก้ผิดแล้ว"
เขาเปลี่ยน maximize เป็น minimize แล้วเพิ่มข้อจำกัดไม่ต่ำกว่าศูนย์ในเงื่อนไขข้อจำกัดข้างล่างด้วย
แล้วกดปุ่มรัน
แถบความคืบหน้าสีเขียวแวบหนึ่ง
หน้าจอรีเฟรช
ข้อมูลคำตอบที่ดีที่สุดเรียงสวยงามปรากฏในหน้าต่างเอาต์พุต
แผนตารางการผลิตที่เหมาะสมที่สุดของสายการผลิตสามสาย ช่วงอุณหภูมิที่เปิดเครื่องของแต่ละสาย เกณฑ์ความชื้น รอบการหมุนเวียนอุปกรณ์ ทั้งหมดแสดงในรูปแบบตาราง
ด้านล่างยังสร้างกราฟเส้นอัตโนมัติ แสดงเส้นเปรียบเทียบอัตราของเสียก่อนและหลังการปรับให้เหมาะสม
จากบรรทัดบักทีสีแดงบรรทัดแรก ถึงผลลัพธ์สุดท้ายที่แสดงออกมา
สองนาทีครึ่ง
หลี่เหาจ้องชุดข้อมูลเอาต์พุตที่สะอาดสวยงามบนหน้าจอ สมองว่างเปล่า
เขาเป็นหัวหน้ากลุ่มโปรแกรมมิ่ง ใช้แมทแล็บกับไพธอนมาสามปี
ปัญหาการไม่ตรงกันของมิติเมทริกซ์เมื่อกี้ เขากับหวังเจ๋อและหลิวอวี้สามคนถกกันเกือบยี่สิบนาที ลองตั้งแต่การตรวจสอบอินเด็กซ์ถึงการแปลงชนิดข้อมูล ไม่สำเร็จสักที
ผลคือคนนั้นเดินมา สองนาทีครึ่ง แก้ไปพร้อมกับปรับแต่ง ออกผลเลย
แถมโค้ดหลังแก้ มีปริมาณแค่หนึ่งในสามของเดิม
หลิวอวี้ดันแว่น ลำคอกลืนน้ำลาย เขาขยับตัวมาหน้าจอ อ่านโค้ดไม่กี่บรรทัดที่ลู่เฟิงแก้ไว้ไปกลับสามรอบ
"เวกเตอร์ไรเซชันบรอดแคสต์…… การตัดแบบไดนามิกอินเด็กซ์……" เสียงเขาแห้งนิดหนึ่ง "สไตล์การเขียนแบบนี้ นักแข่งขันได้เหรียญทองรายการเอซีเอ็มก็แค่นี้แหละ"
ลู่เฟิงลุกจากเก้าอี้ ขยับข้อมือ
"ปัญหามีสองจุดครับ"
เขาเดินไปที่ไวท์บอร์ดข้างๆ หยิบปากกา วาดแผนภาพเมทริกซ์สองตัว
"หนึ่ง ตอนสร้างเมทริกซ์ข้อจำกัด พี่ๆ ใช้ลูปกำหนดค่าทีละแถวด้วยมือ แต่เวกเตอร์พารามิเตอร์ของสมการถดถอยเป็นเวกเตอร์คอลัมน์ การคูณเมทริกซ์ตรงๆ จะไม่ตรงในมิติที่สองครับ พอเปลี่ยนเป็นการดำเนินการเวกเตอร์ไรเซชัน นัมพายก็จัดการบรอดแคสต์มิติอัตโนมัติ ไม่ต้องจัดตำแหน่งด้วยมือ"
เขาทำเครื่องหมายขนาดบนกระดาน
"สอง ปัญหาทิศทางการแก้ครับ ฟังก์ชัน scipy.optimize.linprog ที่เรียกใช้ ค่าตั้งต้นคือหาค่าต่ำสุด แต่พี่ๆ ไม่ได้ใส่เครื่องหมายลบหน้าฟังก์ชันเป้าหมาย เท่ากับกำลังหาค่าสูงสุดของอัตราของเสีย"
เขาหยุดนิดหนึ่ง หันมามองสามคน
"เท่ากับพี่ๆ เขียนโปรแกรมที่ช่วยโรงงานผลิตของเสียให้มากที่สุดครับ"
แว่นของหลิวอวี้เกือบร่วงลง
หลี่เหากุมหน้า ก็อายนิดหน่อย
พักไว้นะ แบบนี้ก็ทำได้ แล้วยังไม่รู้ตัวอีก
กำปั้นหวังเจ๋อกระแทกโต๊ะแรง เสียงปนทั้งเจ็บแค้นและชื่นชม
"แม่ง maximize กับ minimize ต่างกันแค่สามตัวอักษร เราหากันยี่สิบนาที……"
เฉินจิ้งที่ยืนดูอยู่ข้างๆ ตลอด ถือแก้วน้ำเดินมา บนหน้าเป็นความชาเมื่อคาดการณ์ได้ล่วงหน้า
"รุ่นน้อง ด้านโปรแกรมมิ่งนายก็เก่งระดับนี้เลยเหรอ?" เธอถาม
ลู่เฟิงวางปากกาลงในร่องวางปากกา
"เรียนเองมาพักหนึ่งครับ"
"ปุ๊——"
น้ำในปากเฉินจิ้งพ่นออกมาตรงๆ
ฝอยน้ำขนาดใหญ่ปกคลุมจอแสดงผลที่เพิ่งปรับให้ทำงานได้พอดี ชุดข้อมูลเอาต์พุตสวยงามบนหน้าจอ ถูกละอองน้ำลายคลุมทั่วในพริบตา
"อึ๊ก อึ๊ก อึ๊ก!"
เฉินจิ้งไอแรง มือข้างหนึ่งเท้าโต๊ะ อีกข้างรีบดึงกระดาษทิชชูเช็ดหน้าจออย่างบ้าคลั่ง
โจวเสี่ยวเสี่ยวรีบยื่นกระดาษทิชชูแพ็คหนึ่งมาให้
"ไม่ใช่นะ เรียนเอง?" เฉินจิ้งกลืนน้ำลาย ชี้ไปที่โค้ดสองสามบรรทัดระดับตำราเรียนบนหน้าจอ เสียงมีน้ำตาปน
"นายยังมีทักษะอะไรอีกที่เรียนเองบ้าง?"
ลู่เฟิงคิดสักครู่
"เยอะพอสมควรครับ"
เฉินจิ้งปิดระบบตัวเองทันที
ฉันเป็นใคร ฉันอยู่ที่ไหน ฉันกำลังทำอะไร นี่มันอสูรกายอะไร
หลี่เหาเงียบๆ ปิดไฟล์โค้ดที่ตัวเองเขียนไว้ จ้องชื่อไฟล์อยู่สองวินาที
แล้วคลิกขวา ลบทิ้ง
"ต่อจากนี้เรื่องโปรแกรมมิ่ง ช่วยดูแลด้วยนะรุ่นน้อง" เขาเงยหน้า น้ำเสียงจริงใจ
ลู่เฟิงพยักหน้า ไม่ปฏิเสธ
เพราะพวกเขาอ่อนมากจริงๆ
ตอนนี้รู้สึกยังไง?
ความคิดเห็น
เข้าสู่ระบบ เพื่อแสดงความคิดเห็น
กำลังโหลดความคิดเห็น