Je veux juste m'assurer que cela fonctionnerait. Pourriez-vous trouver le meilleur chemin en utilisant l'algorithme de Dijkstra? Auriez-vous besoin d'initialiser la distance à quelque chose comme -1 en premier et ensuite changer le sous-programme de relaxation pour vérifier s'il est plus grand?L'algorithme de Dijkstra pour trouver le chemin le plus pondéré
Ceci est pour un problème qui n'aura aucun poids négatif.
Ceci est en fait le problème:
Supposons que vous donne un schéma d'un réseau téléphonique, qui est un graphique G dont les sommets représentent des centres de commutateurs, et dont les arêtes représentent des lignes de communication entre deux centres. Les bords sont marqués par leur bande passante de son bord de largeur de bande le plus bas. Donner un algorithme qui, donné un diagramme et deux centres de commutateurs un et b, produira la bande passante maximale d'un chemin entre a et b.
Est-ce que cela fonctionnerait?
EDIT:
J'ai trouvé ceci:
Astuce: Le sous-programme de base sera très similaire à la sous-routine Détendez-vous dans Dijkstra. Supposons que nous ayons un bord (u, v). Si min {d [u], w (u, v)}> d [v] alors nous devrions mettre à jour d [v] à min {d [u], w (u, v)} (parce que le chemin d'un à u et puis à v a la bande passante min {d [u], w (u, v)}, ce qui est plus que celui que nous avons actuellement).
Vous ne savez pas exactement ce que cela signifie, car toutes les distances sont infinies à l'initialisation. Donc, je ne sais pas comment cela pourrait fonctionner. des indices?
La réponse courte est: non, cela ne fonctionnerait pas. Le plus long problème de chemin n'a pas la sous-structure optimale qui est assumée par Djikstra, donc Djikstra ne vous donnera pas la bonne réponse. – bdares