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 :

digraphe et recherche de circuit


Sujet :

Algorithmes et structures de données

  1. #1
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut digraphe et recherche de circuit
    Bonjour à tous,

    J'ai un digraphe (graphe orienté) que je représente par liste d'adjacence. Mon problème est de savoir comment faire pour vérifier que le graphe ne comporte pas de cycle.
    J'ai essayé un algo de parcours en profondeur en marquant les sommets mais cela ne fonctionne pas.

    Avez-vous d'autres idées? En effet si internet regorge d'exemples pour les graphes non orientés, je n'ai rien trouvé pour les graphes orientés.

    Merci par avance

  2. #2
    Membre confirmé
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Par défaut
    Salut.

    La méthode que tu as utilisé est la bonne.. Surment un problème au niveau du code..

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Une cause possible d'erreur :

    Ce n'est pas un vrai parcours en profondeur qu'il faut réaliser au sens ou tu ne colores pas le sommet de départ, contrairement au classique parcours en profondeur. Car sinon à la fin, lorsque tu regarderas ton ensemble de sommets visités, le sommet de départ y sera forcement donc on pourrait penser qu'il y a un cycle.

  4. #4
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    Merci pour vos réponses.
    Je veux bien qu'il y ait une erreur dans mon code mais j'aimerais juste savoir comment vous gérez le cas suivant:

    A->B;
    A->C;
    C-> D
    B->D ?

    en effet si l'on part de A, on passera 2 fois par D (alors qu'il n'y a pas de cricuit dans ce graphe)

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    On réalise un parcours comme j'ai dit sur tous les sommets.

    A->B;
    A->C;
    C-> D
    B->D

    On part de A.

    On met sur la pile des AVISITER les successeurs de A, c'est à dire B et C.
    On met sur la pile des VISITER rien du tout (contraitement au parcours classique)

    Reste à visiter : B, C
    On visite B
    On met sur la pile des AVISITER les successeurs de B, c'est à dire D.
    On met sur la pile des VISITER B


    Reste à visiter : C, D
    On visite C
    On met sur la pile des AVISITER les successeurs de C, c'est à dire D.
    On met sur la pile des VISITER C

    Reste à visiter : D, D
    On visite D
    On met sur la pile des AVISITER rien du tout
    On met sur la pile des VISITER D

    Reste à visiter : D
    On a déjà visiter.

    Fini pour A

    On vérifie, A n'appartient pas à la pile des VISITER, il n'y a pas de circuit passant par A.

    Pis ainsi de suite.

    On peut noter qu'on est pas obligé de parcourir tout en profondeur, on peut s'arrêter dès que A est un successeur d'un élément de la pile des AVISITER.


    PS : J'ai parlé de pile, en général, quand on implémente, on utilise un tableau coloré ce qui est plus rapide !!! Mais pour l'explication, je preferai prd une pile.

Discussions similaires

  1. Recherche composant circuit imprime SATA II
    Par azer355 dans le forum Composants
    Réponses: 3
    Dernier message: 27/02/2012, 08h54
  2. Réponses: 1
    Dernier message: 27/12/2011, 20h17
  3. Recherche de tous les circuits d'un graphe
    Par gontard dans le forum Mathématiques
    Réponses: 0
    Dernier message: 04/11/2009, 22h22
  4. recherche logiciel des circuits
    Par houssamnat dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 06/01/2008, 22h45

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