background image

Zdanie 1
Ponieważ macierz odległości jest symetryczna (czyli odległość od sklepu X do sklepu Y jest taka 

sama jak ze sklepu Y do X), możemy zastosować następującą procedurę.
Na   początku   załóżmy,   że   nasz   komiwojażer   ma   wrócić   do   sklepu   z   którego   wystartował. 

Ustalamy długość trasy, która zawiera tylko trzy sklepy (np. sklep 1, 2 i 3):
Trasa sklep 1   sklep 2   sklep 3   sklep 1 ma 3+7+4=14 km.

(Uwaga: trasa  sklep 2   sklep 3   sklep 1   sklep 2 też ma 14 km i wszystkie trasy pomiędzy

 

tymi trzema sklepami - jeśli wracamy do sklepu początkowego - mają po 14 km, więc nie ma  

znaczenia, czy mówimy o trasie sklep 1   sklep 2   sklep 3   sklep 1, czy o trasie  sklep 2 

 

sklep 3   sklep 1   sklep 2)

Dodajmy do tego sklep 4. Możemy to zrobić na 3 sposoby:

pomiędzy sklepem 1 a sklepem 2. Kosztuje to dodatkowe 2km drogi, bo droga między 
sklepem 1 a sklepem 2 to 3km, a droga sklep 1   sklep 4   sklep 2 to 2+3=5km;

pomiędzy sklepem 1 a sklepem 3 – dodatkowe 4km

pomiędzy sklepem 2 a sklepem 3 – dodatkowe 2km.

A więc najlepiej wstawić sklep 4 pomiędzy sklep 1 a 2 lub między 2 a 3.
Teraz wstawmy sobie sklep 5. Możemy to zrobić na 6 sposobów:

pomiędzy sklepem 1 a sklepem 2 – dodatkowe 9km

pomiędzy sklepem 1 a sklepem 3 – dodatkowe 8km

pomiędzy sklepem 1 a sklepem 4 – dodatkowe 15km

pomiędzy sklepem 2 a sklepem 3 – dodatkowy 1km

pomiędzy sklepem 2 a sklepem 4 – dodatkowe 10km

pomiędzy sklepem 3 a sklepem 4 – dodatkowe 7km

A więc najlepiej wstawić sklep 5 pomiędzy sklep 2 a 3.
i na koniec wstawmy sobie sklep 6. Możemy to zrobić na 10 sposobów:

pomiędzy sklepem 1 a sklepem 2 – dodatkowe 4km

pomiędzy sklepem 1 a sklepem 3 – dodatkowe 9km

pomiędzy sklepem 1 a sklepem 4 – dodatkowe 8km

pomiędzy sklepem 1 a sklepem 5 – brak dodatkowych km

pomiędzy sklepem 2 a sklepem 3 – dodatkowe 3km

pomiędzy sklepem 2 a sklepem 4 – dodatkowe 4km

pomiędzy sklepem 2 a sklepem 5 – dodatkowy 1km

pomiędzy sklepem 3 a sklepem 4 – dodatkowe 9km

pomiędzy sklepem 3 a sklepem 5 – dodatkowe 7km

pomiędzy sklepem 4 a sklepem 5 – to nawet skraca trasę o 1 km

A więc najlepiej wstawić sklep 6 pomiędzy sklep 4 a 5.
No więc spróbujmy. Mamy naszą trasę między trzema sklepami:

sklep 1   sklep 2   sklep 3   sklep 1

Wstawiamy sklep 4 pomiędzy sklep 1 a 2: 

sklep 1   sklep 4   sklep 2   sklep 3   sklep 1

Wstawiamy sklep 5 pomiędzy sklep 2 a 3: 

sklep 1   sklep 4   sklep 2   sklep 5   sklep 3   sklep 1

background image

Wstawiamy sklep 6 pomiędzy sklep 4 a 5:  Nie da się!
Musimy więc zobaczyć, na jakiej zamianie najmniej stracimy. Widać, że jeśli sklep 6 wstawimy 
między 1 a 5 zamiast między 4 a 5 to stracimy tylko 1 km. Ale takie wstawianie też jest 

niemożliwe.
następne w kolejce jest wstawienie sklepu 6 między 2 a 5 (stracimy 2km). I to już się da 

zrobić:

sklep 1   sklep 4   sklep 2   sklep 6   sklep 5   sklep 3   sklep 1

można się zastanowić, czy nie lepiej wstawiać nieoptymalnie sklep 4 albo 5 zamiast sklepu 6. 
Popatrzmy: wybierając dla sklepu 4 lokalizację między 2 a 3 nie tracimy żadnych kilometrów, 

ale blokujemy sobie możliwość wstawienia sklepu 5 między 2 a 3, a to kosztuje co najmniej 6  
km. Wstawiając sklep 4 między 1 a 3 tracimy 2 km, a więc tyle samo, co na nieoptymalnym 

wstawieniu sklepu 6, a więc nic się nie poprawia. Z kolei wstawiając nieoptymalnie sklep 5 
tracimy co najmniej 6 km.
Zostajemy więc przy trasie

sklep 1   sklep 4   sklep 2   sklep 6   sklep 5   sklep 3   sklep 1

Ma   ona   2+3+2+3+4+4=18   km   i   jest   to   najkrótsza   trasa   pozwalająca   objechać   wszystkie 
sklepy i wrócić do pierwszego. Warto zauważyć, że tworzy ona koło, a więc komiwojażer może 

wyruszyć z dowolnego sklepu i do niego wróć i zawsze (jeśli będzie jechał wg powyższej trasy 
przejedzie 18 km).
W zadaniu nie jest jednak sprecyzowane czy ma on wracać do sklepu, z którego wyruszył. Jeśli 
nie, to wystarczy usunąć z naszej trasy najdłuższą drogę, czyli jedną z dróg 4-kilometrowych. 

Np. usuwamy drogę ze sklepu 5 do 3. A więc nasz komiwojażer musi zacząć w sklepie 3 i ma 
trasę:

sklep 3   sklep 1   sklep 4   sklep 2   sklep 6   sklep 5,

która ma 14 km i jest to  najkrótsza trasa pozwalająca objechać wszystkie sklepy bez wracania 

do pierwszego.
Teraz najdłuższa droga. patrzymy na to co obliczaliśmy wyżej i dokładamy do naszej trasy z 

trzema sklepami najdłuższe (a nie najkrótsze, jak do tej pory) drogi:

sklep 1   sklep 2   sklep 3   sklep 1

Wstawiamy sklep 4 pomiędzy sklep 1 a 3: 

sklep 1   sklep 2   sklep 3   sklep 4   sklep 1

Wstawiamy sklep 5 pomiędzy sklep 1 a 4: 

sklep 1   sklep 2   sklep 3   sklep 4   sklep 5   sklep 1

Wstawiamy sklep 6 pomiędzy sklep 3 a 4: 

sklep 1   sklep 2   sklep 3   sklep 6   sklep 4   sklep 5   sklep 1

taka trasa ma więc 3+7+8+5+9+8=40 km i jest to najdłuższa trasa pozwalająca objechać 
wszystkie sklepy i wrócić do pierwszego.
Jeśli nie chcemy wracać do pierwszego sklepu, to wystarczy usunąć z naszej trasy najkrótszą 
drogę, czyli drogę 3-kilometrową ze sklepu 1 do 2. A więc nasz komiwojażer musi zacząć w 

sklepie 2 i ma trasę:

sklep 2   sklep 3   sklep 6   sklep 4   sklep 5   sklep 1,

która ma 37 km i jest to  najdłuższa trasa pozwalająca objechać wszystkie sklepy bez wracania 
do pierwszego.
Zadanie 2
Robimy dokładnie identycznie jak zadanie 1:
Trasa węzeł 1   węzeł 2   węzeł 3   węzeł 1 ma 100+120+140=360 zamówień.

Dodajmy do tego węzeł 4. Możemy to zrobić na 3 sposoby:

background image

pomiędzy węzłem 1 a węzłem 2. Daje to dodatkowe 150 zamówień, bo między węzłem 
1   a   węzłem   2   jest   100   zamówień,   a   droga   węzeł   1     węzeł   4     węzeł   2   to

 

150+100=250 zamówień;

pomiędzy węzłem 1 a węzłem 3 –  dodatkowe 40 zamówień

pomiędzy węzłem 2 a węzłem 3 – dodatkowe 10 zamówień.

A więc najlepiej wstawić węzeł 4 pomiędzy węzeł 1 a 2.
Teraz wstawmy sobie węzeł 5. Możemy to zrobić na 6 sposobów:

pomiędzy węzłem 1 a węzłem 2 – utrata 10 zamówień

pomiędzy węzłem 1 a węzłem 3 – utrata 70 zamówień

pomiędzy węzłem 1 a węzłem 4 – utrata 20 zamówień

pomiędzy węzłem 2 a węzłem 3 – utrata 60 zamówień

pomiędzy węzłem 2 a węzłem 4 – dodatkowe 20 zamówień

pomiędzy węzłem 3 a węzłem 4 – dodatkowe 70 zamówień

A więc najlepiej wstawić węzeł 5 pomiędzy węzeł 3 a 4.
i na koniec wstawmy sobie węzeł 6. Możemy to zrobić na 10 sposobów:

pomiędzy węzłem 1 a węzłem 2 – utrata 70 zamówień

pomiędzy węzłem 1 a węzłem 3 – utrata 80 zamówień

pomiędzy węzłem 1 a węzłem 4 – utrata 90 zamówień

pomiędzy węzłem 1 a węzłem 5 – dodatkowe 40 zamówień

pomiędzy węzłem 2 a węzłem 3 – utrata 70 zamówień

pomiędzy węzłem 2 a węzłem 4 – utrata 50 zamówień

pomiędzy węzłem 2 a węzłem 5 – dodatkowe 10 zamówień

pomiędzy węzłem 3 a węzłem 4 – dodatkowe 50 zamówień

pomiędzy węzłem 3 a węzłem 5 – dodatkowe 90 zamówień

pomiędzy węzłem 4 a węzłem 5 – dodatkowe 30 zamówień

A więc najlepiej wstawić węzeł 6 pomiędzy węzeł 3 a 5.
No więc spróbujmy. Mamy naszą trasę między trzema węzłami:

węzeł 1   węzeł 2   węzeł 3   węzeł 1

Wstawiamy węzeł 4 pomiędzy węzeł 1 a 2: 

węzeł 1   węzeł 4   węzeł 2   węzeł 3   węzeł 1

Wstawiamy węzeł 5 pomiędzy węzeł 3 a 4: nie da się! 
Musimy więc zobaczyć, na jakiej zamianie najmniej stracimy. Widać, że jeśli węzeł 5 wstawimy 

między 2 a 4 zamiast między 3 a 4 to stracimy tylko 50 zamówień. Tak więc robimy:

węzeł 1   węzeł 4   węzeł 5   węzeł 2   węzeł 3   węzeł 1

Wstawiamy węzeł 6 pomiędzy węzeł 3 a 5: nie da się! 
Musimy więc zobaczyć, na jakiej zamianie najmniej stracimy. Widać, że następną w kolejce 

możliwością wstawienia węzła 6, jest wstawienie go pomiędzy węzły 3 i 4, ale to też się nie da. 
Między 1 a 5 też nie, ale między 4 a 5 już tak (tracimy na tym 60 zamówień w stosunku do  

wstawiania pomiędzy 3 a 5):

węzeł 1   węzeł 4   węzeł 6   węzeł 5   węzeł 2   węzeł 3   węzeł 1

W   sumie   wstawiając   węzły   5   i   6   nieoptymalnie   straciliśmy   110   zamówień.   Można   się 
zastanowić, czy nie dałoby się tego zrobić lepiej. Popatrzmy na możliwości wstawienia węzła 4: 

background image

wstawiając go inaczej niż między 1 a 2 stracimy co najmniej 110 zamówień – nie ma więc 

sensu tego zmieniać. Więc na pewno musimy mieć trasę 

węzeł 1   węzeł 4   węzeł 2   węzeł 3   węzeł 1

Teraz w węźle 5: kolejną niewykorzystaną możliwością jest wstawienie go między 1 a 2, ale to 
się nie da. Następna w kolejce jest możliwość wstawienia między 1 a 4, to się da zrobić i 

stracimy na tym 90 zamówień w stosunku do optymalnego wstawienia węzła 5 między 3 a 4. 
Mielibyśmy wtedy

węzeł 1   węzeł 5   węzeł 4   węzeł 2   węzeł 3   węzeł 1

Do tej trasy węzła 6 również nie możemy wstawić optymalnie (czyli między 3 a 5). Następną w 

kolejce możliwością wstawienia węzła 6, jest wstawienie go pomiędzy węzły 3 i 4, ale to też się 
nie da, a nawet gdyby się dało, to stracilibyśmy 40 zamówień w stosunku do optymalnego 

wstawienia. czyli razem mielibyśmy już stratę 90+40=130 zamówień, podczas gdy na trasie 

węzeł 1   węzeł 4   węzeł 6   węzeł 5   węzeł 2   węzeł 3   węzeł 1

straciliśmy ich 110.
Tak więc trasa

węzeł 1   węzeł 4   węzeł 6   węzeł 5   węzeł 2   węzeł 3   węzeł 1

jest   najlepsza   i   nie   da   się   jej   poprawić.   Mamy   na   niej   150+40+70+40+120+140=560 

zamówień.