ВЫБОР ОПТИМАЛЬНОГО МАРШРУТА
.doc
ВЫБОР ОПТИМАЛЬНОГО МАРШРУТА
Враховуючи те, що круїз е круговим, в якості методу оптимізації обираємо методи рішення «задачі комівояжера».
Постановка завдання задачі комівояжера полягає в наступному.
Мається 8 портів, відстані між ними (табл.1) задані у вигляді матриці
C = (cij), де i.j = ( 1…n ). В таблиці 1 кожному порту призначено номер від одиниці до восьми.
Таблиця 1 Відстані між портами лінії
Порти виходу
|
Порти заходу |
|||||||
Одесса (1) |
Афины(2) |
Неаполь (3) |
Барселона (4) |
Валлетта (5) |
Алек-я (6) |
Хайфа (7) |
Стамбул (8) |
|
Одеса (1) |
|
652 |
1314 |
1800 |
1204 |
1077 |
1184 |
298 |
Афіни (2) |
652 |
|
737 |
1323 |
626 |
519 |
285 |
354 |
Неаполь (3) |
1314 |
737 |
|
558 |
325 |
999 |
1270 |
971 |
Барселона (4) |
1800 |
1323 |
558 |
|
671 |
1472 |
1750 |
1487 |
Валлетта (5) |
1204 |
626 |
325 |
671 |
|
818 |
1033 |
860 |
Александрія (6) |
1077 |
519 |
999 |
1472 |
818 |
|
235 |
733 |
Хайфа (7) |
1184 |
285 |
1270 |
1750 |
1033 |
235 |
|
247 |
Стамбул (8) |
298 |
354 |
971 |
1467 |
860 |
733 |
247 |
|
Кожне значення cij є відстанями між вихідним портом i та портом заходу j, тому їх величини не можуть мати від’ємного значення, тому cij 0, .
В загальному випадку cij cji ( наприклад коли cji - є вартість проїзду з міста j в місто i, яке не дорівнює переїзду з міста i в місто j ). Така задача вважається несиметричною. Враховуючи особливості роботи морського транспорту та географічне розташування портів круїзу, наша задача має симетричний характер, тобто cij = cji.
Треба знайти найратчайший замкнутий маршрут, який проходить через кожен порт тільки один раз с поверненням в перший базовий порт і який мінімізує сумарну пройдену відстань.
Математична постанова завдання може бути представлена в наступному вигляді:
; (1)
(2)
(3)
Xij (4)
Визначення!!!
Приведення матриці С може бути здійснено наступним чином:
Крок1-Приведення по строкам. По кожній строчці і знайдемо найменший елемент min Cij = ai. Тоді при переході до приведеної матриці . Ця операція потребує , на наш погляд, пояснень. Здавалось би логічним . виключати найбілішу відстань згідно з умовами постанови задачі, але у такому випадку всі останні елементи строчки будуть мати від’ємні значення, що порушує обмеження (4). Обрані значення ai відображаються у заключному стовбці приведеної матриці табл.2.
Крок 2. У кожному стовбці j, який не має нульових елементів знаходимо найменше значення Cij= bj, яке відображаємо у заключній строчці bj приведеної матриці ,табл..3.
Тоді Результати першого кроку відображено в табл..2
Порти виходу
|
ИСХОДНАЯ ТАБЛИЦА |
|||||||
Одесса (1) |
Афины(2) |
Неаполь (3) |
Барселона (4) |
Валлетта (5) |
Алек-я (6) |
Хайфа (7) |
Стамбул (8) |
|
Одеса (1) |
|
652 |
1314 |
1800 |
1204 |
1077 |
1184 |
2 98 |
Афіни (2) |
652 |
|
737 |
1323 |
626 |
519 |
2 85 |
354 |
Неаполь (3) |
1314 |
737 |
|
558 |
3 25 |
999 |
1270 |
971 |
Барселона (4) |
1800 |
1323 |
5 58 |
|
671 |
1472 |
1750 |
1487 |
Валлетта (5) |
1204 |
626 |
325 |
671 |
|
818 |
1033 |
860 |
Александрія (6) |
1077 |
519 |
999 |
1472 |
818 |
|
235 |
733 |
Хайфа (7) |
1184 |
285 |
1270 |
1750 |
1033 |
235 |
|
247 |
Стамбул (8) |
298 |
354 |
971 |
1467 |
860 |
733 |
247 |
|
Табл.2
Матриця, приведена по рядках (строках)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
ai |
1 |
|
354 |
1016 |
1502 |
906 |
779 |
886 |
0 |
298 |
2 |
367 |
|
452 |
1038 |
341 |
234 |
0 |
69 |
285 |
3 |
989 |
412 |
|
233 |
0 |
674 |
945 |
646 |
325 |
4 |
1242 |
765 |
0 |
|
113 |
914 |
1192 |
909 |
558 |
5 |
879 |
301 |
0 |
346 |
|
493 |
708 |
535 |
325 |
6 |
842 |
284 |
764 |
1237 |
583 |
|
0 |
498 |
235 |
7 |
949 |
5 0 |
1035 |
1515 |
798 |
0 |
|
12 |
235 |
8 |
5 1 |
107 |
724 |
1220 |
613 |
486 |
0 |
|
247 |
bj |
|
|
|
|
|
|
|
|
2508 |
Результати кроку 2 відображено в табл.3, яка представляє першу приведену матрицю G0.
Табл.3 Приведена матриця G0
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
ai |
1 |
|
304 |
1016 |
1269 |
906 |
779 |
886 |
0 - 316 |
298 |
2 |
316 |
|
452 |
805 |
341 |
234 |
0 - 69 |
69 |
285 |
3 |
938 |
362 |
|
0 - 113 |
0-113 |
674 |
945 |
646 |
325 |
4 |
1191 |
715 |
0-113 |
|
113 |
914 |
1192 |
909 |
558 |
5 |
828 |
251 |
0-113 |
113 |
|
493 |
708 |
535 |
325 |
6 |
791 |
234 |
764 |
1004 |
583 |
|
0-234 |
498 |
235 |
7 |
898 |
0 - 57 |
1035 |
1282 |
798 |
0-234 |
|
12 |
235 |
8 |
0-316 |
57 |
724 |
987 |
613 |
486 |
0 - 0 |
|
247 |
bj |
51 |
50 |
0 |
233 |
0 |
0 |
0 |
0 |
2842 |
Згідно з теоремою Ейлера, яка стверджує, що коли ми відраховуємо любу константу із усіх елементів строки чи стовпця матриці Сij, ми залишаємо мінімальний тур мінімальним.
На пересечінні ітогової строки i та стовбця j знаходиться величина, яка має назву – «сума приводящих констант», яка дорівнює:
(4)
Дані, наведені у таблиці 3, визначимо як матрицю G0, що визначає нову задачу комівояжера, яка в якості оптимального варіанту має ту саму послідовність портів.
Між величинами L , існує наступне співвідношення.
L= + S (5)
Таким чином, L , що визначає S як нижню межу цільової функції задачі комівояжера.
Знаходимо ступені кожного з нулів повністю приведеної матриці.
Для цього для кожної клітки з нульовим елементом по відповідним строчці та стовбцю знаходимо мінімальні значення Сij. Сума цих елементів визначить ступінь нулю, яка записана через дефіс поряд з нулем праворуч.
Клітка з максимальною ступеню нуля визначить дугу, згідно з якою буде виконуватись подальше гілкування.
Визначаємо максимальний ступінь нуля. Вона рівна 316 і відповідає кліткам (1-8) і (8-1). Обираємо клітку (1-8). Таким чином, претендентом на включення в гамільтонов контур є дуга (1-8).
Розбиваємо безліч всіх гамільтонових контурів на дві підмножини: G1 і G2. Матрицю з дугою (1-8) одержуємо шляхом викреслювання рядка 1 і стовпця 8 (табл.4). Щоб не допускати утворення негамільтонового контуру (зациклювання), замінюємо елемент (8-1) на знак « ».
Таблиця 4 Матриця G1 (включає дугу 1-8- исчезли 1-я строка и 8 столбец)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
2 |
316 |
|
452 |
805 |
341 |
234 |
0 |
3 |
938 |
362 |
|
0 |
0 |
674 |
945 |
4 |
1191 |
715 |
0 |
|
113 |
914 |
1192 |
5 |
828 |
251 |
0 |
113 |
|
493 |
708 |
6 |
791 |
234 |
764 |
1004 |
583 |
|
0 |
7 |
898 |
0 |
1035 |
1282 |
798 |
0 |
|
8 |
|
57 |
724 |
987 |
613 |
486 |
0 |
Підмножина G2, навпаки, виключає дугу (1-8). Для цього замінюємо елемент (1-8) в таблиці 3 на знак « ». Матриця G2 відображена в таблиці 5.
Графічно це показано на рис.1.
Таблиця 5 Матриця G2 (виключає дугу 1-8)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
|
304 |
1016 |
1269 |
906 |
779 |
886 |
|
2 |
316 |
|
452 |
805 |
341 |
234 |
0 |
69 |
3 |
938 |
362 |
|
0 |
0 |
674 |
945 |
646 |
4 |
1191 |
715 |
0 |
|
113 |
914 |
1192 |
909 |
5 |
828 |
251 |
0 |
113 |
|
493 |
708 |
535 |
6 |
791 |
234 |
764 |
1004 |
583 |
|
0 |
498 |
7 |
898 |
0 |
1035 |
1282 |
798 |
0 |
|
12 |
8 |
0 |
57 |
724 |
987 |
613 |
486 |
0 |
|