Wyznaczanie optymalnej trasy problem komiwojażera Optymalizacja w podejmowaniu decyzji Opracowała: mgr inż. Natalia Malinowska Wrocław, dn. 28.03.2017 Wydział Elektroniki Politechnika Wrocławska
Plan prezentacji 1) Planowanie procesów logistycznych 2) Problem komiwojażera informacje ogólne 3) Sformułowanie problemu 4) Algorytmy rozwiązujące problem komiwojażera 5) Algorytmy przybliżone 6) Propozycje rozwiązania problemu wyboru tras 2
Planowanie procesów logistycznych Obszary optymalizacji procesów logistycznych: problemy alokacji środków produkcji zagadnienia transportowe problemy komiwojażera zarządzanie zapasami surowców zagadnienia wymiany problem przydziału zadań 3
Problem komiwojażera Problem wędrownego sprzedawcy (komiwojażera): dane jest n miast, które komiwojażer ma odwiedzić, oraz odległość / cena podróży / czas podróży pomiędzy każdą parą miast. Cel: znalezienie najkrótszej / najtańszej / najszybszej drogi łączącej wszystkie miasta, zaczynającej się i kończącej się w określonym punkcie. 4
Problem komiwojażera Typy problemów komiwojażera Problem symetryczny STSP np. droga (w km) z Poznania do Gdańska równa jest drodze z Gdańska do Poznania Problem asymetryczny ATSP np. droga (w km) z Poznania do Gdańska nie jest równa drodze z Gdańska do Poznania Rys 1. Podział problemów komiwojażera 5
Sformułowanie problemu 1. Zbudowanie grafu ważonego, którego wierzchołki są miastami. 2. Połączenie wszystkich wierzchołków (miast) krawędziami. 3. Każdej krawędzi nadana zostaje waga, równa 'odległości' miedzy miastami. 4. Powyższe elementy tworzą graf pełny, który ma tyle wierzchołków, ile miast musi odwiedzić komiwojażer dokładnie raz. Cel: Poszukiwany jest taki cykl który daje minimalną sumę wag krawędzi. 6
Algorytmy rozwiązujące problem komiwojażera Metody dokładne Wady metod : wymagają rozważenia bardzo dużej liczby przypadków i czas ich działania może być bardzo długi. Przykłady: dla 10 miast liczba cykli Hamiltona w grafie pełnym wynosi około 362 880. dla 25 miast liczba cykli Hamiltona w grafie pełnym wynosi około 6,204*10 23 7
Algorytmy rozwiązujące problem komiwojażera Metody przybliżone - metody ewolucyjne Czas rozwiazywania problemu komiwojażera można zmniejszyć stosując jeden ze znanych algorytmów przybliżonych, które nie wymagają rozważania, aż tak dużej liczby przypadków. Zaleta: znaczne zmniejszenie czasu trwania algorytmu 8
Metody ewolucyjne - komiwojażer Budowa chromosomu 1. Numerujemy wszystkie miasta, czyli wierzchołki naszego grafu. 2. Tworzymy chromosom o długości takiej, jaka jest liczba miast (np. 7 przy 7 miastach) - każde miasto ma swój gen. 3. W genie danego miasta zapisujemy numer innego miasta, do którego chcemy przejść z danego. Czyli jeśli w chromosomie gen numer X ma wartość Y oznacza to, że z miasta numer X idziemy do miasta Y. I tak dla wszystkich miast. Chromosom opisujący podaną trasę będzie wyglądał tak: Rys 2. Chromosom opisujący trasę 9
Krzyżowanie i mutacja Rys 3. Dwa przykładowe chromosomy i odpowiadające im cykle Rys 4. Krzyżowanie dwóch chromosomów Rys 5. Nowe, powstałe chromosomy 10
Zadanie Przykład: Kurier musi rozwieźć 10 przesyłek do kilku różnych miast. Musi odwiedzić wszystkie miasta. Chce jednak przy tym pokonać jak najkrótszą drogę. Obecnie znajduję się w Gdyni. Jak powinna wyglądać trasa kuriera? Rys 6. Graf dla 10 miast 11
Zadanie cd. Tabela 1. Długości tras między poszczególnymi miastami Lp Gdynia Kościerzyna Bydgoszcz Poznań Toruń Bytów Słupsk Szczecin Koszalin Piła 1 Gdynia 0 61,76 173,09 280,83 182,37 84,62 105,88 312,58 171,08 209,43 2 Kościerzyna 61,76 0 120,99 221,47 141,41 35,23 79,07 259,36 128,65 147,68 3 Bydgoszcz 173,09 120,99 0 117,68 44,95 132,15 176,88 252,97 1884,95 92,36 4 Poznań 280,83 221,47 117,68 0 143,14 217,6 249,36 212,94 223,33 91,22 5 Toruń 182,37 141,41 44,95 143,14 0 161,14 208,59 297,62 225,53 136,36 6 Bytów 84,62 35,23 132,15 217,6 161,14 0 48,32 228,62 93,62 134,82 7 Słupsk 105,88 79,07 176,88 249,36 208,59 48,32 0 216,5 68,79 160,41 8 Szczecin 312,58 259,36 252,97 212,94 297,62 228,62 216,5 0 148,34 161,76 9 Koszalin 171,08 128,65 184,95 223,33 225,53 93,62 68,79 148,34 0 132,76 10 Piła 209,43 147,68 92,36 91,22 136,36 134,82 160,41 161,76 132,76 0 Znalezienie właściwego cyklu Hamiltona jest zadaniem trudnym obliczeniowo. Graf składa się z 10 wierzchołków. Liczba cykli Hamiltona wynosi 9!=362 880. Warto więc zastosować metody przybliżone algorytmy ewolucyjne w Solver. 12
Wyniki trasa kuriera Tabela 2. Wyznaczone optymalne trasy Trasa 1: Trasa 2: 1. Gdynia Gdynia 2. Toruń Kościerzyna 3. Bydgoszcz Bytów 4. Poznań Słupsk 5. Piła Koszalin 6. Szczecin Szczecin 7. Koszalin Piła 8. Słupsk Poznań 9. Bytów Bydgoszcz 10. Kościerzyna Toruń Całkowita trasa 960,42 km Rys 7. Wizualizacja trasy kuriera 13
Bibliografia I. http://www.mm.pl/~sielim/genetic/gen_komi.htm - dostęp 22.03.2017 II. http://www.algorytm.org/algorytmy-grafowe/problemkomiwojazera.html - dostęp 22.03.2017 14
Dziękuję za uwagę! 15