- •Введение
- •Раздел I. Математические методы в исследовании операций.
- •1. Основные понятия.
- •2. Классификация моделей.
- •3. Выбор решения в условиях неопределенности.
- •4. Многокритериальные задачи.
- •Раздел II. Линейное программирование.
- •1. Математические модели задач линейного программирования.
- •Задача о пищевом рационе.
- •Задача производственного планирования.
- •Задачи раскроя.
- •2.Основная задача линейного программирования (озлп)
- •Найти неотрицательные значения переменных x1 , x2 , …, xn , которые удовлетворяли бы условиям-равенствам
- •3. Геометрическая интерпретация озлп.
- •4. Симплекс-метод.
- •4. Двойственные задачи линейного программирования.
- •5. Транспортная задача.
- •Раздел III. Графовые модели.
- •1.Элементы теории графов.
- •2. Задача о кратчайшем пути.
- •3. Кратчайший путь в ориентированном графе.
- •4. Построение графа наименьшей длины.
- •5. Транспортная задача в сетевой постановке.
- •6. Метод ветвей и границ.
- •7. Максимальный поток на сети.
- •Раздел IV. Динамическое программирование.
- •Раздел V. Имитационное моделирование
- •Теория игр.
- •Антагонистические матричные игры.
- •Задачи, приводимые к матричным играм.
- •Преобразование матричных игр.
- •Методы решения матричных игр.
- •Игры с природой.
- •Раздел VI. Теория массового обслуживания.
- •Задачи теории массового обслуживания.
- •Формула Литтла.
- •Простейшие системы массового обслуживания.
- •Решение задач
4. Двойственные задачи линейного программирования.
ПРЯМАЯ |
ДВОЙСТВЕННАЯ |
Система ограничений: Ах=B xi ≥0 Целевая функция: L=Cx → max |
Система ограничений: ATu=CT ui ≥0 Целевая функция: L=BTu → min |
5. Транспортная задача.
Существуют частные типы задач линейного программирования, которые в силу особой своей структуры, допускают решение более простыми методами. Например, транспортная задача. Она ставится следующим образом: имеются n пунктов отправления (ПО) A1, A2,… An-1, An, в которых сосредоточены запасы каких-то однородных грузов в количестве a1, a2,… an-1, an единиц. Имеются m пунктов назначения (ПН) B1, B2,… Bn-1, Bn, подавших заявки соответственно на b1, b2,… bn-1, bn единиц груза. Сумма всех заявок равна сумме всех запасов.
Известны стоимости перевозки единицы груза от каждого пункта отправления до каждого пункта назначения. Представим их в виде прямоугольной матрицы:
Считается, что стоимость перевозки нескольких единиц груза пропорциональна их числу.
Требуется составить такой план перевозок (откуда, куда и сколько единиц везти), чтобы все заявки были выполнены, а общая стоимость всех перевозок минимальна.
Обозначим xij -количество единиц груза, отправляемого из Ai в Bj Совокупность (xij ) будем называть «планом перевозок» или решением, а сами величины «перевозками».
Составим ОЗЛП.
1. Суммарное количество груза, направляемого из каждого ПО во все ПН, должно быть равно запасу груза в данном пункте:
2. Суммарное количество груза, доставляемого в каждый ПН из всех ПО, должно быть равно заявке, поданной данным пунктом:
Суммарная стоимость всех перевозок должна быть минимальной:
То, что все коэффициенты в условиях-равенствах равны 1, позволяет решать задачу очень простыми способами.
Число линейно-независимых уравнений = m+n-1, общее число переменных = mn, число базисных переменных = m+n-1, а число свободных k=mn-(m+n-1)=(m-1)(n-1)
Так как оптимальное решение достигается в одной из вершин ОДР, то по крайней мере k перевозок должны быть равны нулю. Допустимый план будем называть опорным, если в нем отличны от нуля не более m+n-1 базисных перевозок.
Представим транспортную задачу в виде некоторой таблицы, называемой транспортной.
|
B1 |
B2 |
… |
Bn |
|
A1 |
c11 |
c12 |
… |
c1n |
a1 |
A2 |
c21 |
c22 |
… |
c2n |
a2 |
… |
… |
… |
… |
… |
… |
Am |
cm1 |
cm2 |
… |
cmn |
am |
|
b1 |
b2 |
… |
bn |
|
МЕТОД СЕВЕРО-ЗАПАДНОГО УГЛА
Построение начального плана согласно этому методу начинается с верхнего угла транспортной таблицы. Распределение груза первого поставщика происходит таким образом, что сначала максимально удовлетворяются заявки первого потребителя, затем второго и т.д. до полного распределения груза, имеющегося в A1 Затем подобным же образом распределяется груз второго поставщика и т.д.
ПРИМЕР 2.6.
|
B1 |
B2 |
B3 |
B4 |
ai |
остаток |
A1 |
1 3 |
3 5 |
7 2 |
1 |
10 |
7 2 0 |
A2 |
2 |
4 |
2 8 |
3 7 |
15 |
7 0 |
A3 |
6 |
5 |
4 |
1 7 |
7 |
0 |
bj |
3 |
5 |
10 |
14 |
32 |
|
|
0 |
0 |
8 0 |
7 0 |
|
|
Действуя описанным способом, мы получаем ступенчатую фигуру. В процессе решения получили 6 базисных клеток. Так как m+n-1= 3+4-1=6, то план невырожденный. Его можно принять за опорный.
Так как на стоимость перевозок в этом методе не обращается внимание, то полученный опорный план, вероятно, далек от оптимального.
МЕТОД МИНИМАЛЬНОГО ЭЛЕМЕНТА.
Распределение груза в этом методе начинается с одной из вершин минимальной стоимости. Также при каждом распределении необходимо максимально удовлетворить заявки выбранного потребителя. Очередное распределение выбирается из условия минимальной стоимости перевозок.
ПРИМЕР 2.7.
|
B1 |
B2 |
B3 |
B4 |
ai |
остаток |
A1 |
1
|
3
|
7
|
1 10 |
10 |
0 |
A2 |
2 3 |
4 5 |
2 7 |
3
|
15 |
8 5 0 |
A3 |
6 |
5 |
4 3 |
1 4 |
7 |
3 0 |
bj |
3 |
5 |
10 |
14 |
32 |
|
остаток |
0 |
0 |
7 0 |
4 0 |
|
|
Чтобы улучшить решение, следует перейти к другому плану. Самый простой способ – метод Жордана-Гаусса. Он заключается в целенаправленном переборе планов. Какую клетку выбрать, чтобы переход к новому решению привел к уменьшению значения целевой функции?
Рассмотрим произвольную свободную клетку. Однозначным образом можно выбрать замкнутую цепочку, называемую циклом, состоящую из вертикальных и горизонтальных звеньев, одной из вершин которой является выбранная свободная клетка, а остальными вершинами – занятые клетки. Начиная со свободной клетки (она – первая), пометим все нечетные вершины знаком «+», а четные - знаком «-». Переброской перевозок по циклу назовем увеличение перевозок в положительных вершинах и уменьшение в отрицательных. Перебросить по циклу можно не более чем минимум в отрицательных вершинах цикла.
ПРИМЕР 2.6.
Выберем в рассмотренном выше примере свободную клетку (3,2). Определим замкнутый цикл, последовательно расставляя знаки «+» и «-».
|
B1 |
B2 |
B3 |
B4 |
ai |
A1 |
1 3 |
3 - 5 |
7 + 2 |
1 |
10 |
A2 |
2 |
4 |
2 - 8 |
3 + 7 |
15 |
A3 |
6 |
5 + |
4 |
1 - 7 |
7 |
bj |
3 |
5 |
10 |
14 |
32 |
Минимумом в отрицательных вершинах является число 5. Его и занесем в клетку (3,2). Далее пройдем по всему циклу, меняя значения перевозок. Получим новый базисный план:
|
B1 |
B2 |
B3 |
B4 |
ai |
A1 |
1 3 |
3
|
7 7 |
1 |
10 |
A2 |
2 |
4 |
2 3 |
3 12 |
15 |
A3 |
6 |
5 5 |
4 |
1 2 |
7 |
bj |
3 |
5 |
10 |
14 |
32 |
Ценой цикла будем считать разность между суммой стоимостей перевозок в положительных вершинах цикла и суммой перевозок в отрицательных вершинах. Если цена цикла < 0, то выгодно перебросить перевозки по этому циклу. Суммарные перевозки при этом не изменятся. Цена цикла говорит, на сколько изменится суммарная стоимость перевозок при переброске по циклу 1 единицы груза. Например, в рассмотренном примере цена цикла d32=7+3+5-(1+2+3)=9>0. Следовательно, переброска 1 единицы груза по этому циклу приводит к увеличению суммарной стоимости перевозок на 9. В примере по циклу было переброшено 5 единиц, следовательно, затраты на перевозки увеличились на 45.
МЕТОД ЖОРДАНА-ГАУССА.
Метод заключается в переборе дешевых клеток и просчете цены их цикла. Если цена отрицательна, то следует перебросить по этому циклу столько единиц груза, сколько возможно (минимум в отрицательных вершинах). Если существует несколько свободных клеток с отрицательной ценой цикла, то лучше выбрать ту, для которой она максимальна по модулю. Когда не останется ни одной свободной клетки с отрицательной ценой цикла, тогда найденный план является оптимальным.
|
B1 |
B2 |
B3 |
B4 |
A1 |
1 3 |
3 5 |
- 7 2 |
+ 1 |
A2 |
2 |
4 |
2 8 + |
3 7 - |
A3 |
6 |
5
|
4 |
1 7 |
d21=2-1+7-2=6>0
d31=6-1+7-2+3-1=12>0
d22=4-3+7-2=4>0
d32=9>0
d33=4-2+3-1=4>0
d14=1-3+2-7=- 4<0
Следовательно, выгодным является только цикл клетки (1,4). По нему можно перебросить min(2,7) =2 единицы груза. Получим следующий план.
|
B1 |
B2 |
B3 |
B4 |
A1 |
1 3 - |
3 5 |
7
|
1 2 + |
A2 |
+ 2
|
4 |
2 10 |
3 5 - |
A3 |
6 |
5
|
4 |
1 7 |
d21=2-1+1-3=-1<0
d22=4-3+1-3=-1<0
Для всех остальных циклов цена >0
Выберем клетку (2,1)
min(3,5) =3
|
B1 |
B2 |
B3 |
B4 |
A1 |
1
|
3 5 |
7
|
1 5 |
A2 |
2 3 |
4 |
2 10 |
3 2 |
A3 |
6 |
5
|
4 |
1 7 |
d22=4-3+1-3=-1<0
Для всех остальных циклов цена >0
min(2,5) =2
|
B1 |
B2 |
B3 |
B4 |
A1 |
1
|
3 3 |
7
|
1 7 |
A2 |
2 3 |
4 2 |
2 10 |
3
|
A3 |
6 |
5
|
4 |
1 7 |
Для всех циклов цена >0, следовательно план оптимальный
Ответ: x12=3; x14=7; x21=3; x23=10; x22=2; x34=7; L=3∙3+7∙1+3∙2+10∙2+2∙4+7∙1=57
МЕТОД ПОТЕНЦИАЛОВ.
Обозначим переменные задачи, двойственной к транспортной через -ui и vj Их называют потенциалами пунктов отправления и пунктов назначения соответственно.
Двойственная задача заключается в нахождении потенциалов ui и vj, удовлетворяющих ограничениям vj - ui ≤ с ij и максимизирующих функцию цели
КРИТЕРИЙ ОПТИМАЛЬНОСТИ. Для того чтобы план перевозок в транспортной задаче был оптимален, необходимо и достаточно, чтобы нашлись потенциалы ui (пункта отправления) и vj (пункта назначения) такие, что:
vj - ui = с ij , если хij>0
vj - ui ≤ с ij , если хij=0
ЭКОНОМИЧЕСКИЙ СМЫСЛ: vj можно рассматривать как цену груза в ПН, ui – цену груза в ПО. Тогда оптимальным будет план, в котором перевозки осуществляются по путям, где разность цен равна цене перевозки единицы груза.
Алгоритм.
Выберем любой базисный план.
Составим систему уравнений vj - ui = с ij для базисных переменных
Так как система содержит m+n-1 уравнение и m+n неизвестных, то одну из них можно задать произвольно (например, =0). После этого определим остальные потенциалы.
Для каждой из свободных клеток вычислим величины aij=vj-ui
Если все aij≤ сij то план оптимален. Задача решена.
В противном случае рассмотрим все клетки, для которых aij> сij. Выберем свободную клетку, для которой реализуется max(aij-cij), введем ее в базис, образуем цикл и построим новое базисное решение. Переходим к п.2
ПРИМЕР 2.7.
|
B1 |
B2 |
B3 |
B4 |
A1 |
1 3 |
3 5 |
7 2 |
1 |
A2 |
2 |
4 |
2 8 |
3 7 |
A3 |
6 |
5 |
4 |
1 7 |
Составим разность потенциалов для базисных клеток:
v1-u1=1
v2-u1=3
v3-u1=7
v3-u2=2
v4-u2=3
v4-u3=1
Положим u1=0 и найдем остальные потенциалы
|
B1 |
B2 |
B3 |
B4 |
ui |
A1 |
1 3 |
3 5 |
7 2 |
8) 1 |
0 |
A2 |
-4) 2 |
-2) 4 |
2 8 |
3 7 |
5 |
A3 |
-6) 6 |
-4) 5
|
0 4 |
1 7 |
7 |
vj |
1 |
3 |
7 |
8 |
|
a14> с14, следовательно построим цикл для клетки (1,4) и перебросим по нему максимально возможные перевозки.
|
B1 |
B2 |
B3 |
B4 |
ui |
A1 |
1 3 - |
3 5 |
0) 7
|
1 2 + |
0 |
A2 |
3) + 2
|
5) 4 |
2 10 |
3 5 - |
-2 |
A3 |
1) 6 |
3) 5
|
0) 4 |
1 7 |
0 |
vj |
1 |
3 |
0 |
1 |
|
a21> с21
a22> с22
Выберем клетку (2,1)
min(3,5) =3
|
B1 |
B2 |
B3 |
B4 |
ui |
A1 |
0) 1
|
3 5 |
0) 7
|
1 5 |
0 |
A2 |
2 3 |
5) 4 |
2 10 |
3 2 |
-2 |
A3 |
0) 6 |
3) 5
|
0) 4 |
1 7 |
0 |
vj |
0 |
3 |
0 |
1 |
|
a22> с22
min(2,5) =2
|
B1 |
B2 |
B3 |
B4 |
ui |
A1 |
1) 1
|
3 3 |
1) 7
|
1 7 |
0 |
A2 |
2 3 |
4 2 |
2 10 |
2) 3
|
-1 |
A3 |
1) 6 |
3) 5
|
1) 4 |
1 7 |
0 |
vj |
1 |
3 |
1 |
1 |
|
Для всех клеток aij≤ сij , следовательно план оптимальный
Ответ: x12=3; x14=7; x21=3; x23=10; x22=2; x34=7; L=3∙3+7∙1+3∙2+10∙2+2∙4+7∙1=57
ПРИМЕЧАНИЕ. Если условие равенства запасов груза в ПО и суммарной потребности в грузе ПН нарушено, то
если всех заявок удовлетворить нельзя, то вводится фиктивный ПО Аm+1, стоимости перевозок из которого равны 0;
если существует избыток груза, то вводится фиктивный ПН Bn+1, стоимости перевозок в который равны 0.