Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 2012.doc
Скачиваний:
26
Добавлен:
21.02.2016
Размер:
722.43 Кб
Скачать

Лекція № 3. Задача коммивояжера

На контейнерную площадку под выгрузку прибыли вагон (вагоны) с контейнерами. Каждый контейнер (2, 3, 4, 5) должен быть выгружен в соответствующую секцию (6, 7, 8, 9).

Продолжительности пробегов крана приведены в табл. 1. Найти оптимальную очередность выгрузки, обеспечивающую минимальную продолжительность грузовых операций, если в начальный момент кран находится в состоянии 1.

от \ до

2

3

4

5

6

7

8

9

1

0,5

0

0,5

1

-

-

-

-

2

-

-

-

-

5

-

-

-

3

-

-

-

-

-

6

-

-

4

-

-

-

-

-

-

2,3

-

5

-

-

-

-

-

-

-

2,5

6

-

5,2

6

6,5

-

-

-

-

7

6,6

-

5

4

-

-

-

-

8

2,5

2

-

3,5

-

-

-

-

9

6,5

5,9

5,6

-

-

-

-

-

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

До

От

1

6

(26)

7

(37)

8

(48)

9

(59)

1

-

5,5

6

2,8

3,5

6

0

-

11,2

8,3

9

7

0

11,6

-

7,3

6,5

8

0

7,5

8

-

6,0

9

0

11,5

11,9

7,9

-

Задача коммивояжера решается методом ветвей и границ. При этом перед очередной итерацией определяется верхняя граница решения В - т.е. лучшее решение которое мы знаем на данный момент. Выполняется направленный перебор вариантов на каждом шаге которого определяется нижняя граница решения Н - т.е. наименьшее возможное значение показателя при принятом на данном шаге порядке обхода вершин. Если на каком-то шаге нижняя граница превысит верхнюю, то от дальнейший перебор вариантов в данном прекращается и выполняется анализ альтернативных решений. Если получено допустимое решение, то изменяется верхняя граница и выполняется анализ альтернативных решений.

  1. Составить произвольный план, например (1,6) (6,7) (7,8) (8,9) (9,1). Продолжительность возвратов крана а контейнерами составит 5,5+11,2+7,3+6,0+0=30. Полученный результат представляет собой верхнюю границу В=30.

2) Выполнить редукцию строк и столбцов матрицы. Для этого в каждой строке определяем минимальный элемент и вычитаем его со всех элементов строки. После этого та же операция повторяется со столбцами. (В данной таблице редукцию строк не выполняем т.к. каждая из них содержит ) 0.

1

6

7

8

9

Ci

Ai

1

-

0

0

0

0

0

0

6

0

-

5,2

5,5

5,5

0

5,2

7

0

6,1

-

4,5

3

0

3,0

8

0

2

2

-

2,5

0

2,0

9

0

6

5,9

5,1

-

0

5,1

Qj

0

5,5

6

2,8

3,5

17,8

Bj

0

2,0

2,0

4,5

2,0

3) Добавить в маршрут одно ребро. Вероятнее всего в граф будет входить ребро, исключение которого максимально увеличит продолжительность выгрузки. Для определения этого ребра необходимо рассчитать штрафы Ai, Bj: в каждом строке найти нулевой элемент и определить ему альтернативу (т.е. минимальный элемент за исключением данного); эта же процедура повторяется и для столбцов.

Определяем значение нижней границы Н=5,5+6+2,8+3,5=17,8. Таким образом, продолжительность выгрузки не может быть меньше 17,8 мин. На дереве поиска рисуем вершину, на которой указываем нижнюю и верхнюю границы.

Определяем дополнительный пробег, вызываемый исключением ребра ij:

Фij= Ai +Bj

Ф16=0+2=2

Ф17=0+2=2

Ф18=0+4,5=4,5

Ф19=0+2=2

Ф61=5,2+0=5,2

Ф71=3+0=3

Ф81=2+0=2

Ф91=5,1+0=5,1

При исключении этого ребра нижняя граница составляет 17,8+5,2=23

Чтобы определить нижнюю границу решения в которое входит ребро 9.8 из матрицы необходимо исключить соответствующие строку и столбец.

6

7

8

9

Ci

1

-

0

0

0

0

7

6,1

-

4,5

3

3

8

2

2

-

2,5

2

9

6

5,9

5,1

-

5,1

6

7

8

9

Ci

Ai

1

-

0

0

0

0

0

7

3,1

-

1,5

0

3

1,5

8

0

0

-

0,5

2

0

9

0,9

0,8

0

-

5,1

0,8

Qj

0

0

0

0

10,1

Bj

0,9

0

0

0

Нижняя граница решения составляет 17,8+10,1=27,9

Ф19=0+0=0

Ф17=0+0=0

Ф18=0+0=0

Ф79=1,5+0=1,5

Ф86=0,9+0=0,9

Ф87=0+0=0

Ф98=0,8+0=0,8

6

7

8

Ci

Ai

1

-

0

0

0

0

8

0

0

-

0

0

9

0,9

-

0

0

0,9

Qj

0

0

0

0

Bj

0,9

0

0

Ф17=0+0=0

Ф18=0+0=0

Ф86=0+0=0

Ф87=0+0=0

Ф98=0+0,9=0,9

6

7

1

-

0

8

0

-

В результате получено новое решение 1-7-9-8-6-1. Продолжительность выгрузки составляет 27,9 мин.

Далее необходимо рассмотреть только ветвление ВСЕ - т.к. нижние границы остальных ветвлений выше новой верхней границы.

1

6

7

8

9

Ci

1

-

0

0

0

0

0

6

-

-

5,2

5,5

5,5

5,2

7

0

6,1

-

4,5

3

0

8

0

2

2

-

2,5

0

9

0

6

5,9

5,1

-

0

1

6

7

8

9

Ci

Ai

1

-

0

0

0

0

0

0

6

-

-

0

0,3

0

5,2

0

7

0

6,1

-

4,5

3

0

3

8

0

2

2

-

2,5

0

2

9

0

6

5,9

5,1

-

0

5,1

Qj

0

0

0

0

0

5,2

Bj

0

2

0

0,3

0

Ф16=0+2=2

Ф17=0+0=0

Ф18=0+0=0

Ф19=0+0=0

Ф67=0+0=0

Ф69=0+0=0

Ф71=3+0=3

Ф91=5,1+0=5,1

6

7

8

9

Ci

1

0

0

0

-

0

6

-

0

0,3

0

0

7

6,1

-

4,5

3

3

8

2

2

-

2,5

2

6

7

8

9

Ci

1

0

0

0

-

0

6

-

0

0,3

0

0

7

3,1

-

1,5

0

3

8

0

0

-

0,5

2

Qj

0

0

0

0

5

Новая нижняя граница составляет 23+5=28, что больше верхней границы решения. Таким образом, лучшим порядком выгрузки контейнеров является следующий:

15