Pokazano tutaj kolejny kompletny przykład obliczeń dla TSP, rozpoczynając od wprowadzenia danych a kończąc na wydruku tabeli z odległościami i czasami przejazdów. Zestaw danych to 30 miejscowości w Polsce, położonych na południu kraju. Przykład ponownie pokazuje sposób pracy z programem i jego możliwości.

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 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 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). 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. Formaty zapisu pliku są dostępne w przykładowych plikach.



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



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. 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 dialogowe 'Lokalizacje i trasa'. Mamy do wyboru 3 opcje: 

1. pokazanie lokalizacji na mapie

2. pokazanie lokalizacji i początkowej trasy na mapie

3. rezygnacja z generacji mapy

W okienku umieszczona jest również informacja o możliwych opłatach.



Jeżeli wybrana zostanie opcja pierwsza, to program pokaże kolejny ekran z prezentacją wszystkich lokalizacji na mapie.



Jeśli zostanie wybrana opcja 'Lokalizacje i trasę na mapie',



to program wyświetli trasę początkową (początkowa kolejność lokalizacji, przed optymalizacją), w wersji uproszczonej:



oraz w wersji rzeczywistej (początkowa kolejność lokalizacji, przed optymalizacją), jak pokazano poniżej:


Po wprowadzeniu danych można przejść do zakładki 'Podgląd', w której można przeglądnąć 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 [...]. 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 'Podgląd' lub odpowiadającą mu ikonkę na pasku narzędzi. Na ekranie zostaje wyświetlone okienko 'Podgląd tras', w którym należy wskazać typ zadania (TSP czy CVRP) oraz zaznaczyć lub nie opcje 'pokaż punkty' i 'opisz punkty'.



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_k30_1.txt'. W nazwie zawarta jest informacja o ilości lokalizacji (30) oraz numer porządkowy (1), który wskazuje kolejne, poprawiające się rozwiązania. Im wyższy numer tym rozwiązanie lepsze. Wybrano niewłaściwy plik. Proszę wybrać plik typu 'wyn_xTSP_k_x.txt'



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



Można również wyszukać najlepsze rozwiązanie, uruchamiając opcję 'Wyszukaj' 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 może uruchomić 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. Jeśli katalog roboczy jest znany wówczas bezpośrednio, na ekranie, wyświetlana jest informacja o najlepszym rozwiązaniu. 



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 możemy wysłać tabelkę na drukarkę lub do pliku '*.pdf'.



Na rysunku poniżej pokazano wydruk strony pliku pdf.



Korzystając z przycisku Pokaż na mapie, w okienku 'Wyniki optymalizacji' (lub z ikonki 'Mapa' ewentualnie z opcji 'Wyniki | Pokaż na mapie') można wygenerować mapę, z pokazanym całym zestawem lokalizacji oraz trasą przejazdu po optymalizacji, w wersji uproszczonej:



i rzeczywistej:


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 . Program ostrzega o ewentualnych kosztach oraz pyta czy uruchomić wyznaczanie odległości i czasów przejazdu.



Jeżeli wybrany zostanie przycisk Tak wówczas program uruchomi 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ź, 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.



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 Myślenic i na tej lokalizacji się kończy. 



Jeśli zmienimy czas rozpoczęcia trasy i | lub średni czas obsługi, program wykona odpowiednie korekty w czasie realizacji poszczególnych lokalizacji oraz zmodyfikuje 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).