Introduktion
I algoritmer, som i livet, kan negativitet være et træk.
Overvej problemet med at finde den korteste vej mellem to punkter på en graf - et netværk af noder forbundet med links eller kanter. Disse kanter er ofte ikke udskiftelige: En graf kan repræsentere et vejkort, hvor nogle veje er langsommere end andre eller har højere vejafgifter. Dataloger tegner sig for disse forskelle ved at parre hver kant med en "vægt", der kvantificerer omkostningerne ved at flytte på tværs af det segment - uanset om omkostningerne repræsenterer tid, penge eller noget andet. Siden 1950'erne har de vidst, hvordan man finder de korteste veje i det væsentlige så hurtigt som teoretisk muligt, forudsat at alle vægte er positive tal.
Men på nogle grafer kan vægte være negative - at rejse langs et segment kan opveje omkostningerne ved at krydse et andet. Overvej for eksempel en leveringschauffør, der skal balancere omkostningerne til gas og vejafgifter (repræsenteret ved positive vægte) mod indtægter fra transport af pakker (repræsenteret ved negative vægte). I sådanne tilfælde virker den hurtigste kendte korteste vejs algoritme ikke. I årtier har hurtige algoritmer til at finde korteste veje på grafer med negativ vægt forblevet uhåndgribelige.
Nu har en trio af dataloger løst dette langvarige problem. Deres nye algoritme, som finder de korteste veje gennem en graf fra en given "kilde"-knude til hver anden knude, matcher næsten den hastighed, som algoritmer med positiv vægt opnåede for så længe siden.
Hvad mere er, bruger den nye tilgang årtier gamle matematiske teknikker og undgår mere sofistikerede metoder, der har domineret moderne grafteoretisk forskning.
"Jeg kunne bare ikke tro, at en sådan simpel algoritme eksisterer," sagde Maximilian Probst Gutenberg, en datalog ved Swiss Federal Institute of Technology Zürich. "Det hele har været der i 40 år. Der skulle bare nogen til at være virkelig klog og beslutsom for at få det hele til at fungere.”
Grådighedens grænser
Historien begynder i 1956, hvor den hollandske datalog Edsger Dijkstra udviklede en hurtig algoritme til at finde korteste veje på en graf med kun positive vægte. For at forstå det, forestil dig at starte fra kilden og udforske grafen en knude ad gangen, mens du noterer vægten af nyopdagede kanter, mens du går. Hver gang du besøger en node, skal du lave foreløbige estimater af de korteste veje fra kilden til hver af den nye nodes naboer, og opdatere eventuelle eksisterende estimater, hvis du har fundet en ny, kortere vej. For at beslutte, hvilken uudforsket node du skal besøge næste gang, skal du bruge det, der kaldes en grådig strategi: Gå til den, der er tættest på kilden ifølge dit nuværende skøn.
Med positive vægte er den vej, som Dijkstras algoritme tager for at besøge hver knude for første gang, virkelig den korteste. Det er nemmest at se, at dette er sandt for det allerførste trin. Forestil dig to knudepunkter A og B forbundet med en kant med vægt 2. Hvis A er kildenoden, og hver anden kant, der berører den, har en større vægt, så skal den direkte vej fra A til B være den kortest mulige vej, der forbinder disse to punkter , da det første segment af enhver anden vej allerede ville være længere. Lignende ræsonnement virker ved hvert trin. Algoritmen behøver aldrig at se tilbage, så den slutter med garanti efter at have kørt gennem grafen én gang – det er det, der gør den så hurtig.
Men negative vægte giver problemer for Dijkstras grådige strategi. Overvej igen vores leveringschauffør. En direkte rute fra A til B, der giver et lille overskud, kan tjene færre penge end en omvejet vej, der har et stort udbytte et eller andet sted. "Du kan ikke træffe beslutninger kun baseret på den lokale information," sagde Sanjeev Khanna, en datalog ved University of Pennsylvania. "Du skal muligvis lave flere tilsyneladende suboptimale træk for endelig at få en rigtig belønning."
I årtier forsøgte dataloger, der arbejdede på grafer med negativ vægt, at matche hastigheden af Dijkstras algoritme med lignende "kombinatoriske" algoritmer. Disse involverer diskrete operationer - som tællemuligheder, ændring af vægte og selektiv sletning af kanter - der afspejler den diskrete struktur af den underliggende graf. Fremskridtene aftog dog i 1990'erne. For nylig har forskere brugt "kontinuerlig optimering" algoritmer, som låner tricks fra calculus. Desværre har de resulterende speedups været begrænsede og er ofte sket på bekostning af enkelhed.
Bryde cyklussen
I sommeren 2021 var to dataloger, der var blevet kolleger på Københavns Universitet — Danupon Nanongkai , Christian Wulff-Nilsen — søgte efter et emne til et fælles forskningsprojekt. "Christian sagde, 'Åh, forresten, jeg var på ferie, og derfor prøvede jeg at tænke på noget meget ambitiøst'," huskede Nanongkai, som nu er på Max Planck Instituttet for Informatik i Saarbrücken, Tyskland. De slog sig ned på problemet med den negative vægt korteste veje og inviterede Aaron Bernstein fra Rutgers University for at slutte sig til dem.
Alle tre forskere var eksperter i kombinatoriske grafalgoritmer til andre problemer, og de ønskede at se, hvor langt disse relativt gamle tilgange kunne bringe dem. "Der er faktisk en vis frihed i at arbejde med et problem, der er ambitiøst og har været åbent i lang tid," sagde Bernstein.
Trioen startede med midlertidigt at ignorere en delmængde af mulige grafer: dem, der indeholdt negative cyklusser. Disse er stier, der går tilbage til, hvor de startede efter at have passeret gennem en række kanter, hvis vægte summer op til et negativt tal. I en graf med negative cyklusser, der kan nås fra startpunktet, bryder ideen om den korteste vej ned, da du kan gøre afstanden til enhver knude så negativ (eller så rentabel), som du vil, ved at tage gentagne omgange rundt om den negative cyklus før på vej til din destination.
Forskerne havde mistanke om, at lange negative veje hovedsagelig var ansvarlige for at gøre problemet vanskeligt. Så de begyndte at fokusere på tætte klynger af nærliggende knudepunkter, som ikke kan indeholde nogen lange negative veje: Det er fordi, hvis to punkter er forbundet med en kort positiv vej, ville tilføjelse af en lang negativ vej mellem dem skabe en negativ cyklus. Inden for en stram klynge, "det faktum, at alle er tæt sammen i en positiv forstand, giver dig faktisk også nyttig information om de negative kanter," sagde Bernstein. "Det fortæller dig, at tingene ikke må være for negative."
De fleste grafer indeholder mange sådanne tæt-strikkede klynger, der kun er svagt forbundet med hinanden. Hvis forskerne kunne udpege alle klyngerne, havde de en mistanke om, at de kunne udvikle en måde at finde de korteste veje inden for hver enkelt. Derfra har de måske lettere ved at forbinde individuelle klynger og finde de korteste veje på den originale graf. Men det ville kræve hurtigt at få øje på regionerne i enhver graf, hvor noder er tæt på hinanden - noget de ikke vidste, hvordan de skulle gøre. Nøglen viste sig at være en teknik, der opstod i en helt anden gren af grafteori.
Opskæring af grafer
I 1980'erne udviklede computerforskere en teknik kaldet nedbrydning med lav diameter for at udvælge tætte klynger i en graf og identificere kanterne, der skal slettes for at adskille disse klynger. Denne teknik giver en måde at opdele grafer i uafhængige sektioner. Det blev opfundet for at lette "distribuerede" algoritmer, hvor beregninger kører parallelt på forskellige dele af en graf, så det var mindre indlysende nyttigt for korteste vejs algoritmer, som ikke har denne egenskab.
Bernstein, Nanongkai og Wulff-Nilsen indså, at nedbrydning med lav diameter kunne hjælpe dem med at identificere klynger uden meget koncentreret negativitet. Desværre fungerer standard-dekomponeringsalgoritmer med lav diameter kun på urettede grafer - dem, hvor hver kant kan krydses i begge retninger. Problemet med den korteste vej med negativ vægt giver i mellemtiden kun mening på rettede grafer, hvor hver kant er ensrettet. (Ellers ville en enkelt urettet negativ kant skabe en negativ cyklus bestående af gentagne hop frem og tilbage over den kant.) Hvis forskerne ønskede at bruge nedbrydning med lav diameter, skulle de tilpasse det.
Det gjorde de i deres nye avis. Inspireret af tidligere arbejde hvor Bernstein og Wulff-Nilsen havde samarbejdet med Probst Gutenberg, udviklede de en fraktureringsprocedure for rettede grafer analogt med nedbrydning med lav diameter. Proceduren opskærer en vilkårlig rettet graf i en række tæt-strikkede klynger ved at bruge en tilfældig proces til at slette blot en håndfuld kanter. Bagefter er disse klynger forbundet af et sparsomt netværk, hvor alle kanter peger i samme retning. Den slags netværk kaldes en rettet acyklisk graf eller DAG.
Tænk på en DAG som en å, hvori vand kan strømme ned ad forskellige stier: Nogle stier strømmer ind fra forskellige kilder, andre vifter ud i forskellige retninger, og atter andre kan splitte fra hinanden og smelte sammen igen. Men intet flyder nogensinde tilbage, så der er ingen cyklusser; dette gør DAG'er meget nemmere at arbejde med.
Forskere har længe vidst, hvordan man hurtigt finder de korteste veje på DAG'er selv med negative vægte. Så frakturteknikken gjorde det muligt for de tre forskere at reducere enhver rettet graf til en kombination af to specielle tilfælde - DAG'er og tætte klynger - der hver især var lette at håndtere.
Den nye korteste vejs algoritme bruger gentagne gange fraktureringsproceduren til at opdele en graf i tætte klynger forbundet med en DAG. Det bryder så disse klynger fra hinanden længere og længere. I slutningen af processen er klyngerne på det inderste niveau så tæt forbundet som muligt. En del af grunden til, at algoritmen er så hurtig, er, at det ikke tager mange iterationer at nedbryde selv en meget stor graf fuldstændigt, ligesom det ikke tager lang tid at skære et stort tal ned til en rimelig størrelse, hvis du gentagne gange dividerer det halvt.
Med grafen fuldstændig opdelt på denne måde, kunne forskerne hurtigt finde de korteste veje gennem hver del af grafen. For de tætte klynger på det inderste niveau af den indlejrede grafstruktur var dette nemt - de havde praktisk talt ingen negativitet tilbage. Og forskerne vidste allerede, hvordan man fandt de korteste veje på DAG-sektionerne, der sluttede sig til dem.
Endelig tilføjer algoritmen de kanter, der er elimineret af fraktureringsprocessen, og beregner deres virkninger på de korteste veje. Forskerne beviste, at deres proces til tilfældig sletning af kanter næsten altid ville kræve blot nogle få sletninger for at eliminere "bagud" kanter - den slags, der ville gøre deres DAG til en graf med store cyklusser. Det gjorde det ekstremt usandsynligt, at nogen korteste vej ville passere gennem for mange sådanne tilbagegående segmenter, så de kunne løse dette vanskelige sidste trin ved at kombinere to lærebogsmetoder fra 1950'erne: Dijkstras algoritme og den første algoritme udviklet til grafer med negativ vægt.
"Det er en ekstremt smart sammensætning af disse ideer," sagde Khanna. Algoritmen er den første for grafer med negativ vægt, der kører i "nær-lineær" tid - hvilket betyder, at dens køretid er næsten proportional med den tid, der kræves bare for at tælle alle kanterne, den hurtigste den overhovedet kunne være.
Og hvad med graferne med negative cyklusser, som forskerne besluttede at ignorere i starten? Efter at have lagt sidste hånd på deres korteste vejs algoritme, viste de, at den også kunne fungere som en hurtig algoritme til at lokalisere negative cyklusser. Stort set ingen graf var uden for dens rækkevidde.
Parallelle stier
Bernstein præsenterede holdets resultat på 2022 Foundations of Computer Science-konferencen, hvor deres manuskript, der beskriver den nye algoritme, blev anset for at være en af to bedste artikler. Det andet papir skete også for at beskrive en ny nær-lineær-tidsalgoritme til løsning af et langvarigt problem i grafteori.
Denne algoritme, udviklet af Probst Gutenberg og fem andre forskere, adresserede et mere generelt problem kaldet minimumsomkostningsflow, hvor målet er at optimere transport gennem mange veje parallelt, og hver kant har en maksimal kapacitet såvel som en tilhørende omkostning. . Korteste veje-problemer er et særligt tilfælde af minimum-omkostningsflow, så den nye minimum-cost-flow-algoritme kunne også bruges til at løse problemet med den negative vægt korteste veje i nær-lineær tid, dog med en radikalt anderledes tilgang.
Holdet, der arbejder med minimalt omkostningsflow, udviklede deres generelle hurtige algoritme ved hjælp af en indviklet syntese af kombinatoriske og kontinuerlige optimeringsteknikker, der gør det uhåndterligt i praksis, i det mindste i øjeblikket. Den kombinatoriske algoritme af Bernstein og hans kolleger, selvom den er begrænset til et mere specifikt problem, opnår sin næsten lineære kørselstid uden at ofre enkelheden.
"Det er det, der er så forbløffende ved dette papir," sagde Probst Gutenberg. "Du kan forklare det til en bachelorstuderende, og du kan også implementere det på din computer."
Som et resultat heraf har denne nye algoritme genoplivet interessen for kombinatoriske tilgange til andre problemer inden for grafteori. Det er stadig uvist, hvilke problemer der kan løses hurtigt ved hjælp af rent kombinatoriske algoritmer, og som virkelig kræver de kontinuerlige teknikker, der er udviklet i de seneste 20 år.
"Dette er et filosofisk spørgsmål, som jeg prøver at forstå," sagde Nanongkai. "Dette problem med den korteste vej giver håb."
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 år
- 2021
- 2022
- a
- Om
- Ifølge
- Konto
- opnået
- tværs
- faktisk
- acykliske
- tilpasse
- Tilføjer
- Efter
- mod
- algoritme
- algoritmer
- Alle
- allerede
- altid
- ambitiøst
- Ancient
- ,
- En anden
- fra hinanden
- tilgang
- tilgange
- omkring
- forbundet
- tilbage
- Balance
- baseret
- fordi
- bliver
- før
- begyndte
- Tro
- Bernstein
- BEDSTE
- mellem
- Beyond
- Big
- låne
- Branch
- Pause
- pauser
- Broken
- beregner
- kaldet
- Kapacitet
- tilfælde
- tilfælde
- vis
- CIS
- Luk
- nøje
- Cluster
- samarbejdet
- kolleger
- kombination
- kombinerer
- Kom
- beregninger
- computer
- Datalogi
- koncentreret
- Konference
- tilsluttet
- Tilslutning
- Overvej
- Bestående
- kontinuerlig
- Koste
- kunne
- skabe
- Nuværende
- For øjeblikket
- Klip
- cykler
- DAG
- årtier
- besluttede
- afgørelser
- levering
- beskrive
- destination
- bestemmes
- udvikle
- udviklet
- DID
- forskelle
- forskellige
- svært
- direkte
- retning
- opdaget
- afstand
- Er ikke
- Dont
- ned
- driver
- Hollandsk
- hver
- tjene
- lettere
- nemmeste
- Edge
- effekter
- eliminere
- elimineret
- aktiveret
- helt
- væsentlige
- skøn
- skøn
- Endog
- NOGENSINDE
- alle
- eksisterende
- eksisterer
- eksperter
- Forklar
- Udforskning
- ekstremt
- lette
- ventilator
- FAST
- hurtigste
- Federal
- få
- endelige
- Endelig
- Finde
- finde
- fund
- Fornavn
- første gang
- flow
- strømme
- Fokus
- fundet
- Fonde
- Frihed
- fra
- fuldt ud
- yderligere
- GAS
- Generelt
- generelle formål
- Tyskland
- få
- given
- giver
- Go
- mål
- graf
- grafer
- Greedy
- garanteret
- Gutenberg
- Halvdelen
- håndfuld
- håndtere
- skete
- Overskrift
- hjælpe
- højere
- håber
- Hvordan
- How To
- Men
- HTML
- HTTPS
- ideer
- identificere
- gennemføre
- in
- Indkomst
- uafhængig
- individuel
- oplysninger
- inspirerede
- instans
- Institut
- interesse
- Opfundet
- involvere
- IT
- iterationer
- deltage
- sammenføjning
- Nøgle
- Venlig
- Kend
- kendt
- stor
- større
- Niveau
- Livet
- Limited
- grænser
- links
- lokale
- Lang
- lang tid
- mangeårige
- længere
- Se
- lavet
- lave
- maerker
- Making
- måde
- mange
- kort
- Match
- matematiske
- max
- maksimal
- midler
- I mellemtiden
- Flet
- metoder
- måske
- Moderne
- penge
- mere
- bevæger sig
- flytning
- næsten
- negativ
- naboer
- Nets
- netværk
- Ny
- næste
- node
- noder
- Begreb
- nummer
- numre
- offset
- ONE
- åbent
- Produktion
- optimering
- Optimer
- original
- stammer
- Andet
- Andre
- Ellers
- pakker
- parring
- Papir
- papirer
- Parallel
- del
- dele
- Passing
- forbi
- sti
- Pennsylvania
- pick
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- punkter
- positiv
- muligheder
- mulig
- praktisk
- praksis
- forelagt
- Problem
- problemer
- behandle
- Profit
- rentabel
- Progress
- projekt
- ejendom
- bevist
- giver
- rent
- Sætte
- Quantamagazin
- spørgsmål
- hurtigt
- radikalt
- tilfældig
- hurtigt
- nå
- ægte
- gik op for
- grund
- rimelige
- for nylig
- reducere
- afspejler
- regioner
- relativt
- forblevet
- resterne
- gentaget
- GENTAGNE GANGE
- repræsentere
- repræsenteret
- repræsenterer
- kræver
- påkrævet
- forskning
- forskere
- ansvarlige
- begrænset
- resultere
- resulterer
- Beløn
- vej
- R
- Kør
- kører
- Rutgers University
- at ofre
- Said
- samme
- Videnskab
- Videnskabsmand
- forskere
- søgning
- sektioner
- segment
- segmenter
- forstand
- Series
- Slog sig ned
- flere
- Kort
- lignende
- Simpelt
- enkelhed
- siden
- enkelt
- Størrelse
- lille
- So
- SOLVE
- Løsning
- nogle
- Nogen
- noget
- et eller andet sted
- sofistikeret
- Kilde
- Kilder
- særligt
- specifikke
- hastighed
- STAVE
- delt
- standard
- starte
- påbegyndt
- Starter
- Trin
- Stadig
- Story
- Strategi
- strøm
- gade
- struktur
- studerende
- sådan
- sommer
- Schweizisk
- Tag
- tager
- tager
- hold
- teknikker
- Teknologier
- fortæller
- lærebog
- Grafen
- The Source
- deres
- ting
- tre
- Gennem
- tid
- til
- sammen
- også
- emne
- rører
- transportere
- Traveling
- problemer
- sand
- TUR
- Drejede
- underliggende
- forstå
- universitet
- opdatering
- brug
- ferie
- næsten
- ønskede
- Vand
- WebP
- vægt
- Hvad
- hvorvidt
- som
- WHO
- inden for
- uden
- Arbejde
- arbejder
- virker
- ville
- år
- Du
- Din
- zephyrnet
- Zürich