“Dinamik programlama”, ekonomiden mühendisliğe ve bilgisayar programlamadan makine öğrenimine kadar birçok alanda yaygın olarak kullanılmaktadır. Esasen, daha büyük bir problemi alt problemlere ayırmanın bir yöntemidir, böylece alt problemler üzerinde doğru sırayla çalışırsanız, her bir cevabı bir öncekinin üzerine kurarsanız, sonunda daha büyük problemi çözersiniz. 1950’lerde Richard Bellman tarafından icat edildi – bu nedenle, bir dizi alt problemi çözmeye dayalı büyük bir resim veya uzun vadeli bir yanıt alma süreci için en uygun süreci tanımlayan aynı adı taşıyan “Bellman denklemi”.
Peki Bellman neden buna “dinamik programlama” adını verdi? Hikayeyi 1984 otobiyografisinde anlatıyor, Kasırganın Gözü (s. 159):
Güz dönemini (1950) RAND’da geçirdim. İlk işim çok aşamalı karar süreçleri için bir isim bulmaktı. İlginç bir soru, dinamik programlama adı nereden geldi? 1950’ler matematiksel araştırmalar için iyi yıllar değildi. Washington’da Wilson adında çok ilginç bir beyefendimiz vardı. Savunma Bakanıydı ve aslında araştırma kelimesine karşı patolojik bir korkusu ve nefreti vardı. Bu terimi hafifçe kullanmıyorum; kesin kullanıyorum. Onun yanında insanlar araştırma terimini kullanırsa, yüzü kaplanır, kızarır ve şiddete başvurur. O zaman matematiksel terim hakkında nasıl hissettiğini hayal edebilirsiniz. RAND Corporation, Hava Kuvvetleri tarafından istihdam edildi ve Hava Kuvvetleri, esasen patronu olarak Wilson’a sahipti. Bu nedenle, Wilson’ı ve Hava Kuvvetlerini RAND Corporation’da gerçekten matematik yaptığım gerçeğinden korumak için bir şeyler yapmam gerektiğini hissettim. Hangi başlığı, hangi ismi seçebilirdim? Her şeyden önce planlamayla, karar vermeyle, düşünmeyle ilgileniyordum. Ancak planlama, çeşitli nedenlerle iyi bir kelime değildir. Bu nedenle, “programlama” kelimesini kullanmaya karar verdim, bunun dinamik olduğu, bunun çok aşamalı olduğu, bunun zamana göre değişken olduğu fikrini aşmak istedim, hadi bir taşla iki kuş vuralım. Klasik fiziksel anlamda kesinlikle kesin anlamı olan, yani dinamik olan bir kelimeyi ele alalım. Sıfat olarak da çok ilginç bir özelliği vardır ve dinamik kelimesini aşağılayıcı bir anlamda kullanmak imkansızdır. Muhtemelen aşağılayıcı bir anlam verecek bir kombinasyon düşünmeye çalışın. Bu imkansız. Bu yüzden dinamik programlamanın iyi bir isim olduğunu düşündüm. Bir Kongre üyesinin bile itiraz edemeyeceği bir şeydi. Bu yüzden faaliyetlerim için bir şemsiye olarak kullandım.
Bir kenara, burada bahsettiğim Savunma Bakanı Charles Wilson, benim burada anlattığım bir hikayeyi “General Motors için iyi olan, ülke için de iyidir” diyen Charles Wilson.
Bellman’ın otobiyografisi için yalnızca ılımlı bir tavsiyede bulunabilirim. Bir yandan, özellikle akıcı bir yazar değil, karakterleri de özellikle iyi geliştirmiyor. Öte yandan, iyi hikayeler ve tart gözlemlerle dolu. Yukarıda anlatılan hikayeden hemen önce bir konuşma yapmasını anlatır ve şunları yazar:
En sevdiğim temayı açıkladım: “İlerleme, kollarını sıvayan ve bir şeyleri babalarının öldüğü şekilde yapanların eseri değildir. İlerleme, ‘Daha basit bir yolu olmalı’ diyenlerin eseridir.”
Açıkça görülüyor ki, bu “dinamik programlama” hikayesi bir süredir kamuoyunun gündemindeydi. Ancak görmeden duymamıştım Beatrice Cherrier’in Twitter beslemesinde bir söz geçen ay.
Yazı Neden “Dinamik Programlama” Deniyor? İlk olarak Conversable Economist’te çıktı.