В условиях отсутствия последействия и аддитивности целевой функции решение задачи динамического программирования базируется на принципе оптимальности Беллмана: Метод решения задачи (2.9.1), основанный на принципе оптимальности Беллмана, называется методом прогонки и представляет собой следующую двухэтапную процедуру.

1-й этапобратная прогонка»). Рассмотрим последний, n-й шаг. Обозначим через Wn*(S) максимальную эффективность управления xn на последнем шаге при условии, что в начале шага система находилась в состоянии Sn-1:

(2.9.4)

По сути, xn* – это условное оптимальное управление на n-м шаге:

(2.9.5)

Перебирая все возможные состояния Sn-1 перед последним шагом, получаем все условные оптимальные уравнения на последнем шаге.

Рассмотрим произвольный k-й шаг. Из принципа оптимальности Беллмана следует

W k ( S k1 )= max x k , x k+1 ,, x n { f k ( S k1 , x k )+ i=k+1 n f i ( S i1 , x i ) }= max x k { f k ( S k1 , x k )+ W k+1 ( S k )}= = max x k { f k ( S k1 , x k )+ W k+1 ( ϕ k ( S k1 , x k ))},k= 1,n ¯ .

(2.9.6)

Уравнения (2.9.6) называются рекуррентными уравнениями Беллмана и позволяют находить цепочки условных оптимальных шаговых управлений, от последнего x n

и до самого первого x 1:

x n ( S n1 ), x n1 ( S n2 ),, x k ( S k1 ),, x 1 ( S 0 ) .

(2.9.7)