Принцип оптимальности (основное правило динамического программирования): Каково бы ни было начальное состояние системы на любом шаге и управление, выбранное на этом шаге, последующие управления должны выбираться оптимальными относительно состояния, к которому придет система в конце данного шага.
Пусть процесс имеет n шагов. Состояние системы на каждом шаге i описывается s параметрами
, которые называются фазовыми координатами. Введем обозначения:
- множество состояний системы S перед шагом i (
);
- множество состояний системы S в конце шага i(
);
- множество управлений, которые возможно выбрать на шаге i и под воздействием каждого из которых система S переходит в одно из состояний множества
(
);
- условно-оптимальное значение целевой функции от шага i до шага n, при условии, что перед шагом i система S находилась в одном из состояний множества
; а на шаге i было выбрано управление
, обеспечивающее целевой функции условно-оптимальное значение;
- значение целевой функции (показатель эффективности) на шаге i для всех управлений из множества
при условии, что на шаге i система S находилась в одном из состояний множества
;
- условно-оптимальное значение целевой функции от шага i+ 1 до шага n, при условии, что в результате воздействия управления, выбранного из множества
, система S на шаге i перейдет из состояния, принадлежащего множеству
, в одно из состояний множества
(
).
Формально принцип оптимальности Беллмана имеет вид:
=
(
+
) (*).
Уравнение (*) называется основным функциональным уравнением динамического программирования (или уравнением Беллмана, или рекуррентными соотношениями).
Рассмотрим последний шаг n процесса и уравнение (*):
=
(
+
).
Функция
не определена при
, значит,
=0. Получим
=

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






