2016-06-22 40 views
5

Devo trovare un percorso minimo da un'origine e una destinazione in cui origine e destinazione sono lo stesso nodo e voglio un numero fisso minimo di nodi nel percorso. Ho pensato di implementare un algoritmo Dijkstra (in Java) con la variante che i nodi k sono inclusi nel percorso minimo. (k è un numero minimo di nodi da coprire). È corretto? Se sì, qualche suggerimento per l'implementazione? Grazie in anticipovariante dijkstra con nodi k?

+0

Un problema è che il nodo iniziale è contrassegnato quando si avvia. Devi smarcarlo – Blobonat

+0

sì! Qualche idea sull'implementazione per i nodi k? – Denise

+0

Questo è almeno difficile come risolvere il problema Hamiltonian Cycle NP-hard, dal momento che è possibile risolvere il problema semplicemente selezionando qualsiasi vertice come il vertice sorgente/destinazione, impostando k = n e quindi eseguendo l'algoritmo. –

risposta

2

È una buona idea. Ricorda di impostare la distanza da sorgente a INF invece di 0 all'inizio per il risultato corretto.

EDIT

Una soluzione semplice è partire da u, vai a tutti i vertici adiacenti ed ripresentarsi per i vertici adiacenti con k come k-1, sorgente vertice adiacente e arrivo, as v. Di seguito viene Implementazione in C++ di questa semplice soluzione. GeeksForGeeks

+0

grazie per la risposta. Perché impostato su INF? e come posso passare i nodi K all'algoritmo? – Denise

+0

c'è un'implementazione sotto l'URL postato – xenteros

+0

grazie, molto utile! – Denise