В условиях отсутствия последействия и аддитивности целевой функции решение задачи динамического программирования базируется на принципе оптимальности Беллмана: Метод решения задачи (2.9.1), основанный на принципе оптимальности Беллмана, называется методом прогонки и представляет собой следующую двухэтапную процедуру.
1-й этап («обратная прогонка»). Рассмотрим последний, n-й шаг. Обозначим через Wn*(S) максимальную эффективность управления xn на последнем шаге при условии, что в начале шага система находилась в состоянии Sn-1:
![]() |
(2.9.4) |
По сути, xn* – это условное оптимальное управление на n-м шаге:
![]() |
(2.9.5) |
Перебирая все возможные состояния Sn-1 перед последним шагом, получаем все условные оптимальные уравнения на последнем шаге.
Рассмотрим произвольный k-й шаг. Из принципа оптимальности Беллмана следует
|
(2.9.6) |
Уравнения (2.9.6) называются рекуррентными уравнениями Беллмана и позволяют находить цепочки условных оптимальных шаговых управлений, от последнего
и до самого первого :
|
(2.9.7) |
принцип оптимальности Беллмана: «Каково бы ни было состояние системы перед очередным шагом, управление на этом шаге выбирается так, чтобы сумма эффективности данного шага и максимальной эффективности всех последующих шагов была бы максимально высокой».