Beskrivning
I algoritmer, som i livet, kan negativitet vara ett drag.
Tänk på problemet med att hitta den kortaste vägen mellan två punkter på en graf - ett nätverk av noder sammankopplade med länkar eller kanter. Ofta är dessa kanter inte utbytbara: En graf kan representera en vägkarta där vissa vägar är långsammare än andra eller har högre vägtullar. Datavetare står för dessa skillnader genom att para ihop varje kant med en "vikt" som kvantifierar kostnaden för att flytta över det segmentet - oavsett om den kostnaden representerar tid, pengar eller något annat. Sedan 1950-talet har de vetat hur man hittar de kortaste vägarna i princip så snabbt som teoretiskt möjligt, förutsatt att alla vikter är positiva tal.
Men på vissa grafer kan vikter vara negativa - att resa längs ett segment kan kompensera kostnaden för att korsa ett annat. Tänk till exempel på en leveranschaufför som måste balansera kostnaden för gas och vägtullar (representerade av positiva vikter) mot inkomster från att transportera paket (representerade av negativa vikter). I sådana fall fungerar inte den snabbaste kända algoritmen för kortaste vägen. I decennier har snabba algoritmer för att hitta kortaste vägar på grafer med negativ vikt förblivit svårfångade.
Nu har en trio datavetare löst detta långvariga problem. Deras nya algoritm, som hittar de kortaste vägarna genom en graf från en given "källa"-nod till varannan nod, matchar nästan hastigheten som positivviktsalgoritmer uppnådde för så länge sedan.
Dessutom använder det nya tillvägagångssättet årtionden gamla matematiska tekniker och undviker mer sofistikerade metoder som har dominerat modern grafteoretisk forskning.
"Jag kunde bara inte tro att en så enkel algoritm existerar," sa Maximilian Probst Gutenberg, en datavetare vid Swiss Federal Institute of Technology Zürich. "Allt har funnits där i 40 år. Det krävdes bara någon för att vara riktigt smart och beslutsam för att få det hela att fungera.”
Girighetens gränser
Historien börjar 1956, när den holländske datavetaren Edsger Dijkstra utvecklade en snabb algoritm för att hitta de kortaste vägarna på en graf med bara positiva vikter. För att förstå det, föreställ dig att börja från källan och utforska grafen en nod i taget och anteckna vikterna av nyupptäckta kanter medan du går. Varje gång du besöker en nod, gör preliminära uppskattningar av de kortaste vägarna från källan till var och en av den nya nodens grannar, och uppdatera eventuella befintliga uppskattningar om du har hittat en ny kortare väg. För att bestämma vilken outforskad nod du ska besöka härnäst, använd vad som kallas en girig strategi: Gå till den som är närmast källan enligt din nuvarande uppskattning.
Med positiva vikter är vägen som Dijkstras algoritm tar för att besöka varje nod för första gången verkligen den kortaste. Det är lättast att se att detta är sant för det allra första steget. Föreställ dig två noder A och B förbundna med en kant med vikt 2. Om A är källnoden, och varannan kant som rör den har en större vikt, måste den direkta vägen från A till B vara den kortaste möjliga vägen som förbinder dessa två punkter , eftersom det första segmentet av någon annan väg redan skulle vara längre. Liknande resonemang fungerar vid varje steg. Algoritmen behöver aldrig se tillbaka, så den kommer garanterat att sluta efter att ha kört igenom grafen en gång – det är det som gör den så snabb.
Men negativa vikter innebär problem för Dijkstras giriga strategi. Överväg återigen vår leveransförare. En direkt rutt från A till B som ger en liten vinst kan tjäna mindre pengar än en omväg som har en stor utdelning någonstans. "Du kan inte fatta beslut bara baserat på den lokala informationen," sa Sanjeev Khanna, en datavetare vid University of Pennsylvania. "Du kan behöva göra flera till synes suboptimala drag för att äntligen få en riktig belöning."
I decennier försökte datavetare som arbetade med grafer med negativ vikt att matcha hastigheten på Dijkstras algoritm med liknande "kombinatoriska" algoritmer. Dessa involverar diskreta operationer - som att räkna möjligheter, ändra vikter och selektivt ta bort kanter - som återspeglar den underliggande grafens diskreta struktur. Framstegen avtog dock på 1990-talet. På senare tid har forskare använt "kontinuerlig optimering" algoritmer, som lånar tricks från kalkyl. Tyvärr har de resulterande snabbheterna varit begränsade och har ofta kommit på bekostnad av enkelheten.
Bryt cykeln
Sommaren 2021, två datavetare som hade blivit kollegor vid Köpenhamns universitet — Danupon Nanongkai och Christian Wulff-Nilsen — letade efter ett ämne för ett gemensamt forskningsprojekt. "Christian sa, 'Åh, förresten, jag var på semester, och på grund av det försökte jag tänka på något mycket ambitiöst'", minns Nanongkai, som nu är på Max Planck Institute for Informatics i Saarbrücken, Tyskland. De slog sig ner på problemet med negativ vikt kortaste vägarna och bjöd in Aaron Bernstein från Rutgers University att ansluta sig till dem.
Alla tre forskarna var experter på kombinatoriska grafalgoritmer för andra problem, och de ville se hur långt dessa relativt uråldriga tillvägagångssätt kunde få dem. "Det finns faktiskt en viss frihet i att arbeta med ett problem som är ambitiöst och som har varit öppet under lång tid," sa Bernstein.
Trion började med att tillfälligt ignorera en delmängd av möjliga grafer: de som innehöll negativa cykler. Dessa är banor som går tillbaka till där de började efter att ha passerat genom en serie kanter vars vikter summerar till ett negativt tal. I en graf med negativa cykler som kan nås från startpunkten bryts begreppet kortaste väg ner, eftersom du kan göra avståndet till vilken nod som helst så negativt (eller så lönsamt) som du vill, genom att ta upprepade varv runt den negativa cykeln innan på väg till din destination.
Forskarna misstänkte att långa negativa vägar främst var ansvariga för att försvåra problemet. Så de började fokusera på snäva kluster av närliggande noder, som inte kan innehålla några långa negativa banor: Det beror på att om två punkter är sammankopplade med en kort positiv väg, skulle lägga till en lång negativ väg mellan dem skapa en negativ cykel. Inom ett snävt kluster, "det faktum att alla är nära varandra i positiv bemärkelse ger dig faktiskt användbar information om de negativa kanterna också," sa Bernstein. "Det säger dig att saker inte får vara för negativa."
De flesta grafer innehåller många sådana tätt sammansvetsade kluster som endast är svagt kopplade till varandra. Om forskarna kunde peka ut alla kluster, misstänkte de att de kunde utveckla ett sätt att snabbt hitta de kortaste vägarna inom var och en. Därifrån kan de ha lättare att koppla samman enskilda kluster och hitta de kortaste vägarna på den ursprungliga grafen. Men det skulle kräva att snabbt upptäcka regionerna i alla grafer där noder ligger nära varandra - något de inte visste hur de skulle göra. Nyckeln visade sig vara en teknik som har sitt ursprung i en helt annan gren av grafteorin.
Skär upp grafer
På 1980-talet utvecklade datavetare en teknik som kallas nedbrytning med låg diameter för att plocka ut täta kluster i en graf och identifiera kanterna att ta bort för att separera dessa kluster. Denna teknik ger ett sätt att dela upp grafer i oberoende sektioner. Det uppfanns för att underlätta "distribuerade" algoritmer, där beräkningar körs parallellt på olika delar av en graf, så det var mindre uppenbart användbart för algoritmer med kortaste vägar, som inte har denna egenskap.
Bernstein, Nanongkai och Wulff-Nilsen insåg att nedbrytning med låg diameter kunde hjälpa dem att identifiera kluster utan mycket koncentrerad negativitet. Tyvärr fungerar vanliga nedbrytningsalgoritmer med låg diameter bara på oriktade grafer - de där varje kant kan korsas i båda riktningarna. Problemet med den kortaste vägen med negativ vikt är under tiden bara vettigt på riktade grafer, där varje kant är en enkelriktad gata. (Annars skulle en enda oriktad negativ kant skapa en negativ cykel bestående av upprepade hopp fram och tillbaka över den kanten.) Om forskarna ville använda nedbrytning med låg diameter, skulle de behöva anpassa det.
Det var vad de gjorde i sin nya tidning. Inspirerad av tidigare arbete där Bernstein och Wulff-Nilsen hade samarbetat med Probst Gutenberg, utvecklade de en sprickningsprocedur för riktade grafer analogt med nedbrytning med låg diameter. Proceduren skär upp en godtyckligt riktad graf till en serie tätt sammansvetsade kluster genom att använda en slumpmässig process för att ta bort bara en handfull kanter. Efteråt är dessa kluster sammankopplade med ett glesare nätverk där alla kanter pekar i samma riktning. Den typen av nätverk kallas en riktad acyklisk graf, eller DAG.
Tänk på en DAG som en bäck där vatten kan rinna längs olika vägar: Vissa stigar rinner in från olika källor, andra fläktar ut i olika riktningar, och ytterligare andra kan splittras och smälta samman igen. Men ingenting rinner någonsin bakåt, så det finns inga cykler; detta gör DAGs mycket lättare att arbeta med.
Forskare har länge vetat hur man snabbt hittar de kortaste vägarna på DAG även med negativa vikter. Så spricktekniken gjorde det möjligt för de tre forskarna att reducera vilken riktad graf som helst till en kombination av två specialfall - DAG och täta kluster - som var och en var lätt att hantera.
Den nya algoritmen för kortaste vägar använder upprepade gånger sprickningsproceduren för att dela upp en graf i tätt sammansvetsade kluster sammankopplade med en DAG. Det bryter sedan isär dessa kluster längre och längre. I slutet av processen är klustren på den innersta nivån så nära sammankopplade som möjligt. En del av anledningen till att algoritmen är så snabb är att det inte krävs många iterationer för att helt bryta ner ens en mycket stor graf, precis som det inte tar lång tid att skära ner ett stort antal till en rimlig storlek om du upprepade gånger delar det på hälften.
Med grafen helt nedbruten på detta sätt kunde forskarna snabbt hitta de kortaste vägarna genom varje del av grafen. För de täta klustren på den innersta nivån av den kapslade grafstrukturen var detta enkelt - de hade praktiskt taget ingen negativitet kvar. Och forskarna visste redan hur man hittade de kortaste vägarna på DAG-sektionerna som ansluter sig till dem.
Slutligen lägger algoritmen tillbaka de kanter som eliminerats av sprickningsprocessen och beräknar deras effekter på de kortaste vägarna. Forskarna bevisade att deras process för att slumpmässigt radera kanter nästan alltid skulle kräva bara några raderingar för att eliminera "bakåt" kanter - den typ som skulle förvandla deras DAG till en graf med stora cykler. Det gjorde det extremt osannolikt att någon kortaste väg skulle passera genom för många sådana bakåtsegment, så de kunde lösa detta knepiga sista steg genom att kombinera två läroboksmetoder från 1950-talet: Dijkstras algoritm och den första algoritmen utvecklad för grafer med negativ vikt.
"Det är en extremt smart sammansättning av dessa idéer," sa Khanna. Algoritmen är den första för grafer med negativ vikt som körs i "nästan linjär" tid - vilket innebär att dess körtid är nästan proportionell mot den tid som krävs bara för att räkna alla kanter, det snabbaste det kan vara.
Och hur är det med graferna med negativa cykler, som forskarna bestämde sig för att ignorera i början? Efter att ha lagt sista handen på sin algoritm för kortaste vägar, visade de att den också kunde fungera som en snabb algoritm för att lokalisera negativa cykler. Praktiskt taget ingen graf var utanför dess räckhåll.
Parallella vägar
Bernstein presenterade lagets resultat vid 2022 Foundations of Computer Science-konferensen, där deras manuskript som beskrev den nya algoritmen ansågs vara en av två bästa artiklar. De annat papper råkade också beskriva en ny nära-linjär-tidsalgoritm för att lösa ett långvarigt problem inom grafteorin.
Den algoritmen, utvecklad av Probst Gutenberg och fem andra forskare, åtgärdade ett mer generellt problem som kallas minimikostnadsflöde, där målet är att optimera transporter genom många vägar parallellt, och varje kant har en maximal kapacitet såväl som en tillhörande kostnad . Kortaste vägproblem är ett specialfall av minimikostnadsflöde, så den nya minimikostnadsflödesalgoritmen skulle också kunna användas för att lösa problemet med kortaste vägar med negativ vikt i nästan linjär tid, om än med ett radikalt annorlunda tillvägagångssätt.
Teamet som arbetar med lägsta kostnadsflöde utvecklade sin allmänna snabba algoritm med hjälp av en intrikat syntes av kombinatoriska och kontinuerliga optimeringstekniker som gör det svårhanterligt i praktiken, åtminstone för närvarande. Den kombinatoriska algoritmen av Bernstein och hans kollegor, även om den är begränsad till ett mer specifikt problem, uppnår sin nästan linjära körtid utan att offra enkelheten.
"Det här är vad som är så häpnadsväckande med denna tidning," sa Probst Gutenberg. "Du kan förklara det för en student på grundnivå, och du kan också implementera det på din dator."
Som ett resultat har denna nya algoritm återupplivat intresset för kombinatoriska metoder för andra problem inom grafteorin. Det återstår att se vilka problem som kan lösas snabbt med hjälp av rent kombinatoriska algoritmer, och vilka som verkligen kräver de kontinuerliga tekniker som utvecklats under de senaste 20 åren.
"Detta är en filosofisk fråga som jag försöker förstå," sa Nanongkai. "Det här problemet med kortaste vägen ger lite hopp."
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 år
- 2021
- 2022
- a
- Om oss
- Enligt
- Konto
- uppnås
- tvärs
- faktiskt
- acyklisk
- anpassa
- Lägger
- Efter
- mot
- algoritm
- algoritmer
- Alla
- redan
- alltid
- ambitiösa
- Ancient
- och
- Annan
- isär
- tillvägagångssätt
- tillvägagångssätt
- runt
- associerad
- tillbaka
- Balansera
- baserat
- därför att
- blir
- innan
- började
- tro
- Bernstein
- BÄST
- mellan
- Bortom
- Stor
- låna
- Branch
- Ha sönder
- raster
- Brutet
- beräknar
- kallas
- Kapacitet
- Vid
- fall
- vissa
- CIS
- Stänga
- nära
- kluster
- samarbetat
- kollegor
- kombination
- kombinera
- komma
- beräkningar
- dator
- Datavetenskap
- Koncentrerad
- Konferens
- anslutna
- Anslutning
- Tänk
- Bestående
- kontinuerlig
- Pris
- kunde
- skapa
- Aktuella
- För närvarande
- Klipp
- cykler
- DAG
- årtionden
- beslutade
- beslut
- leverans
- beskriva
- destination
- bestämd
- utveckla
- utvecklade
- DID
- skillnader
- olika
- svårt
- rikta
- riktning
- upptäckt
- avstånd
- inte
- inte
- ner
- chaufför
- Dutch
- varje
- tjänar
- lättare
- enklaste
- kant
- effekter
- eliminera
- utslagen
- aktiverad
- helt
- väsentligen
- uppskatta
- uppskattningar
- Även
- NÅGONSIN
- alla
- befintliga
- finns
- experter
- Förklara
- Utforska
- extremt
- främja
- fläkt
- SNABB
- snabbast
- Federal
- få
- slutlig
- Slutligen
- hitta
- finna
- fynd
- Förnamn
- första gången
- flöda
- flöden
- Fokus
- hittade
- Stiftelser
- Frihet
- från
- fullständigt
- ytterligare
- GAS
- Allmänt
- generell mening
- Tyskland
- skaffa sig
- ges
- ger
- Go
- Målet
- diagram
- grafer
- Greedy
- garanterat
- Gutenberg
- Hälften
- näve
- hantera
- hänt
- Rubrik
- hjälpa
- högre
- hoppas
- Hur ser din drömresa ut
- How To
- Men
- html
- HTTPS
- idéer
- identifiera
- genomföra
- in
- Inkomst
- oberoende
- individuellt
- informationen
- inspirerat
- exempel
- Institute
- intresse
- uppfann
- engagera
- IT
- iterationer
- delta
- sammanfogning
- Nyckel
- Snäll
- Vet
- känd
- Large
- större
- Nivå
- livet
- Begränsad
- gränser
- länkar
- lokal
- Lång
- länge sedan
- långvarig
- längre
- se
- gjord
- göra
- GÖR
- Framställning
- sätt
- många
- karta
- Match
- matematisk
- max
- maximal
- betyder
- Samtidigt
- Sammanfoga
- metoder
- kanske
- Modern Konst
- pengar
- mer
- förflyttar
- rörliga
- nästan
- negativ
- grannar
- Nets
- nät
- Nya
- Nästa
- nod
- noder
- Begrepp
- antal
- nummer
- offset
- ONE
- öppet
- Verksamhet
- optimering
- Optimera
- ursprungliga
- ursprung
- Övriga
- Övrigt
- annat
- paket
- ihopkoppling
- Papper
- papper
- Parallell
- del
- reservdelar till din klassiker
- Förbi
- Tidigare
- bana
- Pennsylvania sylvania~~POS=HEADCOMP
- plocka
- plato
- Platon Data Intelligence
- PlatonData
- Punkt
- poäng
- positiv
- Möjligheterna
- möjlig
- praktiskt taget
- praktiken
- presenteras
- Problem
- problem
- process
- Vinst
- lönsam
- Framsteg
- projektet
- egenskapen
- visat
- ger
- rent
- sätta
- Quantamagazin
- fråga
- snabbt
- radikalt
- slumpmässig
- snabbt
- nå
- verklig
- insåg
- Anledningen
- rimlig
- nyligen
- minska
- reflektera
- regioner
- relativt
- förblev
- resterna
- upprepade
- UPPREPAT
- representerar
- representerade
- representerar
- kräver
- Obligatorisk
- forskning
- forskare
- ansvarig
- begränsad
- resultera
- resulterande
- Belöna
- väg
- Rutt
- Körning
- rinnande
- Rutgers University
- offra
- Nämnda
- Samma
- Vetenskap
- Forskare
- vetenskapsmän
- söka
- sektioner
- segmentet
- segment
- känsla
- Serier
- Fast
- flera
- Kort
- liknande
- Enkelt
- enkelhet
- eftersom
- enda
- Storlek
- Small
- So
- LÖSA
- Lösa
- några
- någon
- något
- någonstans
- sofistikerade
- Källa
- Källor
- speciell
- specifik
- fart
- BOKSTAVERA
- delas
- standard
- starta
- igång
- Starta
- Steg
- Fortfarande
- Historia
- Strategi
- ström
- gata
- struktur
- student
- sådana
- sommar
- Schweiziska
- Ta
- tar
- tar
- grupp
- tekniker
- Teknologi
- berättar
- lärobok
- Smakämnen
- Grafen
- källan
- deras
- saker
- tre
- Genom
- tid
- till
- tillsammans
- alltför
- ämne
- rörande
- transport
- Traveling
- problem
- sann
- SVÄNG
- vände
- underliggande
- förstå
- universitet
- uppdatering
- användning
- semester
- praktiskt taget
- ville
- Vatten
- webp
- vikt
- Vad
- om
- som
- VEM
- inom
- utan
- Arbete
- arbetssätt
- fungerar
- skulle
- år
- Om er
- Din
- zephyrnet
- zurich