tło
Problem komiwojażera (TSP) prosi o najkrótszym obwodzie, które odwiedza dany zbiór miast. Na potrzeby tego pytania miasta będą punktami na płaszczyźnie, a odległości między nimi będą zwykłymi odległościami euklidesowymi (zaokrąglonymi do najbliższej liczby całkowitej). Obwód musi być „w obie strony”, co oznacza, że musi wrócić do miasta początkowego.
Concorde TSP Solver może rozwiązać wystąpień euklidesowej problemu komiwojażera, dokładnie i dużo szybciej niż można by się spodziewać. Na przykład Concorde był w stanie rozwiązać dokładnie 85.900 punktów , których części wyglądają tak:
Jednak niektóre instancje TSP trwają zbyt długo, nawet w przypadku Concorde. Na przykład nikt nie był w stanie rozwiązać tej 100 000-punktowej instancji na podstawie Mona Lisa . (Jeśli możesz rozwiązać ten problem, otrzymasz nagrodę w wysokości 1000 $!)
Concorde jest dostępny do pobrania jako kod źródłowy lub plik wykonywalny. Domyślnie używa wbudowanego solwera programu liniowego (LP) QSopt , ale może także używać lepszych solverów LP, takich jak CPLEX.
Wyzwanie
Jaka jest najmniejsza generowana instancja TSP, której rozwiązanie zajmuje Concorde dłużej niż pięć minut ?
Możesz napisać program, który wyświetli instancję lub użyć dowolnej innej metody.
Punktacja
Im mniej punktów w instancji, tym lepiej. Więzy zostaną zerwane przez rozmiar pliku instancji (patrz poniżej).
Normalizacja
Różne komputery działają szybciej lub wolniej, więc użyjemy serwera NEOS dla Concorde jako standardu pomiaru czasu wykonywania. Możesz przesłać listę punktów w następującym prostym formularzu współrzędnych 2D:
#cities
x_0 y_0
x_1 y_1
.
.
.
x_n-1 y_n-1
Ustawienia, które powinny być używane w NEOS to: „Dane Concorde (plik xy-list, norma L2)”, „Algorytm: Concorde (QSopt)” i „Losowe ziarno: naprawione”.
Linia bazowa
Instancja 1889 punkt rl1889.tsp
z TSPLIB odbywa „Całkowity czas trwania: 871.18 (s)”, który jest więcej niż pięć minut. To wygląda tak: