Introduksjon
I algoritmer, som i livet, kan negativitet være et drag.
Tenk på problemet med å finne den korteste veien mellom to punkter på en graf - et nettverk av noder forbundet med lenker eller kanter. Ofte er disse kantene ikke utskiftbare: En graf kan representere et veikart der noen veier er tregere enn andre eller har høyere bompenger. Informatikere står for disse forskjellene ved å pare hver kant med en "vekt" som kvantifiserer kostnadene ved å flytte på tvers av det segmentet - enten den kostnaden representerer tid, penger eller noe annet. Siden 1950-tallet har de visst hvordan man finner de korteste veiene i hovedsak så raskt som teoretisk mulig, forutsatt at alle vekter er positive tall.
Men på noen grafer kan vekter være negative - å reise langs ett segment kan kompensere for kostnadene ved å krysse et annet. Tenk for eksempel på en leveringssjåfør som må balansere kostnadene for gass og bompenger (representert ved positive vekter) mot inntekter fra transport av pakker (representert ved negative vekter). I slike tilfeller fungerer ikke den raskeste kjente korteste vei-algoritmen. I flere tiår har raske algoritmer for å finne korteste veier på grafer med negativ vekt forblitt unnvikende.
Nå har en trio av informatikere løst dette langvarige problemet. Deres nye algoritme, som finner de korteste veiene gjennom en graf fra en gitt "kilde"-node til annenhver node, samsvarer nesten med hastigheten som algoritmer med positiv vekt oppnådde for så lenge siden.
Dessuten bruker den nye tilnærmingen tiår gamle matematiske teknikker, og unngår mer sofistikerte metoder som har dominert moderne grafteoretisk forskning.
"Jeg kunne bare ikke tro at en så enkel algoritme eksisterer," sa Maximilian Probst Gutenberg, en informatiker ved Swiss Federal Institute of Technology Zürich. – Alt har vært der i 40 år. Det tok bare noen til å være veldig smart og bestemt for å få det hele til å fungere.»
Grådighetens grenser
Historien begynner i 1956, da den nederlandske informatikeren Edsger Dijkstra utviklet en rask algoritme for å finne korteste veier på en graf med kun positive vekter. For å forstå det, forestill deg å starte fra kilden og utforske grafen én node om gangen, og notere ned vekten av nyoppdagede kanter mens du går. Hver gang du besøker en node, gjør foreløpige estimater av de korteste veiene fra kilden til hver av den nye nodens naboer, og oppdater eventuelle eksisterende estimater hvis du har funnet en ny, kortere vei. For å bestemme hvilken uutforsket node du skal besøke neste gang, bruk det som kalles en grådig strategi: Gå til den som er nærmest kilden i henhold til ditt nåværende anslag.
Med positive vekter er veien som Dijkstras algoritme tar for å besøke hver node for første gang, virkelig den korteste. Det er lettest å se at dette er sant for det aller første trinnet. Se for deg to noder A og B forbundet med en kant med vekt 2. Hvis A er kildenoden, og annenhver kant som berører den har en større vekt, må den direkte veien fra A til B være den korteste mulige banen som forbinder disse to punktene , siden det første segmentet av en hvilken som helst annen bane allerede ville vært lengre. Lignende resonnement fungerer på hvert trinn. Algoritmen trenger aldri å se tilbake, så den blir garantert ferdig etter å ha kjørt gjennom grafen én gang – det er det som gjør den så rask.
Men negative vekter gir problemer for Dijkstras grådige strategi. Vurder igjen vår leveringssjåfør. En direkte rute fra A til B som gir en liten fortjeneste, kan tjene mindre penger enn en rund vei som har en stor gevinst et sted. "Du kan ikke ta avgjørelser bare basert på lokal informasjon," sa Sanjeev Khanna, en informatiker ved University of Pennsylvania. "Du må kanskje gjøre flere tilsynelatende suboptimale grep for å endelig få en ekte belønning."
I flere tiår prøvde informatikere som jobbet med grafer med negativ vekt å matche hastigheten til Dijkstras algoritme med lignende "kombinatoriske" algoritmer. Disse involverer diskrete operasjoner - som tellemuligheter, endring av vekter og selektiv sletting av kanter - som gjenspeiler den diskrete strukturen til den underliggende grafen. Fremgangen avtok imidlertid på 1990-tallet. Nylig har forskere brukt "kontinuerlig optimalisering" algoritmer, som låner triks fra kalkulus. Dessverre har de resulterende hastighetsøkningene vært begrenset, og har ofte kommet på bekostning av enkelhet.
Bryt syklusen
Sommeren 2021, to informatikere som hadde blitt kolleger ved Københavns Universitet — Danupon Nanongkai og Christian Wulff-Nilsen — søkte etter et emne for et felles forskningsprosjekt. "Christian sa, 'Åh, forresten, jeg var på ferie, og på grunn av det prøvde jeg å tenke på noe veldig ambisiøst'," minnes Nanongkai, som nå er ved Max Planck Institute for Informatics i Saarbrücken, Tyskland. De slo seg på problemet med den negative vekten med korteste veier og inviterte Aaron Bernstein fra Rutgers University for å bli med dem.
Alle tre forskerne var eksperter på kombinatoriske grafalgoritmer for andre problemer, og de ønsket å se hvor langt disse relativt eldgamle tilnærmingene kunne bringe dem. "Det er faktisk en viss frihet i å jobbe med et problem som er ambisiøst og har vært åpent i lang tid," sa Bernstein.
Trioen startet med å midlertidig ignorere et undersett av mulige grafer: de som inneholder negative sykluser. Dette er stier som går tilbake til der de startet etter å ha passert gjennom en rekke kanter hvis vekt summeres til et negativt tall. I en graf med negative sykluser som kan nås fra startpunktet, brytes forestillingen om en korteste vei sammen, siden du kan gjøre avstanden til en hvilken som helst node så negativ (eller så lønnsom) som du vil, ved å ta gjentatte runder rundt den negative syklusen før på vei til målet ditt.
Forskerne mistenkte at lange negative veier hovedsakelig var ansvarlige for å gjøre problemet vanskelig. Så de begynte å fokusere på tette klynger av nærliggende noder, som ikke kan inneholde noen lange negative baner: Det er fordi hvis to punkter er forbundet med en kort positiv bane, vil det å legge til en lang negativ bane mellom dem skape en negativ syklus. Innenfor en tett klynge, "det faktum at alle er tett sammen i positiv forstand gir deg faktisk nyttig informasjon om de negative kantene også," sa Bernstein. "Det forteller deg at ting ikke kan være for negativt."
De fleste grafer inneholder mange slike tettsveisede klynger som bare er svakt knyttet til hverandre. Hvis forskerne kunne finne alle klyngene, mistenkte de at de kunne utvikle en måte å finne korteste veier raskt innenfor hver enkelt. Derfra kan de ha lettere for å koble sammen individuelle klynger og finne de korteste veiene på den originale grafen. Men det ville kreve å raskt oppdage områdene i enhver graf der noder er tett sammen - noe de ikke visste hvordan de skulle gjøre. Nøkkelen viste seg å være en teknikk som oppsto i en helt annen gren av grafteori.
Kutte opp grafer
På 1980-tallet utviklet informatikere en teknikk kalt nedbrytning med lav diameter for å plukke ut tette klynger i en graf og identifisere kantene som skulle slettes for å skille disse klyngene. Denne teknikken gir en måte å dele grafer inn i uavhengige seksjoner. Det ble oppfunnet for å lette "distribuerte" algoritmer, der beregninger kjører parallelt på forskjellige deler av en graf, så det var mindre åpenbart nyttig for algoritmer med korteste veier, som ikke har denne egenskapen.
Bernstein, Nanongkai og Wulff-Nilsen innså at dekomponering med lav diameter kunne hjelpe dem med å identifisere klynger uten mye konsentrert negativitet. Dessverre fungerer standard dekomponeringsalgoritmer med lav diameter bare på urettede grafer - de der hver kant kan krysses i begge retninger. Problemet med den korteste veien med negativ vekt gir i mellomtiden bare mening på rettet grafer, der hver kant er enveiskjørt. (Ellers ville en enkelt urettet negativ kant skape en negativ syklus bestående av gjentatte hopp frem og tilbake over den kanten.) Hvis forskerne ønsket å bruke nedbrytning med lav diameter, måtte de tilpasse den.
Det var det de gjorde i sin nye avis. Inspirert av tidligere arbeid der Bernstein og Wulff-Nilsen hadde samarbeidet med Probst Gutenberg, utviklet de en fraktureringsprosedyre for rettet grafer analogt med dekomponering med lav diameter. Prosedyren kutter opp en vilkårlig rettet graf til en serie tettsveisede klynger ved å bruke en tilfeldig prosess for å slette bare en håndfull kanter. Etterpå er disse klyngene forbundet med et sparsommere nettverk der alle kantene peker i samme retning. Den typen nettverk kalles en rettet asyklisk graf, eller DAG.
Tenk på en DAG som en bekk der vann kan strømme ned forskjellige stier: Noen stier strømmer inn fra forskjellige kilder, andre vifter ut i forskjellige retninger, og atter andre kan splitte seg og smelte sammen igjen. Men ingenting renner noen gang bakover, så det er ingen sykluser; dette gjør DAG-er mye enklere å jobbe med.
Forskere har lenge visst hvordan man raskt finner korteste veier på DAG-er selv med negative vekter. Så bruddteknikken gjorde det mulig for de tre forskerne å redusere enhver rettet graf til en kombinasjon av to spesielle tilfeller - DAG-er og tette klynger - som hver var enkle å håndtere.
Den nye algoritmen for korteste veier bruker gjentatte ganger fraktureringsprosedyren for å dele opp en graf i tette klynger forbundet med en DAG. Det bryter deretter disse klyngene fra hverandre lenger og lenger. På slutten av prosessen er klyngene på det innerste nivået så tett sammen som mulig. Noe av grunnen til at algoritmen er så rask er at det ikke tar mange iterasjoner å bryte ned selv en veldig stor graf, akkurat som det ikke tar lang tid å kutte et stort tall ned til en rimelig størrelse hvis du deler gjentatte ganger det i to.
Med grafen fullstendig brutt ned på denne måten, kunne forskerne raskt finne korteste veier gjennom hver del av grafen. For de tette klyngene på det innerste nivået av den nestede grafstrukturen var dette enkelt - de hadde praktisk talt ingen negativitet igjen. Og forskerne visste allerede hvordan de skulle finne korteste veier på DAG-seksjonene som sluttet seg til dem.
Til slutt legger algoritmen tilbake kantene som er eliminert av fraktureringsprosessen og beregner effektene deres på de korteste veiene. Forskerne beviste at prosessen deres for tilfeldig sletting av kanter nesten alltid ville kreve bare noen få slettinger for å eliminere "bakover" kanter - den typen som ville gjøre deres DAG til en graf med store sykluser. Det gjorde det ekstremt usannsynlig at noen korteste vei ville gå gjennom for mange slike bakoversegmenter, så de kunne løse dette vanskelige siste trinnet ved å kombinere to lærebokmetoder fra 1950-tallet: Dijkstras algoritme og den første algoritmen utviklet for grafer med negativ vekt.
"Det er en ekstremt smart sammensetning av disse ideene," sa Khanna. Algoritmen er den første for grafer med negativ vekt som kjører i "nesten lineær" tid - noe som betyr at kjøretiden er nesten proporsjonal med tiden som kreves bare for å telle alle kantene, den raskeste det kan være.
Og hva med grafene med negative sykluser, som forskerne bestemte seg for å ignorere i starten? Etter å ha lagt siste hånd på algoritmen for korteste veier, viste de at den også kunne fungere som en rask algoritme for å finne negative sykluser. Så godt som ingen graf var utenfor rekkevidden.
Parallelle stier
Bernstein presenterte teamets resultat på 2022 Foundations of Computer Science-konferansen, der manuskriptet deres som beskrev den nye algoritmen ble ansett som en av to beste artikler. De annet papir tilfeldigvis beskrev også en ny nesten-lineær-tidsalgoritme for å løse et langvarig problem innen grafteori.
Denne algoritmen, utviklet av Probst Gutenberg og fem andre forskere, adresserte et mer generelt problem kalt minimumskostnadsflyt, der målet er å optimalisere transport gjennom mange veier parallelt, og hver kant har en maksimal kapasitet i tillegg til en tilhørende kostnad. . Korteste veiproblemer er et spesialtilfelle av minimumskostnadsflyt, så den nye minimumskostnadsflyt-algoritmen kan også brukes til å løse problemet med negativ vekt med korteste veier i nesten lineær tid, om enn med en radikalt annen tilnærming.
Teamet som jobber med flyt med minimumskostnader utviklet sin generelle raske algoritme ved å bruke en intrikat syntese av kombinatoriske og kontinuerlige optimaliseringsteknikker som gjør det uhåndterlig i praksis, i det minste for øyeblikket. Den kombinatoriske algoritmen til Bernstein og hans kolleger, selv om den er begrenset til et mer spesifikt problem, oppnår sin nesten lineære kjøretid uten å ofre enkelheten.
"Dette er det som er så forbløffende med denne artikkelen," sa Probst Gutenberg. "Du kan forklare det til en bachelorstudent, og du kan også implementere det på datamaskinen din."
Som et resultat har denne nye algoritmen gjenopplivet interessen for kombinatoriske tilnærminger til andre problemer innen grafteori. Det gjenstår å se hvilke problemer som kan løses raskt ved hjelp av rene kombinatoriske algoritmer, og som virkelig krever de kontinuerlige teknikkene som er utviklet de siste 20 årene.
"Dette er et filosofisk spørsmål som jeg prøver å forstå," sa Nanongkai. "Dette problemet med korteste vei gir litt håp."
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 år
- 2021
- 2022
- a
- Om oss
- Ifølge
- Logg inn
- oppnådd
- tvers
- faktisk
- asyklisk
- tilpasse
- Legger
- Etter
- mot
- algoritme
- algoritmer
- Alle
- allerede
- alltid
- ambisiøs
- Eldgammel
- og
- En annen
- hverandre
- tilnærming
- tilnærminger
- rundt
- assosiert
- tilbake
- Balansere
- basert
- fordi
- bli
- før du
- begynte
- tro
- Bernstein
- BEST
- mellom
- Beyond
- Stor
- låne
- Branch
- Break
- pauser
- Brutt
- beregner
- som heter
- Kapasitet
- saken
- saker
- viss
- CIS
- Lukke
- tett
- Cluster
- samarbeidet
- kollegaer
- kombinasjon
- kombinere
- Kom
- beregninger
- datamaskin
- informatikk
- konsentrert
- Konferanse
- tilkoblet
- Tilkobling
- Vurder
- Består
- kontinuerlig
- Kostnad
- kunne
- skape
- Gjeldende
- I dag
- Kutt
- sykluser
- DAG
- tiår
- besluttet
- avgjørelser
- levering
- beskrive
- destinasjonen
- bestemmes
- utvikle
- utviklet
- gJORDE
- forskjeller
- forskjellig
- vanskelig
- direkte
- retning
- oppdaget
- avstand
- ikke
- ikke
- ned
- sjåfør
- Dutch
- hver enkelt
- tjene
- enklere
- enkleste
- Edge
- effekter
- eliminere
- eliminert
- aktivert
- fullstendig
- hovedsak
- anslag
- estimater
- Selv
- NOEN GANG
- alle
- eksisterende
- finnes
- eksperter
- Forklar
- Utforske
- ekstremt
- legge til rette
- vifte
- FAST
- raskeste
- Federal
- Noen få
- slutt~~POS=TRUNC
- Endelig
- Finn
- finne
- funn
- Først
- første gang
- flyten
- Flows
- Fokus
- funnet
- Foundations
- Frihet
- fra
- fullt
- videre
- GAS
- general
- generell
- Tyskland
- få
- gitt
- gir
- Go
- mål
- graf
- grafer
- Greedy
- garantert
- Gutenberg
- Halvparten
- håndfull
- håndtere
- skjedde
- Overskrift
- hjelpe
- høyere
- håp
- Hvordan
- Hvordan
- Men
- HTML
- HTTPS
- Ideer
- identifisere
- iverksette
- in
- Inntekt
- uavhengig
- individuelt
- informasjon
- inspirert
- f.eks
- Institute
- interesse
- Oppfunnet
- involvere
- IT
- gjentakelser
- bli medlem
- sammenføyning
- nøkkel
- Type
- Vet
- kjent
- stor
- større
- Nivå
- Life
- Begrenset
- grenser
- lenker
- lokal
- Lang
- lang tid
- langvarige
- lenger
- Se
- laget
- gjøre
- GJØR AT
- Making
- måte
- mange
- kart
- Match
- matematiske
- max
- maksimal
- midler
- Mellomtiden
- Flett
- metoder
- kunne
- Moderne
- penger
- mer
- trekk
- flytting
- nesten
- negativ
- naboer
- Nets
- nettverk
- Ny
- neste
- node
- noder
- Forestilling
- Antall
- tall
- offset
- ONE
- åpen
- Drift
- optimalisering
- Optimalisere
- original
- opprinnelse
- Annen
- andre
- ellers
- pakker
- sammenkobling
- Papir
- papirer
- Parallel
- del
- deler
- Passerer
- Past
- banen
- Pennsylvania
- plukke
- plato
- Platon Data Intelligence
- PlatonData
- Point
- poeng
- positiv
- muligheter
- mulig
- praktisk talt
- praksis
- presentert
- Problem
- problemer
- prosess
- Profit
- lønnsom
- Progress
- prosjekt
- eiendom
- beviste
- gir
- rent
- Sette
- Quantamagazin
- spørsmål
- raskt
- radikalt
- tilfeldig
- raskt
- å nå
- ekte
- realisert
- grunnen til
- rimelig
- nylig
- redusere
- reflektere
- regioner
- relativt
- forble
- forblir
- gjentatt
- GJENTATTE GANGER
- representere
- representert
- representerer
- krever
- påkrevd
- forskning
- forskere
- ansvarlig
- begrenset
- resultere
- resulterende
- Belønn
- vei
- Rute
- Kjør
- rennende
- Rutgers University
- ofre
- Sa
- samme
- Vitenskap
- Forsker
- forskere
- søker
- seksjoner
- segmentet
- segmenter
- forstand
- Serien
- Bosatte seg
- flere
- Kort
- lignende
- Enkelt
- enkelhet
- siden
- enkelt
- Størrelse
- liten
- So
- LØSE
- løse
- noen
- Noen
- noe
- et sted
- sofistikert
- kilde
- Kilder
- spesiell
- spesifikk
- fart
- TRYLLEFORMEL
- splittet
- Standard
- Begynn
- startet
- Start
- Trinn
- Still
- Story
- Strategi
- stream
- gate
- struktur
- Student
- slik
- sommer
- Sveitsiske
- Ta
- tar
- ta
- lag
- teknikker
- Teknologi
- forteller
- lærebok
- De
- Grafen
- Kilden
- deres
- ting
- tre
- Gjennom
- tid
- til
- sammen
- også
- Tema
- berøre
- transportere
- Traveling
- problemer
- sant
- SVING
- snudde
- underliggende
- forstå
- universitet
- oppdatering
- bruke
- ferie
- nesten
- ønsket
- Vann
- webp
- vekt
- Hva
- om
- hvilken
- HVEM
- innenfor
- uten
- Arbeid
- arbeid
- virker
- ville
- år
- Du
- Din
- zephyrnet
- Zürich