Уравнение Беллмана (также уравнение динамического программирования) — достаточное условие оптимальности в методах оптимизации динамического программирования, названное в честь Ричарда Эрнста Беллмана и основывающееся на принципе оптимальности Беллмана.
Уравнение Беллмана представляет собой дифференциальное уравнение в частных производных с начальными условиями, заданными для последнего момента времени (то есть справа), для функции Беллмана, которая выражает минимальное значение критерия оптимизации, которое может быть достигнуто, при условии эволюции системы из текущего состояния в некоторое конечное. А это в свою очередь позволяет перейти от решения исходной многошаговой задачи оптимизации к последовательному решению нескольких одношаговых задач оптимизации.
Понятие уравнения Беллмана и функции Беллмана обычно применяется для непрерывных систем. Для дискретных систем аналогом выступает рекуррентное соотношение Беллмана. Принцип оптимальности (см. ниже) позволяет в этом случае оптимальное планирование от конца к началу[1].
Формальные соотношения, выражающие достаточное условия оптимальности как для дискретных, так и для непрерывных систем могут быть записаны как для случая детерминированных, так и для случая стохастических динамических систем общего вида. Отличие заключается лишь в том, что для случая стохастических систем в правых частях этих выражений возникает условное математическое ожидание.
В контексте решения задачи оптимального управления можно выделить два подхода: численный и аналитический. Численный подход основан на использовании вычислительных процедур динамического программирования, в то время как аналитический подход связан с решением уравнения Беллмана. То есть, нелинейного уравнения в частных производных, которое имеет аналитическое решение лишь в простейших случаях[2].
Принцип оптимальности, подходящий как для непрерывных, так и дискретных систем является основополагающим в теории управления. Две формулировки[1]:
Если управление оптимально, то, каковы бы ни были первоначальное состояние системы и управление системой в начальный момент времени, последующее управление оптимально относительно состояния, которое система примет в результате начального управления.
Указанное свойство можно сравнить с соответствующим свойством марковского процесса[1].
Оптимальное управление в любой момент времени не зависит от предыстории системы и определяется только состоянием системы в этот момент и целью управления.
Как следствие этого, оптимальное управление зависит только от текущего состояния системы. Последствия неоптимального управления в прошлом не могут быть исправлены в будущем[1].
Согласно принципу оптимальности, оптимальная стратегия гарантирует, что после первого решения последующие решения будут оптимальными относительно нового состояния, полученного в результате первоначального решения, независимо от начального состояния и начального решения[2].
Рассмотрим уравнение состояния управляемой динамической системы[3]:
где:
Для упрощения изложения требования к гладкости функций и другие нюансы здесь и далее опущены.
Вектор начальных условий:
где не считается произвольным.
Определим функционал качества управления для минимизации:
где:
Для получения управления используется текущее время и состояние системы :
Задача оптимального управления состоит в том, чтобы найти такую функцию , которая минимизирует :
где:
Функция оптимального управления для любого начального дает оптимальный процесс: оптимальное управление и оптимальную траекторию .
Если существует функция , непрерывно дифференцируемая по и на , удовлетворяющая уравнению Беллмана[3]:
и граничному условию
то управление
является оптимальным управлением с полной обратной связью.