البرمجة الديناميكية: إنها ليست ما تعتقد
كثيرًا ما يُسبب مصطلح "البرمجة الديناميكية" في دراسات الخوارزميات ارتباكًا. لا تشير كلمة "ديناميكية" إلى قابليتها للتغيير، بل إلى جانب التخطيط في "البرمجة"، والذي نشأ في خمسينيات القرن الماضي عندما كان المهندسون يخططون لمشاريع البناء كـ"جدولة العمليات". في علوم الكمبيوتر، تعني البرمجة الديناميكية تخطيط ترتيب الخطوات الفرعية اللازمة لحل مشكلة ما. على سبيل المثال، في حساب متتالية فيبوناتشي، يكون "البرنامج" هو تسلسل الخطوات لحساب fib(2) إلى fib(10) بترتيب الاعتماد. يمكن التخطيط لذلك من أعلى إلى أسفل أو من أسفل إلى أعلى؛ الخطة النهائية هي نفسها، وكلاهما يُعتبران برمجة ديناميكية. ابتكر ريتشارد بيلمان هذا المصطلح لتجنب نفور وزير دفاع من "البحث الرياضي"، واختار بذكاء "البرمجة الديناميكية" لأن الصفة "ديناميكية" لا يمكن استخدامها بشكل مهين.