Professional Documents
Culture Documents
5 KommyUA
5 KommyUA
ТЕМА 2-1.
Задача комівояжера
1 2 3 4 5 6 7
1 0 83 9 30 6 50
2 0 66 37 17 12 26
3 29 1 19 0 12 5
4 32 83 66 49 0 80
5 3 21 56 7 0 28
6 0 85 8 42 89 0
7 18 0 0 0 58 13
0 0 7 1 0 0 4
Потім додаються сумарні результати строки та стовпчика. Отримане число є
нижньою межею самого короткого маршруту комівояжера, тобто усі маршрути,
знайдені у ході рішення, будуть 96.
2. У приведеній матриці обираються усі нульові клітинки. Кожна клітинка
забезпечує мінімальну відстань, яка дорівнює “0” для відповідної пари.
Серед нульових клітинок обирається така, що при заміни “0” на "", дозволить
відняти зі своєї строки і стовпчика найбільше сумарне число.
3
(1,2) 6 0 6
(2,1) 12 0 12
(3,5) 1 17 18
4 6
(4,6) 32 0 32
(5,6) 3 0 3
(6,1) 0 0 0
(6,7) 0 5 5
(7,2) 0 0 0
(7,3) 0 8 8
(7,4) 0 7 7
Вибір клітинки (4,6) означає, що обрано фрагмент маршруту від вершини 4 до
вершини 6.
Так як клітинку (4,6) обрано, то вершини 4 і 6 більше у маршруті участі не
беруть як вихідна та вхідна відповідно, це означає, що ми викреслюємо строку 4 та
стовпчик 6, а у (6,4) ставимо знак "", так як комівояжер ніколи не поїде зворотньо з
6 у 4.
Матриця прийме вигляд:
1 2 3 4 5 7
1 0 83 930 50
2 0 66 3717 26
3 29 1 19 0 5
5 3 21 56 7 28
6 0 85 8 89 0
7 18 0 0 0 58
1 2 3 4 5 7
1 0 83 9 30 50 0
2 0 66 37 17 26 0
3 29 1 19 0 5 0
5 0 18 53 4 25 3
6 0 85 8 89 0 0
7 18 0 0 0 58 0
Приведення по стовпчиках у останній матриці вже неможливе.
Сума, яка отримана у додатковому стовпчику, додається до значення нижньої
межи маршруту і ми отримуємо нову межу 3+96=99.
Нульові Число, що Сумарний
клітинки віднімається з результат
строки стовпчика 4 6
(1,2) 9 0 9 3 5
(2,1) 17 0 17
(3,5) 1 17 18
(5,1) 4 0 4
(6,1) 0 0 0
(6,7) 0 5 5
(7,2) 0 0 0
(7,3) 0 8 8
(7,4) 0 4 4
Знову викреслюємо строку і стовпчик, а отриману матрицю приводимо по
строках і стовпчиках. У клітинку (5,3) ставимо символ "".
12 3 4 7
1 0 83 9 50
2 0 66 37 26
5 0 18 4 25
6 0 85 8 0
7 18 0 0 0
Але її привести неможливо, тому знову складаємо таблицю.
5
(1,2) 9 0 9 3 5
(2,1) 26 0 26
(5,1) 4 0 4
2 1
(6,1) 0 0 0
(6,7) 0 25 25
(7,2) 0 0 0
(7,3) 0 8 8
(7,4) 0 4 4
Викреслюємо строку 2 та стовпчик 1. При цьому не забуваючи поставити знак
"" у клітинку (1,2).
2 3 4 7
1 83 9 50
5 18 4 25
6 85 8 0
7 0 0 0
Приведемо по строках:
2
3 4 7
1 74 0 41 9
5 14 0 21 4
6 85 8 0 0
7 0 0 0 0
Подальше приведення по стовпчиках неможливе. Нижня межа знову змінилася
і становить 99+9+4=112.
В отриманій матриці знову обираємо усі нульові клітинки і будуємо таблицю:
6
(5,2) 7 0 7 3 5
(6,7) 8 7 15
(7,2) 0 0 0
2 1
(7,3) 0 8 8
2 3
5 0
7 0
Клітинки, що залишилися, є рівноцінними. На їх базі додаємо дуги, яких не
достає.
Граф прийме вигляд:
4 6
7
3 5
2 1