|
|
|
|
1
|
# PEA 2 Plus – tabu search dla TSP
|
1
|
# PEA 2 Plus – tabu search dla TSP
|
2
|
-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 standardzie C++11 bez używania bibliotek specyficznych dla konkretnego systemu operacyjnego, powinno dać się go skompilować na Windowsie, chociaż sam nie próbowałem.
|
|
|
|
|
2
|
+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.
|
|
|
3
|
+
|
|
|
4
|
+__Kompilacja__
|
|
|
5
|
+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:
|
|
|
6
|
+```
|
|
|
7
|
+make
|
|
|
8
|
+```
|
|
|
9
|
+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ć.
|
3
|
|
10
|
|
4
|
__Elementy programu__
|
11
|
__Elementy programu__
|
5
|
* interfejs grafu – klasa abstrakcyjna Graph
|
12
|
* interfejs grafu – klasa abstrakcyjna Graph
|
|
|
|
|
23
|
* kadencja na liście tabu dobierana automatycznie (liczba wierzchołków zaokrąglona w dół do najbliższej dziesiątki) lub konfigurowana ręcznie
|
30
|
* kadencja na liście tabu dobierana automatycznie (liczba wierzchołków zaokrąglona w dół do najbliższej dziesiątki) lub konfigurowana ręcznie
|
24
|
|
31
|
|
25
|
__Parametry wywołania programu:__
|
32
|
__Parametry wywołania programu:__
|
26
|
-* -t – liczba wątków tabu search (domyślnie 2)
|
|
|
27
|
-* -l – użycie listowej reprezentacji grafu (zamiast macierzowej)
|
|
|
28
|
-* -fmatrix – wczytanie pliku w formacie FULL_MATRIX przy uruchamianiu programu
|
|
|
29
|
-* -feuc2d – wzytanie pliku w formacie EUC_2D przy ładowaniu programu
|
|
|
|
|
33
|
+* `-t [liczba]` – liczba wątków tabu search (domyślnie 2)
|
|
|
34
|
+* `-l` – użycie listowej reprezentacji grafu (zamiast macierzowej)
|
|
|
35
|
+* `-fmatrix [ścieżka]` – wczytanie pliku w formacie FULL_MATRIX przy uruchamianiu programu
|
|
|
36
|
+* `-feuc2d [ścieżka]` – wzytanie pliku w formacie EUC_2D przy ładowaniu programu
|
30
|
|
37
|
|
31
|
__Osiągi tabu search na moim laptopie – 2 wątki:__
|
38
|
__Osiągi tabu search na moim laptopie – 2 wątki:__
|
32
|
(1x Intel Core i5-2520M @ 2.5 GHz, 8 GB RAM, macOS 10.13.6)
|
39
|
(1x Intel Core i5-2520M @ 2.5 GHz, 8 GB RAM, macOS 10.13.6)
|