IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Dijkstra en C


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut Dijkstra en C
    Bonsoir,
    Je cherche a coder Dijkstra en C, j'ai donc regardé l'algo sur Wikipedia et j'aurais besoin d'explications dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dijkstra(G,Poids,sdeb)
     Initialisation(G,sdeb)
     P := ensemble vide
     Q := ensemble de tous les nœuds
     tant que Q n'est pas un ensemble vide
           faire s1 := Trouve_min(Q) (1)
              P := P union {s1} (2)
              pour chaque nœud  s2 voisin de s1
                  faire maj_distances(s1,s2)
    (1) - On doit trouver la valeur min contenu dans la matrice qui represente le graphe? A quoi correspond S1?
    (2) - A quoi correspond union?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Initialisation(G,sdeb)
    1 pour chaque point s de G
    2    faire d[s] := infini             /* on initialise les sommets autres que sdeb à 0 */[3]
    3       prédecesseur[s] := 0          /* car on ne connaît au départ aucun chemin entre s et sdeb */
    4 d[sdeb] := 0                        /* sdeb étant le point le plus proche de sdeb */
    Comment coder infini? par -1 ca va poser des difficultées quand on va vouloir faire une addition ou autre non?

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par line86 Voir le message
    (1) - On doit trouver la valeur min contenu dans la matrice qui represente le graphe? A quoi correspond S1?
    La définition de Trouve_min est dans l'article Wikipédia. s1 est bien sûr le sommet de Q qui est le plus proche de sdeb.

    Citation Envoyé par line86 Voir le message
    (2) - A quoi correspond union?
    A l'union ensembliste, quoi d'autre ?

    Citation Envoyé par line86 Voir le message
    Comment coder infini? par -1 ca va poser des difficultées quand on va vouloir faire une addition ou autre non?
    Si tu le codes par -1 il faudra faire attention dans la maj_distances et dans Trouve_min à traiter -1 spécialement, une alternative est de mettre le plus grand nombre possible selon le type choisi pour la distance. Note que float et double ont normalement une valeur +Inf selon la norme IEEE.

    --
    Jedaï

Discussions similaires

  1. programme algo de + court chemin (dijkstra)
    Par isidore dans le forum C
    Réponses: 7
    Dernier message: 28/11/2006, 12h38
  2. Dijkstra, encore lui ;-)
    Par phpmad dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 23/11/2006, 19h47
  3. Dijkstra chemins disjoints??
    Par daliz dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 12/01/2006, 16h14
  4. Dijkstra: optimisation?
    Par Zogzog4 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 15/11/2005, 12h56
  5. algo de Dijkstra (+ court chemin d'un labyrinthe)
    Par gg14bis dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 25/03/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo