Первоначально метод динамического программирования был разработан для дискретных систем. Как отмечалось ранее (см. п.2.3), дискретные объекты управления описываются не дифференциальными, а разностными уравнениями состояния:
,
=0, 1, 2, ….
Для одномерного объекта
,
=0, 1, 2, …, (5.1)
где
,
.
Для дискретного объекта критерий оптимальности имеет вид:
. (5.2)
Рассмотрим задачу с закрепленным левым концом, для которой задано начальное состояние
и область допустимых управлений
. Необходимо найти такую последовательность управлений
,
, …,
, при которых критерий оптимальности
(5.2) достигает минимального значения.
Решение задачи начинают с правого конца.
Предположим, что все управления
,
, …,
найдены, а по формуле (5.1) найдены переменные состояния
, …,
(
задано по условию). Необходимо найти только
.
Так как критерий оптимальности (5.2)
и нам неизвестно только
, то, согласно принципу оптимальности (см. п.5.1), конечный участок оптимальной траектории также является оптимальным. Математически это можно записать в виде следующего выражения:
. (5.3)
Теперь задача заключается в нахождении оптимального управления
(
), при котором выполняется уравнение (5.3). Причём, оптимальное управление
будет зависеть от состояния
(какое состояние такое будет и управление), т.е.
. (5.4)
Обозначим через
минимальное значение
, достигаемое при оптимальном управлении
, т.е.
. (5.5)
Для того чтобы найти оптимальное управление
необходимо взять частную производную то
по
и приравнять к нулю
. Однако часто оптимальное управление
оказывается за пределами области допустимых управлений
. Для того чтобы найти оптимальное управление
из области
(пусть не самое оптимально из всех управлений
, но оптимально из области
) используются численные методы с помощью ЭВМ.
Решение задачи можно разбить на три этапа:
Этап 1. В области допустимых управлений
при
проводим горизонтальный отрезок от её начала до конца (рис. 5.2). Разбиваем его на (
) участков с шагам
. Тогда управление
может принимать только дискретные значения
,
, …,
. Шаг
выбирают достаточно малым, чтобы точность расчётов была высокой.
![]() |
Рисунок 5.2 – Разбиение области допустимых управлений
на
отрезков с шагом 
Аналогично разбивается и диапазон допустимых состояний
на
отрезков с шагом
при
.
![]() |
Рисунок 5.3 – Разбиение области допустимых состояний
на
отрезков с шагом 
Далее ищут критерий оптимальности
(5.3) в точке
вначале для первого значения переменной состояния
горизонтального отрезка области допустимых состояний
. Для этого при фиксированном
, подставляя различные
, вычисляют последовательность
,
, …,
. Из этой последовательности
определяют минимальное значение и обозначают его
(см.(5.5)), а управление -
(см.(5.4)).
Таким образом, в памяти ЭМВ остаются три величины
,
,
.
Далее берётся следующее значение переменной состояния
в точке
и выполняются такие же действия. Все операции повторяются до последней точки
горизонтального отрезка области допустимых состояний
. В результате в памяти машины хранятся значения переменных состояния
,
, …,
и соответствующих им оптимальных управлений
,
в точке
.
Этап 2. Следующим этапом является нахождение оптимальных управлений
для предыдущей
точки. В этой точке критерий оптимальности
будет зависеть не только от значений
и
, но и от последующих
и
, а именно:
(5.6)
Минимальное значение второго слагаемого
уже было найдено на предыдущем этапе. Тогда условие (5.6) можно переписать в следующем виде:
. (5.7)
Из (5.7) видно, что критерий качества
не зависит от управления
в точке
, но зависит от переменной состояния
. Для снятия этой зависимости можно воспользоваться разностным уравнением (5.1), записанным в виде:
. (5.8)
Следовательно, критерий (5.7) можно переписать следующим образом:
. (5.9)
Аналогично (5.4) оптимальное управление в точке
обозначим
. (5.10)
Тогда минимальное значение критерия
в точке
, аналогично (5.5), обозначим
. С учётом введённых обозначений выражение для
примет вид:
. (5.11)
Из выражения (5.11) видно, что минимальное значение критерия
в точке
зависит только от
и
.
В этом случае, при
, как и в точке
, область допустимых управлений
разбиваем на
, отрезков, а область допустимых состояний
- на
отрезков, на концах которых отмечают точки
,
, …,
и
,
, …,
соответственно.
На основании формулы (5.8) находим
при
и каждом
, т.е.:
,
.
Рассчитанное значение
округляют до ближайшего
, полученного на первом этапе, и из памяти машины извлекают величину
, соответствующую
.
В результате при
и разных
,
, формируется система
,
.
Записав
выражений при
, ищется минимальное
, которое обозначается
. В память машины записывается
,
,
.
Потом действия повторяются при
, …,
.
В результате в памяти машины окажутся записанные состояния
,
, …,
; оптимальные управления
и минимальные значения критерия качества
,
. При этом информацию об минимальных значениях критерия качества
в точке
из памяти машины можно убрать.
Аналогичные операции проводятся для переменных состояния
и т.д.
Дойдя до
- го шага выражение (5.11) примет следующий вид:
. (5.12)
Оптимальное управление, аналогично (5.10) можно записать следующим образом:
. (5.13)
Придавая
возрастающие значения, дойдем до
.
Для этого случая
. (5.14)
Как и в случае (5.10), из (5.14) находим оптимальное управление
и величину
как функции от заданного состояния объекта
. Эта операция выполняется аналогично операции, описанной для точки
, только переменная
принимает одно значение, а управления
–
значений:
,
, …,
.
Этап 3. Зная
и определив оптимальное управление
, по формуле (5.1) рассчитывается
. Из хранящихся в памяти машины переменных состояния
,
, …,
выбирается ближайшая к переменной
, рассчитанной по формуле (5.1). В памяти машины каждой переменной
хранится соответствующее ей оптимальное управление
, т.е., зная
, находим
.
По формуле (5.1) вычисляется переменная
. Далее все операции повторяются до
. В итоге находим всю последовательность оптимальных управлений
,
, …,
.
Метод динамического программирования в дискретном варианте не является средством аналитического решения задачи, но легко реализуется с помощью ЭВМ. Достоинство метода: чем больше ограничений и уже область допустимых управлений, тем меньше вычислений требуется выполнить.
Этот метод может быть применен и для многомерных объектов, но тогда количество вычислений увеличивается. Это обстоятельство известно под названием «проклятия размерности».








