Algorithmic Thinking


คิดแบบ 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 เร็วขึ้นพันเท่า

วิธีคิดที่ฉลาด จะทำให้เราเปล่งประสิทธิภาพของเครื่องร้าย ๆ ของเรา ให้เทียมบ่าเทียมไหล่เครื่องชั้นเลิศที่ใช้วิธีที่โง่ ราวกับเราสามารถลัดเวลาไปหลายสิบปีเพื่อยืมใช้เครื่องคอมพิวเตอร์ของอนาคต มาคิดให้เรา

ความแยบยล พูดง่าย แต่ทำยากครับ

แต่หากไม่คิดเรียนรู้ ไม่คิดว่ามีวิธีอื่นที่อาจดีกว่าวิธีที่เรากำลังทำอยู่นี้ ก็คงยาก ที่จะมีโอกาสมองเห็นความแยบยลที่ลอยเกลื่อนรอบตัว

 

หมายเลขบันทึก: 89129เขียนเมื่อ 8 เมษายน 2007 15:56 น. ()แก้ไขเมื่อ 3 พฤษภาคม 2012 22:10 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท