Salah satu senior saya memiliki wawancara kerja dan dia ditanya mengapa itu disebut dinamis. Dia tidak bisa menjawab dan setelah dia menyerah pewawancara mengatakan bahwa tidak ada yang dinamis tentang hal itu, itu hanya disebut seperti itu. Sulit bagi saya untuk percaya.
Apakah ini merujuk pada fakta bahwa subproblem diselesaikan pada saat run-time dan digunakan dalam mencapai tujuan akhir? Suka alokasi memori dinamis yang terjadi saat run-time?
[MENJAWAB]
Saya harus memiliki membaca ini artikel wiki sebelum mengajukan pertanyaan, maaf.
terminology
dynamic-programming
kintoki
sumber
sumber
Jawaban:
Saya selalu intuisi bahwa itu berarti bahwa algoritma yang menggunakan pemrograman dinamis tampaknya mengedit ruang masalah " secara dinamis " sampai masalah dapat diselesaikan dengan algoritma serakah.
Misalnya, dengan masalah Kotak-kotak , algoritma pemrograman dinamis mengedit seluruh papan saat melewatinya, dan akhirnya, algoritma serakah dapat digunakan (sama, dengan algoritma jalur terpendek Dijkstra, dll.).
Saya tidak yakin apakah ini digeneralisasi untuk setiap masalah pemrograman dinamis.
sumber
Sebenarnya, tidak ada yang istimewa dalam nama "pemrograman dinamis"; teknik itu sendiri hanya tentang perulangan cerdik. Lihat pertanyaan ini dan lihat jawaban @Jeffe, di mana dilaporkan bahwa Belman memilih nama itu untuk sengaja dikacaukan.
sumber
Ada cerita yang menarik di sini .. Bellman memelopori paradigma ini. Tapi, ini sebenarnya penelitian matematika. Kembali pada zamannya, menteri pertahanan saat itu paranoid dari kata-kata Research and Math (orang gila, benar!). Bellman takut bahwa secretart akan marah pada pekerjaannya dan akhirnya akan membuatnya kesulitan. Jadi untuk mengaburkan hal-hal sedikit, ia menyebutnya Pemrograman Dinamis , namun tidak ada yang 'dinamis' tentang hal itu ..
sumber
Richard Bellman menyebutnya Pemrograman Dinamis dalam kata-kata dalam Bellman
Sumber: Eye of the Hurricane, Richard Bellman (Autobiografi)
sumber