Handelsreisendeproblemet

Handelsreisendeproblemet (engelsk The travelling salesman problem eller TSP) stiller følgende spørsmål: «Gitt en liste over byer og avstanden mellom byene, hva er den kortest mulige ruten som besøker hver by nøyaktig en gang og returnerer til opprinnelsesbyen?» Det er et NP-hardt problem i kombinatorisk optimalisering, viktig i teoretisk informatikk og operasjonsanalyse.
Problemet ble først formulert i 1930 og er et av de mest intensivt studerte problemene innen optimalisering. Den brukes som en referanse for mange optimaliseringsmetoder. Selv om problemet er beregningsmessig vanskelig, er mange heuristikker og nøyaktige algoritmer kjent, slik at noen forekomster med titusenvis av byer kan løses fullstendig, og til og med problemer med millioner av byer kan tilnærmes innen en liten brøkdel av 1 %.


== Problemformulering ==
Som et graf-problem kan handelsreisendeproblemet modelleres som en urettet vektet graf, der byene representeres av nodene, veiene imellom dem av kanter og avstandene imellom byene assosiert med en vei vekten til hver kant. Ofte settes grafen opp som komplett, dvs. det finnes en kant mellom alle nodepar; eventuelt kan man gjøre grafen komplett ved å legge på kanter med høye verdier der de mangler. Problemet settes så opp som et optimaliseringsproblem, der man starter og slutter på en gitt node etter å ha besøkt alle andre noder nøyaktig én gang, og man ønsker å minimere den totale kostnaden ved å reise denne ruten.


=== Ulike versjoner ===
Man kan klassifisere ulike versjoner av problemet basert på ulike betingelser.
Symmetrisk TSP defineres som en graf der kanten 
  
    
      
        (
        
          n
          
            1
          
        
        ,
        
          n
          
            2
          
        
        )
      
    
    {\displaystyle (n_{1},n_{2})}
   har lik vekt som kanten 
  
    
      
        (
        
          n
          
            2
          
        
        ,
        
          n
          
            1
          
        
        )
      
    
    {\displaystyle (n_{2},n_{1})}
  , altså der det koster like mye å reise fra én by til en annen som motsatt vei
Asymmetrisk TSP defineres som en graf der kanten 
  
    
      
        (
        
          n
          
            1
          
        
        ,
        
          n
          
            2
          
        
        )
      
    
    {\displaystyle (n_{1},n_{2})}
   har ulik vekt som kanten 
  
    
      
        (
        
          n
          
            2
          
        
        ,
        
          n
          
            1
          
        
        )
      
    
    {\displaystyle (n_{2},n_{1})}
  , altså der det å reise fra én by til en annen koster noe annet enn motsatt vei
Multihandelsreisendeproblemt går ut på å finne en mengde sykler som tilsammen dekker hele grafen uten å besøke noen node mer enn én gang, altså der man lar flere handelsmenn reise ut fra samme by, hver sin vei, og fordeler det å besøke alle byene seg imellom. Versjoner av denne kan enten la alle starte i samme by, eller i hver sin, samt eventuelt med en kostnad assosiert pr handelsreisende som benyttes.


== Kompleksitetsanalyse ==
I kompleksitetsteori tilhører avgjørelsesversjonen av TSP (hvor lengden L er gitt, oppgaven å bestemme om grafen har en runde på høyst L) til klassen av NP-komplette problemer. Dermed er det mulig at beste tilfelle kjøretid for en hvilken som helst algoritme for TSP øker superpolynomielt (men ikke mer enn eksponentielt) med antall byer.
Avgjørelsesproblemet kan reduseres til spørsmålet om det finnes en Hamiltonsyklus i grafen ved å la hver kant ha vekten én. I og med at Hamiltonsyklusproblemet er NP-hardt, vil TSP være minst like vanskelig og er dermed også NP-hardt. På en annen side vil man, gitt en bestemt sti, verifisere at denne har en viss vekt og besøker alle noder nøyaktig én gang, hvilket gjør at det (i likhet med Hamiltonsyklusproblemet) er NP-komplett.


== Generaliseringer ==
Det reisende kjøperproblemet (TPP) og rutingen av kjøretøyet (VRP) er begge generaliseringer av TSP. Spesielt kan VRP sees på som multihandelsreisendeproblemet, men med begrensninger på tiden hver handelsreisende kan bruke samt på hvor mange byer (i form av kapasitet) hver kan besøke.


== Heltallsformulering ==
Både det symmetriske handelsreisendeproblemet, det asymmetriske handelsreisendeproblemet og multihandelsreisendeproblemet kan settes opp som et problem som kan løses ved hjelp av heltallsprogrammering. Her knyttes det binære variabler 
  
    
      
        
          x
          
            i
            j
          
        
      
    
    {\displaystyle x_{ij}}
   til hver kant i grafen, gitt tilsvarende kostnad 
  
    
      
        
          c
          
            i
            j
          
        
      
    
    {\displaystyle c_{ij}}
  , der 
  
    
      
        
          x
          
            i
            j
          
        
      
    
    {\displaystyle x_{ij}}
   settes til 1 hvis kanten brukes og 0 ellers. Det symmetriske problemet kan settes opp som følger: Minimer

  
    
      
        
          ∑
          
            i
            <
            j
          
        
        
          c
          
            i
            j
          
        
        
          x
          
            i
            j
          
        
      
    
    {\displaystyle \sum _{i<j}c_{ij}x_{ij}}
  
under forutsetning av at

  
    
      
        
          ∑
          
            i
            <
            j
          
        
        
          x
          
            i
            j
          
        
        +
        
          ∑
          
            k
            >
            i
          
        
        
          x
          
            i
            k
          
        
        =
        2
      
    
    {\displaystyle \sum _{i<j}x_{ij}+\sum _{k>i}x_{ik}=2}
  
altså slik at det benyttes én vei inn til hver by, og én vei ut av hver by,

  
    
      
        
          ∑
          
            i
            ,
            j
            ∈
            S
          
        
        
          x
          
            i
            j
          
        
        ≤
        
          |
        
        S
        
          |
        
        −
        1
        
        ∀
        S
        ⊂
        V
        ,
        3
        ≤
        
          |
        
        S
        
          |
        
        ≤
        n
        −
        3
      
    
    {\displaystyle \sum _{i,j\in S}x_{ij}\leq |S|-1\qquad \forall S\subset V,3\leq |S|\leq n-3}
  
der 
  
    
      
        S
      
    
    {\displaystyle S}
   er en subgraf av den underliggende grafen 
  
    
      
        V
      
    
    {\displaystyle V}
  ; altså slik at det ikke dannes egne disjunkte sykler som tilsammen dekker hele grafen, og

  
    
      
        
          x
          
            i
            j
          
        
        =
        0
        
           eller 
        
        1
        
        
          for alle kanter (i, j)
        
      
    
    {\displaystyle x_{ij}=0{\text{ eller }}1\qquad {\text{for alle kanter (i, j)}}}
  
Det asymmetriske handelsreisendeproblemet og multihandelsreisendeproblemet kan settes opp på en lignende måte.


== Anvendelser ==
TSP har flere applikasjoner til og med i sin reneste formulering, for eksempel planlegging, logistikk og produksjon av integrert kretser. Litt modifisert ser det ut som et underproblem i mange områder, for eksempel DNA-sekvensering. I disse applikasjonene representerer konseptbyen for eksempel kunder, loddepunkter eller DNA-fragmenter, og konseptavstanden representerer reisetid eller kostnad, eller et likhetsmål mellom DNA-fragmenter. TSP vises også i astronomi, ettersom astronomer som observerer mange kilder vil ønske å minimere tiden brukt på å flytte teleskopet mellom kildene; i slike problemer kan TSP være innebygd i et optimalt kontrollproblem. I mange applikasjoner kan det pålegges ytterligere begrensninger som begrensede ressurser eller tidsvinduer.


== Referanser ==