- •1. Введение 4
- •1.1. Основные методологические принципы
- •1.2. Основные определения
- •1.3. Этапы моделирования
- •5. Модели с обратной связью, динамическое проектирование.
- •2. О принципах принятия решений
- •2.1. Принятие решений в условиях неопределенности критерия.
- •Самостоятельная работа №1.
- •2.2. Принятие решения в условиях неопределенности состояния окружающей среды
- •Самостоятельная работа №2
- •3. Задачи выпуклого векторного программирования1.
- •3.1. Некоторые сведения выпуклого анализа
- •3.2. Понятие оптимальности по Слейтеру и Парето
- •3.3. Возможные (допустимые) и подходящие направления.
- •3.4. Задача выпуклого векторного программирования с ограничениями типа неравенства. Поиск подходящих направлений.
- •Самостоятельная работа №3.
- •3.4. Теорема Куна–Таккера для задачи выпуклого векторного программирования
- •Самостоятельная работа № 4.
- •4. Некоторые задачи теория игр
- •4.1. Анализ матричных антагонистических игр двух игроков .
- •Самостоятельная работа № 5.
- •4.2. Анализ матричных игр двух игроков с нулевой суммой в смешанных стратегиях.
- •Самостоятельная работа №6
- •4.3. Биматричные неантагонистические игры.
- •Самостоятельная работа № 7.
- •4.4. Взаимосвязь равновесий по Нешу и Парето в играх.
- •Самостоятельная работа № 8.
- •4.5. Динамические игры с полной информацией
- •Самостоятельная работа № 9
- •5. Задачи дискретного программирования.
- •5.1. Методы отсечения для решения задач целочисленного линейного программирования.
- •Самостоятельная работа № 10.
- •5.2. Комбинаторные методы решения задач целочисленного линейного программирования.
- •5.3. Алгоритм Ленд–Дойг.
- •Самостоятельная работа № 11.
- •5.4. Метод ветвей и границ для решения задачи о коммивояжере.
- •Самостоятельная работа № 12.
- •6.Транспортные задачи линейного программирования
- •6.1. Транспортная задача в сетевой постановке
- •Самостоятельная работа 13.
- •6.2. Транспортная задача в матричной постановке.
- •Самостоятельная работа 14.
- •7. Динамическое программирование и потоки в сетях
- •7.1. Задача оптимизации многошаговых процессов, задача о ранце.
- •Самостоятельная работа 15.
- •7.2 .Задача отыскания кратчайшего расстояния в сети между парами вершин
- •Самостоятельная работа 16.
- •7.2. Задача о максимальном потоке в сети.
- •Самостоятельная работа 17.
- •Литература.
Самостоятельная работа № 11.
Решить задачу 4.2 методом Ленд и Дойг, исходные данные по вариантам взять в лабораторной работе № 10.
5.4. Метод ветвей и границ для решения задачи о коммивояжере.
Пусть имеется (n+1) городовA0, A1, A2, A3,..., An. Между всеми парами городов известно расстояниеci,j0.Коммивояжер, который находится в городеA0, должен обойти все города, побывав в каждом ровно один раз и вернуться в городA0так, чтобы длина пройденного пути была наименьшей. Путь коммивояжераi0,i1,i2,...,in,i0образует замкнутый маршрут. Его длина
l(i0,i1,i2,...,in,i0)=
Так как это задача на перестановках, то число таких маршрутов равно n!. Для поиска минимального (оптимального) маршрута применим метод ветвей и границ. Общая схема этого метода приведена в разделе «Комбинаторные методы решения задач целочисленного линейного программирования». Дадим описание этого метода для задачи о коммивояжере.
Алгоритм.
Шаг 1. Задание множества X0,1 и вычисление оценки 0,1.
Множество X0,1есть множество всех возможных маршрутов коммивояжера. Оценку0,1получаем, используя процедуруприведения матрицыC0,1=C=(ci,j), i=1,2,3,…, n, j=1,2,3,…, n, следующим образом.
Для всех i=1,2,3,…, n, hi:= min{ci,j | j=1,2,3,…, n},
c'i,j := ci,j – hi, i=1,2,3,…, n, j=1,2,3,…, n.
Для всех j=1,2,3,…, n, Hj:= min{c'i,j | i=1,2,3,…, n },
c" i,j:= c' i,j – Hj, i=1,2,3,…, n, j=1,2,3,…, n.
Переменные hi, Hjназывают коэффициентами приведения. МатрицуC"0,1= (c"i,j),i=1,2,3,…, n, j=1,2,3,…, n, называют приведенной матрицей.
Полагаем
Шаг 2 .Разбиение множества Xr,t на подмножества.
Пусть построено подмножество Xr,tи нижняя оценка функционалаr,tна нем. Этому подмножеству соответствует приведенная матрицаC"r,t. Подмножество разбиваем на два:Xr+1,m+1, Xr+1,m+2, каждому из которых будут соответствовать свои оценкиr+1,m+1, r+1,m+2и приведенные матрицыС"r+1,m+1, С"r+1,m+2. ПодмножествоXr+1,m+1 получается изXr,tдобавлением условия: из пунктаpнепосредственно идти в пунктq. ПодмножествоXr+1,m+2получается добавлением условия: из пунктаpнепосредственно в пунктq идти запрещается. Пару (p,q) выбирают таким образом, чтобы с наибольшей вероятностью подмножествоXr+1,m+1 содержало оптимальный цикл, аXr+1,m+2не содержало его. Для этого пару (p,q) выбирают таким образом, чтобыcp,q=0, при этом, чтобы величина min{cp,j| jq}+min{ci,q| ip} была максимальной, гдеcp,j, ci,qберутся из матрицыC"r,t
Шаг 3 . Преобразование матриц расстояний, пересчет оценок.
Матрицу C"r+1,m+2 строим следующим образом. Полагаем Cr+1,m+2=Cr,t, в нейсp,q:=M, гдеM – достаточно большое число, принимаемое за бесконечность. МатрицаC"r+1,m+2получается изCr+1,m+2процедурой приведения. Для полученияr+1,m+2 складываемr,tс полученными коэффициентами приведения. МатрицуC"r+1,m+1строим следующим образом. ПолагаемCr+1,m+1=Cr,t, и в ней вычеркиваем строкуpи столбецq. Налагаем условие, иключающее образование малых циклов. Для этого восстанавливаем части маршрута, образованные непосредственными переходами вXr+1,m+1. Если добавление любой пары (i,j) к этим маршрутам образует малый цикл, то в матрицеCr+1,m+1 ci,j:=–M. МатрицаC"r+1,m+1получается изCr+1,m+1процедурой приведения. Для полученияr+1,m+2складываемr,tс полученными коэффициентами приведения.
Пример.
Рассмотрим задачу, в которой матрица расстояний имеет вид:
C0,1 |
j |
| ||||||
0 |
1 |
2 |
3 |
4 |
5 |
hi | ||
i |
0 |
M |
4 |
10 |
13 |
4 |
8 |
4 |
1 |
2 |
M |
9 |
7 |
6 |
7 |
2 | |
2 |
8 |
5 |
M |
5 |
5 |
9 |
5 | |
3 |
5 |
8 |
5 |
M |
7 |
10 |
5 | |
4 |
6 |
4 |
4 |
9 |
M |
4 |
4 | |
5 |
5 |
1 |
4 |
8 |
3 |
M |
1 | |
|
0 |
0 |
0 |
0 |
0 |
0 |
| |
|
|
Hj |
|
Требуется решить поставленную задачу методом ветвей и границ.
Решение.
Шаг 0. Приводим матрицуC0,1.Находимhiи вычитаем изci,j. Получим матрицу
C'0,1 |
j |
| ||||||
0 |
1 |
2 |
3 |
4 |
5 |
hi | ||
i |
0 |
M |
0 |
6 |
9 |
0 |
4 |
4 |
1 |
0 |
M |
7 |
5 |
4 |
5 |
2 | |
2 |
3 |
0 |
M |
0 |
0 |
4 |
5 | |
3 |
0 |
3 |
0 |
M |
2 |
5 |
5 | |
4 |
2 |
0 |
0 |
5 |
M |
0 |
4 | |
5 |
4 |
0 |
3 |
7 |
2 |
M |
1 | |
|
0 |
0 |
0 |
0 |
0 |
0 |
| |
|
|
Hj |
|
Величины Hjзаписаны в последней строке этой таблицы, вычитаем их изc'i,j, получим следующую таблицу
C"0,1 |
j |
| ||||||
0 |
1 |
2 |
3 |
4 |
5 |
hi | ||
i |
0 |
M |
0 |
6 |
9 |
0 |
4 |
|
1 |
0 |
M |
7 |
5 |
4 |
5 |
| |
2 |
3 |
0 |
M |
0 |
0 |
4 |
| |
3 |
0 |
3 |
0 |
M |
2 |
5 |
| |
4 |
2 |
0 |
0 |
5 |
M |
0 |
| |
5 |
4 |
0 |
3 |
7 |
2 |
M |
| |
|
|
|
|
|
|
|
0,1=21 | |
|
|
Hj |
Строим дерево разбиения
Шаг 1.
Разбиваем множество X0,1на подмножестваX1,1,X1,2.В качестве пары (p,q) берем (2,3).Для нееc"2,3=0 и (min{c2,j)|j3} + min{ci,3| i2}) максимально. Для подмножестваX1,1из пункта 2 идти в пункт 3.Матрица расстояний будет иметь вид:
C11 |
j |
| |||||
0 |
1 |
2 |
4 |
5 |
hi | ||
i |
0 |
M |
0 |
6 |
0 |
4 |
|
1 |
0 |
M |
7 |
4 |
5 |
| |
3 |
0 |
3 |
0 |
2 |
5 |
| |
4 |
2 |
0 |
0 |
M |
0 |
| |
5 |
4 |
0 |
3 |
2 |
M |
| |
|
|
|
|
|
|
|
|
|
|
Hj |
|
Для запрета малых циклов запрещаем переход из пункта 3 в пункт 2, получаем
C11 |
j |
| |||||
0 |
1 |
2 |
4 |
5 |
hi | ||
i |
0 |
M |
0 |
6 |
0 |
4 |
|
1 |
0 |
M |
7 |
4 |
5 |
| |
3 |
0 |
3 |
M |
2 |
5 |
| |
4 |
2 |
0 |
0 |
M |
0 |
| |
5 |
4 |
0 |
3 |
2 |
M |
| |
|
|
|
|
|
|
|
|
|
|
Hj |
|
Все коэффициенты приведения равны 0, поэтому С"1,1=С1,1, 1,1= 0,1=21.
Подмножество X1,2получаем их подмножестваX1,1запретом перехода из пункта 2 непосредственно в пункт 3. Матрица расстояний будет иметь вид
C1,2 |
j |
| ||||||
0 |
1 |
2 |
3 |
4 |
5 |
hi | ||
i |
0 |
M |
0 |
6 |
9 |
0 |
4 |
0 |
1 |
0 |
M |
7 |
5 |
4 |
5 |
0 | |
2 |
3 |
0 |
M |
M |
0 |
4 |
0 | |
3 |
0 |
3 |
0 |
M |
2 |
5 |
0 | |
4 |
2 |
0 |
0 |
5 |
M |
0 |
0 | |
5 |
4 |
0 |
3 |
7 |
2 |
M |
0 | |
|
0 |
0 |
0 |
5 |
0 |
0 |
| |
|
|
Hj |
|
После приведения получим матрицу C1,2.
C1,2 |
j |
| ||||||
0 |
1 |
2 |
3 |
4 |
5 |
hi | ||
i |
0 |
M |
0 |
6 |
4 |
0 |
4 |
|
1 |
0 |
M |
7 |
0 |
4 |
5 |
| |
2 |
3 |
2 |
M |
M |
0 |
4 |
| |
3 |
0 |
3 |
0 |
M |
2 |
5 |
| |
4 |
2 |
0 |
0 |
0 |
M |
0 |
| |
5 |
4 |
0 |
3 |
2 |
2 |
M |
| |
|
|
|
|
|
|
|
| |
|
|
Hj |
1,2=26 |
При этом оценка получит значение: 1,2=21+5=26.
Достраиваем дерево разбиения
Шаг 2. Минимальная оценка 1,1, поэтому разбиваем подмножествоX1,1. В качестве пары (p,q), относительно которой проводим ветвление, используем пару (4,5).Для подмножестваX2,1
C21 |
j |
| ||||
0 |
1 |
2 |
4 |
hi | ||
i |
0 |
M |
0 |
6 |
0 |
|
1 |
0 |
M |
7 |
4 |
| |
3 |
0 |
3 |
M |
2 |
| |
5 |
4 |
0 |
3 |
M |
| |
|
|
|
|
3 |
|
|
|
|
Hj |
2,1=24 |
В этой матрице с целью запрета малых циклов запрещен перeход из 5 в 4. H2=3, поэтому2,1=21+3=24.Приведенная матрица будет иметь вид
|
j |
| ||||
C"2,1 |
0 |
1 |
2 |
4 |
hi | |
i |
0 |
M |
0 |
3 |
0 |
|
1 |
0 |
M |
4 |
4 |
| |
3 |
0 |
3 |
M |
2 |
| |
5 |
4 |
0 |
0 |
M |
| |
|
|
|
|
|
|
|
|
|
Hj |
|
Для подмножества X2,2
|
|
j |
| ||||
C22 |
0 |
1 |
2 |
4 |
5 |
hi | |
i |
0 |
M |
0 |
6 |
0 |
4 |
|
1 |
0 |
M |
7 |
4 |
5 |
| |
3 |
0 |
3 |
M |
2 |
5 |
| |
4 |
2 |
0 |
0 |
M |
M |
| |
5 |
4 |
0 |
3 |
2 |
M |
| |
|
|
|
|
|
|
4 |
|
|
|
Hj |
|
После приведения получим
|
|
j |
| ||||
C22 |
0 |
1 |
2 |
4 |
5 |
hi | |
i |
0 |
M |
0 |
6 |
0 |
0 |
|
1 |
0 |
M |
7 |
4 |
1 |
| |
3 |
0 |
3 |
M |
2 |
1 |
| |
4 |
2 |
0 |
0 |
M |
M |
| |
5 |
4 |
0 |
3 |
2 |
M |
| |
|
|
|
|
|
|
|
|
|
|
Hj |
2,2=25 |
Оценка принимает вид: 2,2=21+4=25. Достраиваем дерево разбиения
На последующих шагах получим
3,4=28
X3,4
3,3=25
X3,3
Для подмножества X5,1 будем иметь:
C51 |
4 |
5 |
hi | |
i |
0 |
0 |
М |
|
3 |
M |
0 |
| |
|
|
|
|
|
|
|
Hj |
5,1=26 |
т.е. остаются переходы из 0 в 4, из 3 в 5. Эти переходы и переходы, выбранные при движении по дереву от вершины для подмножества X5,1до вершины подмножестваX0,1, получаем цикл 0423510 , длина которогоl=26.Так как всеr,tдля концевых вершин дерева не меньше 26, то этот цикл оптимальный.
Если требуется найти все оптимальные решения, то работу алгоритма необходимо продолжить, т.к. на подмножестве X3,1оценка3,1=26 и на этом подмножестве могут быть оптимальные решения.