A Traveling Salesman Problem (gyakran TSP) egy klasszikus algoritmikus probléma a számítástechnika és az operációkutatás területén. Az optimalizálásra összpontosít: adott pontok (vagy városok) és a köztük lévő távolságok ismeretében meg kell találni azt az utat (körutat), amely minden pontot pontosan egyszer érint és minimális össztávolsággal rendelkezik. Legegyszerűbben egy csomópontok halmazának helyét leíró gráfként fejezhető ki: a gráf teljes, élei súlyozottak, és a cél egy minimális súlyú Hamilton-kör megtalálása.
Rövid történet
Az utazó ügynök problémáját az 1800-as években W. R. Hamilton (William Rowan Hamilton) ír matematikus és Thomas Kirkman brit matematikus tette ismertté. A Hamilton-féle Icosian Game egy szabadidős rejtvény volt, amely egy Hamilton-ciklus megtalálásán alapult. Úgy tűnik, hogy a TSP általános formáját először matematikusok tanulmányozták az 1930-as években Bécsben és a Harvardon, nevezetesen Karl Menger. Menger definiálja a problémát, megvizsgálja a nyilvánvaló nyers erővel megoldható algoritmust, és megfigyeli a legközelebbi szomszéd heurisztika nem optimális voltát:
Futárproblémának nevezzük (mivel a gyakorlatban ezt a kérdést minden postásnak, egyébként is sok utazónak kell megoldania) azt a feladatot, hogy figyelemszámú pontra, amelyek páros távolságai ismertek, meg kell találni a pontokat összekötő legrövidebb utat. Természetesen ez a feladat véges sok próbával megoldható. Olyan szabályok, amelyek a próbák számát az adott pontok permutációinak száma alá szorítanák, nem ismertek. Az a szabály, hogy a kiindulási pontból először a legközelebbi ponthoz, majd az ehhez legközelebbi ponthoz stb. kell menni, általában nem adja meg a legrövidebb utat.
Hassler Whitney a Princeton Egyetemen nem sokkal később bevezette az utazó ügynök problémáját. Azóta a TSP rengeteg elméleti eredmény és gyakorlati megoldóeszköz tárgya lett, és alapvető benchmarkként szolgál optimalizáló algoritmusok és heurisztikák teszteléséhez.
Formális definíció
Általános formában a TSP a következő: adott egy teljes, súlyozott gráf G = (V, E) és egy súlyfüggvény w: E → R+, találjuk meg azt a Hamilton-kört (azaz egy olyan zárt útvonalat, amely minden csúcsot pontosan egyszer látogat meg), amelynek az élsúlyok összege minimális. Gyakori speciális esetek:
- Symmetrikus TSP (STSP): a távolságok szimmetrikusak, w(u,v) = w(v,u).
- Aszimmetrikus TSP (ATSP): a távolságok irányfüggők, például irányított gráfként értelmezve.
- Metriás TSP: a távolságok teljesítik a háromszög-egyenlőtlenséget; ez gyakori a tényleges geometriai (pl. euklideszi) adatoknál.
- Euclidean TSP: pontok a síkon (vagy magasabb dimenzióban), távolságok euklidesziak — fontos speciális eset, amelyre hatékony közelítő eljárások léteznek.
Komplexitás és elméleti eredmények
- A TSP döntési változata (van-e olyan körút, amely súlya ≤ K?) NP-teljes. A (optimalizációs) TSP optimalizálása NP-nehéz feladat.
- Általános (nem-metriás) TSP-re nem ismert polinomidőben futó optimális algoritmus, és a probléma mérete gyorsan nő; emiatt gyakran közelítő algoritmusokat és heurisztikákat alkalmaznak.
- A Euclidean TSP-nek létezik PTAS (polynomial-time approximation scheme): Arora és Mitchell független munkái bizonyították, hogy tetszőlegesen jó közelítést lehet polinom időben elérni, ha a dimenzió rögzített.
Megoldási módszerek
Az alkalmazott módszerek két nagy csoportba sorolhatók: pontos (exact) algoritmusok, amelyek garantáltan optimális megoldást adnak, és közelítő vagy heurisztikus eljárások, amelyek gyorsak és gyakran jó (de nem mindig optimális) eredményt hoznak.
Pontos algoritmusok
- Bruteforce: összes permutáció kipróbálása — O(n!) idő; csak nagyon kis n-re használható.
- Dinamikus programozás (Held–Karp): O(n^2 2^n) idő és O(n 2^n) memória; sokkal jobb a bruteforce-nál, de még mindig exponenciális.
- Branch and bound: hatékony fa-alapú keresés, amely alsó becslésekkel metszi a keresési teret; nagy gyakorlati sikereket ért el közepes méretű példákon.
- Lineáris programozás és vágási síkok: az ILP-formuláció (subtour elimination constraints — körszétválasztó feltételek) kombinálása vágási síkokkal hatékony módszereket eredményezett; a Concorde nevű solver ilyen technikákat használ.
Közelítő algoritmusok és garanciák
- Christofides-algoritmus: metriás, szimmetrikus TSP-re 1,5-szeres közelítési garanciát ad (vagyis a megtalált körút hossza legfeljebb 1,5-szerese az optimálisnak).
- Általános aszimmetrikus esetekre és nem-metriás esetekre más közelítések és garanciák léteznek; a kutatás területén folyamatos előrelépések történnek a közelítési tényezők javításában.
Heurisztikák (praktikus, gyors módszerek)
- Legközelebbi szomszéd (Nearest Neighbor): egyszerű és gyors, de gyakran távol van az optimálistól.
- Beszúrásos módszerek (Nearest/Best insertion): pontok fokozatos hozzáadása egy részútvonalhoz.
- 2-opt, 3-opt: lokális keresés, amely élcserékkel javítja a kört; ezek nagyon hatékonyak gyakorlatban.
- Lin–Kernighan és variánsai: adaptív, erős lokális kereső, amely a legjobb ismert heurisztikák közé tartozik sok valós probléma esetén.
Gyakorlati eszközök és adatkészletek
- Concorde: nagyon hatékony pontos TSP-solver, amely kombinálja az ILP-, vágási sík- és branch-and-bound technikákat; gyakran használják rekordproblémák megoldására.
- TSPLIB: ismert benchmark-adatbázis valós és mesterséges TSP-példákkal, amely a kutatás és összehasonlítás alapját képezi.
Alkalmazások
A TSP nemcsak elméleti érdeklődés tárgya: számos gyakorlati probléma redukálható rá vagy jó analógia vele. Néhány példa:
- Logisztika és szállítmányozás (útvonaltervezés).
- Gyártás és gyártósor-optimalizáció (pl. hegesztési utak minimalizálása).
- Elektronikai áramkörök optimalizálása (drótok rendezése, nyomtatott áramköri lapok).
- Bioinformatika (például bizonyos genom-összeillesztési problémák közelítése).
- Robotika és path planning — több pont látogatása minimális energiával vagy idővel.
Összefoglalás és további olvasmány
A TSP egy egyszerűen megfogalmazható, de elméletileg és számítási szempontból nagy kihívást jelentő probléma. A kutatás kiterjed az egzakt algoritmusok fejlesztésétől a jobb közelítések és heurisztikák kidolgozásáig, valamint speciális esetek (például euklideszi TSP) hatékonyabb kezelhetőségére. Ha tovább szeretnél mélyedni a témában, érdemes megnézni klasszikus forrásokat (például könyveket az operációkutatásról és kombinatorikus optimalizálásról), a Concorde dokumentációját és a TSPLIB példáit.


