Пусть операция (задача) является управляемой, т.е. выбираются какие-то параметры, которые влияют на ход и исход. На каждом шаге выбирается какое-то решение, от которого зависит выигрыш на данном шаге и выигрыш на операции в целом, - шаговое управление. Совокупность всех шаговых управлений есть управление операцией (задачей) в целом. Обозначив его Х, а шаговое управление х1, x2, ..., хm, имеем:
, хi - может принимать любые значения (числа, векторы, функции и т.д.).Требуется найти такое управление Х, при котором выигрыш W обращается в максимум:
.x = x *, при котором это случается, называется оптимальным управлением:
.Пусть
, максимум берется по всем управлениям х, (возможным в данных условиях), т.е. возможна запись: .Метод ДП не предполагает, что каждый шаг оптимизируется отдельно, независимо от других.
Пусть, например, планируется работа группы предприятий, часть из которых выпускает предметы потребления, а остальные производят для них машины. Задача - за m лет получить максимальный объем предметов потребления.
Пусть планируются инвестиции на первый год. Если исходить из узких интересов этого шага (года), то можно было бы вложить все наличные средства в производство предметов потребления. Но такое решение не было бы правильным (эффективным) с точки зрения операции в целом. Конечно, вкладывая средства в производство машин, мы сокращаем объем производства предметов потребления в данном году, но, однако, вместе с этим создаются условия для увеличения производства в последующие годы.
Итак, планируя многошаговую задачу, необходимо выбирать управление на каждом шагу с учетом всех его будущих последствий на еще предстоящих шагах.
Управление на i-том шаге выбирается так, чтобы была максимальной сумма выигрышей на всех оставшихся до конца шагах плюс данный.
Однако, последний шаг является исключением из этого правила. Здесь можно планировать так, чтобы он сам, как таковой, принес наибольшую выгоду.
Следовательно, процесс ДП обычно разворачивается от конца к началу, т.е. сначала планируется m-й шаг. Но как его спланировать, если не знаем, чем кончается предпоследний шаг. Как быть?
Планируя последний шаг, нужно сделать разные предположения о том, чем кончится предпоследний (m-1)-й шаг, и для каждого из этих предположений найти условное оптимальное управление на m-ом шаге [условное, так как оно выбирается, исходя из условия, что предпоследний шаг кончился так-то и так-то (каким-то образом)].
Предположим, что это сделано, и для каждого из возможных исходов предпоследнего шага известно условное оптимальное управление и соответствующий ему условный оптимальный выигрыш на m - ом шаге.
Теперь можно оптимизировать управление на предпоследнем (m-1)-ом шаге. Снова делаем возможные предположения о том, чем может кончиться предыдущий (m-2)-й шаг и для каждого из этих предположений находим такое управление на (m-1)-ом шаге, при котором выигрыш за последние два шага ( m-й уже оптимизирован) максимален. Так находятся для каждого исхода (m-2)-го шага условное оптимальное управление на (m-1)-м шаге и условный оптимальный выигрыш на двух последних шагах. И так, "пятясь назад", оптимизируем управление на (m-2)-м шаге и т.д., пока не дойдем до первого. Предположим, что все условные оптимальные управления и выигрыши за весь" хвост" процесса (на всех шагах, начиная от данного и до конца) известны. Теперь можно найти не условные оптимальные управления x* и w*.
Действительно, пусть известно, что в каком-то состоянии S0 управляемая система (объект управления S) была в начале первого шага. Тогда можно выбрать оптимальное управление х1* на первом шаге. Применив его, меняем состояние системы на некоторое новое S1*. В этом состоянии подходим ко второму шагу. Тогда тоже известно условное оптимальное управление x2*, которое к концу второго шага переводит систему в состояние S2* и т.д. Оптимальный выигрыш w* за всю операцию известен, так как именно на основе его максимальности выбиралось управление на первом шаге.
Таким образом, в процессе оптимизации управления методом ДП многошаговый процесс "проходится" дважды:
· от конца к началу - поиск условных оптимальных управлений и выигрышей за оставшийся "хвост" процесса;
· от начала к концу - осуществляется "чтение" уже готовых рекомендаций и поиск безусловного оптимального управления x*, состоящего из оптимальных шаговых управлений x1*, x2*, ..., xm*.
Имеется некий запас ресурсов (средств) К, который нужно распределить между предприятиями А1, А2, ..., Аm. Каждое i-ое предприятие при вложении в него каких-то средств x приносит доход в виде функции
. Все заданы (пусть они неубывающие). Как распределить средства К между Ai (i =1,2,...,m), чтобы в сумме они дали максимальный доход?Здесь нет параметра времени. Однако, операцию распределения средств можно мысленно развернуть в какой-то последовательности, считая за первый шаг вложение в предприятие А1, за второй - вложение в предприятие А2 и т.д.
Управляемая система S в данном случае - это ресурсы (средства). Состояние системы S перед каждым шагом характеризуется одним числом S -наличным запасом еще не вложенных средств.
Шаговыми управлениями являются средства х1, x2, ..., хm, выделяемые конкретным предприятиям.
Требуется найти оптимальное управление, т.е. совокупность х1, x2, ..., хm, при которой суммарный доход максимален:
.Находим для каждого i-го шага условный оптимальный выигрыш (от этого шага и далее до конца), если к данному шагу подошли с запасом средств S. Обозначаем условный оптимальный выигрыш wi(S), а соответствующее ему условное оптимальное управление - средства, вкладываемые в i-е предприятие, - xi(S).
Начинаем оптимизацию с последнего m-го шага.
Пусть подошли к этому шагу с остатком средств S. Вкладываем всю сумму S целиком в предприятие Аm. Следовательно, условное оптимальное управление на m-ом шаге: отдать последнему предприятию все имеющиеся средства S:
,а условный оптимальный выигрыш:
.Задаваясь последовательностью значений S (располагая их достаточно тесно), для каждого значения S будем знать xm(S) и wm(S). Последний шаг оптимизирован.
Переходим к предпоследнему (m-1)-му шагу. Пусть подошли к нему с запасом средств S. Обозначим wm-1(S) условный оптимальный выигрыш на двух последних шагах: (m-1)-ом и m-ом (последний оптимизирован). Если на (m-1)-ом шаге (m-1)-му предприятию выделим средств x, то на последний останется S-x. Выигрыш на двух последних шагах будет:
и нужно найти такое x, при котором этот выигрыш максимален:
Знак max означает, что берется максимальное значение по всем x, какие только возможны при x £ S (вложить больше, чем S нельзя) от выражения в { }. Этот максимум и есть условный оптимальный выигрыш за два последних шага, а то значение x, при котором max достигается, - условное оптимальное управление на (m-1)-ом шаге.
Далее оптимизируем (m-2)-й, (m-3)-й и т.д. шаги. Для любого i-го шага условный оптимальный выигрыш за все шаги с этого и до конца находятся по формуле:
и соответствующее ему условное оптимальное управление xi(S) - то значение x, при котором этот максимум достигается.
Продолжая этот процесс, доходим до первого предприятия А1. Варьировать значениями S нет нужды, так как знаем, что запас средств перед первым шагом есть K, т.е.:
.Итак, максимальный выигрыш (доход) от всех предприятий найден. Значение x, при котором достигается max в последнем соотношении и есть оптимальное управление
на первом шаге.После того, как эти средства вложены в первое предприятие, остается
. Читая рекомендацию для этого значения S, выделяем второму предприятию оптимальное количество средств: и т.д. до конца.1. Выбрать параметры (фазовые координаты), характеризующие состояние S управляемой системы перед каждым шагом.
2. Расчленить операцию (задачу) на этапы (шаги).
3. Выяснить набор шаговых управлений xi для каждого шага и налагаемые на них ограничения.
4. Определить, какой выигрыш приносит на i-ом шаге управления xi, если перед этим система была в состоянии S, т.е. записать "функции выигрыша":
. (6.1)5. Определить, как изменяется состояние S системы под влиянием управления xi на i-м шаге; оно переходит в новое состояние: