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 :

Parcourir tous les chemins élémentaires d'un graphe


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Parcourir tous les chemins élémentaires d'un graphe
    Bonsoir,

    J'ai un graphe G(V, E) non cyclique défini par une matrice d'adjacence M telle que pour tout i, j dans V², M[i][j] = 1 s'il y a un arc de i vers j et 0 sinon.

    Est-il possible de parcourir tous les chemins élémentaires de ce graphe ?
    Vous trouverez un exemple en pièce jointe.

    Je remercie par avance tous ceux qui auront pris le temps de lire ou de répondre à ce post.

    Bonne soirée.

    PS : je code en C.
    Images attachées Images attachées  

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 667
    Points : 188 678
    Points
    188 678
    Par défaut


    Oui, c'est tout à fait possible : en fait, c'est une question d'interview technique assez courante, que tu peux aborder avec une exploration en largeur du graphe, BFS (ça devient plus compliqué à gérer dès que tu peux avoir des boucles). Je pense qu'une exploration en profondeur (DFS) pourrait aussi marcher. En tout cas, les deux approches sont indépendantes de la représentation du graphe.

  3. #3
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Bonjour,
    Voici ce que j'avais trouvé de mieux dans mes recherche, pour traiter les généralités des graphes. Tu devrais trouver ton bonheur au chapitre III-3.

    Perso, je serais plutôt allé du côté de la lecture en profondeur, en verrouillant le recursif dès qu'un nœud est antérieur à celui traité (même si tu précises que ton graphe n'a pas de cycle).
    Cordialement,
    Images attachées Images attachées

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 101
    Points : 9 491
    Points
    9 491
    Par défaut
    Je pense que la première étape, ce serait de clarifier la question.
    Parcourir un graphe comme celui sur le dessin, ça veut dire quoi ?

    A priori, on a un point de départ, et une fois qu'on a choisi ce point de départ, on recense tous les parcours possibles.
    Par exemple, si le point de départ est le point 2, le programme devra afficher :
    2-3-5
    2-3-6
    2-4-6
    2-4-7
    Et si le point de départ est 3, il devra afficher
    3-5
    3-6
    Est-ce bien ça l'objectif ? Je suppose, mais je n'en suis pas sûr.

    Quand on sait d'où on part ( le graphe), quand on connaît l'objectif, on peut chercher.
    Si on n'a pas défini clairement l'objectif, c'est mort.

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 264
    Points : 13 521
    Points
    13 521
    Par défaut
    Bonjour

    Citation Envoyé par dourouc05 Voir le message
    ça devient plus compliqué à gérer dès que tu peux avoir des boucles
    Ben justement. Le mot important est "élémentaire". Sans cycle. Donc bon. L'exercice consiste à chercher les cycles. N'est-ce pas ?

Discussions similaires

  1. Trouver tous les chemins entre deux noeuds dans un graphe qui contient des boucles
    Par GayaStudent dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 21/11/2014, 21h31
  2. Parcours de tous les chemins d'un graphe
    Par piotrr dans le forum Mathématiques
    Réponses: 43
    Dernier message: 04/06/2014, 16h43
  3. Tous les chemins d'un graphe
    Par Raikyn dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 05/12/2013, 14h33
  4. tous les chemins dans un graphe
    Par tunnour dans le forum Mathématiques
    Réponses: 3
    Dernier message: 29/12/2009, 16h48
  5. [Graphe] Extraire tous les chemins de toutes tailles.
    Par Choupi dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/05/2006, 15h47

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