Данную задачу можно представить в виде графа, с помощью которого можно найти оптимальный путь перехода из начального состояния в конечное.
![]() |
Такого рода задачи решаются методом динамического программирования (оптимального управления Беллмана). Для этого составляется специальная модель системы, для которой необходимо определить следующие данные:
1)
вид состояния системы и установить связь его с предыдущим
состоянием
и управлением
, т.е. записать функцию
;
2)
эффективность перехода из
состояния в состояние
под
воздействием управления
в виде
;
3)
общую целевую функцию,
определяющую эффективность перехода системы из начального состояния в конечное
под
воздействием управления
, в виде
.
Если общая целевая функция не аддитивна, т.е. не записана в виде
, то ее необходимо свести к
аддитивной форме. Например, если целевая функция мультипликативна, т.е.
записана в виде произведения,
то путем логарифмирования ее нужно свести к аддитивной форме
.
Задачей динамического программирования является поиск на каждом шаге такого управления, при котором общая целевая функция принимает максимальное значение. Если в исходной задаче установлен минимум целевой функции, то, путем смены знака в целевой функции на обратный, задача сводится к поиску максимума.
Метод оптимального управления Беллмана
Суть метода оптимального управления Беллмана состоит в
том, что если система находилась в состоянии ,
то необходимо найти оптимальное управление
,
которое на последующих шагах k+1,…,n приводило бы к максимуму целевой функции
.
носит название
локального оптимума на k-ом шаге.
Беллман предложил следующий путь поиска локального оптимума. Записывается уравнение целевой функции на k-ом шаге в виде:
,
где ,
-оптимальная (максимальная) целевая
функция или локальный оптимум на k+1 шаге.
Из уравнения видно, что оптимальная целевая функция на k-ом шаге определяется путем поиска максимума суммы оптимальной целевой функции на (k+1)-ом шаге и эффективности перехода из (k-1)-го состояния в k-ое состояние.
Пользуясь указанной формулой, Беллман предложил оптимальную целевую функцию, а следовательно, и оптимальное управление для каждого
k-го состояния
определять, начиная с конечного состояния ,
т.е. двигаясь с конца к исходному состоянию. Такое предложение позволяет
существенно упростить расчеты, т.к.
.
Для вычисления целевой функции на (n-1)-ом
шаге используется оптимальная целевая функция на n-ом шаге :
.
Зная оптимальную целевую функцию на (n-1)-ом шаге, можно найти оптимальную целевую функцию на (n-2)-ом шаге и т.д. до 1-го шага.
Таким образом, можно построить ряд локальных
(условных) оптимумов. Условность состоит в том, что оптимальный переход
находится при условии, что система вначале находилась в состоянии . Ряд условных оптимумов представляется
в виде последовательности
.
Для каждого условного оптимума определяется условное
оптимальное управление в виде последовательности .
Окончательным решением задачи является определение
безусловных оптимумов и безусловных оптимальных управлений, т.е. необходимо
выстроить ряд вида: .
Методика построения модели и решения задачи средствами
динамического программирования
Построение модели ведется в следующей последовательности:
1.
В поставленной задаче выделяются
состояния и выбирается способ деления процесса
на шаги.
2.
Каждое из состояний Sk представляется в виде множества подсостояний и
определяется управление
.
3.
Записывается уравнение,
определяющее состояние и являющееся функцией
предыдущего состояния
и управления
, в виде
.
4.
Вводится показатель эффективности
для каждого k-го перехода: .
5.
Составляется общая целевая функция
в виде суммы эффективностей на k-ых шагах: .
6. Строится граф модели.
Этапы решения задачи следующие:
1.
Записываются уравнения Беллмана для
k-го и n-го шагов:
,
.
2.
Определяется условное оптимальное
управление .
3. Строится ряд безусловных оптимумов и безусловного оптимального управления. Если начальное состояние S0 единственное, то максимум
общей целевой функции равен условному оптимуму 1-го
перехода .
Далее выстраивается ряд .
4. Если начальных состояний несколько
и они составляют множество , то максимум
целевой функции определяется по формуле
.
Далее строится ряд .
Пример решения задачи методом динамического программирования
Планируется производство на 4 месяца. Необходимое
число работников на каждый месяц известно: .
Перед началом работ
. Допустим, что работа j-го
месяца может быть выполнена меньшим числом работников. Пусть
- фактическое число работников в j-ом
месяце, где j=1,2,3,4. Затраты на изменение численности работников
при переходе от (j-1)-го месяца к j-му
определяются по формуле
и в зависимости
от знака определяют найм или увольнение работника. В начальный момент
. Отклонение от числа запланированных
работников mj приводит к дополнительным расходам
. В начальный момент
.
Построение модели
1. Задача разбивается по месяцам на 4 шага: j=1,2,3,4.
2.
За состояние системы на k-ом
шаге принимается число работников , управление на k-ом
шаге
.
3.
Устанавливается связь состояния Sk с предыдущим состоянием и с управлением .
4. По данным предприятия записывается эффективность перехода на каждом k-ом шаге
5.
Общая целевая функция имеет вид .
6. Строится граф задачи вида
![]() |
![]() |
|||||
![]() |
![]() |
![]() |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.