동적 프로그래밍은 최적화 기반 제어에서 상태 공간을 시간에 따라 분할하여 해결하는 기법이다. 시스템의 모든 가능한 상태와 경로를 평가하여 최적의 정책을 수립한다. 주로 연속적인 시간 단계에서의 최적 제어 문제를 해결하기 위해 사용되며, 다양한 시스템에서의 장기적 목표를 설정하고 달성하는 데 유리한다.
동적 프로그래밍 기반 제어는 최적 경로를 찾는 데 효과적이지만, 상태 공간이 매우 클 경우 계산 비용이 크게 증가하는 단점이 있다. 이를 해결하기 위해 근사 방법이나 특정 제약 조건을 사용해 효율성을 높이기도 한다.