Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сушко мое.docx
Скачиваний:
20
Добавлен:
22.02.2016
Размер:
257.84 Кб
Скачать

3 Маршрутизация перевозок мелкопартийных грузов

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

Приведем матрицу расстояний по строкам (таблица 3.1)

Таблица 3.1Приведение матрицы по строкам

Из/В

Б1

М2

М3

М4

М5

М6

М7

М8

Б1

2625

2220

2220

2235

1500

600

1080

600

М2

2625

1815

1815

2790

2985

2505

2100

1815

М3

2220

1815

1410

2385

2580

2100

1695

1410

М4

2220

1815

1410

1140

2325

2100

1695

1140

М5

2235

2790

2385

1140

1185

2175

2340

1140

М6

1500

2985

2580

2325

1185

2100

2580

1185

М7

600

2505

2100

2100

2175

2100

480

480

М8

1080

2100

1695

1695

2340

2580

480

 

480

Приведем матрицу расстояний по столбцам (таблица 3.2)

Таблица 3.2Приведение матрицы по столбцам

Из/В

Б1

М2

М3

М4

М5

М6

М7

М8

Б1

2025

1620

1620

1635

900

0

480

М2

810

0

0

975

1170

690

285

М3

810

405

0

975

1170

690

285

М4

1080

675

270

0

1185

960

555

М5

1095

1650

1245

0

45

1035

1200

М6

315

1800

1395

1140

0

915

1395

М7

120

2025

1620

1620

1695

1620

0

М8

600

1620

1215

1215

1860

2100

0

 

120

405

0

0

0

45

0

0

Полностью приведенная матрица приведена в таблице 3.3.

Таблица 3.3Полностью приведенная матрица

Из/В

Б1

М2

М3

М4

М5

М6

М7

М8

Б1

1620

1620

1620

1635

855

0

480

М2

690

0

0

975

1125

690

285

М3

690

0

0

975

1125

690

285

М4

960

270

270

0

1140

960

555

Окончание таблицы 3.3

М5

975

1245

1245

0

0

1035

1200

М6

195

1395

1395

1140

0

915

1395

М7

0

1620

1620

1620

1695

1575

0

М8

480

1215

1215

1215

1860

2055

0

 

Определим нижнюю границу множества Гамильтоновых контуров:

= 8820

Каждый нуль в приведенной матрице (см. таблицу 1.6) условно заменяем на и находим сумму констант приведения. Значениязаписываем в соответствующие клетки рядом с нулями (таблица 3.4).

Таблица3.4Определение сумм констант приведения

Из/В

Б1

М2

М3

М4

М5

М6

М7

М8

Б1

1620

1620

1620

1635

855

0(480+0

=480)

480

М2

690

0(0+270

=270)

0(0+0

=0)

975

1125

690

285

М3

690

0(0+270

=270)

0(0+0

=0)

975

1125

690

285

М4

960

270

270

0(0+270

=270)

1140

960

555

М5

975

1245

1245

0(0+0

=0)

0(0+855

=855)

1035

1200

М6

195

1395

1395

1140

0(195+0

=195)

915

1395

М7

0(195+0

=195)

1620

1620

1620

1695

1575

0(0+285

=285)

М8

480

1215

1215

1215

1860

2055

0(480+0

=480)

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

Априорно исключаем из гамильтонова контура дугу (5,6), заменяя элементы а6,5 = 0 в матрице расстояний на . В результате исключения данной дуги будет образовано подмножество гамильтоновых контуров {}.

Приводим полученную матрицу расстояний и определяем нижнюю границу подмножества гамильтоновых контуров {}.

Таблица 3.5Исключение пятой строки и шестого столбца

Из/В

Б1

М2

М3

М4

М5

М7

М8

Б1

1620

1620

1620

1635

0

480

М2

690

0

0

975

690

285

М3

690

0

0

975

690

285

М4

960

270

270

0

960

555

М6

195

1395

1395

1140

915

1395

М7

0

1620

1620

1620

1695

0

М8

480

1215

1215

1215

1860

0

 

Таблица 3.6Приведение матрицы по строкам

Из/В

Б1

М2

М3

М4

М5

М7

М8

Б1

1620

1620

1620

1635

0

480

0

М2

690

0

0

975

690

285

0

М3

690

0

0

975

690

285

0

М4

960

270

270

0

960

555

0

М6

195

1395

1395

1140

915

1395

195

М7

0

1620

1620

1620

1695

0

0

М8

480

1215

1215

1215

1860

0

 

0

Таблица 3.7Приведение матрицы по столбцам

Из/В

Б1

М2

М3

М4

М5

М7

М8

Б1

1620

1620

1620

1635

0

480

М2

690

0

0

975

690

285

М3

690

0

0

975

690

285

М4

960

270

270

0

960

555

М6

0

1200

1200

945

720

1200

М7

0

1620

1620

1620

1695

0

М8

480

1215

1215

1215

1860

0

 

0

0

0

0

0

0

0

Тогда а Матрица, полученная после приведения по строкам и столбцам приведена в таблице 3.8.

Каждый нуль в полученной матрице условно заменяем на и находим сумму констант приведения. Значениязаписываем в соответствующие клетки рядом с нулями (таблица 3.9).

Таблица 3.8Полностью приведенная матрица

Из/В

Б1

М2

М3

М4

М5

М7

М8

Б1

1620

1620

1620

1635

0

480

М2

690

0

0

975

690

285

М3

690

0

0

975

690

285

М4

960

270

270

0

960

555

М6

0

1200

1200

945

720

1200

М7

0

1620

1620

1620

1695

0

М8

480

1215

1215

1215

1860

0

 

Таблица 3.9Определение сумм констант приведения

Из/В

Б1

М2

М3

М4

М5

М7

М8

Б1

1620

1620

1620

1635

0(480+0

=480)

480

М2

690

0(0+270

=270)

0(0+0

=0)

975

690

285

М3

690

0(0+270

=270)

0(0+0

=0)

975

690

285

М4

960

270

270

0(270+975

=1245)

960

555

М6

0(0+720

=720)

1200

1200

945

720

1200

М7

0(0+0

=0)

1620

1620

1620

1695

0(285+0

=285)

М8

480

1215

1215

1215

1860

0(0+480

=480)

 

Из таблицы 3.9 видно, что наибольшее значение суммы констант приведения получается на пересечении четвертой строки и пятого столбца и составляет 1245. Априорно исключаем из гамильтонова контура дугу (4,5) и проводим расчеты аналогичные предыдущим.

Таблица 3.10Исключение четвертой строки и пятого столбца

Из/В

Б1

М2

М3

М4

М7

М8

Б1

1620

1620

1620

0

480

М2

690

0

0

690

285

М3

690

0

0

690

285

М6

0

1200

1200

945

720

1200

М7

0

1620

1620

1620

0

М8

480

1215

1215

1215

0

 

Таблица 3.11Приведение матрицы по строкам

Из/В

Б1

М2

М3

М4

М7

М8

Б1

1620

1620

1620

0

480

0

М2

690

0

0

690

285

0

М3

690

0

0

690

285

0

М6

0

1200

1200

945

720

1200

0

М7

0

1620

1620

1620

0

0

М8

480

1215

1215

1215

0

 

0

Таблица 3.12Приведение матрицы по столбцам

Из/В

Б1

М2

М3

М4

М7

М8

Б1

1620

1620

1620

0

480

М2

690

0

0

690

285

М3

690

0

0

690

285

М6

0

1200

1200

945

720

1200

М7

0

1620

1620

1620

0

М8

480

1215

1215

1215

0

 

0

0

0

0

0

0

Тогда а Матрица, полученная после приведения по строкам и столбцам приведена в таблице 3.13.

Каждый нуль в полученной матрице условно заменяем на и находим сумму констант приведения. Значениязаписываем в соответствующие клетки рядом с нулями (таблица 3.14).

Таблица 3.13Полностью приведенная матрица

Из/В

Б1

М2

М3

М4

М7

М8

Б1

1620

1620

1620

0

480

М2

690

0

0

690

285

М3

690

0

0

690

285

М6

0

1200

1200

945

720

1200

М7

0

1620

1620

1620

0

М8

480

1215

1215

1215

0

 

Таблица 3.14Определение сумм констант приведения

Из/В

Б1

М2

М3

М4

М7

М8

Б1

1620

1620

1620

0(480+0

=480)

480

М2

690

0(0+1200=1200)

0(0+0=0)

690

285

Окончание таблицы 3.14

М3

690

0(0+1200

=1200)

0(0+0

=0)

690

285

М6

0(720+0

=720)

1200

1200

720

1200

М7

0(0+0=0)

1620

1620

1620

0(0+285=285)

М8

480

1215

1215

1215

0(0+480=480)

 

Из таблицы 3.14 видно, что наибольшее значение суммы констант приведения получается на пересечении второй строки и третьего столбца, а также третьей строки и второго столбца и составляет 1200. Априорно исключаем из гамильтонова контура дугу (2,3), заменяя элемент а3,2 = 0 в матрице расстояний на и проводим расчеты аналогичные предыдущим (таблицы 3.15-3.18)

Таблица 3.15Исключение второй строки и третьего столбца

Из/В

Б1

М2

М4

М7

М8

Б1

1620

1620

0

480

М3

690

0

690

285

М6

0

1200

720

1200

М7

0

1620

1620

0

М8

480

1215

1215

0

Таблица 3.16Приведение матрицы по строкам

Из/В

Б1

М2

М4

М7

М8

Б1

1620

1620

0

480

0

М3

690

0

690

285

0

М6

0

1200

720

1200

0

М7

0

1620

1620

0

0

М8

480

1215

1215

0

0

Таблица 3.17Приведение матрицы по столбцам

Из/В

Б1

М2

М4

М7

М8

Б1

1620

1620

0

480

М3

690

0

690

285

М6

0

1200

720

1200

М7

0

1620

1620

0

М8

480

1215

1215

0

0

1200

0

0

0

Тогда а Матрица, полученная после приведения по строкам и столбцам приведена в таблице 3.18.

Каждый нуль в полученной матрице условно заменяем на и находим сумму констант приведения. Значениязаписываем в соответствующие клетки рядом с нулями (таблица 3.19).

Таблица 3.18Полностью приведенная матрица

Из/В

Б1

М2

М4

М7

М8

Б1

420

1620

0

480

М3

690

0

690

285

М6

0

0

720

1200

М7

0

420

1620

0

М8

480

15

1215

0

Таблица 3.19Определение сумм констант приведения

Из/В

Б1

М2

М4

М7

М8

Б1

420

1620

0(0+420=420)

480

М3

690

0(285+1215

=1500)

690

285

М6

0(0+0=0)

0(0+15=15)

720

1200

М7

0(0+0=0)

420

1620

0(285+0=285)

М8

480

15

1215

0(0+15=15)

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

Априорно исключаем из гамильтонова контура дугу (3,4), заменяя элемент а6,2 = 0 в матрице расстояний на и проводим расчеты аналогичные предыдущим (таблицы 3.20-3.23)

Таблица 3.20Исключение третей строки и четвертого столбца

Из/В

Б1

М2

М7

М8

Б1

420

0

480

М6

0

720

1200

М7

0

420

0

М8

480

15

0

Таблица 3.21Приведение матрицы по строкам

Из/В

Б1

М2

М7

М8

Б1

420

0

480

0

М6

0

720

1200

0

М7

0

420

0

0

М8

480

15

0

0

Таблица 3.22Приведение матрицы по столбцам

Из/В

Б1

М2

М7

М8

Б1

420

0

480

М6

0

720

1200

М7

0

420

0

М8

480

15

0

0

15

0

0

Тогда а Матрица, полученная после приведения по строкам и столбцам приведена в таблице 3.33.

Таблица 3.33Полностью приведенная матрица

Из/В

Б1

М2

М7

М8

Б1

405

0

480

М6

0

720

1200

М7

0

405

0

М8

480

0

0

Каждый нуль в полученной матрице условно заменяем на и находим сумму констант приведения. Значениязаписываем в соответствующие клетки рядом с нулями (таблица 3.34).

Таблица 3.34Определение сумм констант приведения

Из/В

Б1

М2

М7

М8

Б1

405

0(405+0=405)

480

М6

0(720+0=720)

720

1200

М7

0(0+0=0)

405

0(0+480=480)

М8

480

0(0+405=405)

0(0+0=0)

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

Априорно исключаем из гамильтонова контура дугу (6,1) и проводим расчеты аналогичные предыдущим (таблицы 3.35-3.38)

Таблица 3.35Исключение шестой строки и первого столбца

Из/В

М2

М7

М8

Б1

405

0

480

М7

405

0

М8

0

0

Таблица 3.36Приведение матрицы по строкам

Из/В

М2

М7

М8

Б1

405

0

480

0

М7

405

0

0

М8

0

0

0

Таблица 3.37Приведение матрицы по столбцам

Из/В

М2

М7

М8

Б1

405

0

480

М7

405

0

М8

0

0

0

0

0

Тогда а Матрица, полученная после приведения по строкам и столбцам приведена в таблице 3.38.

Таблица 3.38Полностью приведенная матрица/

Из/В

М2

М7

М8

Б1

405

0

480

М7

405

0

М8

0

0

Каждый нуль в полученной матрице условно заменяем на и находим сумму констант приведения. Значениязаписываем в соответствующие клетки рядом с нулями (таблица 3.39).

Таблица 3.39Определение сумм констант приведения/

Из/В

М2

М7

М8

Б1

405

0(0+405=405)

480(0+0=0)

М7

405

0(480+408=885)

М8

0(0+405=405)

0(0+0=0)

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

Априорно исключаем из гамильтонова контура дугу (7,8), заменяя элемент а1,2 = 405 в матрице расстояний на и проводим расчеты аналогичные предыдущим.

Таблица 3.40Исключение седьмой строки и восьмого столбца

Из/В

М2

М7

Б1

0

М8

0

После того, как ранг матрицы стал равным двум мы получаем нули в каждой ее строке и столбце (добавив как и ранее вычтеные элементы матрицы к нижней границе), и добавляем к маршруту комивояжера дуги которым соответствуют нулевые элементы.

НГр=10230.

Маршрут коммивояжера включает в себя дуги:

(5, 6), (4, 5), (2, 3), (3,4), (6, 1), (7, 8), (1, 7), (8, 2).

Вернемся к возникшему у нас ранее ветвлению и рассмотрим случай при котором максимальное значение имеет Г3,2. Полученные в дальнейшем расчеты приведем в приложении Б.

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

Минимальное значение имеет НГр=10230.

Соответствующий оптимальный контур включет дуги: (5, 6), (4, 5), (2, 3), (3,4), (6, 1), (7, 8), (1, 7), (8, 2).