Bevezetés
Az algoritmusokban, akárcsak az életben, a negativitás vonzerő lehet.
Tekintsük azt a problémát, hogy megtaláljuk a legrövidebb utat a gráf két pontja között – egy linkekkel vagy élekkel összekapcsolt csomópontok hálózata. Ezek az élek gyakran nem cserélhetők fel: A grafikon egy olyan útitervet ábrázolhat, amelyen egyes utak lassabbak, mint mások, vagy magasabb az útdíjak. Az informatikusok úgy számolják be ezeket a különbségeket, hogy minden élt egy „súllyal” párosítanak, amely számszerűsíti az adott szegmensen való áthaladás költségeit – legyen szó időről, pénzről vagy valami másról. Az 1950-es évek óta tudják, hogyan kell a legrövidebb utakat lényegében olyan gyorsan megtalálni, amilyen gyorsan csak lehetséges, feltételezve, hogy minden súly pozitív szám.
Egyes grafikonokon azonban a súlyok negatívak is lehetnek – az egyik szegmens mentén történő utazás ellensúlyozhatja egy másik szegmens bejárásának költségeit. Vegyünk például egy kézbesítő sofőrt, akinek egyensúlyba kell hoznia a benzinköltséget és az útdíjat (pozitív súlyokkal ábrázolva) a csomagszállításból származó bevétellel (negatív súlyokkal). Ilyen esetekben a leggyorsabb ismert legrövidebb út algoritmusa nem működik. Évtizedek óta megfoghatatlanok maradtak a negatív súlyú grafikonokon a legrövidebb utak megtalálására szolgáló gyors algoritmusok.
Most egy informatikus trió megoldotta ezt a régóta fennálló problémát. Az újjuk algoritmus, amely megtalálja a legrövidebb utat egy gráfon keresztül egy adott „forrás” csomóponttól az összes többi csomópontig, majdnem megegyezik azzal a sebességgel, amelyet a pozitív súlyú algoritmusok oly régen elértek.
Ráadásul az új megközelítés több évtizedes matematikai technikákat alkalmaz, elkerülve a modern gráfelméleti kutatásokat meghatározó kifinomultabb módszereket.
„Egyszerűen nem tudtam elhinni, hogy létezik ilyen egyszerű algoritmus” – mondta Maximilian Probst Gutenberg, a zürichi Svájci Szövetségi Technológiai Intézet informatikusa. „Mind ott van 40 éve. Csak valakinek igazán okosnak és eltökéltnek kellett lennie ahhoz, hogy minden működjön.”
A kapzsiság határai
A történet 1956-ban kezdődik, amikor a holland informatikus, Edsger Dijkstra kifejlesztett egy gyors algoritmust, amellyel megkeresheti a legrövidebb utakat a csak pozitív súllyal rendelkező grafikonon. Ennek megértéséhez képzelje el, hogy a forrásból indul ki, és egyenként tárja fel a gráfot, miközben menet közben feljegyzi az újonnan felfedezett élek súlyát. Minden alkalommal, amikor meglátogat egy csomópontot, készítsen előzetes becsléseket a forrástól az új csomópont minden szomszédjához vezető legrövidebb útvonalra, és frissítse a meglévő becsléseket, ha új rövidebb utat talált. Annak eldöntéséhez, hogy melyik feltáratlan csomópontot keresse fel legközelebb, használja az úgynevezett mohó stratégiát: Menjen arra, amelyik a legközelebb van a forráshoz jelenlegi becslése szerint.
Pozitív súlyokkal a Dijkstra algoritmusa az egyes csomópontok első meglátogatásához vezető út valóban a legrövidebb. A legkönnyebb belátni, hogy ez a legelső lépésre igaz. Képzeljünk el két A és B csomópontot, amelyeket egy 2-es súllyal rendelkező él köt össze. Ha A a forráscsomópont, és minden másik él, amely érinti, nagyobb súlyú, akkor az A-ból B-be tartó közvetlen útnak a lehető legrövidebb útnak kell lennie, amely összeköti ezt a két pontot. , mivel bármely más útvonal első szakasza már hosszabb lenne. Hasonló érvelés működik minden lépésben. Az algoritmusnak soha nem kell visszanéznie, így garantáltan befejeződik, miután egyszer végigfutott a grafikonon – ez teszi olyan gyorssá.
De a negatív súlyok gondot jelentenek Dijkstra kapzsi stratégiája számára. Fontolja meg újra a szállító sofőrünket. Az A-ból B-be tartó közvetlen útvonal, amely kis haszonnal jár, kevesebb pénzt kereshet, mint egy körkörös út, amely valahol nagy hasznot hoz. „Nem hozhat döntést pusztán a helyi információk alapján” – mondta Sanjeev Khanna, a Pennsylvaniai Egyetem informatikusa. „Lehet, hogy több látszólag szuboptimális lépést kell megtennie, hogy végre valódi jutalmat kapjon.”
A negatív súlyú grafikonokon dolgozó informatikusok évtizedeken át próbálták összehozni Dijkstra algoritmusának sebességét hasonló „kombinatorikus” algoritmusokkal. Ezek olyan diszkrét műveleteket foglalnak magukban, mint a számlálási lehetőségek, a súlyok módosítása és az élek szelektív törlése, amelyek tükrözik az alapul szolgáló gráf diszkrét szerkezetét. A fejlődés azonban az 1990-es évekre lelassult. A közelmúltban a kutatók „folyamatos optimalizálási” algoritmusokat alkalmaztak, amelyek trükköket kölcsönöznek a kalkulusból. Sajnos az ebből eredő gyorsítások korlátozottak voltak, és gyakran az egyszerűség árán mentek.
Törd meg a ciklust
2021 nyarán két informatikus, akik a Koppenhágai Egyetem munkatársai lettek – Danupon Nanongkai és a Christian Wulff-Nilsen – témát kerestek egy közös kutatási projekthez. „Christian azt mondta: „Ó, mellesleg nyaraltam, és emiatt próbáltam valami nagyon ambiciózus dolgot kitalálni” – emlékezett vissza Nanongkai, aki jelenleg a németországi Saarbruckenben, a Max Planck Informatikai Intézetben dolgozik. Rátelepedtek a negatív súlyú legrövidebb utak problémájára, és meghívtak Aaron Bernstein a Rutgers Egyetem munkatársa, hogy csatlakozzanak hozzájuk.
Mindhárom kutató más problémákra vonatkozó kombinatorikus gráfalgoritmusok szakértője volt, és azt akarták látni, hogy ezek a viszonylag ősi megközelítések meddig juthatnak el. „Valójában van egy bizonyos szabadság abban, hogy egy ambiciózus és régóta nyitott problémán dolgozunk” – mondta Bernstein.
A trió azzal kezdte, hogy ideiglenesen figyelmen kívül hagyta a lehetséges gráfok egy részét: azokat, amelyek negatív ciklusokat tartalmaznak. Ezek olyan utak, amelyek visszahurkolnak oda, ahonnan indultak, miután áthaladtak egy sor élen, amelyek súlya negatív számot ad. A kiindulási ponttól elérhető negatív ciklusokkal rendelkező grafikonon a legrövidebb út fogalma megbomlik, mivel bármely csomópont távolságát tetszés szerint negatívvá (vagy jövedelmezővé) teheti, ha ismételten köröket tesz a negatív ciklus körül. elindul a cél felé.
A kutatók azt gyanították, hogy a hosszú negatív utak főként felelősek a probléma megnehezítéséért. Így a közeli csomópontok szűk klasztereire kezdtek összpontosítani, amelyek nem tartalmazhatnak hosszú negatív utakat: Ez azért van, mert ha két pontot egy rövid pozitív út köt össze, akkor egy hosszú negatív út hozzáadásával negatív ciklus jön létre. Egy szűk klaszteren belül „az a tény, hogy mindenki pozitív értelemben közel van egymáshoz, valójában hasznos információkat ad a negatív élekről is” – mondta Bernstein. "Ez azt mondja neked, hogy a dolgok nem lehetnek túl negatívak."
A legtöbb gráf sok ilyen szorosan összefüggő klasztert tartalmaz, amelyek csak gyengén kapcsolódnak egymáshoz. Ha a kutatók meg tudnák határozni az összes klasztert, akkor azt gyanították, hogy kifejleszthetnének egy módot arra, hogy mindegyikben gyorsan megtalálják a legrövidebb utakat. Innentől talán könnyebb dolguk lesz az egyes klaszterek összekapcsolása és a legrövidebb utak megtalálása az eredeti grafikonon. De ehhez minden gráf azon régióinak gyors felderítésére lenne szükség, amelyekben a csomópontok közel vannak egymáshoz – ezt nem tudták, hogyan kell megtenni. Kiderült, hogy a kulcs egy olyan technika, amely a gráfelmélet egy teljesen más ágából származik.
Grafikonok felvágása
Az 1980-as években az informatikusok kifejlesztettek egy kis átmérőjű dekompozíciónak nevezett technikát, hogy kiválasszák a szűk klasztereket a gráfból, és azonosítsák azokat az éleket, amelyeket törölni kell a klaszterek elkülönítéséhez. Ez a technika lehetőséget biztosít a grafikonok független szakaszokra történő felosztására. Az „elosztott” algoritmusok megkönnyítésére találták ki, amelyekben a számítások párhuzamosan futnak a gráf különböző részein, így kevésbé volt hasznos a legrövidebb útvonalú algoritmusoknál, amelyek nem rendelkeznek ezzel a tulajdonsággal.
Bernstein, Nanongkai és Wulff-Nilsen rájöttek, hogy az alacsony átmérőjű dekompozíció segíthet a klaszterek azonosításában koncentrált negativitás nélkül. Sajnos a szabványos kis átmérőjű dekompozíciós algoritmusok csak irányítatlan gráfokon működnek – azokon, amelyekben minden él mindkét irányban bejárható. A negatív súlyú legrövidebb utak problémájának viszont csak irányított gráfokon van értelme, ahol minden él egyirányú utca. (Egyébként egyetlen irányítatlan negatív él negatív ciklust hozna létre, amely ismétlődő oda-vissza ugrásokból állna ezen az élen.) Ha a kutatók kis átmérőjű dekompozíciót akarnának alkalmazni, adaptálniuk kellene.
Ezt tették új lapjukban. Ihlette múltbeli munka amelyben Bernstein és Wulff-Nilsen együttműködött Probst Gutenberggel, kidolgoztak egy repesztési eljárást irányított gráfokhoz, amely analóg a kis átmérőjű dekompozícióval. Az eljárás egy tetszőleges irányított gráfot feldarabol szorosan összefüggő klaszterek sorozatára úgy, hogy véletlenszerű folyamatot használ csak néhány él törlésére. Ezután ezeket a klasztereket egy ritkább hálózat köti össze, amelyben minden él ugyanabba az irányba mutat. Az ilyen hálózatot irányított aciklikus gráfnak vagy DAG-nak nevezik.
Gondoljon a DAG-ra, mint egy patakra, amelyben a víz különböző utakon folyhat le: Egyes utak különböző forrásokból folynak be, mások különböző irányokba ágaskodnak, mások pedig szétválhatnak és összeolvadhatnak. De soha semmi sem folyik visszafelé, így nincsenek ciklusok; ez sokkal könnyebbé teszi a DAG-okkal való munkát.
A kutatók régóta tudják, hogyan lehet gyorsan megtalálni a legrövidebb utat a DAG-okon még negatív súllyal is. Így a repesztési technika lehetővé tette a három kutató számára, hogy bármely irányított gráfot két speciális eset – DAG-ok és szűk klaszterek – kombinációjára redukáljon, amelyek mindegyike könnyen kezelhető.
Az új legrövidebb útvonalú algoritmus ismételten a törési eljárást használja, hogy egy gráfot DAG által összekapcsolt, szorosan összefüggő klaszterekre bontsa. Ezután egyre jobban széttöri ezeket a klasztereket. A folyamat végén a legbelső szinten lévő klaszterek a lehető legszorosabban kapcsolódnak egymáshoz. Az algoritmus oly gyorsának részben az az oka, hogy még egy nagyon nagy grafikon teljes lebontásához sem kell sok iteráció, mint ahogyan nem tart sokáig egy nagy szám ésszerű méretre vágása, ha többször osztja. félbe.
Az ilyen módon teljesen lebontott grafikonnal a kutatók gyorsan megtalálták a legrövidebb utat a grafikon minden részén. A beágyazott gráfstruktúra legbelső szintjén lévő szűk klaszterek esetében ez egyszerű volt – gyakorlatilag nem maradt bennük negativitás. A kutatók pedig már tudták, hogyan találják meg a legrövidebb utakat a hozzájuk csatlakozó DAG-szakaszokon.
Végül az algoritmus visszaadja a repesztési folyamat által kiesett éleket, és kiszámítja azok hatását a legrövidebb utakon. A kutatók bebizonyították, hogy az élek véletlenszerű törlésére szolgáló eljárásuk szinte mindig csak néhány törlést igényel a „hátrafelé” lévő élek kiküszöböléséhez – olyanok, amelyek a DAG-jukat nagy ciklusú gráfokká alakítják. Ez rendkívül valószínűtlenné tette, hogy a legrövidebb út túl sok ilyen visszafelé irányuló szegmensen haladjon át, így ezt a trükkös utolsó lépést két, az 1950-es évekből származó tankönyvi módszer kombinálásával tudták megoldani: Dijkstra algoritmusát és az első negatív súlyú gráfokhoz kifejlesztett algoritmust.
„Ez egy rendkívül okos kompozíció ezekből az ötletekből” – mondta Khanna. Az algoritmus az első olyan negatív súlyú gráfok esetében, amelyek „közel lineáris” időben futnak – ami azt jelenti, hogy futásideje majdnem arányos az összes él megszámlálásához szükséges idővel, ami a lehető leggyorsabb.
És mi a helyzet a negatív ciklusú grafikonokkal, amelyeket a kutatók úgy döntöttek, hogy az elején figyelmen kívül hagynak? Miután az utolsó simításokat elvégezték a legrövidebb út algoritmusukon, megmutatták, hogy ez egy gyors algoritmusként is működhet a negatív ciklusok meghatározására. Gyakorlatilag egyetlen grafikon sem volt elérhető rajta.
Párhuzamos utak
Bernstein a 2022-es Foundations of Computer Science konferencián mutatta be a csapat eredményét, ahol az új algoritmust leíró kéziratukat a két legjobb tanulmány egyikének ítélték. A más papír egy új, közel lineáris idejű algoritmust is leírtak egy régóta fennálló gráfelméleti probléma megoldására.
Ez az algoritmus, amelyet Probst Gutenberg és öt másik kutató fejlesztett ki, egy általánosabb problémát oldott meg, az úgynevezett minimális költségű áramlást, amelyben a cél az, hogy optimalizálják a szállítást több párhuzamos úton, és minden élnek van egy maximális kapacitása, valamint egy kapcsolódó költsége. . A legrövidebb útvonalak problémái a minimális költségű áramlás speciális esetei, ezért az új minimális költségű áramlási algoritmus a negatív súlyú legrövidebb útvonalak probléma megoldására is használható közel lineáris időben, bár gyökeresen eltérő megközelítéssel.
A minimális költségű áramláson dolgozó csapat kidolgozta általános célú gyors algoritmusát a kombinatorikus és a folyamatos optimalizálási technikák bonyolult szintézisével, amely a gyakorlatban, legalábbis jelenleg, nehézkessé teszi azt. A Bernstein és munkatársai által készített kombinatorikus algoritmus, bár egy konkrétabb problémára korlátozódik, az egyszerűség feláldozása nélkül éri el közel lineáris futási idejét.
„Ez az, ami annyira megdöbbentő ebben az újságban” – mondta Probst Gutenberg. "Elmagyarázhatod egy egyetemi hallgatónak, és megvalósíthatod a számítógépeden is."
Ennek eredményeként ez az új algoritmus felélesztette az érdeklődést a gráfelmélet egyéb problémáinak kombinatorikus megközelítései iránt. Az még várat magára, hogy mely problémák oldhatók meg gyorsan tisztán kombinatorikus algoritmusokkal, és melyekhez van szükség valóban az elmúlt 20 évben kifejlesztett folyamatos technikákra.
„Ez egy filozófiai kérdés, amit próbálok megérteni” – mondta Nanongkai. "Ez a legrövidebb út probléma reményt ad."
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 év
- 2021
- 2022
- a
- Rólunk
- Szerint
- Fiók
- elért
- át
- tulajdonképpen
- aciklikus
- alkalmazkodni
- Hozzáteszi
- Után
- ellen
- algoritmus
- algoritmusok
- Minden termék
- már
- mindig
- becsvágyó
- Ősi
- és a
- Másik
- külön
- megközelítés
- megközelít
- körül
- társult
- vissza
- Egyenleg
- alapján
- mert
- válik
- előtt
- kezdődött
- Hisz
- Bernstein
- BEST
- között
- Túl
- Nagy
- kölcsönkér
- Ág
- szünet
- szünetek
- Törött
- kiszámítja
- hívott
- Kapacitás
- eset
- esetek
- bizonyos
- CIS
- közel
- szorosan
- Fürt
- együtt
- munkatársai
- kombináció
- kombinálása
- hogyan
- számítások
- számítógép
- Computer Science
- sűrített
- Konferencia
- összefüggő
- Csatlakozó
- Fontolja
- Összeáll
- folyamatos
- Költség
- tudott
- teremt
- Jelenlegi
- Jelenleg
- vágás
- ciklusok
- DAG
- évtizedek
- határozott
- határozatok
- kézbesítés
- leírni
- rendeltetési hely
- eltökélt
- Fejleszt
- fejlett
- DID
- különbségek
- különböző
- nehéz
- közvetlen
- irány
- felfedezett
- távolság
- Nem
- ne
- le-
- gépkocsivezető
- Holland
- minden
- pénzt keres
- könnyebb
- legegyszerűbb
- él
- hatások
- megszüntetése
- Eltüntetett
- engedélyezve
- teljesen
- lényegében
- becslés
- becslések
- Még
- EVER
- mindenki
- létező
- létezik
- szakértők
- Magyarázza
- Feltárása
- rendkívüli módon
- megkönnyítése
- ventilátor
- GYORS
- leggyorsabb
- Szövetségi
- kevés
- utolsó
- Végül
- Találjon
- megtalálása
- leletek
- vezetéknév
- első
- áramlási
- flow
- Összpontosít
- talált
- Alapok
- szabadság
- ból ből
- teljesen
- további
- GAS
- általános
- Általános rendeltetésű
- Németország
- kap
- adott
- ad
- Go
- cél
- grafikon
- grafikonok
- Kapzsi
- Garantált
- Gutenberg
- fél
- maréknyi
- fogantyú
- történt
- Cím
- segít
- <p></p>
- remény
- Hogyan
- How To
- azonban
- HTML
- HTTPS
- ötletek
- azonosítani
- végre
- in
- Jövedelem
- független
- egyéni
- információ
- inspirálta
- példa
- Intézet
- kamat
- Feltalált
- vonja
- IT
- iterációk
- csatlakozik
- csatlakozott
- Kulcs
- Kedves
- Ismer
- ismert
- nagy
- nagyobb
- szint
- élet
- Korlátozott
- határértékek
- linkek
- helyi
- Hosszú
- hosszú idő
- régóta fennálló
- hosszabb
- néz
- készült
- csinál
- KÉSZÍT
- Gyártás
- mód
- sok
- térkép
- Mérkőzés
- matematikai
- max
- maximális
- eszközök
- Közben
- megy
- mód
- esetleg
- modern
- pénz
- több
- mozog
- mozgó
- közel
- negatív
- szomszédok
- Nets
- hálózat
- Új
- következő
- csomópont
- csomópontok
- fogalom
- szám
- számok
- eltolt
- ONE
- nyitva
- Művelet
- optimalizálás
- Optimalizálja
- eredeti
- származik
- Más
- Egyéb
- másképp
- csomagok
- párosítás
- Papír
- papírok
- Párhuzamos
- rész
- alkatrészek
- Múló
- múlt
- ösvény
- Pennsylvania
- vedd
- Plató
- Platón adatintelligencia
- PlatoData
- pont
- pont
- pozitív
- lehetőségek
- lehetséges
- gyakorlatilag
- gyakorlat
- bemutatott
- Probléma
- problémák
- folyamat
- Nyereség
- nyereséges
- Haladás
- program
- ingatlan
- bizonyított
- biztosít
- tisztán
- elhelyezés
- Quantamagazine
- kérdés
- gyorsan
- radikálisan
- véletlen
- gyorsan
- el
- igazi
- realizált
- ok
- ésszerű
- nemrég
- csökkenteni
- tükröznie
- régiók
- viszonylag
- maradt
- maradványok
- megismételt
- TÖBBSZÖR
- képvisel
- képviselők
- jelentése
- szükség
- kötelező
- kutatás
- kutatók
- felelős
- korlátozott
- eredményez
- kapott
- Jutalom
- út
- Útvonal
- futás
- futás
- Rutgers University
- feláldozása
- Mondott
- azonos
- Tudomány
- Tudós
- tudósok
- keres
- szakaszok
- részes
- szegmensek
- értelemben
- Series of
- telepedett
- számos
- rövid
- hasonló
- Egyszerű
- egyszerűség
- óta
- egyetlen
- Méret
- kicsi
- So
- SOLVE
- Megoldása
- néhány
- Valaki
- valami
- valahol
- kifinomult
- forrás
- Források
- speciális
- különleges
- sebesség
- VARÁZSLAT
- osztott
- standard
- kezdet
- kezdődött
- Kezdve
- Lépés
- Még mindig
- Történet
- Stratégia
- folyam
- utca
- struktúra
- diák
- ilyen
- nyár
- Svájci
- Vesz
- tart
- bevétel
- csapat
- technikák
- Technológia
- megmondja
- tankönyv
- A
- A grafikon
- The Source
- azok
- dolgok
- három
- Keresztül
- idő
- nak nek
- együtt
- is
- téma
- megható
- szállítható
- Utazó
- baj
- igaz
- FORDULAT
- Fordult
- mögöttes
- megért
- egyetemi
- frissítése
- használ
- vakáció
- gyakorlatilag
- kívánatos
- Víz
- webp
- súly
- Mit
- vajon
- ami
- WHO
- belül
- nélkül
- Munka
- dolgozó
- művek
- lenne
- év
- te
- A te
- zephyrnet
- Zürich