Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭММ (ОЗО) новое.doc
Скачиваний:
18
Добавлен:
29.04.2019
Размер:
4.12 Mб
Скачать

2. Модели динамического программирования Динамическое программирование

Динамическое программирование (ДП) – метод оптимизации приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги). Начало развития ДП относится к 50-м годам XX в. Оно связано с именем Р. Беллмана.

Общая постановка задачи ДП заключается в следующем. Рассматривается управляемый процесс, например, экономический процесс распределения средств между предприятиями, использования ресурсов в течении ряда лет и т.п. В результате управления система (объект управления) S переводится из начального состояния S0 в состояние Ŝ. Пусть управление можно разбить на n шагов, т.е. решение принимается последовательно на каждом шаге, а управление, переводящее систему S из начального состояния в конечное, представляет собой совокупность n пошаговых управлений.

Пусть Xk – управление на к-ом шаге (k= ). Переменные Xk называются допустимыми (Xk может быть числом, точкой в n – мерном пространстве, качественным признаком).

Пусть Х (Х1, Х2,... Хn) – управление, переводящее систему S из состояния S0 в состояние Ŝ. Обозначим через Sk состояние системы после k-го шага управления. Получаем последовательность состояний S0, S1, ..., Sk-1, Sk, ..., Sn-1, Sn = Ŝ, которую изобразим схематично:

Показатель эффективности рассматриваемой управляемой операции -целевая функция - зависит от начального состояния и управления Z=F(S0,X).

Пусть состояние Sk системы в конце k-го шага зависит только от предшествующего состояния Sk-1 и управления на k–ом шаге Xk и не зависит от предшествующего состояний и управлений. Это требование называется «отсутствием последействия». Сформулированное положение записывается в виде уравнений Skk (Sk-1, Хk), которые называются уравнениями состояний. Целевая функция является аддитивной от показателя эффективности каждого шага. Обозначим показатель

З адача пошаговой оптимизации (задача ДП) формулируется так: определить такое допустимое управление Х, переводящее систему S из состояния S0 в состояние Ŝ, при котором целевая функция принимает наибольшее (наименьшее) значение.

Особенности модели ДП:

а) задача оптимизации интерпретируется как n–шаговый процесс управления;

б) целевая функция равна сумме целевых функций каждого шага;

в) выбор управления на k–ом шаге зависит только от состояния системы к этому шагу, не влияет на предшествующие шаги (нет обратной связи);

г) состояние Sk после k–го шага управления зависит только от предшествующего состояния Sk-1 и управления Xk (отсутствие последействия);

д) на каждом шаге управление Xk зависит от конечного числа управляющих переменных, состояние Sk – от конечного числа параметров.

В основе ДП лежит

Принцип оптимальности /Р. Беллман/. Каково бы ни было состояние S системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая данный.

Принцип оптимальности утверждает, что для любого процесса без обратной связи оптимальное управление таково, что оно является оптимальным для любого подпроцесса по отношению к исходному состоянию этого подпроцесса. Поэтому решение на каждом шаге является наилучшим с точки зрения управления в целом.

Вместо исходной задачи ДП с фиксированным числом шагов n и начальным состоянием S0 рассмотрим последовательность задач, полагая последовательно n=1,2, ... при различных S – одношаговую, двухшаговую и т.д. – используя принцип оптимальности.

Введем ряд новых обозначений.

Рассмотрим n–й шаг: Sn-1 состояние системы к началу n–го шага, Sn = Ŝ – конечное состояние, Хn управление на n–ом шаге, а f n (Sn-1n) – целевая функция (выигрыш) n–го шага.

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

Обозначим через Zn* (Sn-1) максимум целевой функции – показателя эффективности n – го шага, при условии, что к началу последнего шага система S была в произвольном состоянии Sn-1, а на последнем шаге управление было оптимальным.

Zn* (Sn-1) называется условным максимумом целевой функции на n–ом шаге. Очевидно что

(1)

Максимизация ведется по всем допустимым управлениям Хn. Решение Хn, при котором достигается Zn* (Sn-1) также зависит от Sn-1 и называется условным оптимальным управлением на n–ом шаге. Оно обозначается через Xn* (Sn-1)

Zn* (Sn-1) - условно оптимальный выйгрыш на n – м шаге

Рис.1

f n-1 (Sn-1, Xn-1) – значение целевой функции (n-1) – го шага при произвольном управлении Xn-1 и состоянии Sn-2

Решив одномерную задачу локальной оптимизации по управлению (1) найдем

для всех возможных состояний Sn-1 две функции Zn* (Sn-1) и Хn* (Sn-1).

Рассмотрим теперь двухшаговую задачу: присоединим к n–му шагу (n-1)–й (рис. 1).

Для любых состояний Sn-2,произвольных управлений Хn-1 и оптимальном управлении на n-ом шаге значение целевой функции на двух последних шагах равно:

fn-1(Sn-2, Хn-1)+ Zn* (Sn-1) (2)

Согласно принципу оптимальности для любых Sn-2 решение нужно выбирать так, чтобы оно вместе оптимальным управлением на последнем (n-ом) шаге приводило бы к максимуму целевой функции на двух последних шагах. Следовательно, нужно найти максимум выражения (2) по всем допустимым управлениям Хn-1 .Максимум этой суммы зависит от Sn-2 , обозначается через Zn* (Sn-2) и называется условным максимумом целевой функции при оптимальном управлении на двух последних шагах. Соответствующее управление Хn-1 на (n-1)–ом шаге обозначается через Хn* (Sn-2) и называется условным оптимальным управлением на (n-1)–ом шаге.

(3)

Выражение, стоящее в фигурных скобках (3) зависит только от Sn-2 и Хn-1, так как Sn-1 можно найти из уравнения состояний Sk=φk (Sk-1,Хk) (k= ) при k=n-1, т.е. Sn-1=φn-1 (Sn-2,Хn-1) и подставить вместо Sn-1 в функцию Zn* (Sn-1).

В результате максимизации только по одной переменной Хn-1 согласно уравнению (3) вновь получаются две функции Zn-1* (Sn-2) и Хn-1* (Sn-2).

Далее рассматривается трехшаговая задача: к двум последним шагам присоединяется (n-2)–ой и т.д.

Обозначим через Zk* (Sk-1) условный максимум целевой функции, полученный при оптимальном управлении на n-k+1 шагах, начиная с k–го до конца, при условии, что к началу k–го шага система находится в состоянии Sk-1. Фактически эта функция равна

Тогда

Рис. 2

Целевая функция на n–k последних шагах при произвольном управлении Хk на k–ом шаге и оптимальном управлении на последующих n–х шагах равна fk(Sk-1, Xk)+ Zk+1* (Sk).

Согласно принципу оптимальности, Xk выбирается из условия максимума этой суммы, т.е. управление Xk на k–ом шаге, при котором достигается максимум в (4) обозначается

(4)

через Xk* (Sk-1) и называется условным оптимальным управлением на k–ом шаге (в правую часть уравнения (4) следует вместо Sk подставить выражение Skk (Sk-1k) , найденное из уравнений состояния).

Уравнения (4) называются уравнениями Беллмана. Это рекуррентные соотношения, позволяющие найти предыдущее значение функции, зная последующие. Если из (1) найти Zn* (Sn-1), то при k=n-1 из (4) можно определить, решив задачу максимизации для всех возможных значений Sn-2, выражения для Zn-1* (Sn-2) и соответствующее Хn-1* (Sn-2). Далее, зная Zn-1* (Sn-2) находим уравнения состояний.

Процесс решения уравнений (1) и (4) называется условной оптимизацией.

В результате условной оптимизации получаются две последовательности:

Zn*(Sn-1), Zn-1*(Sn-2), ..., Z2*(S1), Z1*(S0) – условные максимумы целевой функции на последнем, на двух последних, на ... n шагах и

Хn*(Sn-1), Хn-1*(Sn-2), ..., Х2*(S1), Х1*(S0) – условные оптимальные уравнения на n–ом шаге, (n-1)-м, ..., 1–м шагах.

Используя эти последовательности, можно найти решение задачи ДП при данных n и S0. По определению Z1*(S0) – условный максимум целевой функции за n шагов при условии, что к началу первого шага система была в состоянии S0, т.е. Zmax = Z1*(S0).

Далее следует использовать последовательность условных уравнений и уравнения состояний.

При фиксированном S0 получаем Х1*1*(S0). Далее из уравнений состояний находим S1*=φ(S0, Х1*) и подставляем это выражение в последовательность условных оптимальных управнений:

Х2*2*(S1) и т.д. по цепочке:

Получаем оптимальное решение задачи ДП: Х* =(Х1*, Х2*, ..., Хn*). (Здесь  означает использование уравнений состояния, а  -последовательности условных оптимальных управлений.)