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

Задание6

а) Ниже приведен пример решения одного варианта транспортной задачи в пакете Mathcad.

Исходные данные: n - количество баз товаров;

m - количество магазинов;

b - вектор размерности m спрос на товар в магазине Bj;

a - вектор размерности n наличия товара на базе Ai;

c – матрица размерности n×m, каждый элемент

которой является затратами на доставку единицы

товара из базы Ai в магазин Bj;

б) Проводим расчеты решения того же варианта транспортной задачи методом потенциалов.

Т.к. , то задача открытая. Для того чтобы свести открытую задачу к закрытой, необходимо ввести один фиктивный магазин со спросом 12 единиц товара. Затраты на провоз из любой базы единицы продукции в этот магазин равны нулю (ci,j=0).

Разместим интересующие нас данные в таблице. Начальное допустимое решение найдем по правилу минимального элемента матрицы сi,j. Оно расположено снизу каждой ячейки, а в правом верхнем углу каждой ячейки поместим ci,j.

j

i

0

1

2

3

4

ai

ui

0

0

5

2

9

3

-6

10

-5

0

10

0

10

1

3

5

10

6

5

-3

9

-2

0

30

3

30

+1

2

0

7

2

3

-6

8

-5

0

20

0

10

10

3

8

10

5

11

2

3

0

32

8

12

+5

10

10

+3

4

5

7

9

8

10

-1

5

0

20

5

8

12

bj

50

10

30

10

12

112

vj

0

2

3

-6

-5

Стоимость перевозок для этого допустимого решения составляет
F = 436.

Опираясь на базовые (не равные нулю) xi,j, найдем потенциалы ui и vj. Запишем их в последний столбец и последнюю строку таблицы. Затем посчитаем во всех небазовых ячейках невязки i j = ui + vj - ci,j. В таблице внизу ячейки разместим только положительные невязки, т.к. только они нас будут интересовать. Если все они неотрицательны, то допустимое решение является оптимальным, и мы не можем больше уменьшить стоимость перевозок. Задача решена.

Если же есть положительные невязки, то находим самую большую (пусть это будет max(∆i,j) ) и из нее строим замкнутый контур, выходящий из этой ячейки и поворачивающий только в базовых ячейках. В нашем примере это будет ячейка с j=1 и i=3. По этому контуру “переместим” - единиц товара, т.е. в нечетных, начиная с первой, вершинах (ячейка, в которой поворачиваем) контура прибавляем , а в четных вершинах отнимаем - единиц товара. Понятно, что суммы по столбцам и строкам останутся прежними, значит, решение останется допустимым, но произойдет уменьшение стоимости перевозок на величину = * max(∆i,j) . В нашем случае =50=10*5.

j

i

0

1

2

3

4

ai

ui

0

3

5

0

9

3

-3

10

-2

0

10

0

10

1

3

0

10

3

5

-3

9

-2

0

30

0

30

2

3

7

0

2

3

-2

8

-2

0

20

0

20

3

8

5

8

11

2

3

0

32

5

12

10

10

+3

4

5

2

9

5

10

-1

5

0

20

2

8

12

bj

50

10

30

10

12

112

vj

3

0

3

-3

-2

После перемещения по контуру получится новое решение (см. след. таблицу), которое улучшает сумму перевозок F=436-50=386. Новое базовое решение проверяем на оптимальность, подсчитывая заново потенциалы. Повторяем все заново, пока не получим решение, которое нельзя будет улучшить. Нам потребуется еще две итерации.

j

i

0

1

2

3

4

ai

ui

0

5

9

3

10

0

10

0

10

1

3

10

5

9

0

30

0

30

2

7

2

3

8

0

20

0

20

3

8

5

11

2

0

32

3

10

10

12

4

5

9

10

5

0

20

2

20

bj

50

10

30

10

12

112

vj

3

2

3

-1

-3

Во второй итерации будем перемещать по контуру, который изображен в таблице, 12 единиц товара. Получится улучшение на F=386-3*12=350.

В итоге получится последняя таблица, в которой все невязки неположительные, т.е. оно оптимально и решение совпадает с полученным ранее в пункте а).

Соседние файлы в папке Методы оптимизации