Algorithme djisktra

Bonjour,
SVP quelqu'un pourait m'aider a implementer l'algorithme de djisktra en python ...
Ca fait longtemp que j'essaie mais je tombe toujours sur des boucles infinies ...
SVP ????

Configuration: Windows / Chrome 92.0.4515.159

3 réponses

  1. Modérateur
    Bonjour,

    Si tu as une boucle infinie, essaye de déterminer quelle est la boucle qui tourne indéfiniment. Ajouter un print à différents endroits de l'algorithme peut sans doute t'aider à y voir plus clair.

    Pour rappel, l'algorithme de Dijkstra traverse chaque sommet et chaque arc une fois s'il est atteignable depuis le sommet source, zéro sinon. La boucle la plus suspecte est celle qui gère le tas des sommets à visiter. Assure-toi que les sommets rencontrés ne sont bien traités qu'au plus une fois. Tu pourrais ajouter un compteur pour voir combien de fois tu traverses cette boucle. Si cette valeur excède le nombre de sommets du graphe, c'est qu'il y a un problème dans ton omplémentation.

    Pour éviter de traiter un sommet plusieurs fois (en particulier s'il est atteignable via plusieurs chemins incidents), on a recours un vecteur qui à chaque sommet associe son état traditionnellement représenté par un vecteur de couleur (blanc = pas encore visité, gris = en cours de visite, noir = visité).

    Le pseudo code de l'algorithme est disponible :ici.

    Si tu bloques, il faut nous partager ton code et nous dire ce que tu ne comprends pas.

    Bonne chance