รายวิชา หลักการแก้ปัญหาและการโปรแกรม (ง40102)

Download Report

Transcript รายวิชา หลักการแก้ปัญหาและการโปรแกรม (ง40102)

การวิเคราะห์ ขั้นตอนวิธีการแก้ ไขปัญหา
รายวิชา การโปรแกรมและการประยกุ ต์
(ง30222)
ปัญหาคืออะไร
ปัญหาคืออะไร
ปัญหา คือ สิ่ งที่เรายังไม่ทราบคาตอบ
และ ยังไม่ทราบขั้นตอนวิธีในการ
แก้ปัญหา
ปัญหา Water
มีถงั น้ า 2 ใบ ความจุ 6 และ 8 แกลลอนตามลาดับ ทั้ง 2 ถังไม่มี
มาตราบอกปริ มาณน้ า ถ้าต้องการให้ถงั ที่จุ 8 แกลลอนมีน้ า
บรรจุอยู่ 4 แกลลอน ให้หาตัวกระทาการที่จะใช้ในการ
แก้ปัญหานี้
6 แกลลอน
8 แกลลอน
คิดสนุก
ตัวอักษรแต่ละตัวแทนตัวเลขโดดที่ต่างกัน จงหา
ว่าตัวอักษรแต่ละตัวแทนตัวเลขอะไรที่ทาให้มี
ผลลัพธ์ดงั นี้
ABCB
B D C B+
CEAA
คิดสนุก
คำตอบ A = 4 B = 2 C= 7 D = 8 E= 1
ABCB
+
BDCB
CEAA
4 2 7 2
+
2 8 7 2
7144
ปัญหาปริศนาลากเส้ น
มีจุด 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 คน และเมืองนี้มี กติกาว า การตัด
ผมต องใช ช างตัดผมของเมืองนี้ ตดั ให เท านั้นและห ามตัดผมให
ตัวเองป ญหาเกิดขึ้นที่ช างตัดผมคนนี้ จะจัดการกับผมตัวเองได อย าง
ไร จะเห็นว่าปั ญหานี้ไม มีทางแก ได เลย ดังนั้น ป ญหาบางอย างก็
ไม สามารถใช คอมพิวเตอร ช วยแก้ปัญหาให ได เช นเดียวกัน