|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Shinichi OnimaruÉtudiant Inscription : mars 2010 Messages : 256 ![]() |
Salut à tous.
Voici le problème : Soit M une matrice d'adjacence d'un graphe orienté. Comment faire pour extraire les cycles de ce graphe ??? |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : mai 2006 Messages : 605 ![]() |
Tu peux regarder peut être de ce côté là : http://en.wikipedia.org/wiki/Cycle_detection
|
|
10
|
|
|
#3 | |
|
Membre régulier
![]() Shinichi OnimaruÉtudiant Inscription : mars 2010 Messages : 256 ![]() |
Citation:
Une autre question : est ce que l'algorithme de Floyd-Warshall peut m'aider ? |
|
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : mai 2006 Messages : 605 ![]() |
Je ne pense pas sachant que c'est pour la recherche des plus courts chemins dans un graphe.
|
|
10
|
|
|
#5 |
|
Membre régulier
![]() Shinichi OnimaruÉtudiant Inscription : mars 2010 Messages : 256 ![]() |
|
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Shinichi OnimaruÉtudiant Inscription : mars 2010 Messages : 256 ![]() |
Salut, je crois que l'article de Wikipedia parle des cycles des fonctions itérées.
|
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Shinichi OnimaruÉtudiant Inscription : mars 2010 Messages : 256 ![]() |
Salut, j'ai trouvé cet algorithme sur un forum, est ce juste ?
Citation:
|
|
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() Shinichi OnimaruÉtudiant Inscription : mars 2010 Messages : 256 ![]() |
Salut à tous,
J'ai réussi enfin à trouver une solution à ce problème, cette procédure donne les cycles d'un graphe représente par sa matrice d'adjacence : Code Delphi :
avec : partie 1 : initialiser le tableau Cycles avec tout les nœuds du graphe. partie 2 : on duplique chaque élément chaque fois qu'on trouve un nœud relié à lui. On s'arrête quand tous les cycles ont une longueur égale au nombre de nœuds, car il est impossible de trouver un cycle plus long que ça. partie 3 : Cycles contient maintenant des cycles potentiels, pour chaque cycle potentiel on fait des décalages circulaires afin de rendre le plus petit indice à la première position du cycle. Ce travail permet par la suite de supprimer les répétitions. partie 4 : supprimer les répétitions. partie 5 : pour chaque cycle potentiel on génère un motif, si c'est un cycle alors ce motif se répète périodiquement. Si le motif trouvé est de longueur égale au nombre d'éléments on doit vérifier que c'est un vrai cycle à l'aide de la matrice d'adjacence. Les motifs vérifiant ces conditions forment l'ensemble des cycles du graphe. Elements : tableau qui contient les nœuds du graphe. |
||
|
|
00
|
|
|
#9 |
Roiste usthb Inscription : novembre 2012 Messages : 1 ![]() |
Svp aidez moi à trouver une fonction qui trouve tous les cycles dans un graphe mais en matlab. Mezrci
|
|
|
02
|
Copyright © 2000-2013 - www.developpez.com