12.3.3 다이나믹 프로그래밍
다이나믹(dynamic)은 연속적으로 발생되는 문제들을 푸는 것이고, 프로그래밍(programming)은 개발 언어가 아니라 수학적인 문제를 의미합니다. 따라서 다이나믹 프로그래밍(dynamic programming)은 연속적으로 발생되는 문제를 수학적으로 최적화(optimizing)하여 풀어내는 것이라고 할 수 있습니다.
다이나믹 프로그래밍은 MDP의 모든 상황에 대한 것을 이미 알고 있다고 가정합니다. 그렇기 때문에 계획(planning)이 가능합니다. 어떤 행동을 취했을 때 어떤 상태가 되는지 미리 알고 있기에 계획이 가능한 것과 동일합니다.
MDP와 정책을 입력으로 하여 가치 함수를 찾아내는 것이 예측(prediction) 과정입니다. 그리고 MDP를 입력으로 하여 기존 가치 함수를 더욱 최적화하는 것이 컨트롤(control) 과정입니다. 최종적으로 정책은 가치 함수를 사용하여 최적화된 정책을 찾을 수 있습니다.