Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ММ.doc
Скачиваний:
12
Добавлен:
08.05.2019
Размер:
1.43 Mб
Скачать

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. Суммарная стоимость всех перевозок должна быть минимальной:

То, что все коэффициенты в условиях-равенствах равны 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 – цену груза в ПО. Тогда оптимальным будет план, в котором перевозки осуществляются по путям, где разность цен равна цене перевозки единицы груза.

Алгоритм.

  1. Выберем любой базисный план.

  2. Составим систему уравнений vj - ui = с ij для базисных переменных

  3. Так как система содержит m+n-1 уравнение и m+n неизвестных, то одну из них можно задать произвольно (например, =0). После этого определим остальные потенциалы.

  4. Для каждой из свободных клеток вычислим величины aij=vj-ui

  5. Если все aij≤ сij то план оптимален. Задача решена.

  6. В противном случае рассмотрим все клетки, для которых 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

ПРИМЕЧАНИЕ. Если условие равенства запасов груза в ПО и суммарной потребности в грузе ПН нарушено, то

    1. если всех заявок удовлетворить нельзя, то вводится фиктивный ПО Аm+1, стоимости перевозок из которого равны 0;

    2. если существует избыток груза, то вводится фиктивный ПН Bn+1, стоимости перевозок в который равны 0.