내 선배 중 한 사람이 면접을했는데 왜 이것이 역동적인지 물었습니다. 그는 대답 할 수 없었고 인터뷰를 포기한 후에는 그것에 대해 역동적 인 것이 없다고 말했습니다. 그것은 믿기 어렵습니다.
하위 문제가 런타임 중에 해결되어 최종 목표를 달성하는 데 사용된다는 사실을 의미합니까? 런타임 중에 발생하는 동적 메모리 할당처럼?
[대답]
본인은이 있어야 이 죄송합니다, 질문을하기 전에 위키 문서를.
내 선배 중 한 사람이 면접을했는데 왜 이것이 역동적인지 물었습니다. 그는 대답 할 수 없었고 인터뷰를 포기한 후에는 그것에 대해 역동적 인 것이 없다고 말했습니다. 그것은 믿기 어렵습니다.
하위 문제가 런타임 중에 해결되어 최종 목표를 달성하는 데 사용된다는 사실을 의미합니까? 런타임 중에 발생하는 동적 메모리 할당처럼?
[대답]
본인은이 있어야 이 죄송합니다, 질문을하기 전에 위키 문서를.
답변:
나는 항상 동적 프로그래밍을 사용하는 알고리즘 이 욕심 많은 알고리즘으로 문제를 해결할 수있을 때까지 문제 공간을 " 동적 " 으로 편집하는 것처럼 보였다는 것을 항상 직관했다 .
예를 들어, Checkerboard 문제의 경우 동적 프로그래밍 알고리즘은 전체 보드를 통과 할 때 전체 보드를 편집 한 다음 마지막으로 탐욕스러운 알고리즘을 사용할 수 있습니다 (유사하게 Dijkstra의 최단 경로 알고리즘 등).
그래도 이것이 모든 동적 프로그래밍 문제로 일반화되는지 확실하지 않습니다.
실제로 "동적 프로그래밍"이라는 이름에는 특별한 것이 없습니다. 이 기술 자체는 똑똑하게 풀리는 재귀에 관한 것입니다. 참조 이 질문에 Belman 의도적으로 산만로 그 이름을 선택하는 것이보고되어있는 @Jeffe 응답에서와보기를.
여기 흥미로운 이야기가 있습니다. Bellman은이 패러다임을 개척했습니다. 그러나 이것은 실제로 수학 연구였습니다. 당시 당시 국방 장관은 리서치 와 수학 이라는 단어의 편집증이었다 . Bellman은 secretart가 그의 작품에 분노하고 결국 그를 곤경에 빠뜨릴 까봐 두려웠다. 그래서 약간 흐리게하기 위해 그는 Dynamic Programming 이라고 불렀지 만 그것에 대해 '동적'은 없습니다.
Richard Bellman은 Bellman의 단어에서 동적 프로그래밍이라고
나는 RAND에서 1950 년 가을 학기를 보냈다. 첫 번째 과제는 다단계 의사 결정 프로세스의 이름을 찾는 것이 었습니다.
흥미로운 질문은 동적 프로그래밍이라는 이름은 어디에서 왔습니까? 1950 년대는 수학적 연구를하기에는 좋지 않았습니다. 우리는 워싱턴에 윌슨이라는 매우 흥미로운 신사가있었습니다. 그는 국방 장관이었고 실제로 병리학적인 두려움과 연구라는 단어에 대한 증오를 가지고있었습니다. 나는이 용어를 가볍게 사용하지 않습니다. 나는 그것을 정확하게 사용하고 있습니다. 그의 얼굴이 질식하고, 빨갛게 변했으며, 사람들이 자신의 존재로 연구라는 용어를 사용하면 폭력적이 될 것입니다. 그렇다면 수학이라는 용어에 대해 어떻게 느꼈는지 상상할 수 있습니다. RAND Corporation은 공군에 의해 고용되었으며 공군은 기본적으로 윌슨을 사장으로 사용했습니다. 그래서 나는 실제로 RAND Corporation 내에서 수학을하고 있다는 사실로부터 윌슨과 공군을 보호하기 위해 무언가를해야한다고 느꼈다. 제목, 이름, 선택할 수 있습니까? 처음에는 계획, 의사 결정, 사고에 관심이있었습니다. 그러나 계획은 여러 가지 이유로 좋은 단어가 아닙니다. 그러므로 "프로그래밍"이라는 단어를 사용하기로 결정했습니다. 나는 이것이 역동적이며 다 단계적이며 시간에 따라 다르다는 생각을 극복하고 싶었다. 나는 하나의 돌로 두 마리의 새를 죽이겠다고 생각했습니다. 고전적인 물리적 의미에서 절대적으로 정확한 의미, 즉 역동적 인 단어를 생각해 봅시다. 또한 형용사로서 매우 흥미로운 특성을 가지고 있으며 역동적 인 단어를 사소한 의미로 사용하는 것은 불가능합니다. 중대한 의미를 줄 수있는 조합에 대해 생각해보십시오. 그것은 불가능. 따라서 동적 프로그래밍이 좋은 이름이라고 생각했습니다. 의회 의원조차도 반대 할 수없는 일이었습니다.