На окончательной стадии для каждого шага определяется окончательное (безусловное) оптимальное управление.
Предварительная (условная) оптимизация проводится по шагам, в обратном порядке:
от последнего шаги к первому;
Окончательная (безусловная) оптимизация-также по шагам, но в естественном порядке:
от первого шага к последнему.
Введем следующие обозначения:
-условный оптимальный выигрыш, получаемый на всех последующих шагах, начиная с i-го и до конца;
он достигается при оптимальном управлении на всех этих шагах и равен максимальному выигрышу, который можно получить на всех этих шагах вместе, если перед их началом система находится в состоянии
.
-условное оптимальное управление на i-ом шаге, которое, совместно с оптимальным управлением на всех последующих шагах, обращает выигрыш на всех шагах, начиная с данного, в максимум.
Поставим задачу-построить алгоритм определения функций условного
оптимального выигрыша
  
и условного оптимального управления
  
для всех шагов
  
Рассмотрим i-ыи шаг процесса управления. Пусть в результате i-1
предыдущих шагов система пришла в состояние
  
, и мы выбираем какое-то управление
  
на i-ом шаге. Если мы его применим, то, во-первых, получим на данном i-ом шаге
какой-то выигрыш
  
Он зависит от состояния системы Q так и от управления :
  
   (1)
Кроме того, мы получим какой-то выигрыш на всех оставшихся шагах. На основании принципа оптимальности, будем считать, что он максимален. Чтобы найти этот выигрыш, мы должны знать состояние системы перед следующим,
(i+1)-м шагом. Под влиянием управления   
  
на i-ом шаге система из состояния Q  
(в котором она была перед этим шагом) перейдет в какое-то новое состояние
  
Это новое состояние будет зависеть, опять-таки, от прежнего состояния Q
и примененного управления
  (2)
Запишем выигрыш, который мы получим на всех шагах, начиная с i-го, если на i-ом шаге будет применено любое (возможно, не оптимальное) управление
а на всех последующих (i+1)-го до N-го оптимальное управление.
Этот выигрыш будет равен выигрышу zi на данном i-ом шаге, плюс условный
оптимальный выигрыш на всех последующих шагах, начиная с (i+1)-го, определяемый для нового состояния системы
;
  (3)
обозначим такой "полуоптимальный" выигрыш через
  
тогда учитывая (2) и (3),
  (4)
Теперь, в соответствии с принципом оптимальности, мы должны выбрать такое управление
при котором величина (4) максимальна и достигает значения:
  (5)
То управление
  
при котором этот максимум в (5) достигается, и есть условное оптимальное управление на i-ом шаге, а сама величина (5)-условный оптимальный выигрыш (на всех шагах, начиная с i-го и до конца).
В уравнении (5) функции
  
и
  
известны. Неизвестными остаются
функции:
  
и
  
; из них первая выражается через вторую.
Формула (5) представляет собой так называемое основное функциональное уравнение динамического программирования или уравнение Беллмана. Оно позволяет определить функцию Zi(Q)
, если известна следующая за ней по порядку
Что касается функции (условный оптимальный выигрыш на последнем шаге), то она может быть определена очень просто.
Действительно, за последним шагом нет следующего, и нужно обратить в максимум выигрыш на этом шаге:
Теперь построим всю цепочку условных оптимальных управлений. Зная
можно по общей формуле (5), полагая в ней i+1=n , найти функцию
и соответствующее оптимальное управление
;
затем
и
и так далее , вплоть до последнего шага от конца т.е. первого шага, для которого будут найдены функции Z1(Q) и X1(Q)
. Функция Z1(Q) есть условный оптимальный выигрыш за всю операцию, т.е. на всех шагах начина с первого и до последнего
(если первый шаг начинается с определенного состояния Q1).
Таким образом предварительная оптимизация закончена-найдены условный оптимальный выигрыш и условное оптимальное управление для каждого шага.
Рассмотрим вторую стадию оптимизации-нахождение безусловного или окончательного оптимального управления   
Предположим, что исходное состояние Q1 нам полностью известно. Подставим это состояние Q1
в формулу для условного оптимального выигрыша Z1(Q). Получим:
  (7)
Одновременно найдем оптимальное управление на первом шаге
  
Далее, зная исходное состояние Q1 и управление X1 , можем найти состояние
системы после первого шага:
  
Зная это состояние
можно найти оптимальное управление на втором шаге
  
затем
  
и т. д. Таким образом, идя по цепочке
  (8)
мы определили одно за другим, все шаговые оптимальные управления операций в целом
  
а также конечное состояние системы
  
Это условие будет выполняться, т.к. мы выбираем управление на последнем шаге так, чтобы
  
Рассмотрим теперь случай, когда исходное состояние системы ограничено условием
.  
В этом случае нужно найти такое начальное состояние
при котором условный минимальный выигрыш за все шаги максимален.
  (9)
То начальное состояние
для которого этот максимум достигается и нужно взять в качестве исходного. Далее оптимальное управление строится в соответствии с выражением (8), заменяя Q1 на