Concorde TSP Solver (tsz. Concorde TSP Solvers)
A Travelling Salesman Problem célja:
Megtalálni azt a legrövidebb kört, amely minden csúcsot pontosan egyszer érint, majd visszatér a kezdőpontra.
Ez egy klasszikus NP-hard probléma – nem ismerünk polinomiális idejű algoritmust az általános esetre.
Concorde TSP Solver egy:
👉 Használ cutting plane, branch-and-bound, linear programming, és heurisztikák kombinációját.
Funkció | Részletek |
---|---|
✅ Pontos TSP megoldás | Optimális megoldás garantált |
✅ Heurisztikus módszerek | Pl. Lin-Kernighan, gyors approximáció |
✅ Fájlformátum támogatás | TSPLIB, .tsp , .tour
|
✅ LP/ILP motor | CPLEX támogatás (opcionálisan) |
✅ Programozható könyvtárként | Használható Pythonból, C-ből |
✅ Támogatja a városok koordinátáit, távolságmátrixokat is |
# Letöltés és fordítás
git clone http://www.math.uwaterloo.ca/tsp/concorde.html
cd concorde
./configure
make
⚠️ A telepítés CPLEX és QSopt LP solver nélkül is működik, de lassabb lehet.
NAME: simple TYPE: TSP DIMENSION: 4 EDGE_WEIGHT_TYPE: EUC_2D NODE_COORD_SECTION 1 0 0 2 0 1 3 1 0 4 1 1 EOF
./concorde -o output.tour input.tsp
Ez:
input.tsp
fájlt,output.tour
fájlba.
Ha nem akarsz nyers C-vel dolgozni, létezik Python wrapper is, pl.:
pip install python-tsp
from python_tsp.exact import solve_tsp_dynamic_programming
import numpy as np
distance_matrix = np.array([
,
,
,
])
perm, dist = solve_tsp_dynamic_programming(distance_matrix)
print("Optimális sorrend:", perm)
print("Teljes távolság:", dist)
☝️ A Python-könyvtár nem Concorde, de hasonló szemléletű megoldásokat nyújt kisebb méretre.
Terület | Példa |
---|---|
Logisztika | Szállítási útvonal-optimalizálás |
Gyártás | Gépútvonalak optimalizálása |
PCB-tervezés | Forrasztópontok optimális bejárása |
DNS szekvenálás | Rövid szekvenciák sorrendbe állítása |
Robotika | Útvonaltervezés mozgó robotoknál |
✅ Előnyök | ❌ Hátrányok |
---|---|
Optimalitás garantált | Nagy példákra számításigényes |
Erősen optimalizált | Nehéz módosítani/értelmezni C forrásban |
Bizonyításokat is ad | Nehéz beépíteni más nyelvekbe natívan |
Jellemző | Leírás |
---|---|
Név | Concorde TSP Solver |
Kategória | Kombinatorikus optimalizálás |
Használat | TSP pontos megoldása |
Nyelv | C |
Platform | Linux, Mac, részlegesen Windows |
Alternatívák | LKH, OR-Tools, python-tsp |
Weboldal | http://www.math.uwaterloo.ca/tsp/concorde.html |