Introduzione
Negli algoritmi, come nella vita, la negatività può essere un freno.
Considera il problema di trovare il percorso più breve tra due punti su un grafico: una rete di nodi collegati da collegamenti o bordi. Spesso questi bordi non sono intercambiabili: un grafico potrebbe rappresentare una mappa stradale in cui alcune strade sono più lente di altre o hanno pedaggi più elevati. Gli informatici tengono conto di queste differenze associando ogni spigolo a un "peso" che quantifica il costo dello spostamento attraverso quel segmento, indipendentemente dal fatto che quel costo rappresenti tempo, denaro o qualcos'altro. Sin dagli anni '1950, hanno saputo trovare i percorsi più brevi essenzialmente il più velocemente teoricamente possibile, assumendo che tutti i pesi siano numeri positivi.
Ma su alcuni grafici i pesi possono essere negativi: viaggiare lungo un segmento può compensare il costo dell'attraversamento di un altro. Si consideri, ad esempio, un corriere che deve bilanciare il costo del gas e dei pedaggi (rappresentati da pesi positivi) con i ricavi derivanti dal trasporto di pacchi (rappresentati da pesi negativi). In tali casi, l'algoritmo del percorso più breve noto più veloce non funziona. Per decenni, gli algoritmi veloci per trovare percorsi minimi su grafici di peso negativo sono rimasti inafferrabili.
Ora un trio di scienziati informatici ha risolto questo annoso problema. Il loro nuovo algoritmo, che trova i percorsi più brevi attraverso un grafico da un dato nodo "sorgente" a ogni altro nodo, corrisponde quasi alla velocità che gli algoritmi di peso positivo hanno raggiunto tanto tempo fa.
Inoltre, il nuovo approccio utilizza tecniche matematiche vecchie di decenni, evitando metodi più sofisticati che hanno dominato la moderna ricerca sulla teoria dei grafi.
"Non potevo credere che esistesse un algoritmo così semplice", ha detto Massimiliano Probst Gutenberg, informatico presso il Politecnico federale di Zurigo. “È tutto lì da 40 anni. Ci voleva solo qualcuno che fosse davvero intelligente e determinato per far funzionare tutto.
I limiti dell'avidità
La storia inizia nel 1956, quando l'informatico olandese Edsger Dijkstra sviluppò un veloce algoritmo per trovare i cammini minimi su un grafico con solo pesi positivi. Per capirlo, immagina di partire dalla fonte ed esplorare il grafico un nodo alla volta, annotando man mano i pesi dei bordi appena scoperti. Ogni volta che visiti un nodo, fai stime preliminari dei percorsi più brevi dalla sorgente a ciascuno dei vicini del nuovo nodo, aggiornando eventuali stime esistenti se hai trovato un nuovo percorso più breve. Per decidere quale nodo inesplorato visitare successivamente, usa quella che viene chiamata una strategia avida: vai a quello che è più vicino alla fonte in base alla tua stima attuale.
Con pesi positivi, il percorso che l'algoritmo di Dijkstra compie per visitare ogni nodo per la prima volta è davvero il più breve. È più facile vedere che questo è vero per il primo passo. Immagina due nodi A e B collegati da un bordo con peso 2. Se A è il nodo sorgente e ogni altro bordo che lo tocca ha un peso maggiore, allora il percorso diretto da A a B deve essere il percorso più breve possibile che collega questi due punti , poiché il primo segmento di qualsiasi altro percorso sarebbe già più lungo. Un ragionamento simile funziona ad ogni passaggio. L'algoritmo non deve mai guardare indietro, quindi è garantito che finisca dopo aver eseguito il grafico una volta: questo è ciò che lo rende così veloce.
Ma i pesi negativi creano problemi per la strategia avida di Dijkstra. Considera di nuovo il nostro corriere. Un percorso diretto da A a B che genera un piccolo profitto può guadagnare meno denaro di un percorso tortuoso che ha un grande guadagno da qualche parte. "Non puoi prendere decisioni solo sulla base delle informazioni locali", ha detto Sanjeev Khanna, un informatico dell'Università della Pennsylvania. "Potresti dover fare diverse mosse apparentemente non ottimali per ottenere finalmente una vera ricompensa."
Per decenni, gli informatici che lavorano su grafici di peso negativo hanno cercato di abbinare la velocità dell'algoritmo di Dijkstra con algoritmi "combinatori" simili. Questi comportano operazioni discrete - come il conteggio delle possibilità, la modifica dei pesi e l'eliminazione selettiva dei bordi - che riflettono la struttura discreta del grafico sottostante. Tuttavia, il progresso è rallentato negli anni '1990. Più recentemente, i ricercatori hanno utilizzato algoritmi di "ottimizzazione continua", che prendono in prestito trucchi dal calcolo. Sfortunatamente, le accelerazioni risultanti sono state limitate e spesso sono andate a scapito della semplicità.
Rompere il ciclo
Nell'estate del 2021, due scienziati informatici che erano diventati colleghi all'Università di Copenaghen... Danupon Nanongkai ed Christian Wulff-Nilsen — stavano cercando un argomento per un progetto di ricerca comune. "Christian ha detto: 'Oh, a proposito, ero in vacanza, e per questo stavo cercando di pensare a qualcosa di molto ambizioso'", ha ricordato Nanongkai, che ora è al Max Planck Institute for Informatics di Saarbrucken, in Germania. Hanno optato per il problema dei cammini minimi di peso negativo e hanno invitato Aaron Bernstein della Rutgers University per unirsi a loro.
Tutti e tre i ricercatori erano esperti in algoritmi di grafi combinatori per altri problemi e volevano vedere fino a che punto questi approcci relativamente antichi potevano portarli. "In realtà c'è una certa libertà nel lavorare su un problema che è ambizioso ed è stato aperto per molto tempo", ha detto Bernstein.
Il trio ha iniziato ignorando temporaneamente un sottoinsieme di possibili grafici: quelli contenenti cicli negativi. Questi sono percorsi che tornano al punto di partenza dopo aver attraversato una serie di spigoli i cui pesi sommati danno un numero negativo. In un grafico con cicli negativi raggiungibili dal punto di partenza, la nozione di percorso minimo viene meno, poiché è possibile rendere la distanza da qualsiasi nodo negativa (o redditizia) a piacere, facendo ripetuti giri attorno al ciclo negativo prima partendo per la tua destinazione.
I ricercatori sospettavano che i lunghi percorsi negativi fossero i principali responsabili della difficoltà del problema. Così hanno iniziato a concentrarsi su gruppi ristretti di nodi vicini, che non possono contenere lunghi percorsi negativi: questo perché se due punti sono collegati da un breve percorso positivo, l'aggiunta di un lungo percorso negativo tra di loro creerebbe un ciclo negativo. All'interno di un gruppo ristretto, "il fatto che tutti siano vicini in senso positivo in realtà ti dà informazioni utili anche sui bordi negativi", ha detto Bernstein. "Ti dice che le cose non possono essere troppo negative."
La maggior parte dei grafici contiene molti cluster così uniti che sono solo debolmente collegati tra loro. Se i ricercatori fossero riusciti a individuare tutti i cluster, sospettavano di poter sviluppare un modo per trovare rapidamente i percorsi più brevi all'interno di ciascuno di essi. Da lì, potrebbero avere un tempo più facile per collegare i singoli cluster e trovare i percorsi più brevi sul grafico originale. Ma ciò richiederebbe di individuare rapidamente le regioni di qualsiasi grafico in cui i nodi sono vicini tra loro, cosa che non sapevano come fare. La chiave si è rivelata essere una tecnica che ha avuto origine in un ramo completamente diverso della teoria dei grafi.
Taglio di grafici
Negli anni '1980, gli scienziati informatici hanno sviluppato una tecnica chiamata decomposizione a basso diametro per individuare cluster stretti in un grafico e identificare i bordi da eliminare per separare tali cluster. Questa tecnica fornisce un modo per dividere i grafici in sezioni indipendenti. È stato inventato per facilitare algoritmi "distribuiti", in cui i calcoli vengono eseguiti in parallelo su diverse parti di un grafo, quindi era meno utile per algoritmi a cammini minimi, che non hanno questa proprietà.
Bernstein, Nanongkai e Wulff-Nilsen si sono resi conto che la decomposizione a basso diametro poteva aiutarli a identificare gli ammassi senza molta negatività concentrata. Sfortunatamente, gli algoritmi di decomposizione standard a basso diametro funzionano solo su grafici non orientati, quelli in cui ogni spigolo può essere attraversato in entrambe le direzioni. Il problema dei cammini minimi di peso negativo, nel frattempo, ha senso solo su grafici orientati, in cui ogni spigolo è una strada a senso unico. (Altrimenti, un singolo bordo negativo non orientato creerebbe un ciclo negativo costituito da salti ripetuti avanti e indietro attraverso quel bordo.) Se i ricercatori volessero utilizzare la decomposizione a basso diametro, dovrebbero adattarla.
Questo è quello che hanno fatto nel loro nuovo giornale. Ispirato da lavoro passato in cui Bernstein e Wulff-Nilsen avevano collaborato con Probst Gutenberg, svilupparono una procedura di fratturazione per grafi diretti analoga alla decomposizione a basso diametro. La procedura suddivide un grafo diretto arbitrario in una serie di cluster compatti utilizzando un processo casuale per eliminare solo una manciata di spigoli. Successivamente, questi cluster sono collegati da una rete più rada in cui tutti i bordi puntano nella stessa direzione. Questo tipo di rete è chiamato grafo aciclico diretto, o DAG.
Pensa a un DAG come a un ruscello in cui l'acqua può scorrere lungo percorsi diversi: alcuni percorsi confluiscono da fonti diverse, altri si aprono a ventaglio in direzioni diverse e altri ancora possono dividersi e fondersi di nuovo insieme. Ma nulla scorre mai all'indietro, quindi non ci sono cicli; questo rende molto più facile lavorare con i DAG.
I ricercatori sanno da tempo come trovare rapidamente i percorsi più brevi sui DAG anche con pesi negativi. Quindi la tecnica di fratturazione ha permesso ai tre ricercatori di ridurre qualsiasi grafo orientato a una combinazione di due casi speciali - DAG e cluster ristretti - ognuno dei quali era facile da gestire.
Il nuovo algoritmo dei cammini più brevi utilizza ripetutamente la procedura di fratturazione per suddividere un grafico in cluster compatti collegati da un DAG. Quindi rompe quei grappoli sempre di più. Alla fine del processo, i cluster al livello più interno sono collegati il più strettamente possibile. Parte del motivo per cui l'algoritmo è così veloce è che non ci vogliono molte iterazioni per scomporre completamente anche un grafico molto grande, proprio come non ci vuole molto per ridurre un numero grande a una dimensione ragionevole se si divide ripetutamente a metà.
Con il grafico completamente scomposto in questo modo, i ricercatori sono riusciti a trovare rapidamente i percorsi più brevi attraverso ogni parte del grafico. Per i cluster ristretti al livello più interno della struttura del grafo nidificato, questo è stato facile: praticamente non avevano più negatività. E i ricercatori sapevano già come trovare i percorsi più brevi nelle sezioni DAG che li univano.
Infine, l'algoritmo somma gli spigoli eliminati dal processo di fratturazione e calcola i loro effetti sui percorsi più brevi. I ricercatori hanno dimostrato che il loro processo per l'eliminazione casuale dei bordi richiederebbe quasi sempre solo poche cancellazioni per eliminare i bordi "all'indietro", il tipo che trasformerebbe il loro DAG in un grafico con grandi cicli. Ciò rendeva estremamente improbabile che qualsiasi percorso più breve passasse attraverso troppi di questi segmenti all'indietro, quindi hanno potuto risolvere questo difficile passaggio finale combinando due metodi da manuale degli anni '1950: l'algoritmo di Dijkstra e il primo algoritmo sviluppato per grafici di peso negativo.
"È una composizione estremamente intelligente di queste idee", ha detto Khanna. L'algoritmo è il primo per i grafici di peso negativo che viene eseguito in un tempo "quasi lineare", il che significa che il suo tempo di esecuzione è quasi proporzionale al tempo necessario solo per contare tutti i bordi, il più veloce possibile.
E che dire dei grafici con cicli negativi, che i ricercatori hanno deciso di ignorare all'inizio? Dopo aver apportato gli ultimi ritocchi al loro algoritmo dei cammini minimi, hanno dimostrato che potrebbe funzionare anche come algoritmo veloce per individuare i cicli negativi. Praticamente nessun grafico era fuori dalla sua portata.
Percorsi paralleli
Bernstein ha presentato il risultato del team alla conferenza Foundations of Computer Science del 2022, dove il loro manoscritto che descrive il nuovo algoritmo è stato considerato uno dei due migliori documenti. Il altra carta è capitato anche di descrivere un nuovo algoritmo in tempo quasi lineare per risolvere un problema di vecchia data nella teoria dei grafi.
Quell'algoritmo, sviluppato da Probst Gutenberg e altri cinque ricercatori, ha affrontato un problema più generale chiamato flusso a costo minimo, in cui l'obiettivo è ottimizzare il trasporto attraverso molti percorsi in parallelo e ogni bordo ha una capacità massima e un costo associato . I problemi dei cammini minimi sono un caso speciale di flusso a costo minimo, quindi il nuovo algoritmo di flusso a costo minimo potrebbe essere utilizzato anche per risolvere il problema dei cammini minimi a peso negativo in un tempo quasi lineare, sebbene con un approccio radicalmente diverso.
Il team che lavora sul flusso a costo minimo ha sviluppato il suo algoritmo veloce generico utilizzando un'intricata sintesi di tecniche di ottimizzazione combinatoria e continua che lo rende ingombrante nella pratica, almeno attualmente. L'algoritmo combinatorio di Bernstein e dei suoi colleghi, sebbene limitato a un problema più specifico, raggiunge il suo tempo di esecuzione quasi lineare senza sacrificare la semplicità.
"Questo è ciò che è così sorprendente in questo documento", ha detto Probst Gutenberg. "Puoi spiegarlo a uno studente universitario e puoi anche implementarlo sul tuo computer."
Di conseguenza, questo nuovo algoritmo ha ravvivato l'interesse per gli approcci combinatori ad altri problemi della teoria dei grafi. Resta da vedere quali problemi possono essere risolti rapidamente utilizzando algoritmi puramente combinatori e quali richiedono davvero le tecniche continue sviluppate negli ultimi 20 anni.
"Questa è una domanda filosofica che sto cercando di capire", ha detto Nanongkai. "Questo problema del percorso più breve dà qualche speranza."
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 anni
- 2021
- 2022
- a
- Chi siamo
- Secondo
- Il mio account
- raggiunto
- operanti in
- effettivamente
- aciclico
- adattare
- Aggiunge
- Dopo shavasana, sedersi in silenzio; saluti;
- contro
- algoritmo
- Algoritmi
- Tutti
- già
- sempre
- ambizioso
- Antico
- ed
- Un altro
- a parte
- approccio
- approcci
- in giro
- associato
- precedente
- Equilibrio
- basato
- perché
- diventare
- prima
- ha iniziato
- CREDIAMO
- Bernstein
- MIGLIORE
- fra
- Al di là di
- Big
- prendere in prestito
- Branch di società
- Rompere
- pause
- Rotto
- calcola
- detto
- Ultra-Grande
- Custodie
- casi
- certo
- CIS
- Chiudi
- strettamente
- Cluster
- collaborato
- colleghi
- combinazione
- combinando
- Venire
- calcoli
- computer
- Informatica
- concentrato
- Convegno
- collegato
- Collegamento
- Prendere in considerazione
- Consistente
- continuo
- Costo
- potuto
- creare
- Corrente
- Attualmente
- taglio
- cicli
- GIORNO
- decenni
- deciso
- decisioni
- consegna
- descrivere
- destinazione
- determinato
- sviluppare
- sviluppato
- DID
- differenze
- diverso
- difficile
- dirette
- direzione
- scoperto
- distanza
- non
- Dont
- giù
- autista
- Olandese
- ogni
- guadagnare
- più facile
- più semplice
- bordo
- effetti
- eliminato
- eliminato
- abilitato
- interamente
- essenzialmente
- stima
- stime
- Anche
- EVER
- tutti
- esistente
- esiste
- esperti
- Spiegare
- Esplorare
- estremamente
- facilitare
- fan
- FAST
- più veloce
- Federale
- pochi
- finale
- Infine
- Trovare
- ricerca
- trova
- Nome
- prima volta
- flusso
- flussi
- Focus
- essere trovato
- Fondazioni
- La libertà
- da
- completamente
- ulteriormente
- GAS
- Generale
- scopo generale
- Germania
- ottenere
- dato
- dà
- Go
- scopo
- grafico
- grafici
- Avido
- garantito
- Gutenberg
- Metà
- manciata
- maniglia
- successo
- Titolo
- Aiuto
- superiore
- speranza
- Come
- Tutorial
- Tuttavia
- HTML
- HTTPS
- idee
- identificare
- realizzare
- in
- Reddito
- studente indipendente
- individuale
- informazioni
- fonte di ispirazione
- esempio
- Istituto
- interesse
- Inventato
- coinvolgere
- IT
- iterazioni
- join
- accoppiamento
- Le
- Genere
- Sapere
- conosciuto
- grandi
- superiore, se assunto singolarmente.
- Livello
- Vita
- Limitato
- limiti
- Collegamento
- locale
- Lunghi
- a lungo
- Di vecchia data
- più a lungo
- Guarda
- fatto
- make
- FA
- Fare
- modo
- molti
- carta geografica
- partita
- matematico
- max
- massimo
- si intende
- Nel frattempo
- Unire
- metodi
- forza
- moderno
- soldi
- Scopri di più
- si muove
- in movimento
- quasi
- negativo.
- vicinato
- Nets
- Rete
- New
- GENERAZIONE
- nodo
- nodi
- Nozione
- numero
- numeri
- offset
- ONE
- aprire
- Operazioni
- ottimizzazione
- OTTIMIZZA
- i
- originato
- Altro
- Altri
- altrimenti
- Packages
- appaiamento
- Carta
- documenti
- Parallel
- parte
- Ricambi
- Di passaggio
- passato
- sentiero
- Pennsylvania
- scegliere
- Platone
- Platone Data Intelligence
- PlatoneDati
- punto
- punti
- positivo
- possibilità
- possibile
- in pratica
- pratica
- presentata
- Problema
- problemi
- processi
- Profitto
- redditizio
- Progressi
- progetto
- proprietà
- dimostrato
- fornisce
- puramente
- Mettendo
- Quantamagazine
- domanda
- rapidamente
- radicalmente
- casuale
- rapidamente
- raggiungere
- di rose
- realizzato
- ragione
- ragionevole
- recentemente
- ridurre
- riflettere
- regioni
- relativamente
- è rimasta
- resti
- ripetuto
- RIPETUTAMENTE
- rappresentare
- rappresentato
- rappresenta
- richiedere
- necessario
- riparazioni
- ricercatori
- responsabile
- limitato
- colpevole
- risultante
- Premiare
- strada
- strada
- Correre
- running
- Rutgers University
- sacrificando
- Suddetto
- stesso
- Scienze
- Scienziato
- scienziati
- ricerca
- sezioni
- segmento
- segmenti
- senso
- Serie
- Stabilizzato
- alcuni
- Corti
- simile
- Un'espansione
- semplicità
- da
- singolo
- Taglia
- piccole
- So
- RISOLVERE
- Soluzione
- alcuni
- Qualcuno
- qualcosa
- da qualche parte
- sofisticato
- Fonte
- fonti
- la nostra speciale
- specifico
- velocità
- SILLABARE
- dividere
- Standard
- inizia a
- iniziato
- Di partenza
- step
- Ancora
- Storia
- Strategia
- ruscello
- strada
- La struttura
- studente
- tale
- estate
- svizzero
- Fai
- prende
- presa
- team
- tecniche
- Tecnologia
- dice
- manuale
- I
- Il grafo
- L’ORIGINE
- loro
- cose
- tre
- Attraverso
- tempo
- a
- insieme
- pure
- argomento
- toccante
- trasporto
- Di viaggio
- guaio
- vero
- TURNO
- Turned
- sottostante
- capire
- Università
- aggiornamento
- uso
- vacanza
- potenzialmente
- ricercato
- Water
- WebP
- peso
- Che
- se
- quale
- OMS
- entro
- senza
- Lavora
- lavoro
- lavori
- sarebbe
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro
- Zurigo