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?
5
A
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
Un problema è che il nodo iniziale è contrassegnato quando si avvia. Devi smarcarlo – Blobonat
sì! Qualche idea sull'implementazione per i nodi k? – Denise
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. –