Saltzaile ibiltariaren problema

Wikipedia, Entziklopedia askea
Saltzaile ibiltariaren ebazkizun» orritik birbideratua)
Saltzaile ibiltariaren problemaren soluzioa: puntu gorri guztietatik behin bakarrik pasa eta hasierakoan amaitzen den ibilaldirik motzena.

Saltzaile ibiltariaren problema edo Bidaiariaren problema (ingelesez, Travelling Salesperson Problem, TSP), honakoa da: "hirien multzo bat izanik eta haien arteko distantziak ezagunak izanik, zein da hiri guztiak behin bakarrik bisitatu eta hasierako hirian amaitzen den ibilbiderik laburrena?". Ikerketa operatiboan eta konputazioaren zientzian garrantzia handia duen optimizazio konbinatorioko problema da. "Erosle Ibiltariaren Problema"-ren (Travelling Purchaser Problem, TPP) eta "Ibilgailuak Bideratzearen Problema"-ren (Vehicle Routing Problem, VRP) kasu partikularra da.

Problema 1930ean planteatu zen lehen aldiz eta optimizazio-problema konbinatorioen artean gehien aztertua izan denetako bat da. Haren ebazpenak duen konplexutasun konputazional altuagatik NP-Hard moduan sailkatua izan da. Hori dela eta, optimizazio-konbinatorioko problemen ebazpenerako sortzen diren metodo berrien eraginkortasuna neurtzeko erabiltzen da. Hain aztertua izan denez, ebazpen-metodo (zehatz eta heuristiko) asko ezagutzen dira. Horri esker, gaur egun tamaina handiko Bidaiariaren Problemak ebaztea posiblea da, milaka hirikoak barne. Problemaren bertsio hau NP-osoa da: "hirien multzo bat, haien arteko distantziak eta L luzera jakin bat emanik, hiri guztiak behin bakarrik bisitatu eta hasierako hirian amaitzen den ibilbiderik existitzen al da, gehienez L luzerakoa dena?".

Problemak aplikazio ugari ditu: plangintza-problemak, logistikako problemak, zirkuitu elektrikoen fabrikazioan agertzen direnak, etab. Gainera, problemaren planteamendua pixka bat aldatuta, jakintza-eremu askotan azpiproblema gisa agertu ohi da: DNAren sekuentziazioan, etab. Aplikazio horietan, “hiria” bezeroa izan daiteke, adibidez, edo soldadura-puntua, DNA zatia, etab. eta ibilbiderik laburrena aurkitzeko neurtu beharreko “distantzia” bidaia egiteko behar den denbora, ekoizpenaren kostua, DNA zatien arteko antzekotasuna, etab. Aplikazio askotan, problemaren ohiko murrizketez gain murrizketa gehigarriak egoten dira (mugatuta dauden baliabideak, kontuan hartu beharreko denbora-leihoak, etab.). Halakoetan, berez zaila den problemaren ebazpena are zailagoa gertatzen da.

Historia[aldatu | aldatu iturburu kodea]

Bidaiariaren problemaren jatorria ez dago argi. 1832an saltzaile ibiltarientzat idatzitako gida batean problema aipatzen da eta Alemanian eta Suitzan barrena diseinatutako ibilaldi batzuen adibideak ematen dira, baina ez da problema modu matematikoan aztertzen.[1]

William Rowan Hamilton

Problemaren formulazio matematikoa W. R. Hamilton matematikari irlandarrak eta Thomas Kirkman matematikari britainiarrak eman zuten XIX. mendean. Hamiltonek "Icosian game" izeneko jokoa asmatu zuen. Puzzle moduko bat zen eta ziklo hamiltondar bat aurkitzea zuen helburu[2]. Badirudi, matematikariek problemaren forma orokorra lehen aldiz 1930eko hamarkadan aztertu zutela Vienan eta Harvarden. Karl Menger-ek egindako lana aipagarria da, problema definitzeaz gain "indar gordinaren" algoritmo nabaria aztertu baitzuen, ingelesez "brute-force" izenez ezagutzen dena. Gainera, konturatu zen hiri batean hasi eta urrats bakoitzean gertuen dagoen hirira joateak ez duela ziurtatzen hiri guztietatik pasatzen den ibilbide motzena aurkituko denik. Horrela adierazi zuen:

“Mezulariaren problema” (praktikan mezulariei edo bidaiariei sortuko baitzaie problema ebazteko beharra) horrela defini daiteke: puntuen multzo finitu bat izanik eta haietako edozein biren arteko distantzia ezaguna izanik, puntuak konektatuko dituen biderik laburrena aurkitzea. Jakina, saiakera kopuru finitu batean problema ebaztea lortzen da. Hirien permutazio guztiak aztertzeak eskatzen duen saiakera kopurua baino gutxiagotan biderik laburrena aurkitzeko baliagarriak diren erregelak ez dira ezagutzen. Honako erregela jarrai daiteke: hasierako puntutik gertuen dagoen puntura joatea, hortik hurbilen dagoen beste puntura, etab. Hala ere, erregela horrekin, oro har, ez du biderik laburrena aurkitzen.[3]

1930eko hamarkadan Merrill M. Floode-ek lehen planteamendu matematikoa egin zuen, eskola-autobusen bideratzearen problema aztertzen ari zenean.[4] Gerora, Princetongo Unibertsitateko Hassler Whitney-k problemarako interesa piztu zuen. Berak problema "48 states problem" moduan izendatu zuen. Julia Robinson-ek 1949an RAND korporaziorako idatzi zuen txosten batean argitaratu zen lehen aldiz problemaren aipamena "Travelling Salesman Problem" izenarekin, "On the Hamiltonian game (a traveling salesman problem)".[5][6]

1950eko eta 1960ko hamarkadetan Santa Monicako RAND korporazioa problemaren ebazpenean aurrerapausoak ematen zituzten zientzialariei sariak eskaintzen hasi zenean, problema gero eta ezagunagoa bihurtu zen Europan eta Estatu Batuetan[4]. Korporazioko George Dantzig-ek, Delbert Ray Fulkerson-ek eta Selmer M. Johnson-ek ekarpen nabarmenak egin zituzten. Problema lineal oso gisa planteatu zuten eta ebazpenerako ebaki-planoen metodoa garatu zuten. Metodo berri horren bidez 49 hiriko instantzia bat ebaztea lortu zuten, hiriak konektatzen zituen ibilbidea osatu zuten eta frogatu zuten ibilbide hori baino motzagorik ez dela existitzen. Haien argitalpena problemaren ikerketarako hazia izan zela esaten da, ebazpen-metodoetan emankorra izan den ikerketa-arlo baten hasiera. Pentsatu zuten ia optimoa den soluzio bat izanik posiblea izango zela soluzio optimoa aurkitzea edo optimaltasuna frogatzea, desberdintza (inekuazio, murrizketa, ebaki-plano) kopuru txiki bat erantsiz. Ideia horretan oinarritu ziren 49 hiriko problema ebazteko, eta konturatu ziren 26 ebaki-plano besterik ez zirela behar. Artikulu horretan Bidaiariaren Problemaren ebazpenerako algoritmorik eman ez zuten arren, bertan argitaratu zituzten ideiak ezinbestekoak izan ziren gerora ebazpen-metodo zehatzak garatzeko. Beste 15 urte behar izan ziren ebaki-plano egokiak aurkitzeko metodo algoritmikoa garatzeko.[4] Ebaki-planoen metodoaz gain, Dantzigek, Fulkersonek eta Johnsonek adarkatze- eta bornatze-algoritmoak erabili zituzten, historian lehen aldiz, agian.[4]

1972. urtean, Richard M. Karp-ek frogatu zuen grafo batean ziklo Hamiltondarra aurkitzearen problema NP-osoa dela, eta horrek esan nahi du Saltzaile Ibiltariaren Problema NP-Hard dela. Horrela, Bidaiariaren Problemarako ibilbide motzena aurkitzeak itxuraz zuen zailtasun konputazionalari azalpen matematiko bat ematea lortu zen.

1970eko hamarkadaren amaieran eta 1980ko hasieran aurrerapen handiak lortu ziren, Grötschel-ek, Padberg-ek, Rinaldi-k eta beste ikerlari batzuek ebaki-planoen metodoa eta adarkatze- eta bornatze-algoritmoa erabiliz 2.392 hiriko instantziak ebazteaz lortu zutenean.

1990eko hamarkadan, Applegate-k, Bixby-k, Chvátal-ek eta Cook-ek "Concorde" programa garatu zuten eta hura erabiliz problema asko ebaztea lortu zen. 1991ean Gerhard Reineltek "TSPLIB, A Traveling Salesman Problem Library" izeneko liburutegia argitaratu zuen. Zailtasun-maila desberdineko problemen bilduma bat da eta ikerketa-talde askok probarako erabiltzen dituzte, haien metodoekin lortutako emaitzak beste ikerlariek lortutakoekin alderatzeko.

2006an, Cook-ek eta beste ikerlari batzuek mikrotxipen diseinuaren problematik sortutako 85.900 hiriko instantzia ebaztea lortu zuten, ebaztea lortu den TSPLIB liburutegiko instantziarik luzeena. Milioika hiriko problemetarako, hirien arteko ibilbide bat aurkitzen duten metodoak badaude, baina ez da bermatzen hirien arteko bide motzena izango denik.[7]

Sarrera[aldatu | aldatu iturburu kodea]

Problema konbinatorioa[aldatu | aldatu iturburu kodea]

Saltzaile ibiltariaren problema optimizazio konbinatorioko problema bat da. hiriren arteko distantziak izanik, hiri guztietatik pasa eta hasierakoan amaitzen den biderik laburrena aurkitu behar da. Hiri guztietatik pasatzen diren ibilbide asko daude. Zenbat diren kontatzeko, konbinatoria erabil daiteke: elementuren ordenazio posible guztiak -ren permutazioak dira. Optimizazio problema bat da, guztien artetik optimoa aurkitu nahi delako, kasu honetan, ibilbiderik motzena. -ren balioa handitzen bada, aukera posibleen kopurua asko hazten da.

Adibidez, 3 hiriko saltzaile ibiltariaren probleman 6 ibilbide daude: (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1). Hiru elementuren permutazioak dira, hau da, elementuen ordenazio posible guztiak. Bidaiariaren probleman, (1, 2, 3) permutazioarekin zera adierazten da: bidea 1 hirian hasten da, ondoren 2 hirira doa, gero 3 hirira eta 1 hirian amaitzen da. Permutazio kopurua n-ren faktoriala da, normalean n! ikurraz adierazten dena. Hirien kopurua handitzean, ordenazio kopurua asko hazten da. 3!=6 da, 10!=3628800, 100!=9.33 × 10157.

Kopuru hori murriztu daiteke, bidea hasi eta bukatu hiri berean egiten denez eta abiapuntua zein den adierazten ez denez, (1, 2, 3), (2, 3, 1) eta (3, 1, 2) permutazioek bide bera adierazten dute: 1tik 2ra, 2tik 3ra eta 3tik 1era. Gauza bera gertatzen da beste hiru permutazioekin, hirien arteko ibilbide bera adierazten dute: (1, 3, 2), (3, 2, 1), (2, 1, 3). Hortaz, berez hiru hiriren artean 2 ibilbide desberdin besterik ez daudela esan daiteke. Ibilbide kopuruaren kontaketa murrizten da, aukera posible guztiak zati , hau da, !/= (-1)! ibilbide dira. =3ren kasuan, 2!=2 ibilbide.

Gainera, saltzaile ibiltariaren probleman bidaiaria zein norabidetan mugitzen den ez du axola, hau da, 1tik 2ra, 2tik 3ra eta 3tik 1era joatea edo 3tik 2ra, 2tik 1era eta 1etik 3ra joatea ibilbide bera egitea dela interpretatzen da. Horrek aztertu beharreko ibilbideen kopurua erdira murrizten du. Beraz, (-1)!/2 ibilbide posible hartu behar dira kontuan.

  • =10 hiriko probleman, (10-1)!/2=181.440 ibilbide desberdin daude
  • =30 hiriko probleman, (30-1)!/2=4.42 × 1030 ibilbide baino gehiago daude. Segundoko milioi bat ibilbide kalkulatzen dituen ordenagailuak 1017 urte beharko lituzke ebazteko. Bestela esanda, unibertsoaren sorreraren hasieran kalkulatu izan balitz (duela 13.400 milioi urte inguru) kalkulua oraindik amaitu gabe egongo litzateke.

Ikus daitekeenez, problemari gehitzen zaion hiri bakoitzeko, ibilbide kopurua faktoreaz biderkatzen da, eta bide motzenaren problemaren ebazpena modu faktorialean hazten da. Horregatik, esaten da problema NP-osoa dela.

Grafo-adierazpena[aldatu | aldatu iturburu kodea]

4 hiriko Saltzaile Ibiltariaren problema baten grafo-adierazpena, grafo haztatu ez-zuzendu eta simetriko baten bidez

Saltzaile Ibiltariaren Problema grafo haztatu ez-zuzendu gisa adieraz daiteke, non grafoko erpinak hiriak diren, ertzak hirien arteko bideak diren eta ertzen pisuak (edo kostuak) bideen distantziak diren. Grafoko ertzek noranzkorik ez badute, hau da, bi noranzkoetan zeharka badaitezke, ez-zuzendua dela esaten da. Minimizazio-problema bat da, erpin guztiak behin bakarrik zeharkatu eta hasierako erpinean amaitzen den distantzia minimoko ibilaldia bilatzen delako.

Problemaren ohiko planteamenduan, eredua grafo oso bat da, hau da, erpin-pare guztiak daude konektatuta ertzen bidez. Problema partikular batean bi hiriren artean biderik ez badago eta grafo oso baten bidez adierazi nahi bada, bi hiri horien artean pisu handia esleitua duen ertz bat jar daiteke, bi hiri horiek haien artean oso urruti daudela adierazi nahiko balitz bezala. Horrela, grafo osoetarako ebazpen-metodoak aplikatu ahal izango dira. Pisua nahiko handia bada, metodoak aurkituko duen ibilbide motzena ez da bi hiri horien artetik pasako, berez existitzen ez den bidetik ez da pasako, eta ez da arazorik sortuko.

Saltzaile ibiltariaren problema matrize baten bidez ere adieraz daiteke, grafoei lotutakoauzokidetasun-matrizeen bidez.

Simetria[aldatu | aldatu iturburu kodea]

Hirien arteko distantzia bi noranzkoetan berdina bada, Saltzaile ibiltariaren problema simetrikoa dela esaten da eta grafo ez-zuzendu baten bidez adierazten da. Horrek aztertu beharreko ibilbideen kopurua erdira murrizten du, ibilaldia noranzko batean egitea edo kontrakoan egitea gauza bera dela ulertzen delako. Problema auzokidetasun-matrize baten bidez adieraziz gero, hura adierazten duen matrizea simetrikoa izango da.

Bidaiariaren problema asimetrikoa izan daiteke, hau da, gerta daiteke bi hiriren artean bidea egotea noranzko batean baina ez egotea kontrako noranzkoan, edo distantziak desberdinak izatea noranzko bakoitzean. Halako problemak grafo zuzenduen bidez adierazten dira eta ertzak gezien bidez ematen dira. Zirkulazio-istripuak, noranzko bakarreko kaleak edo abiatze- eta lehorreratze-kostu desberdinak dituzten aire-tarifek, adibidez, problemaren simetria hausten dute.

Erlazionatutako problemak[aldatu | aldatu iturburu kodea]

Saltzaile ibiltariaren problemarekin erlazioa duten hainbat problema daude. Hona hemen batzuk:

  • "Bidaiariaren Problema Botila-lepoduna" (ingelesez, Bottleneck, TSP): Grafo oso eta haztatu batean kostu handieneko ertzaren pisua minimizatzen duen ziklo hamiltondarra aurkitu behar da. Problema horrek garrantzi handiko aplikazioak ditu, garraioaren arloan eta logistikan, autobusek kale estuak edo trafiko handienekoak ekiditeko, adibidez. Beste aplikazio klasiko bat zirkuitu inprimatuen fabrikazioa da (ingelesez, printed circuit board, PCB). Osagaiak bertan kokatzeko plaka zulatu behar da eta zulagailuaren ibilbidea planifikatu behar da. Halako zulagailu edo robotetan bidaiariaren problema aplikatzen denean, “hiriak” egin beharreko zuloak dira (tamaina desberdinekoak izan daitezke), eta “kostuak” zulo bat egitetik bestera pasatzeak eskatzen duen berrantolaketa, denbora barne. Azken batean, makina batean hainbat lanen sekuentziazioa optimizatzearen problema da[8]
  • "Saltzaile ibiltariaren problema orokortua" edo "Politikari Bidaiariaren Problema". Problemaren planteamendu orokortuan, “hiri” bat edo gehiago dituzten “estatuak” daude eta bidaiariak bere ibilbidean “estatu” bakoitzeko hiri bat bisitatu behar du. Planteamendu honek ere aplikazioak ditu erdieroaleen fabrikazioan, zulagailuaren ibilbidearen planifikazioan (ikus USPTO patentea, 7054798 zk.). Harrigarria badirudi ere, Behzad-ek eta Modarres-ek frogatu zuten problemaren planteamendu orokortua hiri kopuru bera duen bidaiariaren problema estandar bihur daitekeela, hirien arteko distantzien matrizea aldatuz.
  • "Ordenazio Sekuentzialaren Problema" bidaiariaren problemaren antzekoa da, baina hirien artean dauden lehentasun-erlazioak (hiri bat bisitatu aurretik zein beste hiri bisitatu behar diren) ere kontuan hartu behar dira.
  • Google-i sortzen zaion problema bat hau da: nola bideratu datuak datu-prozesaketarako nodoen artean. Kontuan izan behar da, datuak nodoen artean transferitzeko behar den denbora desberdina izan daitekeela, baita nodoen kalkulu-ahalmena eta biltegiratze-ahalmena ere. Horren arabera, ibilbideak aldatu egiten dira eta datuak nodoetara bideratzearen problema zailagoa gertatzen da.
  • "Erosle Ibiltariaren Problema" (ingelesez, Travelling Purchaser Problem, TPP). Erosle batek produktu batzuk erosi behar ditu. Produktu horiek hainbat hiritan eros daitezke, baina hiri guztiek ez dituzte produktu berak eskaintzen. Gainera, produktu berak hiri desberdinetan prezio desberdinak izan ditzake. Hirien azpimultzo batetik pasatzen den ibilbidea aurkitzea da helburua, ibilbideko hirietan erosi beharreko produktu guztiak erostea posiblea dela bermatuz eta kostu totala (bidaiarena + erosketarena) minimizatuz.

Problemaren formulazioa[aldatu | aldatu iturburu kodea]

Saltzaile ibiltariaren problema programazio lineal osoko problema gisa formula daiteke. Hiriak 1-etik -rako zenbakien bidez izendatzen dira eta hiritik hirira dagoen distantzia (joateak eragiten duen kostua) notazioaz adierazten da, izanik.

Erabaki-aldagaiak bitarrak dira, hau da, 0 (zero) edo 1 (bat) balioetara mugatzen dira, eta horrela definitzen dira:

Horrela, bada, ibilbidea hiritik hirira doala esan nahi du. Problemaren helburua kostu txikieneko ibilbidea aurkitzea denez, helburu-funtzioa horrela definitzen da:

Bidaiariak egingo duen ibilbidea hiri guztietatik pasa behar da, eta bakoitzetik behin bakarrik. Hori hala izan dadin, hainbat murrizketa gehitu behar dira formulazioan. Alde batetik, bidaiaria hiri bakoitzera hiri bakar batetik joango dela ziurtatzeko, bakoitzerako aldagaien batura 1 dela adierazten duen murrizketa idazten da. Bidaiariak hiri bisitatu behar dituenez, -ren balio bakoitzerako () horrelako murrizketa bat dago:

Bestalde, ibilbidea hiri bakoitzetik hiri bakar batera joango dela ziurtatzeko, bakoitzerako aldagaien batura 1 dela adierazten duen murrizketa idazten da. Bidaiaria hirietatik irtengo denez, -ren balio bakoitzerako () horrelako murrizketa bat dago:

Murrizketa horiek ziurtatzen dute bidaiaria hiri batean dagoenean ez dela beste bi hiritara joango, edo hiri batera ez dela beste bi hirietatik iritsiko. Funtzio eta ekuazio horiek guztiak linealak direnez eta erabaki aldagaiak osoak (bitarrak) direnez, programazio lineal osoko formulazioa lortzen da.

Hala ere, murrizketa horiek ez dira nahikoak saltzaile ibiltariaren problema adierazteko, ez delako bermatzen hiri guztiak ibilaldi bakar batean bisitatuko direnik. Adibide gisa, hurrengo taulan hirirako soluzio bat aurkezten da: , , , , eta gainerako aldagai guztiak zero. Taulan ikusten den bezala, 1eko bakarra dago zutabeetan (hiri bakoitzera beste bakar batetik iristen da) eta 1eko bakarra errenkadetan (hirietatik beste hiri bakar batera doa). Planteatu diren murrizketa guztiak betetzen ditu, baina ez du ibilaldi bakar bat osatzen, bi azpi-ziklo baizik: 1etik 2ra eta 2tik 1era (azpi-ziklo bat), 3tik 4ra eta 4tik 3ra (beste azpi-ziklo bat). Hortaz, soluzio horrek ez du bidaiariaren problema ebazten.

Problemaren soluzio ez diren horrelako kasuak baztertzeko, beste murrizketa bat gehitu behar da formulazio matematikoan. Planteamendu desberdinak egin izan diren arren, honako biak nabarmentzen dira: "Miller–Tucker–Zemlin (MTZ)" formulazioa eta "Dantzig–Fulkerson–Johnson (DFJ)" formulazioa. Bigarrena sendoagoa bada ere, lehenengoa hainbat egoeratan erabilgarria da.

Miller–Tucker–Zemlin formulazioa (MTZ)[aldatu | aldatu iturburu kodea]

MTZ formulazioan aldagaiak erabiltzeaz gain, honako aldagaiak definitzen dira hiriak zein ordenatan bisitatuko diren kontrolatzeko:

Ibilbidea 1 hirian hasten dela suposa daiteke, orokortasunik galdu gabe. Horregatik, aldagaiaren azpi-indizeak ez du 1 balioa hartzen. Aldagaietan urrats kopurua adierazten denez, balioak har ditzake. Izan ere, hiriko ibilbidea osatzeko urrats eman behar dira eta horri jakina den azken urrats bat gehitu: hasierako hirira itzultzea, 1 hirira, alegia.

desberdintzak zera adierazten du: hirira iristeko eman behar den urrats kopurua hirira iristeko eman behar dena baino handiagoa da. Horrek hirien artean ordena bat finkatzen du. aldagaiak eta aldagaiekin erlazionatu behar dira, ibilaldi bakar batean hiri guztiak zeharkatzen direla ziurtatzeko, hau da, azpi-zikloak ekiditeko. Hori honako murrizketarekin lortzen da:

izanik. Egiazta daiteke denean betetzen dela. Koherentea da esatea ibilaldia hiritik hirira doala eta hirira iristeko behar den urrats kopurua hirira iristeko behar dena baino handiagoa dela. Bestalde, denean erlazioa lortzen da, hau da, eta aldagaien artean ez da murrizketarik ezartzen, beti betetzen delako (kasurik okerrenean eta izanik, erlazioa izango da). Gainera, egiazta daiteke ibilbidea azpi-zikloz osatzen bada, murrizketa horiek kontraesanera eramaten dutela, luzerako azpi-zikloetarako kontraesera.

Miller-Tucker-Zemlin formulazioaren arabera, eredu lineala bere osotasunean horrela geratzen da:

Aurreko adibidearekin segituz, hiri daude, , , , dira eta gainerakoak zero. Egiazta daiteke MTZ formulazioan erantsitako aldagaien eta murrizketaren eragina.

, eta aldagaien artean erlazio koherentea ezartzen da.

izanik, kasurik okerrenean bada geratzen da. Beraz, eta aldagaien balio guztietarako murrizketa betetzen da. Ibilbidea ez doanez 2 hiritik 3ra, ez da haien artean ordenarik ezartzen.

Bestalde, eta azpi-ziklorako kontraesana sortzen da.

Bi ekuazioak berdintzaren bi ataletan batuz kontraesana den erlazioa lortzen da (sinplifikatuz, ). Beraz, azpi-zikloak ez dira sortuko.

Dantzig–Fulkerson–Johnson formulazioa (DFJ)[aldatu | aldatu iturburu kodea]

DFJ formulazioan "azpi-ibilbideak ezabatzeko murrizketak" (ingelesez, subtour elimination constraint) gehitzen dira. hiriko bidaiariaren problemarako, azpimultzo propioak definitzen dira. azpimultzoen kardinalak (elementu kopuruak) gutxienez bikoa izan behar du, . Sor daitezkeen azpi-ziklo guztiak ezabatzeko, elementurekin osa daitezkeen halako azpimultzo posible guztietarako definitzen diren murrizketak honakoak dira:

Inekuazioaren ezkerraldeko bi batukari horien bidez azpi-zikloan dagoen ertz kopurua kontatzen da eta kopuru hori azpi-zikloan dagoen hiri kopurua baino txikiagoa dela ziurtatzen du murrizketak. Horrela lortzen da azpi-zikloak baztertzea eta hiri guztietatik behin igarotzen den ziklo bakar batez osatutako ibilaldia aurkitzea.

Dantzig–Fulkerson–Johnson formulazioa honakoa da:

handitzearekin batera, ereduari gehitzen zaion murrizketa kopurua izugarri hazten da. Formulazioa proposatu zuten ikerlariek ikusi zuten guztiak gehitzea ez dela beharrezkoa, formulazioa sinplifikatuz.

Aurreko adibidearekin segituz, izanik, , azpimultzo propioak definitu behar dira. Hainbat aukera daude, bi hirik osatutako azpimultzoak (, adibidez) edo hiru hirik osatutakoak (, adibidez). Adibidean bi azpi-zikloz osatutako , , , soluziorako, har dezagun azpimultzo propioa, non den. 3 eta 4 hirien arteko azpi-zikloan, egiazta daiteke DFJ formulazioan gehitutako murrizketak sortzen duen eragina:

Azpi-zikloan 2 ertz daude (3tik 4ra eta 4tik 3ra) eta 2 erpin (3a eta 4a). Dagoen ertz kopurua erpin kopurua baino txikiagoa izatera behartzeak kontraesanera eramaten du, azpi-zikloaren sorrera ekidinez. Azpi-ziklo posible guztiak kontraesanera eramanez, problemaren ebazpenean hiri guztietatik pasatzen den ziklo bakarreko ibilaldia lortuko da.

Problemaren ebazpena[aldatu | aldatu iturburu kodea]

Bidaiariaren problemaren ebazpenak duen konplexutasunagatik, problema NP-gogor moduan sailkatua izan da. Horrelako problemen soluzio optimoa aurkitzeko ahaleginean, estrategia desberdinak erabili izan dira:

  • Algoritmo zehatzak diseinatzea soluzio optimoa aurkitzeko. Tamaina txikiko problemekin gai dira soluzioa aurkitzeko zentzuzko denbora erabiliz.
  • Algoritmo heuristikoak diseinatzea, soluzio optimoaren hurbilketa aurkitzeko gai direnak zentzuzko denbora erabiliz. Tamaina handiko problemen ebazpenean eraginkorrak izan daitezke, baina ez dute bermatzen soluzio optimoa (optimo globala) aurkituko dutenik; optimo lokalak aurkitzen dituzte.
  • Problemaren kasu partikularrak (azpiproblemak) bilatzea, non horiek ebazteko algoritmo zehatzak edo metodo heuristiko hobeak aplikatzea posiblea den.

Algoritmo zehatzak[aldatu | aldatu iturburu kodea]

n=7 hiriko instantzia baten ebazpena indar gordinaren algoritmoa erabiliz. Permutazio kopurua n!=7!= 5040 da. (7-1)!/2 = 360 ibilbide desberdin aztertzen dira.

Lehen begiratuan, problema ebazteko metodo zuzenena ibilbideen konbinaketa guztiak aztertzea dela pentsa daiteke, hau da, hirien permutazio (ordenazio) desberdin guztiak aztertzea eta haien artean kosturik txikienekoarekin (ibilbide motzenarekin) geratzea. Estrategia horri "indar gordinaren" algoritmoa esaten zaio (ingelesez "brute-force"), aukera guztiak aztertzen direlako. Hortaz, soluzio optimoa aurkitzea bermatzen da, baina konplexutasun-konputazionalaren ikuspegitik bideraezina da, hiriko problema ebazteko algoritmoak ordeneko konplexutasuna duelako. Esaterako, 20 hiriko problema bat indar gordinaz ebaztea praktikan ezinezkoa litzateke, zentzuzko denboran soluzio optimoa aurkitu nahi bada, behintzat.

Hori kontuan izanik, algoritmo konplexuagoak diseinatu izan dira. Held-Karp algoritmoa, adibidez, programazio dinamikoan oinarritzen da eta problema denboran ebaztea lortzen da. Antzeko konplexutasun-ordeneko algoritmo zehatzak diseinatu izan dira, baina denbora-muga hori gainditzea zaila gertatzen da. Izan ere, oraindik ez da frogatu konplexutasun-ordena baino txikiagoa duen algoritmo zehatzik existitzen den.

n=7 hiriko instantzia baten ebazpena adarkatze- eta bornatze-algoritmo bat erabiliz. Aztertzen den permutazio kopurua askoz txikiagoa da indar gordinaren algoritmoan baino.

Hona hemen bidaiariaren problema ebazteko garatu izan diren beste algoritmo zehatz batzuk:

  • Adarkatze- eta bornatze-algoritmoaren hainbat bertsio daude eta hiri arteko bidaiariaren problema ebaztean ondo moldatzen direnak.
  • Hobekuntza progresiboko algoritmoek programazio linealaren antzeko teknikak erabiltzen dituzte. hirira arteko problemen ebazpenean ondo dabiltza.
  • Badira adarkatze- eta bornatze-algoritmoaren bertsio batzuk eta baita problemarako mozte espezifikoak sortzeko diseinatutako algoritmoak (adarkatze- eta ebakitze-algoritmoak) tamaina handiko instantziak ebaztean ondo funtzionatzen dutenak. Algoritmo horiek erabiliz hiriko saltzaile ibiltariaren problemaren instantzia bat ebaztea lortu da.

Algoritmo zehatz horiek bizitza errealeko bidaiariaren problemaren instantziak ebazteko erabili izan dira historian zehar. Adibidez, 2001ean 15.112 hiri alemaniarrez osaturiko problemaren soluzio zehatza aurkitzea lortu zen ebaki-planoen metodoa erabiliz. 2004ean Suediako 24.978 hiriko problema ebatzi zen, 72.500 kilometro inguruko ibilbide bat aurkitu zen eta frogatu zen ibilbide hori baino motzagorik ez dela existitzen.

Algoritmo heuristikoak[aldatu | aldatu iturburu kodea]

Algoritmo heuristikoak soluzio optimoaren hurbilketak aurkitzen dituzten algoritmoak dira. Ez dute bermatzen soluzio optimoa (optimo globala) aurkituko denik, eta ondorioz, optimo lokalak ematen dituzte emaitza moduan. Normalean algoritmo horiek tamaina handiko problemak ebazteko erabiltzen dira, optimora iristeko beharko litzatekeen denboragatik metodo zehatzak erabiltzea ezinezkoa gertatzen den kasuetan. Halakoetan, algoritmo heuristikoak erabiltzea eraginkorra izan daiteke.

Azken urteotan soluzio optimora asko hurbiltzen diren algoritmo heuristiko anitz diseinatu dira saltzaile ibiltariaren problema ebazteko. Helburua tamaina handiko instantziekin ahalik eta soluzio onena lortzea da, zentzuzko denbora erabiliz. Ikusi da algoritmo heuristiko modernoak soluzio optimo globaletik inguru besterik ez direla aldentzen. Algoritmo heuristikoen artean, mota desberdinekoak daude.

Algoritmo eraikitzaileak (irenskorrak)[aldatu | aldatu iturburu kodea]

Auzokide hurbilenaren algoritmoak hasierako hiri desberdinetatik hasita ibilbide desberdinak eraikitzen ditu. Adibidez, A-B-C-D eta bueltan Ara (97ko distantzia) edo C-D-B-A eta bueltan Cra (108koa)

Algoritmo eraikitzaileek (ingelesez, "constructive") soluzioa urratsez urrats eraikitzen dute, normalean urrats bakoitzean aukerarik onena hautatuz eta problemaren ezaugarriak kontuan hartuz, hau da, intuizioa erabiliz. Algoritmo hauei algoritmo irenskor (ingelesez, "greedy algorithm") ere deitu ohi zaie, soluzioa eraikitzean urrats guztietan aukerarik onena hautatzen dutelako. Eraginkorrak izaten dira soluzio onak aurkitzeko, baina problema espezifiko bakoitzerako diseinatzen direnez, beste problemetara egokitzeko zailak izaten dira. Saltzaile ibiltariaren problemarako algoritmo eraikitzaile bat "auzokide hurbilenaren algoritmoa" da. Algoritmo horretan ibilbidea hasteko hiri bat aukeratzen da, eta hirien arteko distantziak aztertuz, oraindik bisitatua izan ez den eta gertuen dagoen hirira joatea erabakitzen da, urratsez urrats.

Auzokide hurbilenaren algoritmoaren aplikazio dinamikoa 7 hiriko instantzia batean. Hasierako hiriaren arabera, algoritmoak eraikitzen duen soluzioa aldatzen dela ikusten da.

Oro har, denbora laburrean soluzio onak lortzen diren arren, ausaz banatutako hirirentzat, batez beste ibilbide optimoa baino luzeagoak diren ibilbideak lortzen dira. Hala ere, problemaren instantzia berezi batzuetarako ibilbiderik okerrena (luzeena) itzultzen du. Problema simetrikoetan eta asimetrikoetan gerta daiteke hori.

Auzokide hurbilenaren algoritmoaren aldaerak existitzen dira. Horietako bat "zati hurbilenaren eragilea" da (ingelesez, "Nearest Fragment operator" edo "NF operator"). Aldaera horretan, bisitatuak izan ez diren hirien artean hurbil dauden hirien multzoak haien artean konektatzen dira, eta iterazioz iterazio ibilbide motzagoak aurkitzea lortzen da.

Bi algoritmoak konbina daitezke, hau da, auzokide hurbilenaren algoritmoa aplikatu soluzio bat eraikitzeko eta ondoren zati hurbilenaren eragilea aplikatu soluzio hori hobetzeko. Konplexutasun-ordenari dagokionez, eta denboran exekutatzen dira, hurrenez hurren.

Beste heuristiko eraikitzaile bat "Match Twice and Stitch" algoritmoa da (euskaraz "Birritan Parekatu eta Josi"). Algoritmo honek hirietatik pasatzen diren ziklo multzoak sortzen ditu eta gero zikloak elkartzen ditu hiri guztietatik pasatzen den ibilbide bat osatzeko.

Christofides-Serdyukov algoritmoa[aldatu | aldatu iturburu kodea]

Algoritmo hau bidaiariaren problemaren instantzia berezi batzuetan soilik aplika daiteke: espazio metriko batean kokatzen diren instantzietan bakarrik, hau da, hiria izanik, hurrengo propietateak betetzen dituzten instantzietan (informazio gehiagorako, ikus kasu berezien ebazpena):

Algoritmoak kasurik okerrenean soluzio optimoa baino 1,5 aldiz luzeagoa den ibilbidea bueltatzen duela frogatu da. Hori lortzeko, grafo teoriako emaitzak erabiltzen dira. Izan ere, grafo eulertar batean zirkuitu eulertar bat aurki daiteke denboran. Hortaz, saltzaile ibiltariaren instantzia batetik abiatuz grafo eulertar bat osa badaiteke (hiriak erpinak izanik), algoritmoa aplika daiteke zirkuitu eulertarra aurkitzeko, eta ondoren zirkuitutik bidaiariaren problemarako soluzioa aurkitu. Espazio metrikoaren propietateetatik erraz ondoriozta daiteke bidaiariaren problemarako soluzioa ezin dela zirkuitu eulertarra baino luzeagoa izan (desberdintza triangeluarra). Horri esker, soluziorako behe-borne bat kalkula daiteke. Christofides-Serdyukov-en algoritmoak ideia hori erabiltzen du.

Bikoteak ordezkatzea (2-opt)[aldatu | aldatu iturburu kodea]

Bikoteak ordezkatzearen teknika: soluzio batean bi ertz ezabatu eta beste bi ertzez ordezkatu. Irudian algoritmoaren iterazio bat ikusten da.

Bikoteak ordezkatzearen teknikak (ingelesez, "pairwise exchange" edo "2-opt") ertz bikoteak ezabatzen ditu eta deskonektatuta geratu diren zatiak beste ertz batzuen bidez konektatzen ditu, iterazioz iterazio ibilbide motzagoak eraikitzen joateko helburuarekin. Distantzia euklidestarrekin lan egitean, batezbeste Christofides-Serdyukov algoritmoak baino hobeak diren ibilbideak lortzen direla ikusi da. Algoritmo hau eta antzeko beste batzuk asko erabiltzen dira saltzaile ibiltariaren problemaren orokorpena den "Ibilgailuak Bideratzearen Problema" (Vehicle Routing Problem, VRP) ebazteko.

Hasierako soluzioa algoritmo irenskor batekin kalkulatzen bada, egin behar den bikoteen ordezkatze kopurua jaisten da eta algoritmoaren eraginkortasuna hobetzen da, haren konplexutasuna ordenakoa izango delarik. Baina hasierako soluzioa ausaz kalkulatzen bada, algoritmoaren konplexutasuna ordenakoa izango da. Horrela esanda, pentsa daiteke konplexutasunaren maila ez dela asko igotzen, baina algoritmoaren hasierako urratsetan, bereziki, ausaz sortutako soluzio batetik hasteak ertzak 10 aldiz gehiagotan ordezkatzea suposa dezake. 2-opt algoritmoak soluzioen atalik okerrenak (ertzen gurutzaketak dauden puntuak) sakon aztertzen dituelako gertatzen da hori.

k-koteak ordezkatzea (k-opt)[aldatu | aldatu iturburu kodea]

k-koteak ordezkatzearen algoritmoa edo "k-opt" bikoteak ordezkatzearen orokorpen bat da. Izan ere, bi ertz ezabatu eta zatien muturretako erpinak modu desberdinean elkartu ordez, ertz kenduz egiten da. Beraz, denean, k-koteak ordezkatzearen metodoa bikoteak ordezkatzearen metodo bihurtzen da. k-koteak ordezkatzeko algoritmoen artean, kasua da ezagunena: 3-opt. Bell laborategietan lanean ari zen Shen Lin-ek proposatu zuen 1965. urtean.

k-opt algoritmoa honakoa da:

  1. Hiri guztiak behin bakarrik zeharkatzen dituen iIbilbide bat emanik, haien artean alboko ez diren ertz ezabatzen dira.
  2. Deskonektatuta geratu diren ibilbidearen zatiak elkartu behar dira, ibilbide berri bat eraikiz. Ibilbidearen zatien muturretako erpinak beste ibilbide zatien muturretako erpinetara lotu behar dira ertzak gehituz, beti ere azpi-ibilbiderik sortzen ez dela ziurtatuz (ibilbide zati bereko muturreko erpinak ezin dira konektatu haien artean, azpi-ibilbidea sortuko litzatekeelako). Prozedura horrek bidaiariaren problema beste problema sinpleago batean eraldatzen du.
  3. ertz kendu ondoren solte geratu diren ibilbide zatien muturretako erpin bakoitza beste erpinetara konekta daiteke (guztira erpin geratu dira zatien muturretan, eta horietako bakoitza ezin da ez bere buruarekin ezta ibilbide-zati bereko beste muturreko erpinarekin konektatu). Indar gordinaren metodoa erabil daiteke ibilbidea osatzeko konfigurazio berri optimoa aurkitzeko, hau da, erpinak konektatzeko aukera posible guztiak aztertu eta distantzia edo kosturik txikienekoarekin geratu.

Bada k-opt algoritmoaren aldaera bat, alboko diren ertzak ezabatzea onartzen duena. kasurako, 2-opt algoritmoarekin lortu ahal izango liratekeen soluzioak baina dezente hobeak lortzen dira, 3-opt algoritmo estandarrak suposatzen duen kostu konputazionala ekidinez (bikoteak ordezkatzearen metodoa edo 2-opt aplikatzeak suposatzen duen kostutik gertuago). Aldaera horri "bi-eta-erdi-opt" deitu ohi zaio, 2-opt eta 3-opt algoritmoen artean dagoelao, bai kostu konputazionalaren ikuspegitik eta baita lortzen diren soluzioen kalitateari dagokionez ere.

v-opt metodoa (variable-opt)[aldatu | aldatu iturburu kodea]

v-opt metodoan ordezkatzen den ertz kopurua finkoa izan beharrean, aldakorra da. Ibilbide motzenaren bilaketa prozesua aurrera doan neurrian, ordezkatzen den ertz kopurua handitzen da, iterazioz iterazio. Hortik datorkio metodoari "variable-opt" edo "opt-aldakor" izena. k-opt metodoaren orokorpen bat da.

Metodo honetan oinarritzen den algoritmorik ezagunena "Lin-Kernighan" izenekoa da. Shen Lin eta Brian Kernighan ikerlariek argitaratu zuten 1972an eta bidaiariaren problemarako heuristikorik fidagarriena izan zen ia 20 urtez. 80ko hamarkadaren amaieran Bell laborategietan David Johnson eta bere ikerketa taldeak algoritmoaren hobekuntzak eta aldaera konplexuagoak garatu zituen. Hobekuntza horiek egiteko tabu bilaketa eta algoritmo ebolutiboak erabili ziren. Metodo horiek "Lin-Kernighan-Johnson" izenez ezagutzen dira.

Bidaiariaren problema ebazteko ahalmen handiena duen metodo heuristikoa v-opt dela esan ohi da. Oinarrizko bertsioarekin lortzen diren emaitzak 3-opt metodoarekin lortzen direnak bezain onak direla frogatu da.

Hobekuntza ausazkotua[aldatu | aldatu iturburu kodea]

Metodo hauek markov kateetan oinarritzen diren algoritmo optimizatuak dira. Bilaketa lokalerako heuristikoak dituzten azpi-algoritmoak erabiltzen dituzte eta ibilbide optimora asko gerturatzen diren soluzioak aurkitzeko gai dira 700-800 hiriko instantzien ebazpenean.

Inurri-kolonien optimizazioa[aldatu | aldatu iturburu kodea]

Adimen Artifizialeko ikerlari Marco Dorigok bidaiariaren problema ebazteko metodo heuristiko berri bat proposatu zuen 90eko hamarkadan: Ant Colony System (ACS) edo inurri-kolonien sistema. Algoritmoak inurrien kolonien funtzionamendua simulatzen du. Inurriek beste inurrien feromonen arrastoak jarraitzen dituzte inurritegiaren eta elikagai-iturrien arteko bide motzena aurkitzeko.

Inurrien kolonien algoritmoak hirien arteko ibilbide posibleak aztertzeko hainbat inurri birtual jartzen ditu martxan. Inurriek modu probabilistikoan eta heuristiko batean oinarrituz erabakitzen dute zein izango den bisitatuko duten hurrengo hiria. Heuristiko horrek hirira iristeko dagoen distantzia eta hirira iristeko dauden ertzetan kokatu den feromona kopurua kontuan hartzen ditu. Inurriek ertzak zeharkatzean feromona uzten dute. Inurri guztiek hirien arteko ibilaldi osoa amaitzen dutenean, ibilbide motzena egin duen inurriak feromona utziko du ibilaldi osoan eta feromonen eguneratze orokor bat egiten da. Jartzen den feromona kopurua ibilbidearen distantziarekiko alderantziz proportzionala da, hau da, zenbat eta motzagoa izan egindako ibilaldiaren distantzia osoa orduan eta feromona gehiago jartzen dute ertzetan.

1) Inurriak ausazko ibilbide bat osatzen du aukera desberdinen artean, feromona arrastoak utziz. 2) Inurri bakoitza bere ibilbidea egiten ari da, utzitako feromona-kopurua ibilbidearen luzeraren araberako izanik. 3) Ibilbideen ertz batzuk beste batzuk baino feromona gehiago dute. 4) Ebaporazio-teknikak soluzio desegokiak baztertzen ditu. Yves Aubry-k sorturiko mapa.
Inurri-kolonien optimizazio-algoritmo baten aplikazioa 7 hiriko bidaiariaren problema batean. Feromonen mapako marra gorri lodiek feromona-kopurua handiagoaren presentzia adierazten dute.

Kasu bereziak[aldatu | aldatu iturburu kodea]

Problema metrikoa[aldatu | aldatu iturburu kodea]

Bidaiariaren problema metrikoan (ingelesez, delta-TSP edo Δ-TSP), hirien arteko distantziek desberdintza triangeluarra betetzen dute. Egia esan, hirien arteko distantziek desberdintasun triangeluarra betetzen duen metrika bat osatzea oso murrizketa naturala da bidaiariaren probleman. Saltzaile ibiltariaren problemaren instantzia askotan betetzen da desberdintza triangeluarra. Horrek esan nahi du, eta hiriak ertz batez konektaturik badaude, -tik -ra dagoen distantzia hiritik pasata dagoena baino txikiagoa dela:

.

Tarteko hiri batetik pasatzean, ertzak zabaldu egiten dira eta ondorioz metrika bat osatzen dute erpin multzoaren gainean. Bidaiaren problemako hiriak planoko puntu direla kontsideratzen bada, hainbat espazio metriko agertzen dira. Hona hemen hainbat adibide, puntuen arteko distantzia metrika desberdinak erabiliz neurtuta:

  • Lerrozuzena (Manhattanen distantzia): puntuen arteko distantzia puntuen eta koordenatuen arteko diferentzien balio absolutuen batura da.
  • Maximoaren metrika (Chebyshev distantzia): puntuen arteko distantzia puntuen eta koordenatuen arteko diferentzien balio absolutuen maximoa da.

Azken bi metrikak, adibidez, bidaiariaren problemaren aplikazio klasiko batean erabiltzen dira: zirkuitu inprimatuen fabrikazioan (ingelesez, Printed Circuit Board, PCB). Aplikazio horretan, plaka zulatu egin behar da osagaiak plakan kokatzeko eta zulagailuaren ibilbidea planifikatu behar da. “Hiriak” egin beharreko zuloak dira, beraz. Makina zulagailua Manhattanen metrika erabiliz lan egiteko diseinatzen bada, lehenengo koordenatu batean (horizontalean, adibidez) doituko ditu bere mugimenduak eta gero beste koordenatuan (bertikalean). Horrela, puntu batetik bestera mugitzeko denbora bi koordenatuetan egindako mugimenduen batura izango da. Makina zulagailua Chebyshev distantzia (maximoaren metrika) erabiliz lan egiteko diseinatzen bada, aldiz, mugimendua bi koordenatuetan aldiberean doituko da; horrela, puntu batetik bestera mugitzeko denbora bi mugimenduen (horizontalaren eta bertikalaren) arteko maximoa da (motelena).

Berez, saltzaile ibiltariaren probleman hiriak ezin dira bi aldiz bisitatu. Hala ere, hainbat aplikaziotan ez da beharrezkoa murrizketa hori ezartzea. Kasu horietan, metrikoa ez den instantzia simetriko bat instantzia metriko bihur daiteke, horrela: jatorrizko grafoa grafo oso bihurtzen da, eta jatorrizko grafoan tik ra joateko bide motzenaren luzera izango da eta hirien arteko ertzaren distantzia grafo osotuan.

Bestalde, desberdintza triangeluarra betetzen duten bidaiariaren problemetan, posiblea da grafoaren zuhaitz estaltzaile minimoetan oinarritutako algoritmoak diseinatzea problema ebazteko (grafoan ziklo hamiltondarra aurkitzeko). Izan ere, zuhaitz horien hedapeneko ertzen distantzien batura bidaiariaren problemarako soluzioaren luzeraren behe-borne bat da. Kontuan izan behar da bidaiariaren ibilbide optimoan ertz bat kenduz bide Hamiltondar bat lortzen dela, hau da, zuhaitz estaltzaile minimo bat grafoan. Horrela, zuhaitz estaltzaile minimoen goi-borneak kontuan hartuz, ibilbidearen hedapenak aztertzen dituen algoritmoa diseina daiteke. Ideia horretan oinarrituz argitaratu den algoritmo bat honakoa da:

  1. Grafoan zuhaitz estaltzaile minimo bat aurkitu.
  2. Zuhaitzaren ertz guztiak bikoiztu, hau da zuhaitzean erpinetik erpinera ertza dagoen guztietan, -tik -ra doan beste ertz bat gehitu. Eragiketa horren ondorioz grafo eulertarra lortzen da.
  3. Grafo eulertar horretan zirkuitu eulertar bat aurkitu. Hedapen hori zuhaitzaren hedapenaren bikoitza da.
  4. Zirkuitu eulertar horretatik hasierako grafoaren ziklo hamiltondar bat lortu behar da, prozedura honi jarraituz: zirkuitu eulertarra zeharkatu, eta jada bisitatu den erpin batera iristen den bakoitzean, jauzi egin eta hurrengora joaten saiatu zirkuitu eulertarra zeharkatuz.

Froga daiteke azken urratsak funtzionatzen duela. Gainera, desberdintza triangeluarrari esker, 4. urratseko jauzi bakoitza bide laburra da, hau da, zikloaren luzera ez da handitzen. Beraz, bidaiariaren problemaren ibilbide baterako, ibilbide optimoaren bikoitza baino motzagoa da.

Christofidesen algoritmoaren diseinua antzekoa da, baina zuhaitz estaltzaile minimoa beste problema baten soluzioarekin konbinatzen da, parekatze perfektuarenarekin. Algoritmoak gehienez soluzio optimoa baino 1.5 aldiz luzeagoa den ibilaldia itzultzen du. Christofidesen algoritmoa hurbilketa-algoritmoen artean sortu zen lehenetarikoa izan zen. Gertakaria garrantzitsua izan zen, ebazten zailak ziren problemetarako ikuspuntu desberdin bat proposatzen zelako: soluzio optimoa bermatu ordez, hurbilketa on bat lortzea zen helburua. Hasiera batean, Christofidesen algoritmoari Christofidesen heuristikoa esaten zitzaion, "algoritmo" terminoa ez zelako hurbilketa algoritmoetarako erabiltzen.

Problema Euklidestarra[aldatu | aldatu iturburu kodea]

Bidaiariaren problema Euklidestarra edo laua Euklidesen distantzian oinarritzen da. Bidaiariaren problema metrikoaren kasu partikular bat da, distantziak planoan desberdintza triangeluarra betetzen baitu.

Problema orokorra bezala, hau ere NP-gogorra da. Metrika diskretura bihurtutako problema (distantzia zenbaki oso bihurtzea gora biribilduz) NP-osoa da. Hala ere, problema metriko orokorra baino errazagoa da. Adibidez, bidaiariaren problema euklidestarraren instantzia bati dagokion zuhaitz estaltzaile minimoa euklidestarra da eta O (n log n) ordenakoko denboran kalkula daiteke, n izanik hiri kopurua.

Problema asimetrikoa[aldatu | aldatu iturburu kodea]

Kasu gehienetan, hirien arteko distantzia ez da aldatzen noranzkoaren arabera, baina batzuetan -tik -rako distantzia eta -tik -rako distantzia ez da berdina. Problema horiek asimetrikoak direla esaten da. Halako problemen aplikazio praktiko bat "Ibilgailuak Bideratzearen Problema" da (Vehicle Routing Problem, VRP), noranzko bakarrean zeharka daitezkeen kaleak daudenean. Problema asimetrikoak ebaztea zaila izan daitekeenez, aukera bat simetriko bihurtzea da, n tamainako matrize asimetriko batetik 2n tamainako matrize simetriko bat lortuz.

Izan bedi , eta puntuen arteko distantziak jasotzen dituen honako 3 × 3 tamainako matrizea.[9] Matrizeak adierazten duen grafo zuzenduan bi ziklo hamiltondar daude (bi ibilbide posible bidaiariarentzat): (9ko distantzia) eta (12ko distantzia).

Matrize asimetrikoa
A B C
A 1 2
B 6 3
C 5 4

Matrizearen errenkada eta zutabe kopurua bikoizten da, puntu bakoitzarentzat beste puntu "mamu" bat sortuz, puntuarentzat puntu mamua, adibidez. Puntuen eta puntu mamuen arteko distantziari oso balio baxua esleitzen zaie (adibidean −∞), puntu mamu guztiak soluzio optimoan ager daitezen. Jatorrizko matrize asimetrikoa matrize bikoiztuaren behealdeko ezkerreko zatian ikusten da (diagonalean −∞ balioekin), eta matrizea bera baina diagonal nagusiarekiko iraulita goialdeko eskuineko zatian (hau ere bere diagonalean −∞ duelarik). Matrize berrian jatorrizko , eta puntuen artean ez dago ertz bidezko konexio zuzenik, ezta , eta puntu mamuen artean ere. Erraz ikus daiteke matrize berria simetrikoa dela diagonal nagusiarekiko.

Matrize simetrikoa
A B C A′ B′ C′
A −∞ 6 5
B 1 −∞ 4
C 2 3 −∞
A′ −∞ 1 2
B′ 6 −∞ 3
C′ 5 4 −∞

6 × 6 tamainako matrizeak adierazten duen grafo zuzenduan honako ziklo hamiltondarra existitzen da: . Ikusten den bezala, ibilbidean puntu batetik dagokion puntu mamura joaten da, hau da, , , puntuak eta horien puntu mamu diren , , puntuak txandakatzen dira. moduko bikoteetan "jauzi" egiten da, distantzia zero dela interpreta daitekeelako. Horrela, zikloa bihurtuko da (9ko distantziakoa).

Konplexutasun konputazionala[aldatu | aldatu iturburu kodea]

Saltzaile ibiltariaren problema NP-gogorra dela frogatu da (zehatzago esanda, NP-osoa da FPNP konplexutasun-klaserako; ikus funtzioaren problema), eta problemaren honako bertsioa NP-osoa da: distantzien matrize bat eta zenbaki bat emanik, erabaki distantzia baino txikiagoa den ibilbidea existitzen den. "Bidaiariaren Problema Botila-lepoduna" (ingelesez, Bottleneck TSP) ere NP-gogorra da. Problemak NP-gogor izaten jarraitzen du hirien arteko distantziak planoan distantzia euklidestarra erabiliz kalkulatzen badira ere. Problemaren planteamendutik hiri bakoitza "behin bakarrik" bisitatzeko eskakizuna kenduta ere problemak NP-gogor izaten jarraitzen du.

Hurbiltze-algoritmoen konplexutasuna[aldatu | aldatu iturburu kodea]

Problemaren planteamendu orokorra, hau da, hiri guztiak behin bakarrik bisitatu eta hasierako hirian amaitzen den ibilbiderik laburrena aurkitzea, NPO-osoa da (NP-Optimization problem, NPO).[10] Distantziaren neurria metrika bada (eta, beraz, simetrikoa), problema APX-oso bihurtzen da (ingelesez, APproXimable-complete), hau da, NP optimizazio problema da baina konstante batez mugatutako hurbilketa bat kalkulatzea posiblea da hurbilketa-algoritmo baten bidez denbora polinomialean.[11] Christofidesen algoritmoak gehienez ibilbide laburrena baino 1.5 aldiz luzeagoa den ibilaldia itzultzen du.[12][13][14]

Distantziak 1era eta 2ra mugatzen badira (metrika bat izanik), hurbilketa-ratioa 8/7-ekoa bihurtzen da, hau da gehienez 8/7 aldiz luzeagoa den ibilaldia aurkitzen da. [15] Desberdintza triangeluarra betetzen duten problema asimetrikoetan, duela gutxira arte emaitza denbora logaritmikoan itzultzen zuten algoritmoak besterik ez ziren ezagutzen. [16] 2018an, Svensson-ek, Tarnawski-k eta Végh-ek faktore konstante bateko hurbilketa metodoa garatu zuten.[17] Gaur egungo algoritmo onena Traub-ek eta Vygen-ek garatu zutena da, errendimendua lortzen du.[18] Ezagutzen den hurbiltasunerako bornerik onena 75/74-koa da.[19]

Bidaiariaren problemaren maximizatze-bertsiorako, hau da, hiri guztiak behin bakarrik bisitatu eta hasierako hirian amaitzen den ibilbiderik luzeena aurkitzearen problemarako, soluzioa 63/38-an hurbil daiteke.[20] Distantziaren funtzioa simetrikoa bada, algoritmo determinista bat erabiliz ibilbide luzeena 4/3-ean hurbil daiteke [21] eta ausazkotasuna erabiltzen duen algoritmo baten bidez -ean.[22]

Gizakien eta animalien errendimendua[aldatu | aldatu iturburu kodea]

Bidaiariaren problemaren ebazpenak psikologia kognitiboko ikertzaileen arreta erakarri du. Izan ere, gizakia problemaren soluziotik oso gertu dauden ibilbideak azkar (ia denbora linealean) aurkitzeko gai dela ikusi da. Hiri kopuruaren arabera errendimendua aldatzen da: 10-20 hiriko problemetan (10-20 erpin dituzten grafoetan) aurkitutako ibilbidea optimotik %1 aldendu daiteke eta problema handiagoetan (120 erpineko grafoetan) %11.[23][24] Gizakiek problema ebazteko eta optimotik gertu dauden soluzioak erraz (itxuraz behintzat) aurkitzeko erakutsi duten ahalmenak ikertzaileak hipotesiak egitera eraman ditu. Hipotesi horietako batek dio, gizakiek heuristikoak erabiltzen ditutela. Horren inguruko teoriarik ezagunenak ganbiltasunaren hipotesia (ingelesez, convex-hull hypothesis) eta gurutzatzea saihestearen heuristikoa (ingelesez, crossing-avoidance heuristic) dira.[25][26][27] Hala ere, giza errendimendua askotarikoa dela ikusi da, gizaki batzuek trebetasun handia erakusten duten arren beste batzuek traketsak dira soluzio onak aurkitzen. Gainera, grafoaren geometriak ere eragin handia sortzen du problemaren ebazpenaren errendimenduan.[28][29][30] Gizakiek erabiltzen dituzten estrategiak ulertu eta emulatuz gero, bidaiariaren problema ebazteko algoritmo hobeak aurkitu ahal izango direla ondorioztatu da egindako ikerketetatik.[31] Horrekin batera, giza pentsamenduaren mekanismoak hobeto ezagutzea lortu da.[32] "Journal of Problem Solving" aldizkari zientifikoaren lehen alea bidaiariaren problemaren ebazpenean gizakiek erakutsitako errendimenduari buruzkoa izan zen,[33] eta 2011ko argitalpen batean gaiari buruzko dozenaka artikulu zientifiko zerrendatzen dira.[34]

2011ean animalien kognizioari buruzko ikerketa bat egin zen. Ikerketaren izenburua "Let the Pigeon Drive the Bus" zen, euskaraz "Utzi usoari autobusa gidatzen". "Don't let the Pigeon Drive the Bus!" haurrentzako liburu ezagunaren izenburutik abiatuz jarri zitzaion izen hori ikerketa proiektuari. Helburua usoek espazioari buruz duten ezagutza aztertzea zen. Haien hegaldi-ereduak aztertu nahi zituzten, bidaiariaren problemaren ebazpenerako estrategia berriak bilatzeko asmoz. Horretarako, laborategi batean txorientzako hainbat elikagailu jarri zituzten ilarrekin. Hasierako esperimentuan, usoak laborategiko txoko batean kokatu eta aske utzi zituzten, elikagailuetako ilarrak jatera joan zitezen. Ikertzaileek ikusi zuten usoak hurbilen zegoen elikatzailera joaten zirela, gehienetan. Bigarren esperimentuan ez zuten ilar kopuru bera jarri elikagailu guztietan, gertuen zeudenetan oso gutxi jarri zuten eta urrutiago zeudenetan gehiago. Usoak askatzean, haiek egindako hegaldiak aztertuz konturatu ziren hurbilen zegoen elikagailura joateak elikagailu guztiak bisitatu behar izatea eragiten zuen kasuetan, usoek haien jokaera aldatzen zutela. Horrela, usoek nora joan erabaki behar zutenean hurbil egoteak garrantzia bazuela ikusi zuten arren, haien hegaldia hainbat urratsetan planifikatzeko gai zirela ondorioztatu zuten eta batzuetan urrunago dagoen elikagailura joatea erabakitzen zutela. Hori horrela egiten zuten, batez ere beti hurbilenera joatea eraginkorra ez zenean (ilar gutxi zegoenean hurbilenekoetan). [35] Emaitza horiek bat datoz primateak ez diren beste animalia batzuekin egindako esperimentuetako emaitzekin, eta frogatzen dute primateak ez diren animalia batzuek gai direla ibilbide konplexuak planifikatzeko. Hortaz, badirudi primate ez diren animaliek espazioa kudeatzeko trebetasun kognitibo sofistikatu samarra izan dezaketela.

Konputazio naturala[aldatu | aldatu iturburu kodea]

Badira naturan inspiratuta garatu izan diren ebazpen metodoak. Bidaiariaren problema euklidestarrerako hurbilpen soluzio bat aurkitzeko, adibidez, partikulen populazio bat difusio-sare batean zehar mugitzean materialaren portaera morfologikoa nola egokitzen den aztertu izan da. Ikerketa lan batean Physarum polycephalum motako ameba hainbat puntuz (elikadura-iturriz) osatutako sare batean kokatu zuten, eta ikusi zen ameba tamainaz txikitzen zela elikadura-puntuen konfiguraziora egokituz zioan neurrian. Eskuz amebaren perimetroa jarraituz gero, elikadura-puntuen arteko ibilbide bat aurkitu ahal izango litzateke. Ibilbide hori saltzaile ibiltariaren problemarako soluzio optimoaren hurbilpen moduan ikus daiteke.[36]

Algoritmoen ebaluazioa[aldatu | aldatu iturburu kodea]

Bidaiariaren problema ebazteko algoritmoak ebaluatzeko, badira liburutegi estandarrak. . TSPLIB liburutegian hainbat adibideren instantziak eta erlazionatutako problemak aurki daitezke (ikus TSPLIB kanpo erreferentzien atalean)[37] Instantzia horietako asko egungo hirien zerrendak eta gaur egungo zirkuitu inprimatuen diseinuak dira.

Kulturan eta zineman[aldatu | aldatu iturburu kodea]

  • "Travelling Salesman" Timothy Lanzone-k 2012an zuzendutako filma da. Ameriketako Estatu Batuetako gobernuak kontratatutako lau matematikariren istorioa kontatzen da. Informatikaren historiako problemarik zailena ebazteko kontratatuak izan dira: P vs NP problema ebazteko[38]
  • Bob Bosch matematikariak eta Tom Wexler informatikariak bidaiariaren problemaren soluzioak erabiltzen dituzte artelanak puntuen eta haietatik pasatzen diren ibilbideen bidez adierazteko. "Optimization art" edo "opt-art" deitzen zaio teknika horri. [39]

Erreferentziak[aldatu | aldatu iturburu kodea]

  1. "Der Handlungsreisende – wie er sein soll und was er zu tun hat, um Aufträge zu erhalten und eines glücklichen Erfolgs in seinen Geschäften gewiß zu sein – von einem alten Commis-Voyageur" (Bidaiaria — nolakoa izan behar duen eta zer egin behar lukeen komisioak lortzeko eta negozioetan arrakasta izatea bermatzeko —lehengo merkataritza-bide baten bidez—)
  2. Hamilton eta Kirkmanen lan goiztiarrari buruzko eztabaida aurki daiteke Graph Theory-n (1736-1936)
  3. Schrijver (2005) eta euskerara itzulia. Jatorrizkoa alemanez: "Wir bezeichnen als Botenproblem (weil diese Frage in der Praxis von jedem Postboten, übrigens auch von vielen Reisenden zu lösen ist) die Aufgabe, für endlich viele Punkte, deren paarweise Abstände bekannt sind, den kürzesten die Punkte verbindenden Weg zu finden. Dieses Problem ist natürlich stets durch endlich viele Versuche lösbar. Regeln, welche die Anzahl der Versuche unter die Anzahl der Permutationen der gegebenen Punkte herunterdrücken würden, sind nicht bekannt. Die Regel, man solle vom Ausgangspunkt erst zum nächstgelegenen Punkt, dann zu dem diesem nächstgelegenen Punkt gehen usw., liefert im allgemeinen nicht den kürzesten Weg."
  4. a b c d ISBN 978-0471904137..
  5. .
  6. A detailed treatment of the connection between Menger and Whitney as well as the growth in the study of TSP can be found in Txantiloi:Harvp.
  7.  doi:10.1016/j.ejor.2010.09.010...
  8. Hu, Bin; Raidl, Günther R.. (2008-09). «Solving the Railway Traveling Salesman Problem via a Transformation into the Classical Traveling Salesman Problem» 2008 Eighth International Conference on Hybrid Intelligent Systems (IEEE)  doi:10.1109/his.2008.30. (Noiz kontsultatua: 2023-03-27).
  9. Roy Jonker and Ton Volgenant. "Transforming asymmetric into symmetric traveling salesman problems". Operations Research Letters 2:161–163, 1983. doi:10.1016/0167-6377(83)90048-2
  10. Orponen, P.; Mannila, H. (1987). On approximation preserving reductions: Complete problems and robust measures' (Report). Department of Computer Science, University of Helsinki. Technical Report C-1987–28.
  11. Papadimitriou & Yannakakis (1993).
  12. Christofides (1976).
  13. Serdyukov, Anatoliy I. (1978), "О некоторых экстремальных обходах в графах" [On some extremal walks in graphs] (PDF), Upravlyaemye Sistemy (in Russian), 17: 76–79
  14. van Bevern, René; Slugina, Viktoriia A. (2020). "A historical note on the 3/2-approximation algorithm for the metric traveling salesman problem". Historia Mathematica. 53: 118–127. arXiv:2004.02437. doi:10.1016/j.hm.2020.04.003. S2CID 214803097.
  15. Berman & Karpinski (2006).
  16. Kaplan et al. (2004).
  17. Svensson, Ola; Tarnawski, Jakub; Végh, László A. (2018). "A constant-factor approximation algorithm for the asymmetric traveling salesman problem". Proceedings of the 50th Annual ACM SIGACT Symposium on Theory of Computing - STOC 2018. Stoc 2018. Los Angeles, CA, USA: ACM Press: 204–213. doi:10.1145/3188745.3188824. ISBN 978-1-4503-5559-9. S2CID 12391033.
  18. Traub, Vera; Vygen, Jens (8 June 2020). "An improved approximation algorithm for ATSP". Proceedings of the 52nd Annual ACM SIGACT Symposium on Theory of Computing. Stoc 2020. Chicago, IL: ACM: 1–13. arXiv:1912.00670. doi:10.1145/3357713.3384233. ISBN 978-1-4503-6979-4. S2CID 208527125.
  19. Karpinski, Lampis & Schmied (2015).
  20. Kosaraju, Park & Stein (1994).
  21. Serdyukov (1984).
  22. Hassin & Rubinstein (2000).
  23. Macgregor, J. N.; Ormerod, T. (June 1996), "Human performance on the traveling salesman problem", Perception & Psychophysics, 58 (4): 527–539, doi:10.3758/BF03213088, PMID 8934685.
  24. Dry, Matthew; Lee, Michael D.; Vickers, Douglas; Hughes, Peter (2006). "Human Performance on Visually Presented Traveling Salesperson Problems with Varying Numbers of Nodes". The Journal of Problem Solving. 1 (1). CiteSeerX 10.1.1.360.9763. doi:10.7771/1932-6246.1004. ISSN 1932-6246.
  25. Rooij, Iris Van; Stege, Ulrike; Schactman, Alissa (1 March 2003). "Convex hull and tour crossings in the Euclidean traveling salesperson problem: Implications for human performance studies". Memory & Cognition. 31 (2): 215–220. CiteSeerX 10.1.1.12.6117. doi:10.3758/bf03194380. ISSN 0090-502X. PMID 12749463. S2CID 18989303.
  26. MacGregor, James N.; Chu, Yun (2011). "Human Performance on the Traveling Salesman and Related Problems: A Review". The Journal of Problem Solving. 3 (2). doi:10.7771/1932-6246.1090. ISSN 1932-6246.
  27. MacGregor, James N.; Chronicle, Edward P.; Ormerod, Thomas C. (1 March 2004). "Convex hull or crossing avoidance? Solution heuristics in the traveling salesperson problem". Memory & Cognition. 32 (2): 260–270. doi:10.3758/bf03196857. ISSN 0090-502X. PMID 15190718.
  28. Vickers, Douglas; Mayo, Therese; Heitmann, Megan; Lee, Michael D; Hughes, Peter (2004). "Intelligence and individual differences in performance on three types of visually presented optimisation problems". Personality and Individual Differences. 36 (5): 1059–1071. doi:10.1016/s0191-8869(03)00200-9.
  29. Kyritsis, Markos; Gulliver, Stephen R.; Feredoes, Eva (12 June 2017). "Acknowledging crossing-avoidance heuristic violations when solving the Euclidean travelling salesperson problem". Psychological Research. 82 (5): 997–1009. doi:10.1007/s00426-017-0881-7. ISSN 0340-0727. PMID 28608230. S2CID 3959429.
  30. Kyritsis, Markos; Blathras, George; Gulliver, Stephen; Varela, Vasiliki-Alexia (11 January 2017). "Sense of direction and conscientiousness as predictors of performance in the Euclidean travelling salesman problem". Heliyon. 3 (11): e00461. doi:10.1016/j.heliyon.2017.e00461. PMC 5727545. PMID 29264418.
  31. Kyritsis, Markos; Gulliver, Stephen R.; Feredoes, Eva; Din, Shahab Ud (December 2018). "Human behaviour in the Euclidean Travelling Salesperson Problem: Computational modelling of heuristics and figural effects". Cognitive Systems Research. 52: 387–399. doi:10.1016/j.cogsys.2018.07.027. S2CID 53761995.
  32. MacGregor, James N.; Chu, Yun (2011), "Human performance on the traveling salesman and related problems: A review", Journal of Problem Solving, 3 (2), doi:10.7771/1932-6246.1090.
  33. Journal of Problem Solving 1(1), 2006, retrieved 2014-06-06.
  34. MacGregor, James N.; Chu, Yun (2011), "Human performance on the traveling salesman and related problems: A review", Journal of Problem Solving, 3 (2), doi:10.7771/1932-6246.1090.
  35. Gibson, Brett; Wilkinson, Matthew; Kelly, Debbie (1 May 2012). "Let the pigeon drive the bus: pigeons can plan future routes in a room". Animal Cognition. 15 (3): 379–391. doi:10.1007/s10071-011-0463-9. ISSN 1435-9456. PMID 21965161. S2CID 14994429.
  36. Jones, Jeff; Adamatzky, Andrew (2014), "Computation of the travelling salesman problem by a shrinking blob" (PDF), Natural Computing: 2, 13, arXiv:1303.4969, Bibcode:2013arXiv1303.4969J
  37. "TSPLIB". comopt.ifi.uni-heidelberg.de. Retrieved 10 October 2020.
  38. Geere, Duncan (26 April 2012). "'Travelling Salesman' movie considers the repercussions if P equals NP". Wired UK. Retrieved 26 April 2012.
  39. When the Mona Lisa is NP-HardBy Evelyn Lamb, Scientific American, 31 April 2015

Ikus, gainera[aldatu | aldatu iturburu kodea]

Kanpo estekak[aldatu | aldatu iturburu kodea]