Legrövidebb út probléma

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. augusztus 20-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .

A legrövidebb út  probléma a legrövidebb út (lánc) megtalálása egy gráf két pontja (csúcsa) között , amelyben az utat alkotó élek súlyának összege minimális.

A legrövidebb út probléma a gráfelmélet egyik legfontosabb klasszikus problémája . Ma már számos algoritmus ismert a megoldására .

Ennek a problémának más neve is van: a minimális elérési út probléma, vagy egy elavult verzióban a postakocsi probléma.

Ennek a feladatnak a jelentőségét a különféle gyakorlati alkalmazásai határozzák meg . Például a GPS-navigátorok keresik a legrövidebb utat egy kiindulási pont és egy úti cél között. A kereszteződések csúcsokként működnek, az utak pedig a köztük lévő élek. Ha a kereszteződések közötti utak hosszának összege minimális, akkor a talált út a legrövidebb.

Definíció

A gráf legrövidebb útjának megtalálásának problémája definiálható irányítatlan , irányított vagy vegyes gráf esetén. Ezután a problémafelvetést a legegyszerűbb formában vizsgáljuk meg irányítatlan gráf esetén. Vegyes és irányított gráf esetén az élek irányát is figyelembe kell venni.

A gráf csúcsok és élek (csúcspárok) nem üres halmazának gyűjteménye. A gráf két csúcsa szomszédos, ha közös élük van. Az út az irányítatlan gráfban olyan csúcsok sorozata , amelyek szomszédosak a for -ral . Az ilyen utat a csúcstól a pontig terjedő hosszúságú útnak nevezzük (az út csúcsának számát jelzi, és semmi köze a gráf csúcsainak számozásához).

Legyen  két csúcsot összekötő él: és . Adott egy súlyfüggvény , amely leképezi az éleket a súlyukra, amelyek értékei valós számokként vannak kifejezve, és egy irányítatlan gráf . Ekkor a legrövidebb út a csúcstól a csúcsig az az út lesz (ahol és ), amelyen az összeg minimális értéke van .

A legrövidebb út problémájának többféle megfogalmazása létezik:

A probléma különböző megfogalmazásában az élhossz szerepét nemcsak maguk a hosszúságok játszhatják, hanem az idő, a költség, a ráfordítások, a ráfordított erőforrások mennyisége (anyag, anyagi, üzemanyag és energia stb.), ill. az egyes élek áthaladásához kapcsolódó egyéb jellemzők. Így a probléma nagyon sok területen talál gyakorlati alkalmazást (számítástechnika, közgazdaságtan, földrajz stb.).

A legrövidebb útprobléma további megszorítások hatálya alá tartozik

A legrövidebb út problémájával nagyon gyakran találkozunk olyan helyzetben, amikor további megszorításokkal kell számolni. Jelenlétük jelentősen növelheti a feladat összetettségét [1] . Példák ilyen feladatokra:

  1. Egy adott csúcshalmazon áthaladó legrövidebb út. Két megkötést lehet figyelembe venni: a legrövidebb útnak át kell haladnia a kiválasztott csúcshalmazon, és a legrövidebb útnak a lehető legkevesebb ki nem választott csúcsot kell tartalmaznia. Ezek közül az első jól ismert az operációkutatáselméletben [2] .
  2. Egy irányított gráf csúcsainak minimális lefedettsége útvonalakkal. A keresést a gráfot lefedő minimális számú útvonalra, nevezetesen az összes st út egy részhalmazára hajtjuk végre, úgy, hogy egy irányított gráf minden csúcsa legalább egy ilyen útvonalhoz tartozik [3] .
  3. A szükséges utak problémája. Meg kell találni egy olyan halmazt, amely minimális kardinalitású utakból áll , hogy bármelyikhez legyen egy út , amely lefedi.  néhány útvonal halmaza egy irányított G gráfban [4] .
  4. Egy irányított gráf íveinek minimális lefedettsége pályákkal. A probléma az, hogy meg kell találni az összes útvonal minimális részhalmazát az utak száma alapján úgy, hogy minden ív legalább egy ilyen útvonalhoz tartozzon. Ebben az esetben lehetséges egy további követelmény, hogy minden út egy csúcsból származzon [5] .

Algoritmusok

Tekintettel arra, hogy ennek a problémának számos különböző megfogalmazása létezik, vannak a legnépszerűbb algoritmusok a grafikonon a legrövidebb út megtalálásának problémájának megoldására:

A munka (Cherkassky et al., 1993) [8] számos további algoritmust mutat be ennek a problémának a megoldására.

Az egyik csúcstól az összes többihez vezető legrövidebb út megtalálásának problémája

A feladatnak ebben a megfogalmazásában meg kell keresni a legrövidebb utat a v csúcstól a gráf összes többi csúcsáig.

Súlyozatlan irányított gráf

Algoritmus Bonyolultság Szerző
Szélesség első keresés O ( V+E )
Ez egy hiányos lista , és előfordulhat, hogy soha nem felel meg a teljesség bizonyos követelményeinek. Jó hírű forrásokból kiegészítheti .

Irányított gráf nem negatív súlyokkal

Algoritmus Bonyolultság Szerző
- O ( V 2 EL ) Ford 1956
Bellman-Ford algoritmus O ( VE ) Bellman 1958 [9] , Moore 1957 [10]
- O ( V 2 log V ) Danzig 1958, Danzig 1960, Minty (vö. Pollack & Wiebenson 1960), Whiting és Hillier 1960
Dijkstra lista algoritmusa . O ( V2 ) _ Leyzorek et al. 1957 [11] , Dijkstra 1959 [12]
Dijkstra algoritmusa módosított bináris kupacokkal O ( ( E + V ) log V ) -
. . . . . . . . .
Dijkstra algoritmusa Fibonacci Heap használatával O ( E + V log V ) Fridman és Tarjan 1984 [13] , Fridman és Tarjan 1987 [14]
- O ( E log log L ) Johnson 1982, Karlsson & Poblete 1983
Gabov algoritmusa O ( E log E / V L ) Gabow 1983, Gabow 1985
- O ( E + V √ log L ) Ahuja et al. 1990
Ez egy hiányos lista , és előfordulhat, hogy soha nem felel meg a teljesség bizonyos követelményeinek. Jó hírű forrásokból kiegészítheti .

Irányított gráf tetszőleges súllyal

Algoritmus Bonyolultság Szerző
Bellman-Ford algoritmus O ( VE ) Bellman [9] , Moore [10]
Ez egy hiányos lista , és előfordulhat, hogy soha nem felel meg a teljesség bizonyos követelményeinek. Jó hírű forrásokból kiegészítheti .

Az összes csúcspár közötti legrövidebb út problémája

A súlyozatlan irányított gráf összes csúcspárja közötti legrövidebb útproblémát Simbel vetette fel 1953-ban [15] , aki úgy találta, hogy ez lineáris számú mátrixmanipulációval (szorzással) megoldható. Egy ilyen algoritmus bonyolultsága O ( V 4 ).

Vannak más gyorsabb algoritmusok is a probléma megoldására, mint például a Floyd-Warshall algoritmus O komplexitású ( V 3 ) és a Johnson algoritmus (amely a Bellman-Ford és a Dijkstra algoritmusok kombinációja) O komplexitású ( VE + V 2 log V ) .

Alkalmazás

A gráfon a legrövidebb út megtalálásának problémája többféleképpen értelmezhető és különböző területeken alkalmazható. A következő példák a probléma különféle alkalmazási területeire mutatnak be. Az operációkutatással foglalkozó tudományágban további alkalmazásokat is vizsgálnak [16] .

Térképszolgáltatások

A grafikon legrövidebb útvonalának algoritmusait arra használják, hogy megtalálják a fizikai objektumok közötti utakat olyan térképszolgáltatásokon, mint a Google Térkép vagy az OpenStreetMap . A Google oktatóvideójában különféle hatékony algoritmusokat ismerhet meg, amelyeket ezen a területen használnak [17] .

Nem determinisztikus gép

Ha egy nem-determinisztikus absztrakt gépet gráfként képzelünk el, ahol a csúcsok állapotokat írnak le, az élek pedig a lehetséges átmeneteket határozzák meg, akkor a legrövidebb út algoritmusai segítségével megtalálhatjuk az optimális megoldási sorozatot a fő cél eléréséhez. Például, ha a csúcsok egy Rubik-kocka állapotai , és az él egyetlen műveletet jelent a kockán, akkor az algoritmus alkalmazható minimális mozdulatszámú megoldás megtalálására.

Úthálózatok

A legrövidebb út grafikonon való megtalálásának problémáját széles körben használják az úthálózat legrövidebb távolságának meghatározására.

Az úthálózat pozitív súlyokkal ábrázolható grafikonként. A csúcsok útkereszteződések , a szélek pedig az őket összekötő utak. Az élsúlyok megfelelhetnek egy adott szakasz hosszának, a leküzdéséhez szükséges időnek vagy a végighaladási költségnek. Az orientált élek használhatók az egyirányú utcák ábrázolására. Egy ilyen oszlopban megadhat egy olyan jellemzőt, amely azt jelzi, hogy egyes utak fontosabbak, mint mások a hosszú utakhoz (például autópályák). Az autópályák koncepciójában (eszmében) formalizálódott [18] .

A megközelítés megvalósításához, ahol egyes utak fontosabbak, mint mások, számos algoritmus létezik. Sokkal gyorsabban oldják meg a legrövidebb út megtalálásának problémáját, mint a hasonlók a szokásos grafikonokon. Az ilyen algoritmusok két szakaszból állnak:

  1. előfeldolgozási szakasz. A gráf előfeldolgozása a kezdeti és a végső csúcsok figyelembevétele nélkül történik (ez akár több napig is eltarthat, ha valós adatokkal dolgozik). Általában egyszer hajtják végre, majd a kapott adatokat használják fel.
  2. kérés szakaszában. A legrövidebb út kérése és keresése történik, miközben a kezdeti és a végső csúcs ismert.

A leggyorsabb algoritmus a mikroszekundum töredéke alatt képes megoldani ezt a problémát Európa vagy Amerika útjain [19] .

Egyéb megközelítések (technikák), amelyeket ezen a területen alkalmaznak:

Hasonló problémák

Vannak olyan problémák, amelyek hasonlóak a gráf legrövidebb útjának megtalálásához.

Állítás a lineáris programozás problémájáról

Legyen adott egy irányított gráf ( V , A ), ahol V  csúcsok halmaza, A  pedig élek halmaza, s kezdőcsúccsal, t végponttal és w ij súlyokkal az A minden élére ( i , j ) . Az egyes élek súlya az x ij programváltozónak felel meg .

Ekkor a következőképpen tesszük fel a problémát: keressük meg a függvény minimumát , ahol , feltéve, hogy a következő egyenlőtlenség minden i -re és j -re teljesül:

Lásd még

Jegyzetek

  1. Gráfelmélet alkalmazása programozásra, 1985 .
  2. A gráfelmélet alkalmazása a programozásban, 1985 , p. 138-139.
  3. A gráfelmélet alkalmazása a programozásban, 1985 , p. 139-142.
  4. A gráfelmélet alkalmazása a programozásban, 1985 , p. 144-145.
  5. A gráfelmélet alkalmazása a programozásban, 1985 , p. 145-148.
  6. 1 2 Diszkrét matematika. Combinatorial Optimization on Graphs, 2003 .
  7. A gráfelmélet alkalmazása a programozásban, 1985 , p. 130-131.
  8. Cherkassky, Goldberg, Radzik, 1996 .
  9. 1 2 Bellman Richard, 1958 .
  10. 12 Moore , 1957 .
  11. M. Leyzorek, 1957 .
  12. Dijkstra, 1959 .
  13. Michael Fredman Lawrence, 1984 .
  14. Fredman Michael, 1987 .
  15. Shimbel, 1953 .
  16. Algoritmusok és szoftverek fejlesztése geometriai úttervezési problémákhoz, 1996 .
  17. Gyors útvonaltervezés .
  18. Autópálya Dimenzió, 2010 .
  19. Hub-Based Labeling Algorithm, 2011 .
  20. Ladyzhensky Y., Popoff Y. Algorithm, 2006 .

Irodalom