- •Введение
- •1 Описание района перевозок и формирование транспортной сети региона
- •2 Определение кратчайших расстояний и кратчайших путей следования
- •3 Маршрутизация перевозок мелкопартийных грузов
- •4 Определение потребности в транспортных средствах для работы на маршрутах
- •5 Расчет технико-эксплуатационных показателей использования автомобильных транспортных средств
- •6 Сравнительный анализ существующего и предлагаемого вариантов
- •Заключение
- •Список литературы
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).