Ten fragment pomocy dotyczy przykładowych obliczeń SD-MTSP (Single Depot Multiple Traveling Salesman Problem). Pierwsza część zawiera obliczenia TSP dla 60 lokalizacji, w południowej Polsce. Druga przedstawia sposób realizacji obliczeń dla SD-MTSP. Cały proces rozpoczyna się od wprowadzenia danych a kończy na wydruku tabel z odległościami i czasami przejazdów. Jeśli czas realizacji trasy, po wykonaniu obliczeń TSP, jest za długi, to opcja SD-MTSP jest w tym przypadku dobrym rozwiązaniem. Pozwala podzielić początkowy zestaw lokalizacji na określoną ilość podzbiorów i wyznaczyć optymalne trasy dla każdego z nich (ilość podtras to ilość pojazdów | kierowców).

Po uruchomieniu programu należy wybrać opcję Oblicz lub odpowiadającą jej ikonkę . Na ekranie pojawia się okienko dialogowe 'Typ obliczeń i parametry', w którym jeśli nie mamy przygotowanych wcześniej danych, należy wybrać zakładkę 'Dane'.



W zakładce 'Dane' wybieramy przycisk TSP, który powoduje wyświetlenie kolejnego okienka dialogowego 'Dane TSP'. W okienku tym mamy do wyboru dwie możliwości: 'Dane na podstawie mapy' i 'Inne zestawy danych'. Pierwsza opcja pozwala na budowę zestawu lokalizacji w oparciu o wprowadzane lub wczytane z pliku adresy i interakcję z Google API. Druga opcja dotyczy przypadków wprowadzenia lub wczytania z pliku, dowolnego zestawu współrzędnych (lokalizacji), na których program wykona obliczenia optymalnych tras.



Po wybraniu pierwszej opcji, na ekranie pojawia się okienko 'Wprowadzanie danych dla TSP (mapa)'. Mamy tutaj dwie zasadnicze drogi wprowadzania danych. Pierwsza to wpisywanie adresów lokalizacji a druga, to wczytanie, wcześniej przygotowanych adresów z pliku.



W pierwszym wariancie wpisujemy adres lokalizacji do pola edycyjnego 'Adres (np. Warszawa...)'. Wzór adresu mamy w opisie pola edycyjnego (miejscowość, ulica, nr budynku). Dane adresowe mogą być dokładniejsze (kod pocztowy, województwo), szczególnie jeśli nazwy miejscowości się powtarzają. Po każdym wpisaniu adresu należy go dodać do zestawu adresów przyciskiem Dodaj. Po dodaniu lokalizacji zmienia się zawartość pola 'Licznik' - ilość lokalizacji w zestawie. Jeśli chcemy usunąć aktualny wpis to korzystamy z przycisku Kasuj. W drugim przypadku wprowadzania lokalizacji wybieramy przycisk Z pliku i wówczas pojawia się standardowe okienko 'Otwórz', w którym wybieramy, z dowolnego miejsca na dysku, plik (z rozszerzeniem *. txt), z wstępnie przygotowanymi adresami lokalizacji. Format zapisu pliku tekstowego (na przykład z wykorzystaniem Notatnika systemowego) jest bardzo prosty - w każdym wierszu kolejny adres.



Po wybraniu pliku, jego zawartość jest wczytywana a pole licznika lokalizacji w zestawie zmienia się odpowiednio (tutaj 60).



Niezależnie z której wersji wprowadzania danych skorzystamy, w każdej chwili można podglądnąć zestaw lokalizacji korzystając z przycisku Pokaż wprowadzone adresy. Po użyciu tego przycisku, na ekranie wyświetlane jest kolejne okienko 'Wybrane adresy', w którym mamy pokazany cały zestaw dotychczas wprowadzonych adresów lub zawartość wczytanego pliku. Okienko to pozwala na modyfikację adresów lub ich usuwanie. Wystarczy przejść do wybranego rekordu, wprowadzić poprawki - zmodyfikować adres lub nacisnąć przycisk Kasuj - usunąć rekord. Po naciśnięciu przycisku Zakończ, wprowadzone zmiany będą zapamiętane a program powróci do okienka 'Wprowadzanie danych dla TSP (mapa)'.



Użycie przycisku Zakończ, w okienku dialogowym 'Wprowadzanie danych dla TSP (mapa)', powoduje uruchomienie współpracy programu z API Google. Dla zestawu adresów wyznaczane są długości i szerokości geograficzne a na ich podstawie program wylicza współrzędne X, Y poszczególnych lokalizacji. W zależności od ilości lokalizacji operacje te zajmują od kilku do kilkunastu sekund - należy poczekać. Po wykonaniu przeliczeń na ekranie jest prezentowane okienko 'Wybór punktów trasy', w którym znajdują się wszystkie adresy lokalizacji, długości i szerokości geograficzne oraz współrzędne X, Y. Druga kolumna w tabeli pozwala dodatkowo zaznaczyć lub odznaczyć wybrany rekord, który będzie uwzględniany dalej w obliczeniach lub nie.



Jeśli zamkniemy okienko 'Wybór punktów trasy' przyciskiem Zatwierdź, to na ekranie pojawia się kolejne okienko 'Lokalizacje i trasa'. W górnej części okienka jest umieszczony komunikat: 'Opcja korzysta z Google API - możliwa opłata' oraz pytanie 'Co należy pokazać'.  Mamy tutaj do wyboru 3 warianty: 'Lokalizacje na mapie', 'Lokalizacje i trasę na mapie' oraz 'Nie generuj mapy'. 



Jeżeli wybierzemy pierwszą opcję, to program pokaże kolejny ekran z prezentacją wszystkich lokalizacji na mapie.



Program może również wyświetlić trasę początkową (z losową kolejnością lokalizacji, przed optymalizacją).



Taką trasę pokazano poniżej:


Po wprowadzeniu i wizualizacji danych można przejść do zakładki 'Podgląd', za pomocą której prezentuje się położenie lokalizacji w układzie współrzędnych XY. W polu edycyjnym 'Plik danych' pojawia się automatycznie plik wygenerowany podczas pracy z zakładką 'Dane'. Można oczywiście wpisać lub wkleić inną ścieżkę do pliku lub wybrać ją za pomocą przycisku wyboru pliku [...]. Zakładka 'Podgląd' ma również dwa dodatkowe pola wyboru 'Pokaż punkty' (włączone i niedostępne) oraz 'Opisz punkty' - lokalizacje mogą być opisane kolejnymi numerami w zestawie.



Wybranie przycisku Zatwierdź powoduje wyświetlenie wszystkich lokalizacji w układzie współrzędnych XY. 



W kolejnej zakładce okienka dialogowego 'Typ obliczeń i parametry', czyli zakładce TSP, możemy uruchomić obliczenia optymalizacyjne tras. Jeśli plik z danymi był wcześniej opracowany w zakładce Dane, to po przejściu do tej opcji, ścieżka do pliku danych jest automatycznie wczytywana do pola 'Plik danych'. Akceptując, przyciskiem Zatwierdź, wstępnie ustawione parametry obliczeń można natychmiast rozpocząć poszukiwanie najlepszych tras.



Opis wszystkich pól oraz parametrów zakładki TSP można znaleźć tutaj. Po wybraniu przycisku Zatwierdź, program rozpoczyna obliczenia optymalizacyjne. Po wykonaniu obliczeń, na ekranie pojawia się krótki komunikat.


Chcąc zobaczyć najlepsze rozwiązanie należy wybrać opcję menu 'Wyniki | Podgląd trasy' lub odpowiadającą mu ikonkę na pasku narzędziowym. Na ekranie zostaje wyświetlone okienko 'Podgląd tras', w którym należy wskazać typ zadania (TSP, SD-MTSP, MD-MTSP czy CVRP) oraz zaznaczyć lub nie opcje 'pokaż punkty' i 'opisz punkty'.



Po wybraniu przycisku Zatwierdź, w kolejnym kroku pojawia się okienko 'Otwórz', gdzie można wskazać plik danych z optymalnym rozwiązaniem. Plik taki ma nazwę początkowego pliku użytego do obliczeń plus oznaczenie '_opt'. Na przykład plik użyty do obliczeń 'nowy.txt', to plik z optymalnym rozwiązaniem ma nazwę 'nowy_opt.txt'. Plik taki może być punktem startowym do kolejnych obliczeń optymalizacyjnych. W katalogu mogą występować również pliki typu 'wyn_TSP_nowy_k60_1.txt'. W nazwie zawarta jest informacja o ilości lokalizacji (60) oraz numer porządkowy (1), który wskazuje kolejne, poprawiające się rozwiązania. Im wyższy numer tym rozwiązanie lepsze.



Trasa dla optymalnego rozwiązania zostaje wyświetlona (program korzysta z pliku '_opt').



Można również wyszukać najlepsze rozwiązanie, uruchamiając opcję 'Wyniki | Wyszukaj najlepsze rozwiazanie' lub ikonkę z lupką. Na ekranie wyświetlone zostaje okienko dialogowe 'Wyszukiwanie najlepszych rozwiązań', w którym wybieramy zadanie TSP.



Po zatwierdzeniu wyboru program uruchamia okienko 'Wybierz katalog', w którym należy wskazać odpowiedni katalog z wynikami obliczeń.



Program przeszukuje katalog roboczy w celu znalezienia najlepszego rozwiązania i podaje minimalną długość trasy oraz nazwę pliku ze szczegółowymi wynikami.



Po naciśnięciu przycisku OK, na ekranie wyświetlana jest zawartość pliku z wynikami.



Można również wyświetlić wyniki w postaci tabelarycznej korzystając z opcji 'Wyniki | Pokaż wyniki'  lub ikonki . Na ekranie jest wyświetlana tabela z wynikami, jak pokazano poniżej.



Korzystając z przycisku Drukuj, w okienku 'Wyniki optymalizacji', możemy wysłać tabelkę na drukarkę lub do pliku '*.pdf'.



Na rysunku poniżej pokazano wydruk pierwszej strony pliku pdf.



Jeśli użyjemy w okienku 'Wyniki optymalizacji' przycisku Pokaż na mapie, to zostanie wyświetlona mapa z całym zestawem lokalizacji oraz trasą przejazdu, po optymalizacji. Identyczny efekt można uzyskać korzystając z opcji menu 'Wyniki | Pokaż na mapie' lub ikonki , na pasku narzędziowym. Dla dużej ilości lokalizacji, poszczególne miejscowości są łączone na mapie symbolicznie odcinkami. W obliczeniach optymalizacyjnych wykorzystywane są dokładne dane, uzyskiwane z Google API. Zatem przebieg i długość trasy między poszczególnymi lokalizacjami jest dokładnie taka, jaką można uzyskać na przykład podczas wyznaczania trasy przejazdu między dwiema miejscowościami, z wykorzystaniem mapy Google.



Na tle mapy, pojawia się również okienko systemowego Notatnika z informacją o dostępności mapy na serwerze (po wygenerowaniu mapy program wysyła ją na serwer). Po uruchomieniu mapy, na dowolnym urządzeniu, można z niej korzystać w tradycyjny sposób.


Odległości i czasy przejazdów dla rozwiązania optymalnego można wyznaczyć korzystając z opcji 'Wyniki | Odległości i czasy'  lub ikonki . Jeżeli wybrana zostanie taka opcja, to wówczas program uruchamia obliczenia (z wykorzystaniem Google API). Jako pierwsze pojawia się okienko dialogowe, w którym należy podać datę i czas wyjazdu oraz średni czas obsługi. Parametry te będą wykorzystane do właściwego oszacowania odległości i czasów przejazdu między poszczególnymi lokalizacjami na trasie. W każdej kolejnej lokalizacji aktualizowany jest czas wyjazdu co pozwala na dokładniejsze wyznaczenie czasu przejazdu tego odcinka trasy (Google API uwzględnia natężenie ruchu w zależności od dnia i godziny).


Początkowo w okienku zgłasza się aktualna data. Jeśli mamy wyjazd zaplanowany na inny dzień, możemy wpisać nową datę (format: rrrr.mm.dd) lub skorzystać z przycisku Kalendarz. Pojawia się wówczas dodatkowe okienko, w którym możemy wybrać inną datę. Nie może to być data wcześniejsza niż aktualna, podobnie jak i czas wyjazdu, który musi być późniejszy od aktualnego. Po zatwierdzeniu przyciskiem OK, nowa data zostaje wprowadzona do kontrolki daty i uwzględniona w obliczeniach.



Po wybraniu przycisku Zatwierdź (w okienku 'Data i czas wyjazdu') uruchomione zostaną obliczenia a wyniki wkrótce pojawią się na ekranie. W górnej części tabeli wyników można modyfikować czas rozpoczęcia podróży oraz średni czas obsługi, w punktach pośrednich. Zmiany dokonane tutaj mogą pogorszyć jakość wyników. W tej chwili program nie przelicza ponownie trasy a jedynie modyfikuje czasy realizacji. 

Środkowa część tabeli zawiera kolejny numer adresu (kolejność optymalna), adres, odległość w [km], czas przejazdu pomiędzy dwoma lokalizacjami w [min] oraz całkowity czas przejazdu od punktu początkowego do danej lokalizacji, z uwzględnieniem średniego czasu obsługi.



Dolna część tabeli zawiera podsumowanie ilości kilometrów trasy, całkowitego czasu przejazdu (w min) oraz całkowitego czasu przejazdu z uwzględnieniem czasów obsługi. Trasa rozpoczęła się od Katowic i na tej lokalizacji się kończy. Kolejne okienko przedstawia ostatnie lokalizacje na trasie.



Jeśli zmienimy czas rozpoczęcia trasy i | lub średni czas obsługi, program wykona odpowiednie korekty w czasie realizacji poszczególnych lokalizacji oraz skoryguje całkowity czas realizacji trasy.


Korzystając z przycisku Drukuj możemy wysłać tabelkę na drukarkę lub do pliku 'pdf', jak pokazano poniżej.



Na kolejnym rysunku pokazano pierwszą stronę wydruku tabelki z adresami, odległościami i czasami przejazdu (dla założonego średniego czasu obsługi równego 5 min).



Po zamknięciu okienka ' Odległości i czasy przejazdów', na ekranie pojawia się okienko informacyjne, co należy zrobić w przypadku za długiego czasu realizacji trasy.



Jeśli użytkownik zdecyduje się na podział trasy na kilka mniejszych, to może skorzystać z zakładki SD-MTSP (Oblicz | zakładka SD-MTSP). W zakładce SD-MTSP, można uruchomić obliczenia optymalizacyjne tras, dla wielu pojazdów równocześnie. Jeśli plik z danymi był wcześniej opracowany w zakładce Dane lub przechodzi się tutaj po obliczeniach TSP, to po wejściu do tej opcji, ścieżka do pliku danych jest automatycznie wczytywana do pola 'Plik danych'. Opis wszystkich pól oraz parametrów zakładki SD-MTSP można znaleźć tutaj. Akceptując, przyciskiem Zatwierdź, wstępnie ustawione parametry obliczeń, można przejść do okienka 'Podział lokalizacji na mniejsze zestawy'.




Aktualną ilość lokalizacji można podzielić na wybraną ilość zestawów lub poprzez określenie maksymalnej ilości lokalizacji w zestawie, program może ustawić odpowiednią ilość zestawów. 



Uruchomienie przycisku Zatwierdź powoduje start obliczeń optymalizacyjnych. Czas obliczeń zależy od wielu czynników a głównie od złożoności problemu oraz wybranej ilości powtórzeń. Po zakończeniu obliczeń, wybierając opcję menu 'Wyniki | Podgląd trasy' lub odpowiadającą mu ikonkę na pasku narzędziowym, generujemy nowe okienko dialogowe: 'Podgląd tras'. W okienku tym należy wskazać typ zadania (TSP, SD-MTSP, MD-MTSP czy CVRP), zaznaczyć lub nie opcje 'pokaż punkty' i 'opisz punkty' i nacisnąć przycisk Zatwierdź.



W kolejnym kroku pojawia się okienko 'Otwórz', gdzie można wskazać plik danych z optymalnym rozwiązaniem. Plik taki ma nazwę 'wyn_SD-MTSP_k_x.txt' z największą wartością 'x' lub 'x_p1' lub 'x_p2'. Im wyższy numer ('x') tym rozwiązanie lepsze. W katalogu mogą występować również inne pliki na przykład typu 'wyn_TSP_nowy_xxx.txt' (dotyczące wyników TSP). W przypadku wybrania niewłaściwego pliku, program informuje o tym odpowiednim komunikatem.


Na ekranie wyświetlane jest optymalne rozwiązanie, w tym przypadku dla 3 tras zastępujących pojedynczą trasę początkową. Każda z tras oznaczona jest innym kolorem a poszczególne lokalizacje mają przydzielone numery (oznaczenia miejscowości).



Można również wyszukać najlepsze rozwiązanie, uruchamiając opcję 'Wyniki | Wyszukaj najlepsze rozwiązanie' lub ikonkę z lupką. Należy tutaj wskazać typ zadania.



Po zatwierdzeniu wyboru program uruchamia okienko 'Wybierz katalog', w którym należy wskazać odpowiedni katalog z wynikami obliczeń.



Program przeszukuje wybrany katalog w celu znalezienia najlepszego rozwiązania i podaje minimalną długość sumarycznej trasy (3 tras) oraz nazwę pliku ze szczegółowymi wynikami.



Po naciśnięciu przycisku OK, na ekranie wyświetlana jest zawartość pliku z wynikami. Podana jest miedzy innymi minimalna sumaryczna długość tras oraz szczegółowe informacje dla każdej z tras składowych (minimalna długość, ilość lokalizacji i kolejność lokalizacji na trasie).



Wyniki można wyświetlać w postaci tabelarycznej korzystając z opcji menu 'Wyniki | Pokaż wyniki'  lub ikonki . Poniżej przedstawiono przykładowe wyniki dla zestawu miejscowości z pierwszej trasy.



Wyniki można wyświetlać na mapie korzystając z przycisku Pokaż na mapie, w okienku 'Wyniki optymalizacji', albo z opcji menu 'Wyniki | Pokaż na mapie' lub ikonki . Poniżej, na mapie, przedstawiono wyznaczoną trasę nr 1. Na tle mapy, pojawia się również okienko systemowego Notatnika z informacją o dostępności mapy na serwerze (po wygenerowaniu mapy program wysyła ją na serwer). Po uruchomieniu mapy, na dowolnym urządzeniu, można z niej korzystać w tradycyjny sposób.



Po zamknięciu okienka 'Wyniki optymalizacji', dla pierwszej trasy, na ekranie pojawia się nowe okienko dialogowe 'Wyniki optymalizacji' dla trasy nr 2. 



Poniżej, na mapie, przedstawiono wyznaczoną trasę nr 2. Na tle mapy, pojawia się również kolejne okienko systemowego Notatnika z informacją o dostępności mapy na serwerze. 



Po zamknięciu kolejnego okienka 'Wyniki optymalizacji', dla trasy nr 2, na ekranie pojawia się nowe okienko dialogowe 'Wyniki optymalizacji' dla trasy nr 3. 



Trasę nr 3 pokazano na kolejnej mapie wraz z okienkiem Notatnika systemowego, z informacją o dostępności mapy na serwerze. 



Korzystając z przycisku Drukuj możemy również wysłać dane z tabel na drukarkę lub do pliku '*.pdf'. Przykładowo pokazano to dla trasy nr 3.



Na rysunku poniżej pokazano zrzut ekranu pliku 'pdf'.


Odległości i czasy przejazdów dla rozwiązań optymalnych można wyznaczyć (obliczenia z wykorzystaniem Google API) korzystając z opcji 'Wyniki | Odległości i czasy'  lub ikonki . W górnej części tabeli wyników można wybrać czas rozpoczęcia podróży oraz średni czas obsługi, w punktach pośrednich. Środkowa część tabeli zawiera kolejny numer adresu (kolejność optymalna), adres, odległość w [km], czas przejazdu pomiędzy dwoma lokalizacjami oraz całkowity czas przejazdu od punktu początkowego do danej lokalizacji, z uwzględnieniem średniego czasu obsługi. Dolna część tabeli zawiera podsumowanie ilości kilometrów trasy, całkowitego czasu przejazdu (w min) oraz całkowitego czasu przejazdu, z uwzględnieniem czasów obsługi. 

Poniżej przedstawiono przykładowe wyniki dla trasy nr 1. Trasa rozpoczęła się od Katowic i na tej lokalizacji się kończy.



Wyliczoną trasę można wydrukować lub zapisać do pliku 'pdf'.



Na kolejnym rysunku pokazano stronę wydruku tabelki z adresami, odległościami i czasami przejazdu na trasie nr 1 (dla założonego średniego czasu obsługi równego 10 min).



Dla trasy nr 2, tabela odległości i czasów przejazdu została przedstawiona poniżej.




Tabela odległości i czasów przejazdu dla ostatniej trasy (nr 3) jest następująca: