|
5 年之前 | |
---|---|---|
.gitignore | 5 年之前 | |
ArrayGraph.cpp | 5 年之前 | |
ArrayGraph.h | 5 年之前 | |
Graph.cpp | 5 年之前 | |
Graph.h | 5 年之前 | |
LICENSE | 5 年之前 | |
ListGraph.cpp | 5 年之前 | |
ListGraph.h | 5 年之前 | |
Makefile | 5 年之前 | |
README.md | 5 年之前 | |
Stopwatch.cpp | 5 年之前 | |
Stopwatch.h | 5 年之前 | |
berlin52.tsp.gz | 5 年之前 | |
ftv33.atsp.gz | 5 年之前 | |
ftv47.atsp.gz | 5 年之前 | |
ftv64.atsp.gz | 5 年之前 | |
pea2plus.cpp | 5 年之前 | |
swiss42.tsp.gz | 5 年之前 |
Rozwinięcie drugiego projektu na kurs Projektowanie efektywnych algorytmów na PWr w 2017 – implementacja algorytmu przeszukiwania lokalnego z zakazami (tabu search) dla problemu komiwojażera (TSP) dostosowana do pracy wielowątkowej oraz (dodatkowo) algorytmów z pierwszego projektu – przegląd zupełny (brute force), podział i ograniczenia (branch and bound). Program jest napisany w czystym standardzie C++11 bez używania bibliotek specyficznych dla konkretnego systemu operacyjnego.
Kompilacja
Na systemach uniksowych do kompilacji potrzebny jest kompilator G++ lub Clang i program make. W dystrybucjach Linuxa z rodziny Ubuntu/Debiana wszystkie potrzebne narzędzia można zainstalować z pakietu build-essential
. Na macOS potrzebne narzędzia można zainstalować poleceniem xcode-select --install
. Aby skompilować program, w katalogu głównym projektu należy użyć polecenia:
make
Ponieważ program jest napisany jako wieloplatformowy, powinno dać się go skompilować bez problemu również na Windowsie po zaimportowaniu wszystkich plików do Visual Studio, chociaż sam nie próbowałem tego robić.
Elementy programu
Charakterystyka tabu search:
Parametry wywołania programu:
-t [liczba]
– liczba wątków tabu search (domyślnie 2)-l
– użycie listowej reprezentacji grafu (zamiast macierzowej)-fmatrix [ścieżka]
– wczytanie pliku w formacie FULL_MATRIX przy uruchamianiu programu-feuc2d [ścieżka]
– wzytanie pliku w formacie EUC_2D przy ładowaniu programuOsiągi tabu search na moim laptopie – 2 wątki:
(1x Intel Core i5-2520M @ 2.5 GHz, 8 GB RAM, macOS 10.13.6)
Osiągi tabu search na serwerze panamint.kcir.pwr.edu.pl – 64 wątki:
(4x AMD Opteron 6276 @ 2.3 GHz, 256 GB RAM, Debian Linux 9)
Dane testowe pochodzą ze strony:
http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/
Poza ftv70 (kadencja 60), wszystkie testy zostały przeprowadzone z automatycznie ustawioną kadencją.