การเขียนโปรแกรมแบบไดนามิกแบ่งปัญหาออกเป็นปัญหาย่อยที่เล็กลงและเล็กลง ปัญหาย่อยเหล่านี้ไม่ได้รับการแก้ไขอย่างอิสระ แต่ผลลัพธ์ของปัญหาย่อยที่เล็กกว่าเหล่านี้จะถูกจดจำและใช้สำหรับปัญหาย่อยที่คล้ายคลึงกันหรือทับซ้อนกัน
การเขียนโปรแกรมแบบไดนามิกถูกใช้ในที่ที่เรามีปัญหา ซึ่งสามารถแบ่งออกเป็นปัญหาย่อยที่คล้ายคลึงกัน เพื่อให้สามารถนำผลลัพธ์กลับมาใช้ใหม่ได้ ส่วนใหญ่ อัลกอริธึมเหล่านี้ใช้สำหรับการเพิ่มประสิทธิภาพ ก่อนที่จะแก้ปัญหาย่อยในมือ อัลกอริทึมไดนามิกจะพยายามตรวจสอบผลลัพธ์ของปัญหาย่อยที่แก้ไขก่อนหน้านี้ การแก้ปัญหาย่อยรวมกันเพื่อให้ได้ทางออกที่ดีที่สุด
สำหรับปัญหาในการใช้โปรแกรมไดนามิก
- ปัญหาควรจะสามารถแบ่งออกเป็นปัญหาย่อยที่ทับซ้อนกันที่มีขนาดเล็กลงได้
- วิธีแก้ปัญหาที่เหมาะสมที่สุดสามารถทำได้โดยใช้วิธีแก้ปัญหาที่เหมาะสมที่สุดสำหรับปัญหาย่อยที่มีขนาดเล็กกว่า
- อัลกอริทึมแบบไดนามิกใช้การท่องจำ
ปัญหาการเขียนโปรแกรมแบบไดนามิกสามารถแก้ไขได้โดยใช้ 2 วิธี -
-
การเขียนโปรแกรมแบบไดนามิกจากล่างขึ้นบน:ในแนวทางนี้ ก่อนอื่นเราจะวิเคราะห์ปัญหาและดูลำดับของการแก้ปัญหาย่อย เราเริ่มต้นด้วยการแก้ปัญหาย่อยเล็กๆ น้อยๆ และสร้างต่อไปยังปัญหาที่กำหนด
-
การเขียนโปรแกรมแบบไดนามิกจากบนลงล่าง:ในแนวทางนี้ เราจะเริ่มแก้ปัญหาที่กำหนดโดยแยกย่อย หากคุณเห็นว่าปัญหาย่อยที่กำหนดได้รับการแก้ไขแล้ว ให้ส่งคืนโซลูชันที่เก็บไว้