Possiamo trovare k percorsi più brevi tra tutte le coppie più velocemente che risolvere ripetutamente il problema a coppie?


9

Voglio produrre il percorso più breve ( sarebbe inferiore a 10) tra tutte le coppie in un grafico. Il grafico è (in realtà una mappa della metropolitana):kk

  • ponderato positivamente
  • undirected
  • scarso
  • con circa 100 nodi

Il mio piano attuale è applicare il percorso più breve a ciascuna coppia; Ora sto cercando un'alternativa più efficiente (possibilmente con la programmazione dinamica).k


3
Onestamente, per 100 vertici, sembra improbabile che tu abbia bisogno di qualcosa di più efficiente che risolvere ciascuno dei 45.000 problemi a coppie.
David Richerby,

Risposte:


6

Prima di tutto, una differenza cruciale nel calcolo dei percorsi più brevi è se i percorsi devono essere semplici o meno. Un percorso è chiamato semplice , se non contiene ripetutamente nodi. Un percorso con un ciclo, ad esempio, non è semplice. Nota che nella pagina di Wikipedia che hai collegato, gli articoli riguardano percorsi non necessariamente semplici. Il caso di percorsi semplici sembra essere più difficile del caso con percorsi non necessariamente semplici.k

Il problema dei percorsi semplici corti di tutte le coppiek

Questa sembra essere un'area di ricerca piuttosto giovane. Un recente articolo di Agarwal e Ramachandran può essere trovato su ArXiv [1]. La sezione precedente ti fornirà anche alcune informazioni sulla storia del problema.

Il problema dei percorsi più brevi di tutte le coppiek

Qui, in effetti, è la scelta migliore per applicare ripetutamente l'algoritmo Eppsteins [2]. L'osservazione generale secondo cui un'applicazione ripetuta di un algoritmo per la versione single-source del problema è l'approccio più rapido è stata già fatta nel 1977 da EL Lawler [3]; Eppstein fornisce l'algoritmo più veloce fino ad oggi per questo sottoproblema.

Riferimenti

[1] Agarwal, U. e Ramachandran, V. Trovare percorsi e cicli più brevi semplici. arXiv: 1512.02157 [cs.DS] https://arxiv.org/pdf/1512.02157.pdfk

[2] Eppstein, D. Trovare i k percorsi più brevi. SIAM Journal on Computing 28, 2 (1999), 652-673.

[3] Lawler, EL Commenta su un calcolo i k percorsi più brevi in ​​un grafico. Comunicazioni dell'ACM, 20 (8): 603–605, 1977.


Grazie. Dal momento che sto lavorando con la mappa della metropolitana, ho bisogno che siano un percorso semplice (non ha senso per il mio software guidare le persone ad andare avanti e indietro), quindi immagino che seguirei semplicemente l'algoritmo di Yan .
Franklin Yu,

È interessante e abbastanza sorprendente che apparentemente 10.000 casi di un problema non possano essere risolti più rapidamente della semplice risoluzione di 10.000 casi singoli, uno dopo l'altro.
gnasher729,

l'idea di percorsi con loop inclusi nei "percorsi più brevi" sembra controintuitiva e insolita perché esiste apparentemente un "percorso" equivalente con il loop rimosso, e ci si chiede anche se questi possano essere costruiti in modo efficiente dai semplici percorsi ecc ...
vzn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.