A legrövidebb út probléma
A gráfelméletben a legrövidebb útprobléma az az algoritmikus probléma , hogy az egyik csúcsból a másikba keressünk egy utat úgy, hogy ezen út széleinek súlya összege minimális legyen.
A legrövidebb út problémájának változatai
Ennek a problémának sokféle változata van attól függően, hogy a gráf véges, orientált-e vagy sem, függetlenül attól, hogy minden ívnek vagy élnek van-e súlya vagy hossza. Két adott csomópont között a legrövidebb út az az út, amely minimalizálja a keresztezett ívek értékének összegét. A rövidebb út kiszámításához sok algoritmus létezik, az értékek jellegétől és az esetlegesen felmerülő további korlátozásoktól függően. Sok esetben léteznek polinomiális idő-összetettségű algoritmusok , például Dijkstra algoritmusa pozitív súlyú gráfokban. Másrészt, ha további korlátozásokat, például időablakokat adnak hozzá, a probléma NP-nehézsé válhat .
Az alkalmazás leggyakoribb példája a legrövidebb út keresése két város között. Ez a látszólag könnyű probléma, mivel egyszerűen a futástávolságok összegzéséről van szó, bonyolultabbá válik, ha le akarjuk vezetni az utazási időt, mert a forgalom intenzitása, az agglomerációk átkelésének ideje további korlátokat jelent. A ellenkezőleg, utat megállapítás egy mesterséges intelligencia probléma kapcsolódó tervezési . Ez abból áll, hogy hogyan kell mozogni egy környezetben a kiindulópont és a végpont között, figyelembe véve a különféle korlátozásokat. Nehézvé válik, amikor figyelembe kell venni különféle további korlátozásokat ( valós idejű végrehajtás , bizonytalanságok jelenléte, erőforrás-korlátok, kialakuló környezet stb.).
Ív súlya
A probléma és megoldásai mindenekelőtt a súlyok jellegétől függenek: minden ív reális szám súlyú . A figyelembe vett különböző esetek a következők:
(x,y){\ displaystyle (x, y)}
w(x,y){\ displaystyle w (x, y)}![{\ displaystyle w (x, y)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2c832b255202f489718326a29d60b7c2be485b15)
- A súlyok mind pozitívak: Ebben az esetben a Dijkstra algoritmus az ívek és csúcsok gráfjának időbeli összetettségében oldja meg az adott csúcstól a többi csúcsig tartó legrövidebb út problémáját .O(m+nemnaplónem){\ displaystyle O (m + n \ log n)}
m{\ displaystyle m}
nem{\ displaystyle n}![nem](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
- A súlyok tetszőlegesek, de nincs negatív tömegű áramkör (nincs elnyelő áramkör ): Ebben az esetben a Bellman-Ford algoritmus lehetővé teszi annak tesztelését, hogy van-e elnyelő áramkör, és ilyen áramkör hiányában hogy rövidebb utat találjon az időben .O(nemm){\ displaystyle O (nm)}
![O (nm)](https://wikimedia.org/api/rest_v1/media/math/render/svg/051245e657739f572fe7902c817ea9103c687fb7)
- A súlyok tetszőlegesek: Ez a változat NP-kemény , amint az látható, ha figyelembe vesszük az NP-teljes Hamilton-út problémájának csökkentését, amely az ívek súlyának rögzítésében áll .-1{\ displaystyle -1}
![-1](https://wikimedia.org/api/rest_v1/media/math/render/svg/704fb0427140d054dd267925495e78164fee9aac)
A probléma változatai
A problémának lényegében két változata van:
Keresés egy adott csúcsból ( " egyetlen forrás " )
Rögzítünk egy csúcsot , a forrást vagy az origót , és minimális hosszúságú utat keresünk ettől a forrástól az összes csúcsig. A legfontosabb algoritmusok a következők
s{\ displaystyle s}![s](https://wikimedia.org/api/rest_v1/media/math/render/svg/01d131dfd7673938b947072a13a9744fe997e632)
Változatok:
- Az A * algoritmus két megadott pont közötti keresésre szolgáló heurisztikán alapuló algoritmus.
- A Viterbi algoritmus lehetővé teszi a zajos csatornán történő átvitel során felmerült hibák bizonyos mértékű kijavítását.
A kettős probléma a legrövidebb út megtalálása az összes csúcstól egy közös csúcsig (a célig ). Ezt a problémát úgy kezelik, hogy megfordítják az ívek irányát.
Az összes csúcspár keresése ( " Összes pár " )
Rövidebb utat vagy legalább egy ilyen út hosszát keressük az összes csúcspárra .
(s,t){\ displaystyle (s, t)}![(utca)](https://wikimedia.org/api/rest_v1/media/math/render/svg/c4a80873677b13851457efa3447c2f412c91e425)
- A Floyd-Warshall algoritmust ad a mátrix a hossza a legrövidebb idő utak egy vertex grafikon , de a grafikon nem lehet szigorúan negatív tömeg áramkört. A negatív áramkör létezését a főátló negatív értékei látják.O(nem3){\ displaystyle O (n ^ {3})}
nem{\ displaystyle n}![nem](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
- A Johnson algoritmus negatív áramkör hiányában megoldja a problémát, és üreges grafikonokban gyorsabb lehet, mint Floyd-Warshall .
Megfogalmazás lineáris programként
A legrövidebb útprobléma lineáris optimalizálási problémaként formulázható az alábbiak szerint.
Legyen egy grafikon, két megkülönböztetett csúccsal (a forrás vagy az origó) és (a cél vagy a mosogató); megjegyezzük az íj költségét . A lineáris programot a következő
változók alapján vesszük figyelembeG=(S,NÁL NÉL){\ displaystyle G = (S, A)}
s{\ displaystyle s}
t{\ displaystyle t}
w(én,j){\ displaystyle w (i, j)}
(én,j){\ displaystyle (i, j)}
xénj{\ displaystyle x_ {ij}}![x _ {{ij}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a27e97949cb2cc8f2d4c2a9421477a65f839db11)
minimalizálni
∑énj∈NÁL NÉLw(én,j)xénj{\ displaystyle \ sum _ {ij \ in A} w (i, j) x_ {ij}}
a megszorításokkal és minden i esetében
xénj≥0{\ displaystyle x_ {ij} \ geq 0}![{\ displaystyle x_ {ij} \ geq 0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8a0f5463c2b4461bef4d9532d4982415b8dafe78)
∑jxénj-∑jxjén={1ha én=s;-1ha én=t;0ha nem.{\ displaystyle \ sum _ {j} x_ {ij} - \ sum _ {j} x_ {ji} = {\ elején {esetek} 1 & {\ text {si}} i = s; \\ - 1 & { \ text {si}} i = t; \\ 0 & {\ text {különben.}} \ end {esetben}}}![{\ displaystyle \ sum _ {j} x_ {ij} - \ sum _ {j} x_ {ji} = {\ elején {esetek} 1 & {\ text {si}} i = s; \\ - 1 & { \ text {si}} i = t; \\ 0 & {\ text {különben.}} \ end {esetben}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5409be9fd9adf7c50bbca5353df27e2af783c393)
Az intuitív magyarázat az a változó, amelyet arra használnak, hogy jelezze, az ív a megtalált legrövidebb út része- e vagy sem: ez 1, ha van, és 0 egyébként. Megpróbáljuk kiválasztani a minimális összsúlyú ívkészletet, feltéve, hogy az ívek utat alkotnak s- től t-ig ; ezt a feltételt a megszorítás képviseli, amely kifejezi, hogy az s és t kivételével bármely csúcs esetén a kiválasztott bejövő ívek számának meg kell egyeznie a kimenő ívek számával, és így a halmaz utat alakít ki s- től t-ig .
xénj{\ displaystyle x_ {ij}}
(én,j){\ displaystyle (i, j)}![(i, j)](https://wikimedia.org/api/rest_v1/media/math/render/svg/8ef21910f980c6fca2b15bee102a7a0d861ed712)
Ennek a lineáris programnak a kettős programja az
maximalizálni
yt-ys{\ displaystyle y_ {t} -y_ {s}}
a megszorításokkal
yj-yén≤w(én,j){\ displaystyle y_ {j} -y_ {i} \ leq w (i, j)}![{\ displaystyle y_ {j} -y_ {i} \ leq w (i, j)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dd1ec9128e25b4328da943d56b2ce562220147cb)
minden i-re, j .
A kettős bármilyen megvalósítható megoldása esetén a csökkentett költségek nem negatívak, és ezen csökkentett költségek mellett az A * algoritmus lényegében úgy viselkedik, mint a Dijkstra algoritmus.
y{\ displaystyle y}
w′(én,j)=w(én,j)-yj+yén{\ displaystyle w '(i, j) = w (i, j) -y_ {j} + y_ {i}}![{\ displaystyle w '(i, j) = w (i, j) -y_ {j} + y_ {i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2c42b5e1df2d8d53c15ef5b9e1b6e5614ca57a13)
A kettős program megoldása a csomópontokban rejlő potenciál, amely az ember számára Knotenpotenciális . Könnyen beláthatjuk, hogy bármely megoldás esetében a vektor
is megoldás mindenre . Különösen úgy választhat , hogy . Tehát a maximalizálni kívánt érték az .
y{\ displaystyle y}
(yén)én∈S{\ displaystyle (y_ {i}) _ {i \ S} -ben}
(yén+δ)én∈S{\ displaystyle (y_ {i} + \ delta) _ {i \ in S}}
δ∈R{\ displaystyle \ delta \ in \ mathbb {R}}
δ{\ displaystyle \ delta}
ys=0{\ displaystyle y_ {s} = 0}
maxyt{\ displaystyle \ max \; y_ {t}}![{\ displaystyle \ max \; y_ {t}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3f1d17e9790d327b51c98d54cc67d88bce05fc9e)
Bármely útvonal származó egy vertex , a hossza lehet becsülni
vs.{\ displaystyle c}
s{\ displaystyle s}
v≠s{\ displaystyle v \ neq s}![{\ displaystyle v \ neq s}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c1f3e0b1588bfc9e1b96dc357fb0e10fac46ed72)
w(vs.)=∑(én,j)∈vs.w(én,j)≥∑(én,j)∈vs.yj-yén=yv{\ displaystyle w (c) = \ sum _ {(i, j) \ in c} w (i, j) \ geq \ sum _ {(i, j) \ in c} y_ {j} -y_ {i } = y_ {v}}![{\ displaystyle w (c) = \ sum _ {(i, j) \ in c} w (i, j) \ geq \ sum _ {(i, j) \ in c} y_ {j} -y_ {i } = y_ {v}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/09152050a810e5cb666f6de4f29509edcbc5ddee)
Ez azt mutatja, hogy egy csomópont potenciálja alacsonyabb, mint az út hossza. Találunk egy optimális megoldás a kettős programot választotta, hogy az adott csomópont , mint a hossza a legrövidebb utat , hogy a célfüggvény .
v≠s{\ displaystyle v \ neq s}
s{\ displaystyle s}
v{\ displaystyle v}
w{\ displaystyle w}![w](https://wikimedia.org/api/rest_v1/media/math/render/svg/88b1e0c8e1be5ebe69d18a8010676fa42d7961e6)
Általánosított Floyd-Warshall algoritmus
A Warshall algoritmus, a Floyd-Warshall algoritmus és a McNaughton-Yamada algoritmus közötti hasonlóságot egy mögöttes algebrai struktúra, egy félgyűrű struktúrája magyarázza . Ezt az értelmezést először Claude Pair 1966-os cikkében mutatták be , majd Claude Pair és Jean-Claude Derniame könyvében vették fel. Az első angol változat csak 1974-ben jelent meg Aho, Hopcroft és Ullman könyvében. Ez felvesszük később, Gondran és Minoux például; utóbbiak Pierre Robert és Jacques Ferland 1968-as francia cikkét idézik.
A félgyűrű két bináris törvénnyel és . A törvény asszociatív, kommutatív és 0 vagy 0 értékű semleges elemet fogad el . A törvény asszociatív és disztributív . Elfogad egy semleges elemet, amelyet 1 vagy . A logikai algebra a félgyűrű felvételének , (vagy) és (és) példája .
⊕{\ displaystyle \ oplus}
⊗{\ displaystyle \ otimes}
⊕{\ displaystyle \ oplus}
z{\ displaystyle z}
⊗{\ displaystyle \ otimes}
⊕{\ displaystyle \ oplus}
e{\ displaystyle e}
Q={0,1}{\ displaystyle Q = \ {0,1 \}}
⊕=∨{\ displaystyle \ oplus = \ vee}
⊗=∧{\ displaystyle \ otimes = \ ék}![\ otimes = \ ék](https://wikimedia.org/api/rest_v1/media/math/render/svg/c75c4beb5bb4d8badc5d13ae70860ea47af62be4)
Ahhoz, hogy az általánosított Floyd-Warshall algoritmus működjön, feltételeznünk kell azt is, hogy a törvény semlegessége elnyeli a törvényt . Más szavakkal, a félgyűrű bármely eleméhez igazolni kell az egyenlőséget .
e{\ displaystyle e}
⊗{\ displaystyle \ otimes}
⊕{\ displaystyle \ oplus}
x{\ displaystyle x}
x⊕e=e{\ displaystyle x \ oplus e = e}![{\ displaystyle x \ oplus e = e}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ecd7afee36f6f9ece8142d1f1d04bdd1d78f5fcf)
Súlyozott gráfhoz társított mátrix
Adjunk egy olyan gráfot, amelynek csúcsai vannak . Minden ívhez hozzárendel egy súlyt (hossz, távolság, forgalom sűrűsége a probléma szerint), amely egy félgyűrű (többé-kevésbé egyszerű félgyűrű a kezelendő probléma jellege szerint) eleme. ). A súlyozott gráffal társított mátrix az a mátrix, amelynek az elemének helyzete akkor van, ha az ív létezik, és különben 0 (a félgyűrű).
G{\ displaystyle G}
{1,...,nem}{\ displaystyle \ {1, \ dots, n \}}
(én,j){\ displaystyle (i, j)}
w(én,j){\ displaystyle w (i, j)}
(én,j){\ displaystyle (i, j)}
w(én,j){\ displaystyle w (i, j)}
(én,j){\ displaystyle (i, j)}
z{\ displaystyle z}![z](https://wikimedia.org/api/rest_v1/media/math/render/svg/bf368e72c009decd9b6686ee84a375632e11de98)
Az út súlya az ösvényt alkotó ívek súlyának szorzata félgyűrűben:
vs.=(én0,én1,...,énd){\ displaystyle c = (i_ {0}, i_ {1}, \ ldots, i_ {d})}![{\ displaystyle c = (i_ {0}, i_ {1}, \ ldots, i_ {d})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3e24f5b64ed6c19d046775f1d00cb4b87f61b435)
w(vs.)=w(én0,én1)⊗w(én1,én2)⊗w(énd-1,énd){\ displaystyle w (c) = w (i_ {0}, i_ {1}) \ otimes w (i_ {1}, i_ {2}) \ otimes w (i_ {d-1}, i_ {d}) }![{\ displaystyle w (c) = w (i_ {0}, i_ {1}) \ otimes w (i_ {1}, i_ {2}) \ otimes w (i_ {d-1}, i_ {d}) }](https://wikimedia.org/api/rest_v1/media/math/render/svg/f2681c2e410242ec56c19258f733cd499ccbde5c)
.
A hossza a legrövidebb utat a , ebben a formalizmus az összeg a súlyok az . Ha az utak halmazát a -ig jelöljük , akkor a keresett út egy olyan út, amelynek súlya van
én{\ displaystyle i}
j{\ displaystyle j}
én{\ displaystyle i}
j{\ displaystyle j}
Γén,j{\ displaystyle \ Gamma _ {i, j}}
én{\ displaystyle i}
j{\ displaystyle j}![j](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f461e54f5c093e92a55547b9764291390f0b5d0)
⨁vs.∈Γén,jw(vs.){\ displaystyle \ bigoplus _ {c \ Gamma _ {i, j}} w (c)}![{\ displaystyle \ bigoplus _ {c \ Gamma _ {i, j}} w (c)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae22de8ea06bedc970c06d7259f7dc609a434dd8)
.
Abban az esetben, ha és ez a minimum súlya utat összekötő , hogy .
⊕=min{\ displaystyle \ oplus = \ min}
⊗=+{\ displaystyle \ otimes = +}
én{\ displaystyle i}
j{\ displaystyle j}![j](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f461e54f5c093e92a55547b9764291390f0b5d0)
Általánosított Floyd-Warshall algoritmus
Mivel egy társult mátrix grafikonja érdekében , és azt határozza meg két sorozat mátrixok:
NÁL NÉL{\ displaystyle A}
nem{\ displaystyle n}
nál nélén,j=w(én,j){\ displaystyle a_ {i, j} = w (i, j)}![{\ displaystyle a_ {i, j} = w (i, j)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/94d7cecc7c9d47161dd60aa7c648d5879a1e11a7)
- mátrixsorozat :NÁL NÉL(k){\ displaystyle A ^ {(k)}}
![A ^ {{(k)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e2e474e1dda10a404546f9996c13d0aaa4cab07b)
NÁL NÉL(0)=NÁL NÉL{\ displaystyle A ^ {(0)} = A}![A ^ {{(0)}} = A](https://wikimedia.org/api/rest_v1/media/math/render/svg/6644ffa7a20df207e41077d299d048063cdeb1a7)
és
NÁL NÉL(k)=(nál nélén,j(k)){\ displaystyle A ^ {(k)} = \ bal (a_ {i, j} ^ {(k)} \ jobb)}![A ^ {{(k)}} = \ balra (a _ {{i, j}} ^ {{(k)}} \ jobbra)](https://wikimedia.org/api/rest_v1/media/math/render/svg/6c93136c294899016624020036bf566848a8e543)
a .
nál nélén,j(k)=nál nélén,j(k-1)⊕(nál nélén,k(k-1)⊗nál nélk,j(k-1)){\ displaystyle a_ {i, j} ^ {(k)} = a_ {i, j} ^ {(k-1)} \ oplus \ bal (a_ {i, k} ^ {(k-1)} \ otimes a_ {k, j} ^ {(k-1)} \ jobbra}}![a _ {{i, j}} ^ {{(k)}} = a _ {{i, j}} ^ {{(k-1)}} \ oplus \ balra (a _ {{i, k} } ^ {{(k-1)}}} \ _ {{k, j}} ^ {{(k-1)}} \ jobbra)](https://wikimedia.org/api/rest_v1/media/math/render/svg/f86e19d7a6a83df25b8e4a7abe38b2d43358d9ba)
A mátrix szekvenciára olyan, hogy az elem a mátrix megegyezik a súlyok összege utak hossza legfeljebb a a .
nál nélén,j(nem){\ displaystyle a_ {i, j} ^ {(n)}}
NÁL NÉL(nem){\ displaystyle A ^ {(n)}}
nem{\ displaystyle n}
én{\ displaystyle i}
j{\ displaystyle j}
- egy másik mátrixsorozat :D(k){\ displaystyle D ^ {(k)}}
![D ^ {{(k)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/499622e19d2707f25d954475a58dae74a9a357db)
dén,j(0)={jha (én,j) egy ív0ha nem {\ displaystyle d_ {i, j} ^ {(0)} = {\ begin {cases} j & {\ text {si}} (i, j) {\ text {egy ív}} \\ 0 & { \ text {különben}} \ end {esetek}}}
dén,j(k)={dén,j(k-1)ha nál nélén,j(k)=nál nélén,j(k-1)dén,k(k-1)ha nem .{\ displaystyle d_ {i, j} ^ {(k)} = {\ elején {esetek} d_ {i, j} ^ {(k-1)} és {\ text {si}} a_ {i, j} ^ {(k)} = a_ {i, j} ^ {(k-1)} \\ d_ {i, k} ^ {(k-1)} és {\ text {különben}} \ vége {esetek} }.}![{\ displaystyle d_ {i, j} ^ {(k)} = {\ elején {esetek} d_ {i, j} ^ {(k-1)} és {\ text {si}} a_ {i, j} ^ {(k)} = a_ {i, j} ^ {(k-1)} \\ d_ {i, k} ^ {(k-1)} és {\ text {különben}} \ vége {esetek} }.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/acf0bb3afbfe64028b8ed00dd6da6a5e0025d310)
A mátrix szekvenciára olyan, hogy az elemek rendelkeznek a értéke az index az első közbenső pontján útvonal , hogy a lépésben .
dén,j(k){\ displaystyle d_ {i, j} ^ {(k)}}
én{\ displaystyle i}
j{\ displaystyle j}
k{\ displaystyle k}
Ebből következik, hogy az első közbülső csúcs indexe a és között , a második csúcsot pedig az adja meg, hogy hol stb.
dén,j(nem){\ displaystyle d_ {i, j} ^ {(n)}}
én{\ displaystyle i}
j{\ displaystyle j}
do,j(nem){\ displaystyle d_ {p, j} ^ {(n)}}
o=dén,j(nem){\ displaystyle p = d_ {i, j} ^ {(n)}}![p = d _ {{i, j}} ^ {{(n)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/222ee15fccd9f5731b170ea7fd70c43d8f612f39)
Alkalmazások
A csúcstalálkozókhoz csatlakozó utak megléte
Ez a probléma, hogy tudjuk, bármely két csúcs, ha van egy útvonal a , vagy tudni, egy adott csúcs , a csúcsokat elérhető . Ezt a tranzitív lezárási problémát úgy fogalmazzák meg, hogy minden ívre ugyanazt a súlyt választják.
(x,y){\ displaystyle (x, y)}
x{\ displaystyle x}
y{\ displaystyle y}
s{\ displaystyle s}
s{\ displaystyle s}![s](https://wikimedia.org/api/rest_v1/media/math/render/svg/01d131dfd7673938b947072a13a9744fe997e632)
Az első problémát tehát a Warshall algoritmussal, a másodikat szintén egyszerű útvonalon, mélységben vagy szélességben tudjuk megoldani az s összegből.
Minimális távolság két csúcs között
Bármely csúcspár minimális távolságát a Floyd-Warshall algoritmus számítja ki, így a trópusi félgyűrűt vagy (max, +) - félgyűrűt veszi a pozitív vagy nulla valós szám fölé.
Két csúcs között maximális forgalmi kapacitású utak
Az útvonalon lehetséges forgalmi kapacitás az útvonalat alkotó ívek minimális kapacitása. A maximális kapacitáspálya maximalizálja ezt a minimumot. Kiszámoljuk az értékeket az általánosított Warshall algoritmus segítségével, és .
⊕=max{\ displaystyle \ oplus = \ max}
⊗=min{\ displaystyle \ otimes = \ min}![{\ displaystyle \ otimes = \ min}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0ad7f77253b779a1841fdcd8474734246152f935)
Úthálózatok
Az úthálózat pozitív tömegű grafikonnak tekinthető. A csomópontok az útkereszteződéseket ábrázolják, és a grafikon minden íve két keresztezés közötti útszakaszhoz kapcsolódik. Az ív súlya lehet a kapcsolódó útszakasz hossza, a szakasz keresztezéséhez szükséges idő, vagy a szegmens utazásának költsége. Irányított grafikonok segítségével egyirányú utcák modellezése is lehetséges. Ezeknek a grafikonoknak különleges tulajdonságai vannak, mivel egyes ívek fontosabbak, mint mások a távolsági utazáshoz (általában autópályák). Ezt a tulajdonságot egy „ Highway Dimension ” nevű további paraméterrel formalizálták . Ez lehetővé teszi az optimális útvonalak gyorsabb kiszámítását, mint az általános grafikonoknál. Az első ötlet az, hogy ha egyik kisvárosból a másikba akarsz menni, ami meglehetősen messze található, akkor az indulás helye közelében egy nagyvárost, a cél közelében pedig egy nagyvárost kell keresni, és össze kell kombinálni a két nagy agglomeráción keresztül.
Ezek az algoritmusok két fázisban működnek. Az első előfeldolgozási szakaszban a grafikon úgy van kialakítva, hogy lehetővé tegye a gyors lekérdezést. A második szakasz a kihallgatási szakasz; a kiindulási és a befejező csomópont ekkor ismert, és mivel a hálózat statikus, az előfeldolgozás egyszer és mindenkorra elvégezhető, és sok lekérdezéshez felhasználható.
A leggyorsabban ismert algoritmust (2011-ben) " hub címkézésnek " hívják , és a másodperc néhány részében kiszámítja a legrövidebb útvonalakat
Rövidebb út a dinamikus súlyokhoz
Egyes szállítási problémáknál a súlyok olyan funkciók, amelyek idővel változhatnak, hogy figyelembe vegyék például a forgalom ingadozásait. Ebben az esetben az algebrai módszert mindig úgy alkalmazzuk, hogy félgyűrűvé választjuk a dioidon növekvő endomorfizmusok félgyűrűjét , az indukált összeget és a kompozíciót termékként. Így, ha valaki a leggyorsabb útvonalat keresi egy olyan hálózatban, ahol a forgalom az indulási időpont függvényében változó, akkor alkalmazhatja a szokásos algoritmusokat úgy, hogy az egyes útvonalakat egy olyan függvény alapján értékeli, amely megadja az indulási időt. távozáskor, és figyelembe véve a távozáskor betöltött funkció minimumát.
(f⊕g)(x)=f(x)⊕g(x){\ displaystyle (f \ oplus g) (x) = f (x) \ oplus g (x)}
⊕{\ displaystyle \ oplus}![\ oplus](https://wikimedia.org/api/rest_v1/media/math/render/svg/8b16e2bdaefee9eed86d866e6eba3ac47c710f60)
A legrövidebb út időbeli korlátokkal
Különösen a tömegközlekedési hálózatokban előfordul, hogy bizonyos íveket csak bizonyos időbeli korlátok között lehet megtenni (például éjszaka nem). Feltételezzük, hogy az egyes ívek utazási ideje rögzített, valamint egy időrés-készlet, ahol lehetséges ezen az úton haladni. Ezután az alábbiakban definiált időintervallumok alatt vett endomorfizmusok dioidját vesszük figyelembe: vagy az az időintervallum, ahol felülről akarunk indulni ; akkor az az időintervallum, ahol lehetséges elérni a csatlakozó csúcsot . Más korlátozásokat hozzáadhatunk (az időközökkel való metszéspontban, bizonyos időszakok elkerülése érdekében, a derékszögű termék árkorlátozásainak hozzáadásával az idő és az ár között súlyozott min törvényszerű szállítási költségmátrixhoz). A Dijkstra algoritmus minden esetben hatékony felbontást tesz lehetővé.
(én,j){\ displaystyle (i, j)}
Hén,j{\ displaystyle H_ {i, j}}
Dén{\ displaystyle D_ {i}}
én{\ displaystyle i}
τén,j(Dén)={dén,j+t|t∈Dén∩Hén,j}{\ displaystyle \ tau _ {i, j} (D_ {i}) = \ {d_ {i, j} + t | t \ D_ {i} \ cap H_ {i, j} \}}
j{\ displaystyle j}
én{\ displaystyle i}
τ{\ displaystyle \ tau}![\ tau](https://wikimedia.org/api/rest_v1/media/math/render/svg/38a7dcde9730ef0853809fefc18d88771f95206c)
Valódi helyzetekben a közlekedési hálózat általában sztochasztikus és időfüggő. Valójában egy utazó, aki naponta utazik egy útvonalon, eltérő utazási időket tapasztalhat ezen az útvonalon, nemcsak a forgalom intenzitásának ingadozása, hanem olyan lokalizáltabb események miatt is, mint az útépítési területek, a rossz időjárási viszonyok, a balesetek és a jármű meghibásodása. Ezért az időbeli sztochasztikus hálózat a valós úthálózat reálisabb ábrázolása, mint egy determinisztikus hálózat. A jelentős előrelépés ellenére az optimális út meghatározása és meghatározása a sztochasztikus úthálózatokban továbbra is vitatott téma. Más szavakkal, a bizonytalanság jelenlétében nincs egy optimális út meghatározása. Az egyik lehetséges és elterjedt válasz egy olyan út, amely eléri a minimális várható utazási időt. Ennek a megközelítésnek az a legfőbb előnye, hogy lehetővé teszi a determinisztikus hálózatok számára bevezetett legrövidebb út-algoritmusok használatát a sztochasztikus hálózatban a minimális várható utazási idővel rendelkező út azonosítására.
Az optimális út azonban nem biztos, hogy kielégítő, mert ez a megközelítés nem veszi figyelembe az utazási idő változékonyságát. A probléma megoldásához egyes kutatók az utazási idő eloszlását használják az átlagérték helyett, és a teljes utazási idő valószínűség-eloszlását különféle optimalizálási módszerekkel, például dinamikus programozással és Dijkstra algoritmusával kapják meg . Ezek a módszerek sztochasztikus optimalizálást, és különösen dinamikus sztochasztikus programozást alkalmaznak a valószínűbb ívhosszú hálózatok legrövidebb útjának megtalálásához. Meg kell jegyezni, hogy a közlekedési kutatások irodalmában az utazási idő megbízhatóságának fogalmát felváltva használják az utazási idő változékonyságával, így általánosságban elmondható, hogy minél nagyobb az utazási idő változékonysága. oda-vissza.
Az utazási idő megbízhatóságának pontosabb számbavétele érdekében két általános alternatív meghatározást javasoltak az optimális út bizonytalanság alatt. Néhányan bevezették a legmegbízhatóbb út fogalmát, amelynek célja annak maximalizálása, hogy egy adott utazási költségnél időben vagy hamarabb megérkezzen. Mások az α-megbízható út fogalmát vetik fel, amely alapján az utazás költségeit minimalizálni kívánják, hogy biztosítsák az előre meghatározott időben történő megérkezés valószínűségét.
Bonyolultság
Mulmulay és Shah alacsonyabb bonyolultsági határokat adtak a legrövidebb út problémájához.
Megjegyzések és hivatkozások
-
Claude Pair, "A véges grafikonok áramlási problémáinak algoritmusairól" , P. Rosentiehl, Théorie des graphes (nemzetközi tanulmányi napok) - The Graphics Theory (internainális szimpózium) , Dunod (Párizs) és Gordon and Breach (New York),1966
-
Jean Claude Derniame és Claude Pair, A progresszió problémái a grafikonokban , Dunod (Párizs),1971, 182 p.
-
Alfred V. Aho, John E. Hopcroft és Jeffrey D. Ullman, A számítógépes algoritmusok tervezése és elemzése , Olvasás, Mass., Addison-Wesley ,1974, 470 p. ( ISBN 978-0-201-00029-0 )
-
Michel Gondran és Michel Minoux , grafikonok, dioids és félig gyűrűk: új modellek és algoritmusok , Párizs, Tec & Doc,2001, xvi + 415 p. ( ISBN 2-7430-0489-4 , SUDOC 060235101 )- Angol kiadás: (en) Michel Gondran és Michel Minoux , grafikonok, Dioids és Semirings: Új modellek és algoritmusok , Dordrecht, Springer Science & Business Media, coll. "Operations Research / Computer Science interfészek sorozat" ( n o 41)2008, xix + 383 o. ( ISBN 978-0-387-75450-5 , zbMATH 1201.16038 , SUDOC 12874958X , online olvasás )
-
Pierre Robert és Jacques Ferland, „ A Warshall algoritmus általánosítása ”, French Journal of Informatics and Operational Research, Red Series , t. 2, n o 1,1968, P. 71–85 ( online olvasás ).
-
Ittai Abraham, Amos Fiat, Andrew V. Goldberg és Renato Fonseca F. Werneck, „ Autópálya dimenzió, legrövidebb utak és bizonyíthatóan hatékony algoritmusok ”, ACM-SIAM szimpózium a diszkrét algoritmusokról ,2010, P. 782-793 ( online olvasás ).
-
Ittai Abraham, Daniel Delling, Andrew V. Goldberg és Renato Fonseca F. Werneck, „Hub-Based Labeling Algorithm for the Shortest Paths on Road Networks” ” , Panos M. Pardalos és Steffen Rebennack (szerk.), Kísérleti algoritmusok (10.) Nemzetközi Szimpózium a kísérleti algoritmusokról, Kolimpari, Chania, Kréta, 2011. május 5–7. , Springer Science & Business Media,2011, 460 p. ( ISBN 9783642206610 , online olvasás ) , p. 230-241.
-
Mojtaba Rajabi-Bahaabadi , Afshin Shariat-Mohaymany , Mohsen Babaei és Chang Wook Ahn , „ Többcélú útkeresés sztochasztikus időfüggő úthálózatokban, nem domináns rendezési genetikai algoritmus alkalmazásával ”, Expert Systems with Applications , vol. 42, n o 12,
2015, P. 5056–5064 ( DOI 10.1016 / j.eswa.2015.02.046 , online bemutató ).
-
Mohammad Hessam Olya , „ A legrövidebb út keresése kombinált exponenciális - gamma valószínűség-eloszlás ívhosszban ”, International Journal of Operational Research , vol. 21, n o 1,
2014, P. 25–37 ( DOI 10.1504 / IJOR.2014.064020 , online előadás ).
-
Mohammad Hessam Olya , „ Dijkstra algoritmusának alkalmazása általános legrövidebb útproblémákra normál valószínűség-eloszlás ívhosszal ”, International Journal of Operational Research , vol. 21, n o 2
2014, P. 143–154 ( DOI 10.1504 / IJOR.2014.064541 , online előadás ).
-
(in) " Alsó határ a legrövidebb út problémájához " , Journal of Computer and System Sciences , vol. 63, n o 21 st szeptember 2001, P. 253–267 ( ISSN 0022-0000 , DOI 10.1006 / jcss.2001.1766 , online olvasás , hozzáférés : 2018. november 8. )
(fr) Ez a cikk részben vagy egészben az
angol Wikipedia
" Legrövidebb út probléma " című cikkéből származik
( lásd a szerzők felsorolását ) .
Bibliográfia
Művek
- Jean Claude Derniame és Claude Pair, A progresszió problémái a grafikonokban , Dunod (Párizs),1971, 182 p.
-
(en) Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest és Clifford Stein , Bevezetés az algoritmusokba , az MIT Press és a McGraw-Hill ,2001, 2 nd ed. [ a kiadás részlete ]
26.2. Szakasz "A Floyd-Warshall algoritmus", p. 558–565 ;
26.4. Szakasz „Általános keretrendszer az útfeladatok megoldásához irányított gráfokban”, p. 570–576 .
-
Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , és Clifford Stein ( transz. Angol), algoritmusok : előadás gyakorlatokkal 957 és 158 problémákra , Dunod ,2010[ a kiadás részlete ]
- 24. fejezet: "Egyetlen eredethez vezető legrövidebb utak"
- 25. fejezet: "A legrövidebb utak az összes csúcspár között"
-
Michel Gondran és Michel Minoux, Grafikonok és algoritmusok , Párizs, Lavoisier, koll. "Franciaország villamos energia tanulmányai és kutatása",2004, 4 th ed. ( 1 st ed. 1979), XXXI + 784 o. ( ISBN 978-2-7430-1035-5 )
2. fejezet: "A legrövidebb út probléma"
3. fejezet: "Út-algebrák és dioidok"
-
en) Alexander Schrijver , kombinatorikus optimalizálás , Berlin / Heidelberg / New York, Springer,2004, 1881 p. ( ISBN 3-540-44389-4 , online olvasás )
8. fejezet: "A legrövidebb utak: tetszőleges hosszúságok"
Cikkek
- Claude Pair: „A véges grafikonok áramlási problémáinak algoritmusairól” , P. Rosentiehl, Théorie des graphes (nemzetközi tanulmányi napok) - The Graphics Theory (internainális szimpózium) , Dunod (Párizs) és Gordon and Breach (New York),1966
-
Ravindra K. Ahuja, Kurt Mehlhorn , James Orlin és Robert E. Tarjan, „ Gyorsabb algoritmusok a legrövidebb út problémájához ”, ACM , vol. 37, n o 21990 április, P. 213–223 ( DOI 10.1145 / 77600.77615 , online olvasás ).
-
Torben Hagerup, „Javított legrövidebb utak a Word RAM-on” , Ugo Montanari, José DP Rolim és Emo Welzl (szerkesztők), A 27. Nemzetközi Automatikák, Nyelvek és Programozás Kollokvium közleményei ,2000( ISBN 3-540-67715-1 , online olvasás ) , p. 61–72.
- Seth Pettie és Vijaya Ramachandran, „A legrövidebb utak kiszámítása összehasonlításokkal és kiegészítésekkel ”, A tizenharmadik éves ACM-SIAM szimpózium közleménye a diszkrét algoritmusokról ,2002, P. 267–276 ( ISBN 0-89871-513-X , online olvasás )
- Seth Pettie: „ Valódi súlyozott grafikonokon az összes pár legrövidebb útjainak új megközelítése ”, Theoretical Computer Science , vol. 312, n o 1,2004. január, P. 47–74 ( DOI 10.1016 / s0304-3975 (03) 00402-x )
-
Mikkel Thorup , „ Egész szám elsőbbségi sorok a csökkenés kulccsal állandó időben és az egyetlen forrás legrövidebb utak problémája ”, Journal of Computer and System Sciences , vol. 69, n o 3,2004, P. 330–353 ( DOI 10.1016 / j.jcss.2004.04.003 , online olvasás ).
-
Ryan Williams , „A gyorsabb összes párok a legrövidebb utakat az áramkör bonyolultsága révén ”, ACM , New York,2014, P. 664–673 ( DOI 10.1145 / 2591796.2591811 , Math Reviews 3238994 , arXiv 1312.6680 ).
Kapcsolódó cikkek
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">