Sissejuhatus
Algoritmides, nagu elus, võib negatiivsus olla takistuseks.
Mõelge lühima tee leidmise probleemile kahe graafiku punkti vahel - linkide või servadega ühendatud sõlmede võrgustik. Sageli ei ole need servad omavahel asendatavad: graafik võib kujutada teekaarti, millel mõned teed on teistest aeglasemad või millel on kõrgemad teemaksud. Arvutiteadlased võtavad need erinevused arvesse, sidudes iga serva "kaaluga", mis kvantifitseerib selle segmendi liikumise kulud – olgu see siis aeg, raha või midagi muud. Alates 1950. aastatest on nad teadnud, kuidas leida lühimaid teid nii kiiresti kui teoreetiliselt võimalik, eeldades, et kõik kaalud on positiivsed numbrid.
Kuid mõnel graafikul võivad kaalud olla negatiivsed – ühes segmendis sõitmine võib kompenseerida teise lõigu läbimise kulud. Mõelge näiteks kohaletoimetaja juhile, kes peab tasakaalustama gaasikulu ja teemaksud (esitatud positiivse kaaluga) pakkide transportimisest saadava tuluga (mida kujutavad negatiivsed kaalud). Sellistel juhtudel kiireim teadaolev lühima tee algoritm ei tööta. Aastakümneid on negatiivse kaaluga graafikutel lühimate teede leidmise kiired algoritmid jäänud tabamatuks.
Nüüd on arvutiteadlaste kolmik selle pikaajalise probleemi lahendanud. Nende uus algoritm, mis leiab lühimad teed läbi graafiku antud "allika" sõlmest iga teise sõlmeni, vastab peaaegu kiirusele, mille positiivse kaaluga algoritmid nii kaua aega tagasi saavutasid.
Veelgi enam, uus lähenemisviis kasutab aastakümneid vanu matemaatilisi tehnikaid, vältides keerukamaid meetodeid, mis on domineerinud kaasaegses graafiteooria uurimises.
"Ma lihtsalt ei suutnud uskuda, et nii lihtne algoritm on olemas," ütles Maximilian Probst Gutenberg, arvutiteadlane Šveitsi Föderaalses Tehnoloogiainstituudis Zürichis. "See kõik on seal olnud 40 aastat. Vaja oli lihtsalt seda, et keegi oleks tõeliselt tark ja otsustav, et see kõik toimiks.
Ahnuse piirid
Lugu algab 1956. aastal, kui Hollandi arvutiteadlane Edsger Dijkstra töötas välja kiire algoritmi, et leida graafikult lühimad teed ainult positiivse kaaluga. Selle mõistmiseks kujutage ette, et alustate allikast ja uurite graafikut ühe sõlme kaupa, tehes äsja avastatud servade kaalud üles. Iga kord, kui külastate sõlme, tehke esialgsed hinnangud lühimate teede kohta allikast iga uue sõlme naabrini, värskendades olemasolevaid hinnanguid, kui olete leidnud uue lühema tee. Et otsustada, millist uurimata sõlme järgmisena külastada, kasutage nn ahne strateegiat: minge sellele, mis teie praeguse hinnangu kohaselt on allikale kõige lähemal.
Positiivsete kaalude korral on tee, mille Dijkstra algoritm iga sõlme esmakordseks külastamiseks läbib, tõesti kõige lühem. Kõige lihtsam on mõista, et see kehtib juba esimese sammu puhul. Kujutage ette kahte sõlme A ja B, mis on ühendatud raskusega 2 servaga. Kui A on lähtesõlm ja igal teisel seda puudutaval serval on suurem kaal, siis peab otsetee punktist A punkti B olema lühim võimalik neid kahte punkti ühendav tee, kuna mis tahes muu tee esimene segment oleks juba pikem. Sarnane arutluskäik töötab igal sammul. Algoritm ei pea kunagi tagasi vaatama, nii et pärast graafiku ühekordset läbimist on see garanteeritud – see teebki selle nii kiireks.
Kuid negatiivsed kaalud valmistavad Dijkstra ahnele strateegiale probleeme. Mõelge uuesti meie kohaletoimetamisjuhile. Otsene marsruut punktist A punkti B, mis teenib väikest kasumit, võib teenida vähem raha kui ringtee, millel on kusagil suur kasum. "Te ei saa teha otsuseid ainult kohaliku teabe põhjal," ütles Sanjeev Khanna, Pennsylvania ülikooli arvutiteadlane. "Võib-olla peate tegema mitmeid näiliselt ebaoptimaalseid liigutusi, et lõpuks saada tõeline tasu."
Aastakümneid püüdsid negatiivse kaaluga graafikute kallal töötavad arvutiteadlased sobitada Dijkstra algoritmi kiirust sarnaste "kombinatoorsete" algoritmidega. Need hõlmavad diskreetseid toiminguid, nagu loendusvõimalused, kaalude muutmine ja servade valikuline kustutamine, mis peegeldavad aluseks oleva graafiku diskreetset struktuuri. 1990ndateks edusammud aga aeglustusid. Viimasel ajal on teadlased kasutanud "pideva optimeerimise" algoritme, mis laenavad nippe arvutusest. Kahjuks on sellest tulenevad kiirendused olnud piiratud ja sageli lihtsuse hinnaga.
Katkestage tsükkel
2021. aasta suvel said kaks arvutiteadlast, kellest said kolleegid Kopenhaageni ülikoolis – Danupon Nanongkai ja Christian Wulff-Nilsen — otsisid teemat ühiseks uurimisprojektiks. "Christian ütles: "Oh, muide, ma olin puhkusel ja seetõttu püüdsin välja mõelda midagi väga ambitsioonikat," meenutas Nanongkai, kes töötab praegu Saksamaal Saarbruckenis Max Plancki informaatikainstituudis. Nad leppisid kokku negatiivse kaaluga lühima tee probleemiga ja kutsusid Aaron Bernstein Rutgersi ülikoolist, et nendega ühineda.
Kõik kolm teadlast olid teiste probleemide kombinatoorsete graafikalgoritmide eksperdid ja nad tahtsid näha, kui kaugele need suhteliselt iidsed lähenemisviisid võivad neid viia. "Tegelikult on teatud vabadus töötada probleemiga, mis on ambitsioonikas ja on olnud avatud pikka aega," ütles Bernstein.
Kolmik alustas sellega, et ignoreeris ajutiselt võimalike graafikute alamhulka: neid, mis sisaldavad negatiivseid tsükleid. Need on rajad, mis pöörduvad tagasi sinna, kust nad algasid pärast rea servade läbimist, mille raskused annavad kokku negatiivse arvu. Algpunktist saavutatavate negatiivsete tsüklitega graafikus lühima tee mõiste katkeb, kuna saate muuta kauguse mis tahes sõlmeni nii negatiivseks (või tulusaks), kui soovite, tehes enne sihtkohta suundumist negatiivse tsükli ümber korduvalt ringe.
Teadlased kahtlustasid, et probleemi raskendas peamiselt pikad negatiivsed teed. Nii hakkasid nad keskenduma lähedal asuvate sõlmede tihedatele klastritele, mis ei saa sisaldada pikki negatiivseid teid. Selle põhjuseks on asjaolu, et kui kaks punkti on ühendatud lühikese positiivse teega, tekitaks nende vahele pika negatiivse tee lisamine negatiivse tsükli. Tihedas klastris annab asjaolu, et kõik on positiivses mõttes lähestikku, kasulikku teavet ka negatiivsete servade kohta, " ütles Bernstein. "See ütleb teile, et asjad ei saa olla liiga negatiivsed."
Enamik graafikuid sisaldab palju selliseid tihedalt seotud klastreid, mis on üksteisega vaid nõrgalt seotud. Kui teadlased suutsid kõik klastrid täpselt kindlaks teha, kahtlustasid nad, et nad suudavad välja töötada viisi, kuidas igas klastris kiiresti leida lühimad teed. Sealt edasi võib neil olla lihtsam üksikuid klastreid ühendada ja leida algses graafikus lühimad teed. Kuid selleks oleks vaja kiiresti tuvastada mis tahes graafiku piirkonnad, kus sõlmed on lähestikku – midagi nad ei teadnud, kuidas teha. Võtmeks osutus tehnika, mis sai alguse graafiteooria täiesti teisest harust.
Graafikute lõikamine
1980. aastatel töötasid arvutiteadlased välja meetodi, mida nimetatakse väikese läbimõõduga dekomponeerimiseks, et valida graafikult tihedad klastrid ja tuvastada servad, mis tuleb nende klastrite eraldamiseks kustutada. See meetod võimaldab jagada graafikud sõltumatuteks osadeks. See leiutati "jaotatud" algoritmide hõlbustamiseks, kus arvutused jooksevad paralleelselt graafiku erinevates osades, nii et see oli vähem kasulik lühima tee algoritmide jaoks, millel see omadus puudub.
Bernstein, Nanongkai ja Wulff-Nilsen mõistsid, et väikese läbimõõduga lagunemine võib aidata neil tuvastada klastreid ilma palju kontsentreeritud negatiivsust. Kahjuks töötavad standardsed väikese läbimõõduga dekomponeerimisalgoritmid ainult suunamata graafikutel, mille iga serva saab läbida mõlemas suunas. Negatiivse kaaluga lühimate teede probleem on aga mõttekas ainult suunatud graafikutel, kus iga serv on ühesuunaline tänav. (Vastasel juhul tekitaks üksainus suunamata negatiivne serv negatiivse tsükli, mis koosneb korduvatest edasi-tagasi hüppamisest üle selle serva.) Kui teadlased sooviksid kasutada väikese läbimõõduga lagunemist, peaksid nad seda kohandama.
Seda nad oma uues lehes tegid. Inspireeritud varasem töö milles Bernstein ja Wulff-Nilsen tegid koostööd Probst Gutenbergiga, töötasid nad välja suunatud graafikute jaoks purustamisprotseduuri, mis on analoogne väikese läbimõõduga lagunemisega. Protseduur jaotab suvalise suunatud graafiku tihedalt ühendatud klastriteks, kasutades juhuslikku protsessi, et kustutada vaid käputäis servi. Seejärel ühendatakse need klastrid hõredama võrguga, mille kõik servad on suunatud samas suunas. Sellist võrku nimetatakse suunatud atsükliliseks graafikuks või DAG-ks.
Mõelge DAG-ile nagu ojale, milles vesi võib voolata mööda erinevaid teid: mõned teed voolavad sisse erinevatest allikatest, teised levivad eri suundades ja teised võivad lahku minna ja uuesti kokku sulada. Kuid miski ei voola kunagi tagasi, seega pole tsükleid; see muudab DAG-idega töötamise palju lihtsamaks.
Teadlased on juba ammu teadnud, kuidas kiiresti leida DAG-ide lühimaid teid isegi negatiivse kaaluga. Nii et purustamistehnika võimaldas kolmel teadlasel taandada mis tahes suunatud graafiku kahe erijuhtumi – DAG-i ja tihedate klastrite – kombinatsiooniks, mida mõlemat oli lihtne käsitleda.
Uus lühima tee algoritm kasutab korduvalt purustamisprotseduuri, et jagada graafik tihedalt ühendatud klastriteks, mis on ühendatud DAG-iga. Seejärel lõhub see neid klastreid üha kaugemale. Protsessi lõpus on kõige sisemise tasandi klastrid võimalikult tihedalt seotud. Algoritm nii kiire on osaliselt selles, et isegi väga suure graafiku täielikuks purustamiseks ei ole vaja palju iteratsioone, nagu ka suure arvu mõistliku suuruseks lõikamine ei võta kaua aega, kui seda korduvalt pooleks jagada.
Kui graafik on sel viisil täielikult jaotatud, võisid teadlased kiiresti leida lühimad teed läbi graafiku iga osa. Pesastatud graafiku struktuuri sisemise tasandi kitsaste klastrite puhul oli see lihtne – negatiivsust neil praktiliselt ei jäänud. Ja teadlased teadsid juba, kuidas leida lühimaid teid nendega liituvatel DAG-lõikudel.
Lõpuks lisab algoritm tagasi purustamisprotsessiga kõrvaldatud servad ja arvutab nende mõju lühimatele teedele. Teadlased tõestasid, et nende servade juhusliku kustutamise protsess nõuab peaaegu alati vaid mõnda kustutamist, et kõrvaldada "tagurlikud" servad - selline, mis muudaks nende DAG-i suurte tsüklitega graafikuks. See muutis äärmiselt ebatõenäoliseks, et mõni lühim tee läbiks liiga palju selliseid tagurpidi segmente, nii et nad saaksid selle keerulise viimase sammu lahendada, ühendades kaks 1950ndate õpikumeetodit: Dijkstra algoritmi ja esimese negatiivse kaaluga graafikute jaoks välja töötatud algoritmi.
"See on nende ideede äärmiselt nutikas kompositsioon," ütles Khanna. Algoritm on esimene negatiivse kaaluga graafikute jaoks, mis töötab "peaaegu lineaarse" aja jooksul – mis tähendab, et selle käitusaeg on peaaegu võrdeline ajaga, mis kulub lihtsalt kõigi servade loendamiseks, mis on kiireim, kui see olla võiks.
Ja kuidas on negatiivsete tsüklitega graafikutega, mida teadlased otsustasid alguses ignoreerida? Pärast lühima tee algoritmi viimistlemist näitasid nad, et see võib töötada ka kiire algoritmina negatiivsete tsüklite kindlaksmääramiseks. Praktiliselt ükski graafik ei olnud käeulatusest väljas.
Paralleelsed teed
Bernstein esitles meeskonna tulemusi 2022. aasta arvutiteaduse aluste konverentsil, kus nende uut algoritmi kirjeldav käsikiri peeti üheks kahest parimast artiklist. The muu paber juhtus kirjeldama ka uut peaaegu lineaarse aja algoritmi graafiteooria pikaajalise probleemi lahendamiseks.
See Probst Gutenbergi ja viie teise teadlase poolt välja töötatud algoritm käsitles üldisemat probleemi, mida nimetatakse minimaalse kuluga vooluks, mille eesmärk on optimeerida transporti mitmel paralleelsel teel ning igal serval on maksimaalne läbilaskevõime ja ka sellega seotud kulu. Lühimate radade probleemid on minimaalse kuluga voo erijuht, nii et uut minimaalse kulu-voo algoritmi saab kasutada ka negatiivse kaaluga lühimate teede probleemi lahendamiseks peaaegu lineaarse aja jooksul, kuigi radikaalselt erineva lähenemisviisiga.
Minimaalse kuluga voo kallal töötav meeskond töötas välja oma üldotstarbelise kiire algoritmi, kasutades kombineeritud ja pideva optimeerimise tehnikate keerulist sünteesi, mis muudab selle praktikas vähemalt praegu kohmakaks. Bernsteini ja tema kolleegide kombinatoorne algoritm, kuigi see piirdub konkreetsema probleemiga, saavutab oma peaaegu lineaarse tööaja lihtsust ohverdamata.
"See on selle paberi juures nii hämmastav," ütles Probst Gutenberg. "Saate seda selgitada bakalaureuseõppe üliõpilasele ja saate seda ka oma arvutis rakendada."
Selle tulemusena on see uus algoritm taaselustanud huvi kombinatoorsete lähenemisviiside vastu teistele graafiteooria probleemidele. Jääb üle näha, milliseid probleeme saab kiiresti lahendada puhtalt kombinatoorsete algoritmide abil ja mis tõesti nõuavad viimase 20 aasta jooksul välja töötatud pidevaid tehnikaid.
"See on filosoofiline küsimus, mida ma püüan mõista," ütles Nanongkai. "See lühima tee probleem annab lootust."
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. Juurdepääs siia.
- Allikas: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 aastat
- 2021
- 2022
- a
- MEIST
- Vastavalt
- konto
- saavutada
- üle
- tegelikult
- atsükliline
- kohandama
- Lisab
- pärast
- vastu
- algoritm
- algoritme
- Materjal: BPA ja flataatide vaba plastik
- juba
- alati
- edasipüüdlik
- Vana
- ja
- Teine
- lahus
- lähenemine
- lähenemisviisid
- ümber
- seotud
- tagasi
- Saldo
- põhineb
- sest
- muutuma
- enne
- hakkas
- Uskuma
- Bernstein
- BEST
- vahel
- Peale
- Suur
- laenama
- Filiaal
- Murdma
- puruneb
- Katki
- arvutab
- kutsutud
- Võimsus
- juhul
- juhtudel
- kindel
- SRÜ
- lähedal
- lähedalt
- Cluster
- koostööd teinud
- kolleegidega
- kombinatsioon
- kombineerimine
- Tulema
- arvutused
- arvuti
- Arvutiteadus
- Keskendunud
- Konverents
- seotud
- ühendamine
- Arvestama
- Koosneb
- pidev
- Maksma
- võiks
- looma
- Praegune
- Praegu
- lõigatud
- tsüklit
- DAG
- aastakümnete
- otsustatud
- otsused
- tarne
- kirjeldama
- sihtkoht
- kindlaksmääratud
- arendama
- arenenud
- DID
- erinevused
- erinev
- raske
- otsene
- suund
- avastasin
- kaugus
- Ei tee
- Ära
- alla
- juht
- hollandi
- iga
- teenima
- lihtsam
- lihtsaim
- serv
- mõju
- kõrvaldama
- kõrvaldatud
- lubatud
- täielikult
- põhiliselt
- hinnata
- hinnangul
- Isegi
- KUNAGI
- igaüks
- olemasolevate
- olemas
- ekspertide
- Selgitama
- Avastades
- äärmiselt
- hõlbustada
- lehvikut
- KIIRE
- kiiremini
- Föderaal-
- vähe
- lõplik
- Lõpuks
- leidma
- leidmine
- leiab
- esimene
- Esimest korda
- voog
- Voolud
- Keskenduma
- avastatud
- Sihtasutused
- Vabadus
- Alates
- täielikult
- edasi
- GAS
- Üldine
- Üldine otstarve
- Saksamaa
- saama
- antud
- annab
- Go
- eesmärk
- graafik
- graafikud
- Ahne
- tagatud
- Gutenberg
- Pool
- käputäis
- käepide
- juhtus
- Rubriik
- aitama
- rohkem
- lootus
- Kuidas
- Kuidas
- aga
- HTML
- HTTPS
- ideid
- identifitseerima
- rakendada
- in
- tulu
- sõltumatud
- eraldi
- info
- inspireeritud
- Näiteks
- Instituut
- huvi
- Leiutatud
- kaasama
- IT
- kordused
- liituma
- liitumine
- Võti
- Laps
- Teadma
- teatud
- suur
- suurem
- Tase
- elu
- piiratud
- piirid
- lingid
- kohalik
- Pikk
- kaua aega
- kauaaegne
- enam
- Vaata
- tehtud
- tegema
- TEEB
- Tegemine
- viis
- palju
- kaart
- Vastama
- matemaatiline
- max
- maksimaalne
- vahendid
- Vahepeal
- Merge
- meetodid
- võib
- Kaasaegne
- raha
- rohkem
- käike
- liikuv
- peaaegu
- negatiivne
- naabrid
- võrgud
- võrk
- Uus
- järgmine
- sõlme
- sõlmed
- Mõiste
- number
- numbrid
- tasakaalustama
- ONE
- avatud
- Operations
- optimeerimine
- optimeerima
- originaal
- pärineb
- Muu
- teised
- muidu
- pakette
- sidumine
- Paber
- dokumendid
- Parallel
- osa
- osad
- Mööduv
- minevik
- tee
- Pennsylvania
- valima
- Platon
- Platoni andmete intelligentsus
- PlatoData
- Punkt
- võrra
- positiivne
- võimalused
- võimalik
- praktiliselt
- tava
- esitatud
- Probleem
- probleeme
- protsess
- Kasum
- tulutoov
- Edu
- projekt
- kinnisvara
- tõestatud
- annab
- puhtalt
- Putting
- Kvantamagazin
- küsimus
- kiiresti
- radikaalselt
- juhuslik
- kiiresti
- jõudma
- reaalne
- realiseeritud
- põhjus
- mõistlik
- hiljuti
- vähendama
- kajastama
- piirkondades
- suhteliselt
- jäi
- jäänused
- korduv
- KORDUVALT
- esindama
- esindatud
- esindab
- nõudma
- nõutav
- teadustöö
- Teadlased
- vastutav
- piiratud
- kaasa
- tulemuseks
- Premeerima
- tee
- Marsruut
- jooks
- jooksmine
- Rutgersi Ülikool
- ohverdama
- Ütlesin
- sama
- teadus
- teadlane
- teadlased
- otsimine
- lõigud
- segment
- segmendid
- tunne
- Seeria
- Väljakujunenud
- mitu
- Lühike
- sarnane
- lihtne
- lihtsus
- alates
- ühekordne
- SUURUS
- väike
- So
- LAHENDAGE
- Lahendamine
- mõned
- Keegi
- midagi
- kuskil
- keeruline
- allikas
- Allikad
- eriline
- konkreetse
- kiirus
- LoitS
- jagada
- standard
- algus
- alustatud
- Käivitus
- Samm
- Veel
- Lugu
- Strateegia
- oja
- tänav
- struktuur
- õpilane
- selline
- suvi
- Šveitsi
- Võtma
- võtab
- võtmine
- meeskond
- tehnikat
- Tehnoloogia
- ütleb
- õpikut
- .
- Graafik
- Allikas
- oma
- asjad
- kolm
- Läbi
- aeg
- et
- kokku
- liiga
- teema
- liigutav
- transportida
- Reisimine
- häda
- tõsi
- Pöörake
- Pöördunud
- aluseks
- mõistma
- Ülikool
- ajakohastamine
- kasutama
- puhkus
- praktiliselt
- tagaotsitav
- Vesi
- webp
- kaal
- M
- kas
- mis
- WHO
- jooksul
- ilma
- Töö
- töö
- töötab
- oleks
- aastat
- sa
- Sinu
- sephyrnet
- Zurich