Лекция: Принцип Беллмана для оптимальных путей.
Математический аппарат динамического программирования, основанный на методологии пошаговой оптимизации, может быть использован при нахождении кратчайших расстояний, например, на географической карте, представленной в виде сети. Решение задачи по определению кратчайших расстояний между пунктами отправления и пунктами получения продукции по существующей транспортной сети является исходным этапом при решении таких экономических задач, как оптимальное прикрепление потребителей за поставщиками, повышение производительности транспорта за счет сокращения непроизводительного пробега и др.
Пусть транспортная сеть состоит из 10 узлов, часть из которых соединены магистралями. На рисунке показана сеть дорог и стоимости перевозки единицы груза между отдельными пунктами сети, которые проставлены у соответствующих ребер. Необходимо определить маршрут доставки груза из пункта 1в пункт 10, обеспечивающий наименьшие транспортные расходы.
Рис. 52.1
В задаче имеется ограничение — двигаться по изображенным на схеме маршрутам можно только слева на право, т.е. попав, например, в пункт 7, мы имеем право переместиться только в пункт 10 и не можем возвратиться обратно в 5-й или 6-й. Эта особенность транспортной сети дает право отнести каждый из десяти пунктов к одному из поясов. Будем считать, что пункт принадлежит k-му поясу, если из него попасть в конечный пункт ровно за k шагов, т.е. с заездом ровно в (k — 1)-й промежуточный пункт. Таким образом, пункты 7, 8и 9принадлежат к первому поясу, 5 и 6 — ко второму, 2, 3 и 4 — к третьему и 1 — к четвертому. Тогда на k-м шаге будем находить оптимальные маршруты перевозки груза из пунктов k-го пояса до конечного пункта. Оптимизацию будем производить с конца процесса, и потому, дойдя до k-го шага, неизвестно, в каком из пунктов k-го пояса окажется груз, перевозимый из первого пункта.
Введем обозначения:
k — номер шага (k = 1, 2,3,4);
i — пункт, из которого осуществляются перевозки (i = 1,2,..., 9);
j — пункт, в который доставляется груз (j = 2,3,.., 10);
Сi,j — стоимость перевозки груза из пунктаi в пунктj.
Fk (i) — минимальные затраты на перевозку груза на k-м шаге решения задачи из пункта i до конечного пункта.
Очевидно, что минимум затрат на перевозку груза из пунктов k-го пояса до пункта 10 будет зависеть от того, в каком пункте этого пояса мы оказались. Номерi пункта, принадлежащего k-му поясу, будет являться переменной состояния системы на k-м шаге. Поскольку оптимизация осуществляется с конца процесса, то, находясь в некотором пункте i k-го пояса, принимается решение о перемещении груза в один из пунктов (k– 1)-го пояса, а направление дальнейшего движения известно из предыдущих шагов. Номерj пункта (k — 1)-го пояса будет переменной управления на k-м шаге.
Для первого шага управления (k — 1) функция Беллмана представляет собой минимальные затраты на перевозку груза из пунктов 1-го пояса в конечный пункт, т.е. F1(i) = Сi,10. Для последующих шагов затраты складываются из двух слагаемых — стоимости перевозки груза Сi,j из пункта i k-го пояса в пунктj (k — 1)-го пояса и минимально возможных затрат на перевозку из пункта j до конечного пункта, т.е. — Fk — 1(i). Таким образом, функциональное уравнение Беллмана будет иметь вид
(52.1)
Минимум затрат достигается на некотором значении j*, которое является оптимальным направлением движения из пункта i в конечный пункт. На четвертом шаге попадаем на4-й пояс и состояние системы становится определеннымi=1. Функция F4(1) представляет собой минимально возможные затраты по перемещению груза из 1-го пункта в 10-й. Оптимальный маршрут определяется в результате анализа всех шагов в обратном порядке, а выбор некоторого управления j на k-м шаге приводит к тому, что состояние системы на (k — 1)-м шаге становится определенным.
Пример: решим сформулированную выше задачу, исходные данные которой приведены на рисунке.
I этап. Условная оптимизация.
1-й шаг. k = 1 .
На первом шаге в пункт 10 груз может быть доставлен из пунктов 7,8 или 9.
Таблица 52.1
2-й шаг. k = 2 .
Функциональное уравнение на втором шаге принимает вид:
Все возможные перемещения груза на втором шаге и результаты расчета приведены в следующей таблице 33.2:
Таблица 52.2
3-й шаг. k = 3.
Таблица 52.3
4-й шаг. k = 4.
Таблица 52.4
II этап.Безусловная оптимизация.
Рис. 52.2
На этапе условной оптимизации получено, что минимальные затраты на перевозку груза из пункта 1 в пункт 10 составляют F4(1) = 20. Данный результат достигается при движении груза из 1-го пункта в 3-й. По данным табл. 52.3, из пункта 3 необходимо двигаться в пункт 6, затем — в пункт 7 (см. табл. 52.2) и из него — в конечный пункт (см. табл. 52.1). Таким образом, оптимальный маршрут доставки груза: 1 => 3 => 6 => 7 => 10. На рисунке он показан жирными стрелками.
Оптимальное распределение инвестиций как задача динамического программирования.
Инвестор выделяет средства в размере D условных единиц, которые должны быть распределены между n-предприятиями. Каждое k-тое предприятие при инвестировании в него средств x приносит прибыль Wk (S, xk) условных единиц, k=1...n. Нужно выбрать оптимальное распределение инвестиций между предприятиями, обеспечивающее максимальную прибыль.
Выигрышем F в данной задаче является прибыль, приносимая n-предприятиями.
Построение математической модели:
1. Определение числа шагов. Число шагов n равно числу предприятий, в которые осуществляется инвестирование.
2. Определение состояний системы. Состояние системы на каждом шаге характеризуется количеством средств Sk, имеющихся в наличии перед данным шагом, .
3. Выбор шаговых управлений. Управление на k-м шаге является количество средств, инвестируемых вk-тое предприятие.
4. Функция выигрыша на k-м шаге:
(53.1)
это прибыль, которую приносит k-тое предприятие при инвестировании в него средств .
, (53.2)
следовательно, данная задача может быть решена методом динамического программирования.
5. Определение функции перехода в новое состояние.
. (53.3)
Таким образом, если на k-м шаге система находилась в состоянии, а выбрано управление, то на (k+1)-м шаге система будет находиться в состоянии. Другими словами, если в наличии имеются средства в размере у.е., и в k-тое предприятие инвестируется у.е., то для дальнейшего инвестирования остается ( ) у.е.
6. Составление функционального уравнения для k=n:
, (53.4)
. (53.5)
На последнем шаге, т.е. перед инвестированием средств в последнее предприятие, условное оптимальное управление соответствует количеству средств, имеющихся в наличии; т.е. сколько средств осталось, столько и надо вложить в последнее предприятие. Условный оптимальный выигрыш равен доходу, приносимому последним предприятием.
7. Составление основного функционального уравнения.
Подставив в формулу (53.2) выражения (53.1) и (53.3), получим следующее функциональное уравнение:
(53.6)
Поясним данное уравнение. Пусть перед k-м шагом у инвестора остались средства в размере у.е. Тогда у.е. он может вложить в k-тое предприятие, при этом оно принесет доход, а оставшиеся ( ) у.е.—в остальные предприятия с k+1-го до n-го. Условный оптимальный выигрыш от такого вложения. Оптимальным будет то условное управление, при котором сумма и максимальна.
Пример:D=5000, n=3. Значения, заданы в таблице 34.1.
Таблица 53.1
| тыс. усл. ед. | тыс. усл. ед. | тыс. усл.ед. | тыс. усл.ед. |
| 1,5 | 1,7 | ||
| 2,1 | 2,4 | ||
| 2,5 | 2,3 | 2,7 | |
| 3,5 | 3,2 | ||
| 3,6 | 3,5 |
Для . (53.7)
Для простоты в задаче сделано предположение, что вкладываются только тысячи условных единиц.
Проведем условную оптимизацию.
По ее результатам заполняется таблица 53.2.
Таблица 53.2
| S | k=3 | k=2 | k=1 |
| 1,7 | |||
| 2,4 | 3,7 | ||
| 2,7 | 4,4 | ||
| 3,2 | 4,7 | ||
| 3,5 | 1/4 | 5,2 | 6,4 |
В первой колонке таблицы записываются возможные состояния системы S=1..5, в верхней строке — номера шагов i=1..3. На каждом шаге определяются условные оптимальные управления и уcловные оптимальные выигрыши .
· Проведение условной оптимизации для последнего шага i=3. Функциональное уравнение на последнем шаге имеет вид:
, (53.8)
поэтому два столбца таблицы 33.2, соответствующие i=3, заполняются автоматически по таблице 33.1 исходных данных.
· Условная оптимизация для i=2. Функциональное уравнение
. (53.9)
Для проведения условной оптимизации заполним ряд вспомогательных таблиц (таблицы 34.3—34.8), соответствующих различным значениям S, т.е. различным исходам окончания предыдущего шага.
1) S=1
Таблица 53.3
| 1,7 | 1,7 |
, следовательно, .
2) S=2
Таблица 53.4
| 2,4 | 2,4 |
| 1,7 | 3,7 |
| 2,1 | 2,1 |
, следовательно;
3) S=3
Таблица 53.5
| 2,7 | 2,7 | |
| 2,4 | 4,4 | |
| 2,1 | 1,7 | 3,8 |
| 2,3 | 2,3 |
, следовательно;
4) S=4
Таблица 53.6
| 3,2 | 3,2 | |
| 2,7 | 4,7 | |
| 2,1 | 2,4 | 4,5 |
| 2,3 | 1,7 | |
| 3,5 | 3,5 |
, следовательно; .
5) S=5
Таблица 53.7
| 3,5 | 3,5 | |
| 3,2 | 5,2 | |
| 2,1 | 2,7 | 4,8 |
| 2,3 | 2,4 | 4,7 |
| 3,5 | 1,7 | 5,2 |
Для S=5 возможны два условных варианта управления: и .
· Условная оптимизация для i=1.
Перед первым шагом состояние системы известно.
S=D=5 тыс. у.е., и условную оптимизацию следует проводить только для этого значения S=5
Таблица 53.8
| 5,2 | 5,2 | |
| 1,5 | 4,7 | 6,2 |
| 4,4 | 6,4 | |
| 2,5 | 3,7 | 6,2 |
| 3,6 | 3,6 |
, следовательно,, .
Оптимальная прибыль, приносимая тремя предприятиями при инвестировании в них 5000 у.е., равна 6,4 тыс. у.е.
.
Проведем безусловную оптимизацию.
Ее результаты отмечены в таблице 34.2.
Для i=1; .
Для i=2 по формуле (34.3) .
; .
Дляi=3 .
; .
.
Следует пронимать, что полученное решение есть лишь некоторое приближение к оптимальному решению. Его можно улучшить, т.е. приблизить к оптимальному, взяв более мелкий шаг оптимизации, например, вкладывать в предприятия средства, кратные 500 у.е.