ผลต่างระหว่างรุ่นของ "ขั้นตอนวิธี"

จาก วิกิตำรา
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Nullzero (คุย | ส่วนร่วม)
Nullzero (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัดที่ 1: บรรทัดที่ 1:
ในปัจจุบันได้มีการคิดค้นอัลกอริทึมหลายอย่างสำหรับแก้ปัญหาที่แตกต่างกัน ออกไป เพื่อออกแบบอัลกอริทึมสำหรับแก้ปัญหาต่าง ๆ คุณอาจจะถามตัวเองว่า ปัญหาชนิดไหนสามารถแก้ได้ด้วย divide-and-conquer, dynamic programming, greedy techniques หรือ อัลกอริทึมอื่น ๆ
ในปัจจุบันได้มีการคิดค้นอัลกอริทึมหลายอย่างสำหรับแก้ปัญหาที่แตกต่างกัน ออกไป เพื่อออกแบบอัลกอริทึมสำหรับแก้ปัญหาต่าง ๆ คุณอาจจะถามตัวเองว่า ปัญหาชนิดไหนสามารถแก้ได้ด้วย divide-and-conquer, dynamic programming, greedy techniques หรือ อัลกอริทึมอื่น ๆ


* [[/การแบ่งแยกและเอาชนะ]]
Divide-and-conquer
* [[/กำหนดการพลวัต]]

* [[/ขั้นตินวิธีเชิงละโมบ]]
อัลกอริทึมนี้แก้ปัญหาด้วยการแตกปัญหาหลักออกเป็นปัญหาย่อย ๆ แล้วรวมคำตอบ ของปัญหาย่อยนี้เข้าด้วยกันทำให้ได้คำตอบของปัญหาหลัก โดยอัลกอริทึมนี้เราสามารถ หาคำตอบของปัญหาได้ง่ายขึ้นจากการรวมคำตอบของปัญหาหลัก
Dynamic Programming

บางครั้งเราไม่สามารถแบ่งปัญหาออกเป็นปัญหาย่อย ๆ ที่ไม่เกี่ยวข้องกันได้ ถ้าเรา พยายามจะแบ่งปัญหานั้น ๆ ออกเป็นปัญหาย่อยที่เล็กที่สุด อัลกอริทึมของคุณอาจ จะใช้เวลาทำงานเป็นแบบ exponential ได้ แต่เวลาที่เราแก้ปัญหาต่าง ๆ เรามักจะ พบว่าเราต้องแก้ปัญหาย่อย ๆ ที่เหมือนกันแบบซ้ำไปซ้ำมา เพื่อหลีกเลี่ยงการคำนวน หาคำตอบซ้ำ ๆ ซาก ๆ dynamic programming จะแก้ปัญหาย่อย ๆ เหล่านั้นเพียง ครั้งเดียวแล้วเก็บผลลัพท์ไว้ ถ้าหากพบว่าต้องแก้ปัญหาย่อยนั้นซ้ำอีกเราก็สามารถนำ คำตอบมาจากคำตอบที่เคยคำนวณเก็บไว้ได้
Greedy Algorithms

Greedy Algorithms หาคำตอบโดยเลือกทางที่ดีที่สุดที่พบได้ในขณะนั้นเพื่อให้ได้คำตอบ ที่ดีที่สุด Greedy Algorithms ไม่สามารถหาคำตอบของปัญหาที่ดีที่สุดได้เสมอไป แต่ใน หลาย ๆ กรณี Greedy Algorithms สามารถหาคำตอบที่ดีที่สุดของปัญหานั้น ๆ ได้

รุ่นแก้ไขเมื่อ 16:16, 13 มกราคม 2556

ในปัจจุบันได้มีการคิดค้นอัลกอริทึมหลายอย่างสำหรับแก้ปัญหาที่แตกต่างกัน ออกไป เพื่อออกแบบอัลกอริทึมสำหรับแก้ปัญหาต่าง ๆ คุณอาจจะถามตัวเองว่า ปัญหาชนิดไหนสามารถแก้ได้ด้วย divide-and-conquer, dynamic programming, greedy techniques หรือ อัลกอริทึมอื่น ๆ