การวิเคราะห์ขั้นตอนวิธีการแก้ไขปัญหา รายวิชา การโปรแกรมและการประยุกต์ (ง30222)
ปัญหาคืออะไร
ปัญหาคืออะไร ปัญหา คือ สิ่งที่เรายังไม่ทราบคำตอบ และ ยังไม่ทราบขั้นตอนวิธีในการแก้ปัญหา
ปัญหา Water มีถังน้ำ 2 ใบ ความจุ 6 และ 8 แกลลอนตามลำดับ ทั้ง 2 ถังไม่มีมาตราบอกปริมาณน้ำ ถ้าต้องการให้ถังที่จุ 8 แกลลอนมีน้ำบรรจุอยู่ 4 แกลลอน ให้หาตัวกระทำการที่จะใช้ในการแก้ปัญหานี้ 6 แกลลอน 8 แกลลอน
คิดสนุก ตัวอักษรแต่ละตัวแทนตัวเลขโดดที่ต่างกัน จงหาว่าตัวอักษรแต่ละตัวแทนตัวเลขอะไรที่ทำให้มีผลลัพธ์ดังนี้ A B C B B D C B C E A A +
คิดสนุก 7 1 4 4 คำตอบ A = 4 B = 2 C= 7 D = 8 E= 1 A B C B + + B D C B C E A A + 4 2 7 2 2 8 7 2 7 1 4 4 +
ปัญหาปริศนาลากเส้น มีจุด 9 จุด ตามที่กําหนดดังรูป จงลากเสนตรง 4 เสน ใหผานจุดทั้ง 9 จุดนี้ โดยไมยกปากกา(ดินสอ)
ค้นหาเหรียญปลอม มีเหรียญบาทอยู่ 9 เหรียญ เป็นเหรียญปลอม1 เหรียญซึ่งมีน้ำหนักเบากว่าเหรียญจริง จงหาวิธีในการหาเหรียญปลอมโดยการชั่งด้วยตาชั่ง 2 แขนเพียง 2 ครั้ง คุณสมบัติของตาชั่ง 2 แขนคือ ตาชั่งชนิดนี้จะสามารถบอกน้ำหนักได้ก็ต่อเมื่อของที่นำขึ้นชั่งทั้ง 2 แขนมีน้ำหนักเท่ากัน
การแก้ปัญหาโจทย์ ลองผิด ลองถูก การใช้เหตุผลประกอบ วิธีขจัด ลองผิด ลองถูก การใช้เหตุผลประกอบ วิธีขจัด การใช้ตารางแสดงความสัมพันธ์
สรุปกระบวนการแก้ปัญหาประกอบด้วย 4 ขั้นตอนคือ การวิเคราะห์และกำหนดรายละเอียดของปัญหา (State the problem) การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) การดำเนินการแก้ปัญหา (Implementation) การตรวจสอบและปรับปรุง (Refinement)
1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา (State the problem) การระบุข้อมูลเข้า ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กำหนดมาในปัญหา การระบุข้อมูลออก ได้แก่ การพิจารณาเป้าหมายหรือสิ่งที่ต้องหาคำตอบ การกำหนดวิธีประมวลผล ได้แก่ การพิจารณาขั้นตอนวิธีการได้มาซึ่งคำตอบหรือ
ตัวอย่างที่ 1 แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยของจำนวนเต็ม 5 จำนวน ได้แก่ 3, 7, 2, 4 และ 9 (1) การระบุข้อมูลเข้า ในที่นี้โจทย์กำหนดให้หาค่าเฉลี่ยของจำนวนเต็ม 5 จำนวน ดังนั้น ข้อมูลเข้าได้แก่จำนวน 3, 7, 2, 4 และ 9 (2) การระบุข้อมูลออก จากโจทย์สิ่งที่เป็นคำตอบของปัญหา คือค่าเฉลี่ย (x) ของจำนวนทั้งห้า (3) การกำหนดวิธีการประมวลผล จากสิ่งที่โจทย์ต้องการ "ค่าเฉลี่ย" หมายถึง ผลรวมของจำนวนทั้ง 5 หารด้วย 5 ดังนั้น ขั้นตอนของการประมวลผลประกอบด้วย 3.1 รับค่าจำนวนทั้ง 5 จำนวน 3.2 นำจำนวนเต็มทั้ง 5 มาบวกเข้าด้วยกัน 3.3 นำผลลัพธ์จากข้อ 3.2 มาหารด้วย 5
2. การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) ในการออกแบบขั้นตอนวิธีในการแก้ปัญหา ผู้แก้ปัญหาควรใช้แผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทำงานเพื่อให้ง่ายต่อความเข้าใจเช่น ผังงาน (flowchart) รหัสลำลอง (pseudo code) การใช้เครื่องมือช่วยออกแบบดังกล่าวนอกจากแสดงกระบวนการที่ชัดเจนแล้ว ยังช่วยให้ผู้แก้ปัญหาสามารถหาข้อผิดพลาดของวิธีการที่ใช้ได้ง่ายและแก้ไขได้อย่างรวด
3. การดำเนินการแก้ปัญหา (Implementation) หลังจากที่ได้ออกแบบขั้นตอนวิธีเรียบร้อยแล้ว ขั้นตอนนี้เป็นขั้นตอนที่ต้องลงมือแก้ปัญหาโดยใช้เครื่องมือที่ได้เลือกไว้ หากการแก้ปัญหาดังกล่าวใช้คอมพิวเตอร์เข้ามาช่วยงาน ขั้นตอนนี้ก็เป็นการใช้โปรแกรมสำเร็จ หรือใช้ภาษาคอมพิวเตอร์เขียนโปรแกรมแก้ปัญหา ขั้นตอนนี้ต้องอาศัยความรู้เกี่ยวกับเครื่องมือที่เลือกใช้ ซึ่งผู้แก้ปัญหาต้องศึกษาที่เข้าใจและเชี่ยวชาญ ในการดำเนินการอาจพบแนวทางที่ดีกว่าที่ออกแบบไว้ก็สามารถปรับเปลี่ยนได้
4. การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแก้ปัญหาแล้ว ต้องตรวจสอบให้แน่ใจว่าวิธีการนี้ให้ผลลัพธ์ที่ถูกต้อง โดยผู้แก้ปัญหาต้องตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอียดของปัญหา ซึ่งได้แก่ ข้อมูลเข้า และข้อมูลออก เพื่อให้มั่นใจว่าสามารถรองรับข้อมูลเข้าได้ในทุกกรณีอย่างถูกต้องและสมบูรณ์ ในขณะเดียวกันก็ต้องปรับปรุงวิธีการเพื่อให้การแก้ปัญหานี้ได้ผลลัพธ์ที่ดีที่สุด
ปัญหาบางปัญหาไม่สามารถแก้ได้ เชน มีเมือง ๆ หนึ่งมีชางตัดผมอยู 1 คน และเมืองนี้มี กติกาวา การตัดผมตองใช ชางตัดผมของเมืองนี้ตัดให เทานั้นและหามตัดผมใหตัวเองปญหาเกิดขึ้นที่ชางตัดผมคนนี้จะจัดการกับผมตัวเองไดอยางไร จะเห็นว่าปัญหานี้ไมมีทางแกไดเลย ดังนั้น ปญหาบางอยางก็ไมสามารถใชคอมพิวเตอรชวยแก้ปัญหาใหไดเชนเดียวกัน