Problém cestujúceho predavača (často nazývaný TSP) je klasický algoritmický problém v oblasti informatiky a operačného výskumu. Je zameraný na optimalizáciu. V tomto kontexte lepšie riešenie zvyčajne znamená riešenie, ktoré minimalizuje celkové náklady — napríklad celkovú dĺžku trasy, čas alebo cenu. TSP možno formálne vyjadriť pomocou grafu: daný je súbor vrcholov (miest), medzi ktorými sú hrany s priradenými nákladmi (vzdialenosťami). Cieľom je nájsť Hamiltonov cyklus (trasu, ktorá navštívi každý vrchol presne raz a vráti sa do východzieho bodu) s minimálnym súčtom nákladov.

Historicky problém definovali v 19. storočí írsky matematik W. R. Hamilton a britský matematik Thomas Kirkman. Hamiltonova Icosova hra bola rekreačná hádanka založená na hľadaní Hamiltonovho cyklu. V modernej matematickej a algoritmickej podobe sa TSP začal seriózne študovať v 30. rokoch 20. storočia, napríklad vo Viedni a na Harvarde, pričom medzi priekopníkmi bol Karl Menger. Menger vo svojich poznámkach uvažoval o hrubom sile a upozorňoval na to, že jednoduché heuristiky nemusia viesť k optimu:

Problémom posla (keďže v praxi by túto otázku mal riešiť každý poštár, každopádne aj mnohí cestujúci) označujeme úlohu nájsť pre finitívne veľa bodov, ktorých párové vzdialenosti sú známe, najkratšiu trasu spájajúcu tieto body. Samozrejme, táto úloha je riešiteľná konečne mnohými pokusmi. Pravidlá, ktoré by stlačili počet pokusov pod počet permutácií daných bodov, nie sú známe. Pravidlo, že najprv treba ísť z východiskového bodu do najbližšieho bodu, potom do bodu, ktorý je k nemu najbližšie, atď. vo všeobecnosti nevedie k najkratšej trase.

Krátko po tom Hassler Whitney na Princetonskej univerzite zaviedol názov problém obchodného cestujúceho, ktorý sa ujal v literatúre a praxi.

Formálna definícia

Nech G = (V, E) je graf s množinou vrcholov V veľkosti n a množinou hrán E, ku každej hrane (i, j) je priradená nenegatívna váha c(i, j). TSP hovorí: nájdi permutáciu vrcholov π = (π1, π2, ..., πn) takú, že súčet c(πk, πk+1) pre k = 1..n-1 plus c(πn, π1) je minimálny. Ak je graf orientovaný alebo matica nákladov nie je symetrická (c(i, j) ≠ c(j, i)), hovoríme o asymetrickom TSP (ATSP); ak sú náklady symetrické, ide o symetrický TSP (STSP).

Zložitosť a teoretické vlastnosti

  • Výpočtová zložitosť: TSP je NP-ťažký a rozhodovací variant (existuje cyklus s dĺžkou ≤ K?) je NP-úplný. To znamená, že nie je známy polynomiálny algoritmus, ktorý by riešil všetky inštancie optimálne.
  • Rozličné varianty: metrický TSP (vzdialenosti spĺňajú trojuholníkovú nerovnosť), euclidovský TSP (vrcholy sú body v euklidovskom priestore), asymetrický TSP a ďalšie (s obmedzeniami, s viacerými oknami časov atď.).
  • Ďalšie vlastnosti: Pre metrický symetrický TSP existujú aproximačné algoritmy s garantovaným pomerom k optimu; pre generalizovaný (ne-metrický) TSP také záruky v polynomiálnom čase zvyčajne neexistujú (podmienene na P ≠ NP).

Metódy riešenia

Riešenie TSP v praxi závisí od veľkosti problému a požadovanej kvality výsledku. Hovoriť možno o dvoch hlavých skupinách metód: presné algoritmy a heuristiky (vrátane metaheuristík).

Presné algoritmy

  • Brutálna sila: prechádzanie všetkých n! permutácií — nepraktické už pre relatívne malé n.
  • Dynamic programming (Held–Karp): algoritmus s časovou zložitosťou O(n^2 2^n) a pamäťou O(n 2^n). Je omnoho rýchlejší než brutálna sila, ale stále exponenciálny; používa sa na stredne veľké inštancie.
  • Integer linear programming (ILP): formulácie s binárnymi premennými x_ij označujúcimi, či sa ide z i do j. Klasický prístup zahŕňa subtour elimination (eliminuje cykly, ktoré neobsahujú všetky vrcholy) alebo Miller–Tucker–Zemlin (MTZ) obmedzenia. Moderné solvery kombinujú vetvenie a hranie (branch-and-cut) s pridanými rezmi (cutting planes) a sú schopné vyriešiť veľké inštancie efektívne.

Heuristiky a metaheuristiky

  • Nearest neighbor (najbližší sused): jednoduchá a rýchla heuristika, často rýchlo poskytne prijateľné riešenie, ale bez garancie kvality (ako Menger už spomenul).
  • K-Opt lokálne vylepšovanie: napr. 2-opt, 3-opt — opakované zlepšovanie trasy výmenou k hrán, veľmi efektívne v praxi.
  • Lin–Kernighan heuristika: adaptívnejšia obmena k-opt, jedna z najúspešnejších heuristík v reálnej praxi.
  • Metaheuristiky: genetické algoritmy, simulované žíhanie, tabu search, ant colony optimization — často kombinované s lokálnym vylepšovaním pre dosiahnutie vysokej kvality riešení.

Aproximačné algoritmy a záruky

Pre metrický symetrický TSP existujú aproximačné algoritmy s konečným násobkom optimálnej hodnoty. Najznámejší je Christofidesov algoritmus s pomerom 1,5 (pre metrický symetrický TSP). Všeobecný (nemetrický) TSP je však ťažko približiteľný s pevne daným faktorom ak P ≠ NP.

Praktické solvery a implementácie

V praxi sa často používajú kombinácie: heuristiky pre rýchle získať dobrého počiatočného riešenia a presné metódy (branch-and-cut) pre doladenie alebo dokázanie optimálnosti. Existujú špecializované softvérové balíky a solvery (napr. Concorde – známy TSP solver) a knižnice v rôznych jazykoch, ktoré používajú kombináciu rezov, vetvenia a lokálnych vylepšení.

Aplikácie

TSP sa nenachádza len v teoretických úvahách — má široké aplikácie:

  • plánovanie trás a logistika (doručovanie tovaru, rozvoz),
  • výroba (optimalizácia poradia operácií, vŕtanie plošných spojov),
  • bioinformatika (napr. poradie framgentov pri sekvenovaní),
  • telekomunikácie a správa sietí,
  • analýzy a vizualizácie problémov so zhlukovaním bodov v priestore.

Varianty a rozšírenia

  • Asymetrický TSP (ATSP): ceny nie sú symetrické (c(i,j) ≠ c(j,i)).
  • Vehicle Routing Problem (VRP): rozšírenie s viacerými vozidlami a kapacitnými obmedzeniami.
  • TSP s časovými oknami: každý vrchol je možné navštíviť len v určitom časovom intervale.
  • Prize-collecting, Orienteering, k‑TSP a ďalšie varianty so špecifickými cieľmi a obmedzeniami.

Zhrnutie

TSP je fundamentálny problém optimalizácie s bohatou históriou a veľkým praktickým významom. Napriek svojej jednoduchosti zápisu predstavuje výraznú výzvu z hľadiska výpočtovej zložitosti. Moderné prístupy kombinujú teoretické algoritmy, heuristiky a pokročilé solvery, aby poskytli riešenia od „dostatočne dobrých“ až po certifikovane optimálne pre široké spektrum inštancií.