
- •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.
- •Литература.
5. Задачи дискретного программирования.
Многие задачи исследования операций такие, как задачи распределения ресурсов, сетевого планирования и управления, календарного планирования, размещения, замены оборудования – описываются математическими моделями дискретного программирования. По структуре математической модели задачи дискретного программирования делятся на следующие классы:
Задачи с неделимостями.
Экстремальные комбинаторные задачи.
задачи на несвязных выпуклых областях.
задачи с разрывными целевыми функциями.
Рассмотрим задачу дискретного программирования в виде
|
(5. 1) |
Если множество Х является конечным или счетным, то поставленная задача является задачей дискретного программирования. Если в частном случае компоненты векторовx являются целыми числа, то перед нами задача целочисленного программирования. В задачах дискретного программирования область допустимых решений не является связной, поэтому не является выпуклой в обычном понимании. Отыскание решения таких задач сопряжено со значительными трудностями. Для решения задач дискретного и целочисленного программирования разработаны специальные методы. Эти методы делятся на 3 группы:
методы отсечения;
комбинаторные методы;
методы случайного поиска и эвристические методы.
5.1. Методы отсечения для решения задач целочисленного линейного программирования.
Рассмотрим задачу целочисленного линейного программирования
c,x max, |
|
A x = b, |
(5. 2) |
x0n, |
|
xi – целые, i=1,2,3,...,n. |
|
Методы отсечения заключаются в следующем. Решается задача без условия целочисленности, если решение получилось целочисленным, то задача решена, в противном случае строится дополнительное органичение, отсекающее это нецелочисленное решение, но оставляющее целочисленное решение исходной задачи. И процедура повторяется.
Опишем более подробно применительно к задаче (5.2). Пусть эта задача решена без условия целочисленности. Ее решение достигается на базисном решении, неограничивая общности его, можно записать x=(xB,x)T. На последнем шаге симлекс-метода из симплекс-таблицы можно выразить
xB=b–Ax |
(5.3) |
где b – столбец свободных членов симплекс-таблицы, A – матрица симплекс-таблицы, соответствующая вектору внебазисных переменных x. Если у вектора все компоненты целочисленны, то задаче решена, в противном случае строим отсечение. Выделим из системы (5.3) строку, соответствующую нецелочисленной компоненте вектораb, получим
|
(5.3) |
Отсечение Данцига.Если решение дробное, то по крайней мере одна из внебазисных переменных не равна 0, учитывая условие целочисленности, она должна быть больше или равна 1. Так как мы эта переменная не известна, то должно выполняться неравенство
.
Отсечение Гомори. Отсечение Данцига оказалось не эффективным, были построены задачи, в которых бесконечное число таких отсечений не приводило к решению. Несколько позже Гомори разработал несколько видов отсечений на другой основе. Первое отсечение Гомори имеет вид
Им доказано, что при специальном выборе строки, по которой строится отсечение, его алгоритм сходится за конечное число шагов. Отметим, что после приведения этого неравенства к каноническому виду
получаем, что переменную yможно включить в базис, но базис получаем не допустимым, так как–bj<0. Но так как в последней симплекс-таблице все оценкиdi0, то решение задачи можно продолжить двойственным симплекс-методом.
Пример.
x1 |
+ |
x2 |
|
max, |
2x1 |
+ |
x2 |
|
2 |
x1 |
+ |
2x2 |
|
2 |
xi 0 ,xi – целые, i=1,2.
Приведем задачу к каноническому виду и занесем данные в симплекс-таблицу:
Xb |
b |
X1 |
X2 |
Y1 |
Y2 |
Y1 |
2 |
2 |
1 |
1 |
0 |
Y2 |
2 |
1 |
2 |
0 |
1 |
d |
0 |
–1 |
–1 |
0 |
0 |
Решив эту задачу без условия целочисленности, получим симплекс-таблицу.
Xb |
b |
X1 |
X2 |
Y1 |
Y2 |
X1 |
0.67 |
1 |
0 |
0.67 |
–0.33 |
X2 |
0.67 |
0 |
1 |
–0.33 |
0.67 |
d |
1.33 |
0 |
0 |
0.33 |
0.33 |
Из этой таблицы получаем X1=0.67 , X2=0.67 , т.е. решение не целочисленное, строим дополнительное ограничение по первой строке (можно и по второй):–0.67Y1 – 0.67Y2 –0.67.
Приводим его к каноническому виду –0.67Y1 – 0.67Y2 + Y3 = –0.67 и приписываем к симплекс-таблице:
Xb |
b |
X1 |
X2 |
Y1 |
Y2 |
Y3 |
X1 |
0.67 |
1.0 |
0 |
0.67 |
–0.33 |
0 |
X2 |
0.67 |
0 |
1 |
–0.33 |
–0.67 |
0 |
Y3 |
–0.67 |
0 |
0 |
–0.67 |
–0.67 |
1 |
d |
1.33 |
0 |
0 |
0.33 |
–0.33 |
0 |
Решаем двойственным симплекс-методом:
Xb |
b |
X1 |
X2 |
Y1 |
Y2 |
Y3 |
X1 |
0 |
1.0 |
0 |
0 |
–1 |
1 |
X2 |
1 |
0 |
1 |
0 |
1 |
0 |
Y1 |
1 |
0 |
0 |
1 |
1 |
1 |
d |
1.33 |
0 |
0 |
0 |
0 |
0.5 |
Получим целочисленное решение X1=0, X2=1, Y1=1, Y2=0, Y3=0, Y1,Y2,Y3 –дополнительные переменные. Ответ: X1= 0, X2=1.