คิดแบบ computational thinking เป็นการคิดแบบเอาการคำนวณเป็นตัวตั้ง
แต่มีการคิดอีกแบบ ที่ดูเผิน ๆ เหมือนคล้าย แต่อาจต่างกันคนละเรื่อง
วิธีที่ว่าคือ algorithmic thinking
คือการคิดอย่างแยบยล
การคิดอย่างแยบยล คือเอาการแก้ปัญหาสำเร็จเป็นตัวตั้ง
การคิดแบบ algrithmic thinking จะต้องมีกรรมวิธีเป็นแนวทางไว้ อย่างน้อยก็คร่าว ๆ จะเป็นแบบ วิถีทางเดียว หรือเป็นแบบแผนสำรองมีทางหนีทีไล่ ก็ตามแต่ หรือแม้แต่วิธีที่ให้ไปเรียนรู้เอาดาบหน้าเองก็ได้
คิดแบบนี้ ต่อให้ไม่ต้องคำนวณเลย ก็กลับไม่ใช่เรื่องใหญ่ !
เมื่อเอาการแก้ปัญหาสำเร็จเป็นตัวตั้ง หากลุผลการคำนวณ โดยไม่ต้องคำนวณ ต้องถือว่าเป็นสุดยอด
เห็นคำว่าแยบยล คนมักนึกถึงเล่ห์เหลี่ยม
จริง ๆ แล้ว แยบยล เป็นคำกลาง ๆ
ด้านบวก เรียก แยบคาย
ด้านลบ เรียก เล่ห์เหลี่ยม
แยบยล คือการใช้วิธีคิดที่ฉลาด รวบรัด แก้ปัญหาที่ใหญ่ ซับซ้อน ที่ดูเหมือนแก้ยากโดยคำนวณน้อยครั้งลงมาก เมื่อเทียบกับการแก้แบบทื่อ ๆ
มีตำนานกรีกเล่าถึงปมเชือกกอร์เดียน ที่ไม่เคยมีใครแก้ออก
กษัตริย์อเลกซานเดอร์เคยกรีฑาทัพผ่านไปเจอ แก้ด้วยมือไม่ได้ ตอนหลังใช้ดาบฟันฉับ เงื่อนปมหลุดออกได้ ก็เป็นการแก้ในรูปแบบหนึ่ง
บางทีเราก็ต้องการมุมมอง วิธีคิดใหม่ ๆ ในการแก้ปัญหาแบบนั้นเหมือนกัน
ขอยกตัวอย่าง
ตัวอย่างนี้ เป็นตัวอย่างคณิตศาสตร์
สมมติมีสมการ x ln x = 7
วิธีแบบทื่อ ๆ ก็คือ เดาว่า x น่าจะเกิน 1 และคงไม่เกิน 7
สมมติอยากได้คำตอบแม่นสักทศนิยม 3 ตำแหน่ง
ก็ลองเดาเริ่มจาก x = 1.000, 1.001, ..., 6.999, 7.000 โดยเพิ่มครั้งละ 0.001 ไปเรื่อย ๆ ดูว่า อันไหนแทนค่าแล้วใกล้ 7 ที่สุด
แบบนี้ ก็จะต้องใช้ทรัพยากรการคำนวณ 6001 ครั้ง
ฉลาดหน่อยคือ ถ้า x ln x > 7 เมื่อไหร่ ก็หยุด ก็อาจลดลงไปได้มาก เช่น เหลือสัก 2000-3000 ครั้ง
หรือฉลาดหน่อย เดาว่านี่เป็นรูปแบบ monotonic function ใช้วิธีแบ่งหาทีละครึ่ง (binary search) ซึ่งทำเพียง 14 ครั้ง ก็จะได้ระดับความแม่นยำที่ต้องการ
แต่ดีกว่านั้นอีก ก็คือ การจัดเทอมให้อยู่ในรูปแบบ recursive คือลอง x = 7/ln x ซึ่งหากแทนค่าประมาณ 24 ครั้ง ก็ได้คำตอบที่แม่น 3 ตำแหน่ง
เอ๊ะ ทำไม 24 ครั้ง ดีกว่า 14 ครั้ง ?
เพราะทำ 14 ครั้ง ใน binary search ต้องเขียนโปรแกรมยาวกว่ามาก อย่างเบาะ ๆ ก็เกิน 10 บรรทัด
แต่ทำ 24 ครั้ง เขียนโปรแกรมสั้นกว่ามาก แค่ไม่กี่บรรทัด
หรือทำใน Excel ก็นิยามสูตรครั้งเดียว แล้ว copy พรืด ๆๆๆ เสร็จโดยไม่ต้องเขียนโปรแกรมสองวิธีหลัง ทุ่นเวลาไปได้หลายร้อยเท่า
ปัญหาคำนวณที่โหด ๆ หากวิธีแก้ดี อาจทุ่นเวลาได้มากกว่านี้อีก นับพัน นับหมื่นเท่า หรือกว่านั้น ไม่มีข้อห้ามไว้
หากได้วิธีที่เร็วแตกต่างหมื่นเท่าเมื่อไหร่ นั่นก็คือ เราสามารถใช้พีซีธรรมดามาแก้ปัญหาแทนซูเปอร์คอมพิวเตอร์ได้ ไม่ต้องจ่ายแพงกว่า !
เทียบกับเมื่อยี่สิบปีก่อน PC เร็วขึ้นพันเท่า
วิธีคิดที่ฉลาด จะทำให้เราเปล่งประสิทธิภาพของเครื่องร้าย ๆ ของเรา ให้เทียมบ่าเทียมไหล่เครื่องชั้นเลิศที่ใช้วิธีที่โง่ ราวกับเราสามารถลัดเวลาไปหลายสิบปีเพื่อยืมใช้เครื่องคอมพิวเตอร์ของอนาคต มาคิดให้เรา
ความแยบยล พูดง่าย แต่ทำยากครับ
แต่หากไม่คิดเรียนรู้ ไม่คิดว่ามีวิธีอื่นที่อาจดีกว่าวิธีที่เรากำลังทำอยู่นี้ ก็คงยาก ที่จะมีโอกาสมองเห็นความแยบยลที่ลอยเกลื่อนรอบตัว
ไม่มีความเห็น