[C++] Grafi orientati ,pesati - Estrazione cammini

di il
4 risposte

[C++] Grafi orientati ,pesati - Estrazione cammini

Salve ragazzi,
per risolvere alcune richieste sui grafi ho bisogno di estrarre (se esistono) dei cammini fra una coppia di nodi. Non potendo sfruttare l algoritmo di Dijkstra o di Bellman - Ford per via della sorgente singola, l'unica via per estrarre dei cammini tra una coppia di nodi di un grafo è l'utilizzo dell'algoritmo di Floyd - Warshall?

4 Risposte

  • Re: [C++] Grafi orientati ,pesati - Estrazione cammini

    Gli algoritmi di Dijkstra e Bellman-Ford trovano i cammini minimi da una singola sorgente a tutti gli altri nodi, quindi possono andar bene. In particolare con Dijkstra potresti modificarlo leggermente per fermarti quando rimuovi il nodo destinazione dalla coda a priorità, perché a quel punto conosci sicuramente il cammino minimo per quel nodo. Con bellman ford invece è più complicato perché ad ogni iterazione vai a riconsiderare tutti gli archi, per cui fino alla fine non sai se la stima per un certo nodo è definitiva.
  • Re: [C++] Grafi orientati ,pesati - Estrazione cammini

    Quindi Dijkstra può andar bene , a patto che non ci siano pesi negativi sugli archi ? Ti ringrazio.
  • Re: [C++] Grafi orientati ,pesati - Estrazione cammini

    Per la precisione, va bene a patto che non vi siano cicli a peso totale negativo. Quindi se ad esempio hai un DAG, puoi tranquillamente ammettere archi negativi.
  • Re: [C++] Grafi orientati ,pesati - Estrazione cammini

    Si, è esattamente il mio caso. Grazie mille.
Devi accedere o registrarti per scrivere nel forum
4 risposte