I informatikk er det reisende selgerproblemet , eller selgerproblemet , et optimaliseringsproblem som, gitt en liste over byer, og avstandene mellom alle par av byer, bestemmer en kortere krets som besøker hver by en gang og bare en gang.
Til tross for enkelheten i uttalelsen, er det et optimaliseringsproblem som vi ikke kjenner en algoritme som gjør det mulig å finne en nøyaktig løsning raskt i alle tilfeller. Mer presist, vi kjenner ikke en polynomisk tidsalgoritme , og dens avgjørelsesversjon ( for en avstand D, er det en sti kortere enn D som går gjennom alle byene og slutter i startbyen? ) Er et NP-komplett problem , som er en indikasjon på vanskeligheten.
Dette er et kjent algoritmisk problem , som har generert mye forskning og ofte brukes som en introduksjon til algoritmikk eller kompleksitetsteori . Den har mange anvendelser, enten i planlegging og logistikk, eller i fjernere felt som genetikk (erstatter byer med gener og avstand med likhet).
Uttalelsen om den omreisende selgers problem er som følger: gitt n poeng (av "byer") og avstandene mellom hvert punkt, finn en bane med minimum total lengde som går nøyaktig en gang gjennom hvert punkt og returnerer til utgangspunktet. Formelt sett er en forekomst en komplett graf med et sett med hjørner, et sett med kanter og en kostnadsfunksjon på kantene . Problemet er å finne den korteste Hamilton-syklusen i grafen G.
Vi vurderer listen over byene A, B, C, D og avstandene som er gitt på tegningen nedenfor til venstre. En første sti som starter fra A, går tilbake til A og som besøker alle byene er ABDCA. En kortere vei er ACBDA. ACBDA-banen er optimal.
Antall byer | Antall kandidatveier |
---|---|
3 | 1 |
4 | 3 |
5 | 12 |
6 | 60 |
7 | 360 |
8 | 2.520 |
9 | 20 160 |
10 | 181,440 |
15 | 43 589 145 600 |
20 | 6,082 × 10 16 |
71 | 5.989 × 10 99 |
Dette problemet er mer komplisert enn det ser ut til; det er ingen kjent løsningsmetode som gjør det mulig å oppnå nøyaktige løsninger i rimelig tid for store tilfeller (stort antall byer) av problemet. For disse store tilfellene vil vi derfor ofte måtte nøye oss med omtrentlige løsninger , fordi vi står overfor en kombinatorisk eksplosjon .
For et sett med poeng er det totalt mulige stier ( faktoriell av ). Utgangspunktet endrer ikke lengden på stien, vi kan velge denne vilkårlig, vi har altså forskjellige stier. Til slutt, siden hver sti kan beveges i to retninger og de to mulighetene har samme lengde, kan vi dele dette tallet med to. For eksempel, hvis vi navngir punktene ,, stiene abcd og dcba, cdab og badc, adcb og bcda, cbad og dabc har alle samme lengde; bare startpunktet og kjøreretningen endres. Vi har derfor kandidatveier å vurdere.
For eksempel for 71 byer er antall kandidatveier større enn 5 × 10 80, som er omtrent antall atomer i det kjente universet .
Ingenting hindrer grafen som er gitt som inndata fra å bli orientert. I dette tilfellet vurderer vi at en sti eksisterer i den ene retningen, men ikke i den andre (eksempel: enveis veier).
Noen ganger snakker vi om et symmetrisk eller asymmetrisk problem.
Også ulike operasjonelle forskningsproblemer er knyttet til den omreisende selgeren. En skruppelløs reisende selger ville være interessert i det dobbelte problemet med den korteste veien (for hans faktiske reise) og den lengste veien (for utgiftsrapporten).
Den avgjørelsen problem forbundet med den omreisende selger optimaliseringsproblem er en av Karp er 21 NP-komplette problemer . Papadimitriou demonstrerte i 1977 at problemet forblir NP-hardt, selv om avstandene er gitt av euklidiske avstander. Dermed forblir problemet NP-vanskelig selv om vi fjerner tilstanden "ikke gå gjennom en by på det meste en gang".
En naiv tilnærming til oppløsning, men som gir et eksakt resultat, er opptellingen av alle mulige baner ved uttømmende søk . Den tid kompleksiteten av denne algoritmen er i (mer nøyaktig , noe som raskt blir upraktisk selv for små tilfeller. Hvis for eksempel beregning av en bane tar ett mikrosekund, og deretter beregning av alle banene for 10 poeng er 181,440 mikrosekunder eller 0,18 sek , men for 15 poeng representerer dette allerede 43.589.145.600 mikrosekunder, eller litt over 12 timer, og i 20 poeng på 6 × 10 16 mikrosekunder, eller nesten to årtusener (1.901 år). 25 byer overskrider beregningstiden universets alder .
Held og Karp har vist at dynamisk programmering løser problemet i .
De lineære optimaliseringsmetodene er hittil blant de mest effektive for å løse det omreisende selgerproblemet og lar nå løse store problemer (i målestokk av et land), muligens med en beregningstid.
Når det gjelder en euklidisk graf, det vil si når kantene har vekt for avstandene mellom toppunktene som for eksempel er tilfelle mellom byer på et veikart, har visse varianter av problemet til handelsreisende en nøyaktig løsning som kan bestemmes i polynomisk tid . Dette er tilfelle når vi ser etter den raskeste bitoniske kretsen , der vi starter fra det vestligste punktet og alltid går østover til det østligste punktet før vi kommer tilbake. Ved startpunktet, alltid vestover. I dette spesielle tilfellet først introdusert av Jon Louis Bentley , kan en optimal løsning bestemmes av dynamisk programmering .
Generelt sett, og forutsatt at det ikke er noen tilnærmelsesalgoritme for å løse det reisende selgerproblemet. For å vise det fortsetter vi med det absurde forutsatt at det for en viss grad eksisterer en algoritme for tilnærming av faktorene . Vi viser da at denne tilnærmelsesalgoritmen gjør det mulig å løse problemet med søket etter en Hamilton-syklus i polynomisk tid, selv om den er NP-komplett.
Vi vurderer en graf , vi kan anta uten tap av allmenhet at alle kantene har vekt 1. Vi forvandler den til den komplette grafen ved å legge til mellom hvert par uforbundne hjørner en vektkant der hvor antall hjørner av . Hvis grafen har en Hamiltonian-krets, har den en minste vektrunde , ellers inneholder minimumsrunden minst en vektkant, og vekten er derfor minst . I det første tilfellet vil vår tilnærmelsesalgoritme i polynomtid finne en vekttur på det meste , i den andre vil den i det minste finne en vektvisning . Ettersom man kan skille mellom de to situasjonene i polynomial tid, følger det at eksistensen av en Hamiltonian-krets kan utføres i polynomial tid som resulterer i en motsetning; det er derfor ingen generell tilnærmingsalgoritme for å løse det reisende selgerproblemet.
I noen tilfeller eksisterer tilnærmelsesalgoritmer , Christofides-algoritmen er en faktor 3/2 tilnærming i det metriske tilfellet, det vil si når vekten av kantene respekterer den trekantede ulikheten . I dette tilfellet er problemet APX-hardt selv med vekt 1 eller 2. Den beste nedre grensen for tilnærmelsesfaktoren er 123/122.
Et fortrykk av 2020 forbedrer faktoren med 3/2 - 10-36 .
Når det gjelder en euklidisk beregning , er det et polynomisk tidsnærmetingsskjema . Det ble uavhengig oppdaget av Sanjeev Arora og Joseph SB Mitchell , og vant dem Gödelprisen i 2010.
Følgende formalisering av problemet, i form av en lineær heltalloptimalisering av problemet, brukes til utforming av tilnærmelsesalgoritmer. Merk settet av kantene forlater toppunktet sett S .
Avslapningen av dette programmet for et lineært optimaliseringsproblem (det vil si uten begrensninger av integritet ) kalles Held and Karp avslapning eller subtour LP . Denne avslapningen har et eksponentielt antall begrensninger, men kan løses på polynomtid ved å løse separasjonsproblemet , som viser seg å være beregningen av et minimumskutt .
Det antas at Held og Karp-avslapningen har et integritetsgap på 4/3.
Faktor 2-tilnærming ved hjelp av spennende trærChristofides-algoritmen er basert på en enkel faktor 2 tilnærmelsesalgoritme som bruker forestillingen om et spennende tre med minimal vekt . Ettersom en hvilken som helst tur har en kumulativ vekt som er større enn den for det minimale spennende treet, og siden en prefiksbane for treet passerer to ganger gjennom hver av de interne nodene, har en tur som følger en prefiksbane en kumulativ vekt mindre enn det dobbelte av løsningen minimal til den omreisende selgers problem. Det gjenstår å konvertere denne ruten til en rute som går en gang og bare en gang gjennom hver av toppunktene i grafen. Deretter utnytter vi den trekantede ulikheten: Hvis ruten mellom to toppmøter går gjennom et allerede besøkt mellomtoppmøte, hopper vi over det for å gå direkte til det første toppmøtet som ennå ikke er besøkt. Den trekantede ulikheten sørger da for at reisens totale vekt ikke øker; følgelig får vi en Hamiltonian-krets med en vekt som er mindre enn det dobbelte av minimumskretsen.
På grunn av problemets innledende kompleksitet ( ), dets betydning og NP-fullstendighet, har mange heuristikker blitt foreslått.
En klassisk heuristikk, kalt 2-opt, er et lokalt søk som består av å starte fra en løsning og prøve å forbedre den ved iterativt å bytte hjørnene i to kanter. Den heuristiske Lin-Kernighan er en forbedring.
En annen lokal søkeheuristikk kalt Ruin and Recreate , nær simulert annealing , er å starte fra en løsning, ødelegge en region av den og deretter gjenskape den ved å forbedre den.
De genetiske algoritmene kan også tilpasses Travellerselgerproblemet. Ideen ble først foreslått av John Holland tidlig på 1970-tallet.
For det omreisende selgerproblemet , konstruerer en grådig heuristikk en enkelt løsning, ved en rekke endelige avgjørelser uten tilbakesporing, blant disse metodene siterer vi nærmeste nabo, nærmeste innsetting, fjerneste innsetting og beste innsetting.
I den nærmeste nabometoden starter vi fra et hvilket som helst toppunkt og ved hver av iterasjonene kobler vi det siste toppunktet som er nådd til det nærmeste toppunktet i en kostnadsforståelse, så kobler vi endelig det siste toppunktet til det først valgte toppunktet.
I innsettingsmetodene starter vi fra en syklus redusert til en sløyfe i starten, ved hver iterasjon velger vi et gratis toppunkt, så ser vi etter innsettings- og syklusposisjonen som minimerer den totale økningen i kostnader:
Prinsippet om en slik tur ble beskrevet allerede i 1832, skriftlig av en selger, og effektive ruter ble referert til i guider. Flere gamle problemer kan sees på som spesielle tilfeller av problemet; for eksempel, i 1856, var William Rowan Hamilton interessert i et geometrisk problem av denne typen på en dodekaeder , dessuten betegner begrepet Hamilton-syklus en syklus som går gjennom alle toppunktene i en graf.
Begrepet omreisende selgerproblem kommer fra oversettelsen av det amerikanske engelsk omreisende selgerproblemet , som dukket opp på 1930- eller 1940-tallet, sannsynligvis ved Princeton University hvor flere forskere var interessert i det. Det var også i denne perioden at problemet ble formulert uavhengig i flere forskningsmiljøer, spesielt rundt Karl Menger .
Problemet interesserte da et bredere samfunn og var spesielt opphavet til oppdagelsen av flere teknikker, som blandet lineær optimalisering ( blandet heltallsprogrammering ) og metoden for separasjon og evaluering ( gren-og-bundet ).
I 1972 viste Richard Karp at det tilhørende beslutningsproblemet er NP-komplett .
Den omreisende selgeren er et av de mest studerte algoritmiske problemene i dag. Videre, på grunn av enkelheten i uttalelsen, brukes den ofte til å introdusere algoritmer, derav en relativ kjendis.
PTSP-varianten (for fysisk reisendeselgerproblem) består i å besøke et endelig antall en gang og bare en gang i et 2D-miljø med hindringer. MTSP-varianten (for flere reisende selgerproblemer) generaliserer problemet til flere reisende, og selve generaliserer til rutingproblemet for kjøretøyet .
Det omreisende selgerproblemet har mange applikasjoner, og har dessuten vært motivert av konkrete problemer, for eksempel ruten til skolebusser.
En første type klassisk applikasjon er selvfølgelig innen logistikk , for eksempel for postkontoret , distribusjon av måltider hjemme, installasjonskontroll osv. Det er også mulig å optimalisere maskinens bevegelser, for eksempel for å minimere den totale tiden det tar en CNC-fresemaskin å bore n punkter i et metallplate, eller minimere bevegelsene til store teleskoper (som er veldig sakte).
Vi kan sitere mer overraskende bruksområder, for eksempel: i biologi hjelper problemet med genomsekvensering (for å koble små fragmenter til større kjeder), og i produksjonen brukes det til å teste trykte kretser .