Общий алгоритм решения задачи

1. Начинаем с последнего шага.

На последнем, n-м шаге решение принимается только из оптимальности этого шага, т. е. локально-оптимально для любого состояния системы Общий алгоритм решения задачи - student2.ru к началу этого шага. Если решается задача на максимум целевой функции, то управление Общий алгоритм решения задачи - student2.ru нужно выбрать так, чтобы при любых состояниях Общий алгоритм решения задачи - student2.ru получить максимум целевой функции на этом шаге:

Общий алгоритм решения задачи - student2.ru (5)

Максимум показателя эффективности n-го шага, вычисленный по формуле (5), называется условным максимумом целевой функции на n-м шаге.

Максимизация проводится по всем допустимым управлениям Общий алгоритм решения задачи - student2.ru .

Соответствующее решение Общий алгоритм решения задачи - student2.ru , при котором достигается Общий алгоритм решения задачи - student2.ru , также зависит от состояния Общий алгоритм решения задачи - student2.ru . Оно называется условным оптимальным управлением на n-м шаге и обозначается Общий алгоритм решения задачи - student2.ru .

После решения одношаговой задачи имеем (для всех возможных состояний Общий алгоритм решения задачи - student2.ru ) две функции: Общий алгоритм решения задачи - student2.ru и Общий алгоритм решения задачи - student2.ru .

2. Рассмотрим двухшаговую задачу.

Добавим к n-му шагу (n-1)-й (рис.2).

Рис.2. Схема двухшаговой задачи
Zn*(sn-1)
Xn-1
sn-2
sn-1
sn
Xn*(sn-1)
fn-1(sn-2,Xn-1)

Для любых состояний Общий алгоритм решения задачи - student2.ru , произвольных управлений Общий алгоритм решения задачи - student2.ru и при оптимальном управлении на последнем шаге значение целевой функции на двух последних шагах равно сумме:

Общий алгоритм решения задачи - student2.ru (6)

Нужно найти максимум выражения (6) по всем допустимым управлениям Общий алгоритм решения задачи - student2.ru . Этот максимум зависит только от состояния к началу предпоследнего шага Общий алгоритм решения задачи - student2.ru , так как значение Общий алгоритм решения задачи - student2.ru можно найти из уравнения состояния (2) при Общий алгоритм решения задачи - student2.ru :

Общий алгоритм решения задачи - student2.ru . (7)

Максимум суммы (6) обозначается Общий алгоритм решения задачи - student2.ru и называется условным максимумом целевой функции при оптимальном управлении на двух последних шагах.

Общий алгоритм решения задачи - student2.ru (8)

Соответствующее управление называется условным оптимальным управлением на (n–1) - м шаге и обозначается Общий алгоритм решения задачи - student2.ru .

В результате максимизации получаются две функции: Общий алгоритм решения задачи - student2.ru и Общий алгоритм решения задачи - student2.ru .

3. Общий случай. Присоединение предыдущих шагов.

Рис.3. Схема на k-м шаге
fk(sk-1,Xk)+Zk+1*(sk)
Zk+1*(sk)
Xk
sk-1
sk
sn
Xk+1*(sk)…Xn*(sn-1)
fk(sk-1,Xk)

Целевая функция на Общий алгоритм решения задачи - student2.ru последних шагах (рис.3) при произвольном управлении Общий алгоритм решения задачи - student2.ru на шаге k и оптимальном управлении на последующих Общий алгоритм решения задачи - student2.ru шагах равна сумме:

Общий алгоритм решения задачи - student2.ru (9)

Управление Общий алгоритм решения задачи - student2.ru выбирается из условия максимума этой суммы. Управление, при котором достигается максимум, обозначается Общий алгоритм решения задачи - student2.ru .

Максимум суммы (9) называется условным максимумом целевой функции при оптимальном управлении на k последних шагах:

Общий алгоритм решения задачи - student2.ru (10)

Рекуррентные уравнения (10) называются уравнениями Беллмана. Процесс нахождения оптимального решения называется условной оптимизацией.

В результате условной оптимизации получаются последовательность условных максимумов целевой функции Общий алгоритм решения задачи - student2.ru и последовательность условных оптимальных управлений Общий алгоритм решения задачи - student2.ru .

Найденное значение Общий алгоритм решения задачи - student2.ru является искомым максимумом целевой функции за n шагов при условии, что к началу первого шага система была в начальном состоянии Общий алгоритм решения задачи - student2.ru :

Общий алгоритм решения задачи - student2.ru (11)

И, наконец, записываем все решение. При фиксированном состоянии Общий алгоритм решения задачи - student2.ru найдено оптимальное управление первого шага Общий алгоритм решения задачи - student2.ru . Дальше следует использовать уравнения состояния (2) и последовательность условных оптимальных управлений для получения следующей цепочки результатов:

Общий алгоритм решения задачи - student2.ru

Общий алгоритм решения задачи - student2.ru (12)

Примеры решения задач динамического программирования

Рассмотрим применение метода динамического программирования на конкретных задачах.

Выбор оптимального маршрута

Постановка задачи.

Пусть известна схема возможных маршрутов движения от пункта А до пункта Б (рис.4). Схема представляет собой ориентированный граф, вершины которого соответствуют промежуточным пунктам, ребра – возможным вариантам перемещения между соседними пунктами.

А
Б
Рис.4. Схема маршрутов

Весь маршрут от пункта А до пункта Б можно разбить на n шагов. В данной схеме n=4.Состояния системы определяются следующим образом: Общий алгоритм решения задачи - student2.ru , промежуточные состояния определяются номерами промежуточных пунктов Общий алгоритм решения задачи - student2.ru .

Показателем эффективности Общий алгоритм решения задачи - student2.ru каждого шага в зависимости от целей исследования может служить расстояние между двумя смежными пунктами i иj, стоимость проезда, затраты времени, топлива или иных ресурсов. Для определенности в данном примере в качестве показателя эффективности рассмотрим стоимость проезда Общий алгоритм решения задачи - student2.ru между двумя смежными пунктами i и j. Управление Общий алгоритм решения задачи - student2.ru в данной задаче – это выбор возможного перемещения на шаге k из пункта i в пункт j. Целевая функция Общий алгоритм решения задачи - student2.ru определяет суммарную стоимость проезда от пункта А до пункта Б. Необходимо из всех возможных маршрутов выбрать оптимальный, чтобы общая стоимость проезда была минимальной.

Применительно к данной задаче уравнения Беллмана (10) соответствуют вычислению минимальной стоимости последующего пути из пункта i до пункта Б, начиная с шага k:

Общий алгоритм решения задачи - student2.ru (13)

где Общий алгоритм решения задачи - student2.ru – минимальная стоимость проезда от пункта j до конечного пункта Б.

Решение задачи.

Начинаем поиск оптимального маршрута с последнего шага (рис.5), локально-оптимальные решения каждого шага выделим жирной линией:

k=4

Общий алгоритм решения задачи - student2.ru

Б
Рис.5. Шаг k=4

Переходим к предыдущему шагу, определяем оптимальные решения на двух последних шагах (рис.6):

Шаг k=3.

Общий алгоритм решения задачи - student2.ru

Б
Z4*(6)=10
Z4*(7)=8
Рис.6. Шаг k=3

Переходим к предыдущему шагу, определяем оптимальные решения на трех последних шагах (рис.7):

Шаг k=2.

Общий алгоритм решения задачи - student2.ru

Z3*(4)=14
Z3*(5)=11
Z3*(3)=17
Рис.7. Шаг k=2
Б

Для первого шага получаем (рис.8):

Шаг k=1.

Общий алгоритм решения задачи - student2.ru

Z2*(1)=19
Z2*(2)=16
А
Б
Рис.8. Шаг k=1

Минимальная суммарная стоимость проездаот пункта А до пункта Б равна Общий алгоритм решения задачи - student2.ru . В процессе решения получены две последовательности оптимальных решений и соответствующих состояний (пунктов), так как при k=2 существует 2 оптимальных дальнейших маршрута. На рис.8 оптимальные решения выделены непрерывными ломаными линиями от пункта А до пункта Б.

Первое оптимальное решение (маршрут А – 2 – 4 – 6 – Б):

Общий алгоритм решения задачи - student2.ru .

Второе оптимальное решение (маршрут А – 2 – 5 – 7 – Б):

Общий алгоритм решения задачи - student2.ru .

Наши рекомендации