Introductie
In algoritmen, zoals in het leven, kan negativiteit een belemmering zijn.
Overweeg het probleem van het vinden van het kortste pad tussen twee punten op een grafiek - een netwerk van knooppunten verbonden door links of randen. Vaak zijn deze randen niet uitwisselbaar: een grafiek kan een wegenkaart voorstellen waarop sommige wegen langzamer zijn dan andere of hogere toltarieven hebben. Computerwetenschappers verklaren deze verschillen door elke rand te koppelen aan een "gewicht" dat de kosten kwantificeert om over dat segment te bewegen - of die kosten nu tijd, geld of iets anders vertegenwoordigen. Sinds de jaren vijftig weten ze hoe ze de kortste paden zo snel als theoretisch mogelijk kunnen vinden, ervan uitgaande dat alle gewichten positieve getallen zijn.
Maar op sommige grafieken kunnen gewichten negatief zijn - reizen langs het ene segment kan de kosten van het passeren van een ander segment compenseren. Denk bijvoorbeeld aan een bezorger die de kosten van gas en tol (weergegeven door positieve gewichten) moet afwegen tegen de inkomsten uit het vervoeren van pakketten (weergegeven door negatieve gewichten). In dergelijke gevallen werkt het snelst bekende kortste-pad-algoritme niet. Decennia lang zijn snelle algoritmen voor het vinden van de kortste paden in grafieken met een negatief gewicht ongrijpbaar gebleven.
Nu heeft een drietal computerwetenschappers dit al lang bestaande probleem opgelost. Hun nieuwe algoritme, die de kortste paden door een grafiek van een bepaald "bron"-knooppunt naar elk ander knooppunt vindt, komt bijna overeen met de snelheid die algoritmen met een positief gewicht zo lang geleden bereikten.
Bovendien maakt de nieuwe benadering gebruik van tientallen jaren oude wiskundige technieken, waardoor meer geavanceerde methoden die het moderne onderzoek naar grafentheorie hebben gedomineerd, worden vermeden.
"Ik kon gewoon niet geloven dat zo'n eenvoudig algoritme bestaat," zei Maximiliaan Probst Gutenberg, een computerwetenschapper aan het Zwitserse Federale Instituut voor Technologie Zรผrich. โAlles staat er al 40 jaar. Er was gewoon iemand voor nodig die echt slim en vastberaden was om het allemaal te laten werken.
De grenzen van hebzucht
Het verhaal begint in 1956, toen de Nederlandse computerwetenschapper Edsger Dijkstra een snel algoritme ontwikkelde om de kortste paden in een grafiek te vinden met alleen maar positieve gewichten. Om het te begrijpen, stel je voor dat je begint bij de bron en de grafiek รฉรฉn knoop per keer verkent, terwijl je de gewichten van nieuw ontdekte randen noteert. Elke keer dat u een knooppunt bezoekt, maakt u voorlopige schattingen van de kortste paden van de bron naar elk van de buren van het nieuwe knooppunt, waarbij u bestaande schattingen bijwerkt als u een nieuw korter pad hebt gevonden. Gebruik een zogenaamde hebzuchtige strategie om te beslissen welk onontgonnen knooppunt je vervolgens wilt bezoeken: ga naar wat volgens je huidige schatting het dichtst bij de bron ligt.
Met positieve gewichten is het pad dat het algoritme van Dijkstra aflegt om elk knooppunt voor de eerste keer te bezoeken, echt het kortst. Het is het gemakkelijkst om te zien dat dit geldt voor de allereerste stap. Stel je twee knooppunten A en B voor die verbonden zijn door een rand met gewicht 2. Als A het bronknooppunt is en elke andere rand die het raakt een groter gewicht heeft, dan moet het directe pad van A naar B het kortst mogelijke pad zijn dat die twee punten verbindt , aangezien het eerste segment van elk ander pad al langer zou zijn. Soortgelijke redeneringen werken bij elke stap. Het algoritme hoeft nooit achterom te kijken, dus het is gegarandeerd klaar nadat het eenmaal door de grafiek is gelopen - dat maakt het zo snel.
Maar negatieve gewichten zijn een probleem voor de hebzuchtige strategie van Dijkstra. Denk nog eens aan onze bezorger. Een directe route van A naar B die een kleine winst oplevert, kan minder geld opleveren dan een omslachtig pad dat ergens een grote uitbetaling oplevert. "Je kunt geen beslissingen nemen alleen op basis van de lokale informatie," zei Sanjeev Khanna, een computerwetenschapper aan de Universiteit van Pennsylvania. "Misschien moet je verschillende ogenschijnlijk suboptimale bewegingen maken om eindelijk een echte beloning te krijgen."
Decennialang probeerden computerwetenschappers die aan grafieken met een negatief gewicht werkten de snelheid van Dijkstra's algoritme te evenaren met vergelijkbare 'combinatorische' algoritmen. Het gaat hierbij om discrete bewerkingen - zoals telmogelijkheden, het wijzigen van gewichten en het selectief verwijderen van randen - die de discrete structuur van de onderliggende grafiek weerspiegelen. De vooruitgang vertraagde echter in de jaren negentig. Meer recentelijk hebben onderzoekers algoritmen voor "continue optimalisatie" gebruikt, die trucs lenen van calculus. Helaas zijn de resulterende versnellingen beperkt en gaan ze vaak ten koste van de eenvoud.
Doorbreek de cyclus
In de zomer van 2021 kwamen twee computerwetenschappers die collega's waren geworden aan de Universiteit van Kopenhagen โ Danupon Nanongkai en Christian Wulff-Nilsen โ op zoek waren naar een onderwerp voor een gezamenlijk onderzoeksproject. "Christian zei: 'O, trouwens, ik was op vakantie en daarom probeerde ik iets heel ambitieus te bedenken'", herinnert Nanongkai zich, die nu verbonden is aan het Max Planck Instituut voor Informatica in Saarbrucken, Duitsland. Ze kwamen tot een oplossing voor het probleem van de kortste paden met een negatief gewicht en nodigden uit Aรคron Bernstein van Rutgers University om zich bij hen aan te sluiten.
Alle drie de onderzoekers waren experts in combinatorische grafiekalgoritmen voor andere problemen, en ze wilden zien hoe ver ze konden komen met deze relatief oude benaderingen. "Er zit eigenlijk een zekere vrijheid in het werken aan een ambitieus probleem dat al heel lang openstaat", zei Bernstein.
Het trio begon met het tijdelijk negeren van een subset van mogelijke grafieken: die met negatieve cycli. Dit zijn paden die teruggaan naar waar ze begonnen nadat ze een reeks randen zijn gepasseerd waarvan de gewichten optellen tot een negatief getal. In een grafiek met negatieve cycli die bereikbaar zijn vanaf het startpunt, valt het idee van een kortste pad weg, aangezien je de afstand tot elk knooppunt zo negatief (of zo winstgevend) kunt maken als je wilt, door herhaalde ronden rond de negatieve cyclus te maken voordat op weg naar uw bestemming.
De onderzoekers vermoedden dat lange negatieve paden vooral verantwoordelijk waren voor het moeilijk maken van het probleem. Dus begonnen ze zich te concentreren op dichte clusters van nabijgelegen knooppunten, die geen lange negatieve paden kunnen bevatten: dat komt omdat als twee punten zijn verbonden door een kort positief pad, het toevoegen van een lang negatief pad ertussen een negatieve cyclus zou creรซren. Binnen een hecht cluster "geeft het feit dat iedereen in positieve zin dicht bij elkaar staat, eigenlijk ook nuttige informatie over de negatieve kanten", zei Bernstein. "Het vertelt je dat dingen niet te negatief kunnen zijn."
De meeste grafieken bevatten veel van dergelijke hechte clusters die slechts zwak met elkaar verbonden zijn. Als de onderzoekers alle clusters konden lokaliseren, vermoedden ze dat ze een manier konden ontwikkelen om snel de kortste paden binnen elke cluster te vinden. Van daaruit kunnen ze gemakkelijker individuele clusters met elkaar verbinden en de kortste paden in de oorspronkelijke grafiek vinden. Maar daarvoor zouden ze snel de regio's moeten zien van elke grafiek waarin knooppunten dicht bij elkaar liggen - iets waarvan ze niet wisten hoe ze dat moesten doen. De sleutel bleek een techniek te zijn die zijn oorsprong vond in een geheel andere tak van grafentheorie.
Grafieken opdelen
In de jaren tachtig ontwikkelden computerwetenschappers een techniek die decompositie met een kleine diameter wordt genoemd, om strakke clusters in een grafiek te selecteren en de randen te identificeren die moeten worden verwijderd om die clusters te scheiden. Deze techniek biedt een manier om grafieken in onafhankelijke secties te verdelen. Het is uitgevonden om "gedistribueerde" algoritmen mogelijk te maken, waarbij berekeningen parallel worden uitgevoerd op verschillende delen van een grafiek, dus het was minder duidelijk nuttig voor kortste-pad-algoritmen, die deze eigenschap niet hebben.
Bernstein, Nanongkai en Wulff-Nilsen realiseerden zich dat ontleding met een kleine diameter hen zou kunnen helpen clusters te identificeren zonder veel geconcentreerde negativiteit. Helaas werken standaard ontledingsalgoritmen met een kleine diameter alleen op ongerichte grafieken - die waarin elke rand in beide richtingen kan worden doorlopen. Het probleem van de kortste paden met een negatief gewicht heeft ondertussen alleen zin op gerichte grafieken, waarin elke rand eenrichtingsverkeer is. (Anders zou een enkele ongerichte negatieve rand een negatieve cyclus creรซren die bestaat uit herhaald heen en weer springen over die rand.) Als de onderzoekers decompositie met een kleine diameter wilden gebruiken, zouden ze die moeten aanpassen.
Dat is wat ze deden in hun nieuwe krant. Geรฏnspireerd door verleden werk waarin Bernstein en Wulff-Nilsen hadden samengewerkt met Probst Gutenberg, ontwikkelden ze een breukprocedure voor gerichte grafen analoog aan ontleding met een kleine diameter. De procedure hakt een willekeurig gerichte grafiek op in een reeks hechte clusters door een willekeurig proces te gebruiken om slechts een handvol randen te verwijderen. Daarna worden die clusters verbonden door een schaarser netwerk waarin alle randen in dezelfde richting wijzen. Dat soort netwerk wordt een gerichte acyclische graaf of DAG genoemd.
Zie een DAG als een stroom waarin water langs verschillende paden kan stromen: sommige paden stromen vanuit verschillende bronnen naar binnen, andere waaieren uit in verschillende richtingen, en weer andere kunnen uit elkaar splitsen en weer samenvloeien. Maar niets stroomt ooit terug, dus er zijn geen cycli; dit maakt DAG's veel gemakkelijker om mee te werken.
Onderzoekers weten al lang hoe ze snel de kortste paden op DAG's kunnen vinden, zelfs met negatieve gewichten. Dus de fracturing-techniek stelde de drie onderzoekers in staat om elke gerichte graaf te reduceren tot een combinatie van twee speciale gevallen - DAG's en strakke clusters - die elk gemakkelijk te hanteren waren.
Het nieuwe kortste-pad-algoritme gebruikt herhaaldelijk de breukprocedure om een โโgrafiek op te splitsen in hechte clusters die zijn verbonden door een DAG. Vervolgens breekt het die clusters steeds verder uit elkaar. Aan het einde van het proces zijn de clusters op het binnenste niveau zo nauw mogelijk met elkaar verbonden. Een deel van de reden waarom het algoritme zo snel is, is dat er niet veel iteraties nodig zijn om zelfs een zeer grote grafiek volledig op te splitsen, net zoals het niet lang duurt om een โโgroot getal terug te brengen tot een redelijke omvang als je herhaaldelijk deelt het in de helft.
Met de grafiek op deze manier volledig uitgesplitst, konden de onderzoekers snel de kortste paden vinden door elk deel van de grafiek. Voor de krappe clusters op het binnenste niveau van de geneste grafiekstructuur was dit gemakkelijk - ze hadden praktisch geen negativiteit meer. En de onderzoekers wisten al hoe ze de kortste paden konden vinden op de DAG-secties die hen vergezelden.
Ten slotte voegt het algoritme de randen toe die zijn geรซlimineerd door het breekproces en berekent het hun effecten op de kortste paden. De onderzoekers bewezen dat hun proces voor het willekeurig verwijderen van randen bijna altijd slechts een paar verwijderingen zou vereisen om "achterwaartse" randen te elimineren - het soort dat hun DAG zou veranderen in een grafiek met grote cycli. Dat maakte het uiterst onwaarschijnlijk dat een kortste pad door te veel van dergelijke achterwaartse segmenten zou gaan, dus konden ze deze lastige laatste stap oplossen door twee leerboekmethoden uit de jaren vijftig te combineren: het algoritme van Dijkstra en het eerste algoritme dat werd ontwikkeld voor grafieken met een negatief gewicht.
"Het is een buitengewoon slimme samenstelling van deze ideeรซn," zei Khanna. Het algoritme is het eerste voor grafieken met een negatief gewicht dat wordt uitgevoerd in "bijna-lineaire" tijd - wat betekent dat de looptijd bijna evenredig is met de tijd die nodig is om alle randen te tellen, de snelste die mogelijk is.
En hoe zit het met de grafieken met negatieve cycli, die de onderzoekers aanvankelijk besloten te negeren? Nadat ze de laatste hand hadden gelegd aan hun kortste-pad-algoritme, toonden ze aan dat het ook zou kunnen werken als een snel algoritme voor het lokaliseren van negatieve cycli. Vrijwel geen grafiek was buiten zijn bereik.
Parallelle paden
Bernstein presenteerde het resultaat van het team op de Foundations of Computer Science-conferentie in 2022, waar hun manuscript dat het nieuwe algoritme beschrijft, werd beschouwd als een van de twee beste papers. De ander papier toevallig ook een nieuw bijna-lineair-tijdalgoritme beschreven voor het oplossen van een al lang bestaand probleem in de grafentheorie.
Dat algoritme, ontwikkeld door Probst Gutenberg en vijf andere onderzoekers, loste een meer algemeen probleem op dat minimale kostenstroom wordt genoemd, waarbij het doel is het transport over vele paden parallel te optimaliseren, en elke rand heeft een maximale capaciteit en bijbehorende kosten. . Kortste-padproblemen zijn een speciaal geval van minimale kostenstroom, dus het nieuwe minimale-kostenstroom-algoritme zou ook kunnen worden gebruikt om het kortste-padenprobleem met negatief gewicht in bijna lineaire tijd op te lossen, zij het met een radicaal andere aanpak.
Het team dat aan minimale-kostenstroom werkte, ontwikkelde hun snelle algoritme voor algemene doeleinden met behulp van een ingewikkelde synthese van combinatorische en continue optimalisatietechnieken die het in de praktijk onpraktisch maken, althans momenteel. Het combinatorische algoritme van Bernstein en zijn collega's, hoewel beperkt tot een meer specifiek probleem, bereikt zijn bijna lineaire looptijd zonder in te boeten aan eenvoud.
"Dit is zo verbazingwekkend aan dit artikel", zei Probst Gutenberg. "Je kunt het uitleggen aan een niet-gegradueerde student, en je kunt het ook op je computer implementeren."
Als gevolg hiervan heeft dit nieuwe algoritme de belangstelling voor combinatorische benaderingen van andere problemen in de grafentheorie nieuw leven ingeblazen. Het valt nog te bezien welke problemen snel kunnen worden opgelost met behulp van puur combinatorische algoritmen, en welke echt de continue technieken vereisen die in de afgelopen 20 jaar zijn ontwikkeld.
"Dit is een filosofische vraag die ik probeer te begrijpen," zei Nanongkai. "Dit kortste-pad-probleem geeft enige hoop."
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 jaar
- 2021
- 2022
- a
- Over
- Volgens
- Account
- bereikt
- over
- werkelijk
- acyclische
- aanpassen
- Voegt
- Na
- tegen
- algoritme
- algoritmen
- Alles
- al
- altijd
- ambitieus
- Oude
- en
- Nog een
- uit elkaar
- nadering
- benaderingen
- rond
- geassocieerd
- terug
- Balance
- gebaseerde
- omdat
- worden
- vaardigheden
- begon
- geloofd wie en wat je bent
- Bernstein
- BEST
- tussen
- Verder
- Groot
- lenen
- Tak
- Breken
- breaks
- Kapot
- berekent
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- Inhoud
- geval
- gevallen
- zeker
- CIS
- Sluiten
- van nabij
- TROS
- samengewerkt
- collega's
- combinatie van
- combineren
- hoe
- berekeningen
- computer
- Computer Science
- Geconcentreerd
- Conferentie
- gekoppeld blijven
- Wij verbinden
- Overwegen
- bestaande uit
- doorlopend
- Kosten
- kon
- en je merk te creรซren
- Actueel
- Op dit moment
- Snijden
- cycli
- DAG
- decennia
- beslist
- beslissingen
- levering
- beschrijven
- bestemming
- vastbesloten
- ontwikkelen
- ontwikkelde
- DEED
- verschillen
- anders
- moeilijk
- directe
- richting
- ontdekt
- afstand
- Nee
- Dont
- beneden
- bestuurder
- Nederlands
- elk
- verdienen
- gemakkelijker
- gemakkelijkste
- rand
- duurt
- elimineren
- geรซlimineerd
- ingeschakeld
- geheel
- in wezen
- schatting
- schattingen
- Zelfs
- OOIT
- iedereen
- bestaand
- bestaat
- deskundigen
- Verklaren
- Verkennen
- uiterst
- vergemakkelijken
- ventilator
- SNELLE
- snelste
- Federaal
- weinig
- finale
- Tot slot
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- het vinden van
- vondsten
- Voornaam*
- eerste keer
- stroom
- Stromen
- Focus
- gevonden
- Stichtingen
- Vrijheid
- oppompen van
- geheel
- verder
- GAS
- Algemeen
- voor algemeen gebruik
- Duitsland
- krijgen
- gegeven
- geeft
- Go
- doel
- diagram
- grafieken
- Hebzuchtig
- gegarandeerde
- gutenberg
- Helft
- handvol
- handvat
- gebeurd
- Titel
- hulp
- hoger
- hoop
- Hoe
- How To
- Echter
- HTML
- HTTPS
- ideeรซn
- identificeren
- uitvoeren
- in
- Inkomen
- onafhankelijk
- individueel
- informatie
- geinspireerd
- instantie
- Instituut
- belang
- Uitgevonden
- betrekken
- IT
- iteraties
- mee
- aansluiting
- sleutel
- Soort
- blijven
- bekend
- Groot
- groter
- Niveau
- Life
- Beperkt
- grenzen
- links
- lokaal
- lang
- lange tijd
- al lang bestaand
- langer
- Kijk
- gemaakt
- maken
- MERKEN
- maken
- manier
- veel
- kaart
- Match
- wiskundig
- max
- maximaal
- middel
- Ondertussen
- gaan
- methoden
- macht
- Modern
- geld
- meer
- beweegt
- bewegend
- bijna
- negatief
- buren
- Netten
- netwerk
- New
- volgende
- knooppunt
- knooppunten
- notie
- aantal
- nummers
- compenseren
- EEN
- open
- Operations
- optimalisatie
- Optimaliseer
- origineel
- is ontstaan
- Overige
- Overig
- anders-
- Paketten
- pairing
- Papier
- papieren
- Parallel
- deel
- onderdelen
- Voorbijgaand
- verleden
- pad
- Pennsylvania
- kiezen
- Plato
- Plato gegevensintelligentie
- PlatoData
- punt
- punten
- positief
- mogelijkheden
- mogelijk
- bijna
- praktijk
- gepresenteerd
- probleem
- problemen
- Profit
- winstgevend
- Voortgang
- project
- eigendom
- bewezen
- biedt
- puur
- Putting
- Quanta tijdschrift
- vraag
- snel
- radicaal
- willekeurige
- snel
- bereiken
- vast
- realiseerde
- reden
- redelijk
- onlangs
- verminderen
- reflecteren
- regio
- relatief
- bleef
- stoffelijk overschot
- herhaald
- HERHAALDELIJK
- vertegenwoordigen
- vertegenwoordigd
- vertegenwoordigt
- vereisen
- nodig
- onderzoek
- onderzoekers
- verantwoordelijk
- begrensd
- resultaat
- verkregen
- Belonen
- weg
- weg
- lopen
- lopend
- Rutgers University
- concessies te doen
- Zei
- dezelfde
- Wetenschap
- Wetenschapper
- wetenschappers
- zoeken
- secties
- segment
- segmenten
- zin
- -Series
- Gevestigd
- verscheidene
- Bermuda's
- gelijk
- Eenvoudig
- eenvoud
- sinds
- single
- Maat
- Klein
- So
- OPLOSSEN
- Het oplossen van
- sommige
- Iemand
- iets
- ergens
- geraffineerd
- bron
- bronnen
- special
- specifiek
- snelheid
- SPELLEN
- spleet
- standaard
- begin
- gestart
- Start
- Stap voor
- Still
- Verhaal
- Strategie
- stream
- straat
- structuur
- Student
- dergelijk
- zomer
- Zwitsers
- Nemen
- neemt
- het nemen
- team
- technieken
- Technologie
- vertelt
- leerboek
- De
- De grafiek
- De Bron
- hun
- spullen
- drie
- Door
- niet de tijd of
- naar
- samen
- ook
- onderwerp
- aandoenlijk
- vervoeren
- Reizend
- moeite
- waar
- BEURT
- Gedraaid
- die ten grondslag liggen
- begrijpen
- universiteit-
- bijwerken
- .
- vakantie
- virtueel
- gezocht
- Water
- webp
- gewicht
- Wat
- of
- welke
- WIE
- binnen
- zonder
- Mijn werk
- werkzaam
- Bedrijven
- zou
- jaar
- You
- Your
- zephyrnet
- Zurich