ВЫБОР ОПТИМАЛЬНОГО МАРШРУТА
.doc
Таблиця 17 Приведена матриця G10
|
2 |
3 |
4 |
5 |
ai |
3 |
362 |
2 |
0 |
0 |
0 |
4 |
715 |
0 |
2 |
113 |
0 |
5 |
|
0 |
113 |
2 |
0 |
6 |
|
181 |
421 |
2 |
0 |
bj |
362 |
0 |
0 |
0 |
362 |
Оцінюємо нульові клітки в таблиці 16 і , як наслідок, обираємо до включення в схему дугу (4-3).
Гілкуванню підлягає множина G9, яка має S(G9) =3409 + 362 = 3771.
Ми отримали матрицю розміром 2 х 2 (таблиця 18) і на цьому гілкування закінчується. До схеми включаються дуги (5-4) і (3-2).
Таблиця 18. Остання матриця
|
2 |
4 |
3 |
362 |
|
5 |
2 |
113 |
Таким чином, отримано гамільтонов цикл: 1-8-7-6-5-4-3-2-1.
Круїзна лінія:
Одеса – Стамбул – Хайфа – Александрія – Валета – Барселона-Неаполь – Афіни – Одеса
Протяжність лінії складає:
L = 652 + 737 + 558 + 671 + 818 + 235 + 247 + 298 = 4216 миль.
Гілкування по множині G2 призводить до тієї ж самої схеми, тільки рух судна буде здійснюватися в зворотному напрямку.
Решение задачи коммивояжера с использованием надстройки MS EXCEL «Поиск решения»
Задача. Найти решение задачи коммивояжера для графа с заданной матрицей расстояний с использованием надстройки «Поиск решения».
Исходные данные:
Порты захода
|
Порты захода |
|||||||
Одесса |
Афины |
Неаполь |
Барселона |
Валлетта |
Алек-я |
Хайфа |
Стамбул |
|
Одесса (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 |
|
1) Представим на рабочем листе MS EXCEL исходные данные, подготовим ячейки для переменных, ограничений (массив для ограничений должен иметь на 1 строку и 1 столбец меньше чем в исходных данных) и целевой функции:
2) В ячейки В19:I19 введем формулы для расчета суммы переменных по столбцам:
|
B |
C |
D |
E |
F |
G |
H |
I |
19 |
=СУММ(B11:B18) |
=СУММ(C11:C18) |
=СУММ(D11:D18) |
=СУММ(E11:E18) |
=СУММ(F11:F18) |
=СУММ(G11:G18) |
=СУММ(H11:H18) |
=СУММ(I11:I18) |
В ячейки J11:J18 введем формулы для расчета суммы переменных по строкам:
|
J |
11 |
=СУММ(B11:I11) |
12 |
=СУММ(B12:I12) |
13 |
=СУММ(B13:I13) |
14 |
=СУММ(B14:I14) |
15 |
=СУММ(B15:I15) |
16 |
=СУММ(B16:I16) |
17 |
=СУММ(B17:I17) |
18 |
=СУММ(B18:I18) |
В целевую ячейку С32 введем формулу, рассчитывающую сумму произведений двух массивов – исходных данных (B2:I9) и переменных (B11:I18).
|
С |
32 |
=СУММПРОИЗВ(B2:I9;B11:I18) |
В ячейки С24:I30 (ограничения) введем формулы:
|
C |
D |
E |
F |
G |
H |
I |
24 |
|
=$C$21-D21+8*D12 |
=$C$21-E21+8*E12 |
=$C$21-F21+8*F12 |
=$C$21-G21+8*G12 |
=$C$21-H21+8*H12 |
=$C$21-I21+8*I12 |
25 |
=$D$21-C21+8*C13 |
|
=$D$21-E21+8*E13 |
=$D$21-F21+8*F13 |
=$D$21-G21+8*G13 |
=$D$21-H21+8*H13 |
=$D$21-I21+8*I13 |
26 |
=$E$21-C21+8*C14 |
=$E$21-D21+8*D14 |
|
=$E$21-F21+8*F14 |
=$E$21-G21+8*G14 |
=$E$21-H21+8*H14 |
=$E$21-I21+8*I14 |
27 |
=$F$21-C21+8*C15 |
=$F$21-D21+8*D15 |
=$F$21-E21+8*E15 |
|
=$F$21-G21+8*G15 |
=$F$21-H21+8*H15 |
=$F$21-I21+8*I15 |
28 |
=$G$21-C21+8*C16 |
=$G$21-D21+8*D16 |
=$G$21-E21+8*E16 |
=$G$21-F21+8*F16 |
|
=$G$21-H21+8*H16 |
=$G$21-I21+8*I16 |
29 |
=$H$21-C21+8*C17 |
=$H$21-D21+8*D17 |
=$H$21-E21+8*E17 |
=$H$21-F21+8*F17 |
=$H$21-G21+8*G17 |
|
=$H$21-I21+8*I17 |
30 |
=$I$21-C21+8*C18 |
=$I$21-D21+8*D18 |
=$I$21-E21+8*E18 |
=$I$21-F21+8*F18 |
=$I$21-G21+8*G18 |
=$I$21-H21+8*H18 |
|
3) На панели инструментов открываем Сервис Поиск решения и в открывшемся диалоговом окне вводим следующие значения и параметры:
Нажимаем ОК и получаем значение целевой функции и оптимальный контур:
Таким образом, оптимальная протяженность маршрута 4216 миль.
Оптимальный маршрут: Одесса – Стамбул – Хайфа – Александрия – Валлетта – Барселона – Неаполь – Афины – Одесса.