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