[Algo]Recherche de circuits dans un graphe

Recherche de circuits dans un graphe [Algo] - Algo - Programmation

Marsh Posté le 11-11-2003 à 19:03:21    

Salut
 
je cherche un algo efficace de recherche de circuits dans un graphe orienté, et j'ai pas trouvé sur google. J'ai essayé un paquet de trucs mais décidément je trouve pas :/
Vous auriez une idée?

Reply

Marsh Posté le 11-11-2003 à 19:03:21   

Reply

Marsh Posté le 11-11-2003 à 19:06:14    

Sauf erreur de ma part, si un jour tu trouve un algo "efficace", y'a un paquet de gens que çà risque d'intéresser :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 11-11-2003 à 19:10:35    

Tu veux savoir si il y a un circuit ou connaitre le circuit ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-11-2003 à 19:11:36    

si il y a un circuit c'est tout :)

Reply

Marsh Posté le 11-11-2003 à 19:13:43    

Tu retires récursivement les noeuds qui n'ont que des départ. Quand tu peux plus, soit il reste des noeuds et dans ce cas, tu as au moins un circuit, soit tu n'as plus de noeuds et ton graphe est acyclique.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-11-2003 à 19:19:07    

ah oui pas con je vais essayer :)

Reply

Marsh Posté le 21-11-2003 à 22:01:24    

g 2 algos:
^M= matrice de le fermeture transitive de G
1-----------------------------------------------------
Données: G:Graphe, M:matrice d'adjacence
Résultat: vrai(il existe un circuit) faux sinon
 

Code :
  1. Debut
  2.    calcul de ^M            //O(n^3)
  3.    pour k<-1 à n faire     //O(n)
  4.       si ^M[k][k]=1 alors retourner vrai
  5.    fin pour
  6.    retourner faux
  7. Fin


 
 
2-----------------------------------------------------
Données G, M
Résultat vrai ou faux
 

Code :
  1. Debut
  2.     M*<-M
  3.     Tantque (il existe dans M* une ligne i de 0 et M*!=0) faire
  4.           supprimer dans M* la ligne i et la colonne i
  5.           soit M** la nouvelle mat
  6.           M*<-M**
  7.     Fin Tantque
  8. Cas: M*=0                   => G sans circuit retourne vrai
  9.      M* n'a plus d'element   => idem
  10.      M* a des elements non nuls => retourne faux
  11. Fin


 
pour les erreurs, voir mon prof d'algo/graphes. :p

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed