Connexité des Graphes

download Connexité des Graphes

of 42

  • date post

    13-Jul-2015
  • Category

    Documents

  • view

    370
  • download

    2

Embed Size (px)

description

Connexité des Graphes

Transcript of Connexité des Graphes

Ralis par :Yassine JHILAL Abdelmadjid CHADAD Zakaria EZZENATI Mohamed AIT AISSA Abdessamad BOUTGAYOUT

Encadr par :Mr.RAIHANI

ENSET Mohammedia 2011/2012

Introduction Les graphes Les chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion BibliographieENSET Mohammedia 2011/2012

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Dans le cadre de notre formation lENSET Mohammedia, nous tions amen a prparer un mini-projet en algorithmique sous thme connexit des graphes. Notre travail consiste a chercher les diffrents algorithmes de connexits et de les implment en langage C.

ENSET Mohammedia 2011/2012

ENSET Mohammedia 2011/2012

Introduction Les graphes Connexit Algorithmes de connexits Implmentation en C

Connexit et RseauConclusion Bibliographie

Un graphe: est un ensemble de nuds (ou sommets) qui sont relier entre eux par des arcs (arrts). Mathmatiquement, un graphe est reprsent par un couple de deux ensembles G = (X;U) o X est l'ensemble des nuds (ou sommets) et U l'ensemble des artes (graphe non orient) ou arcs (orient). Le nombre de sommets prsents dans un graphe est le lordre du graphe.

ENSET Mohammedia 2011/2012

Introduction Les graphes Connexit Algorithmes de connexits Implmentation en C

Connexit et RseauConclusion Bibliographie

Dans cet exemple :G=(X,U) X={ a, b, c, d, e, f, g, h } U={ (a,d), (b,c), (b,d), (d,e), (e,c), (e,h), (h,d), (f,g), (d,g), (g,h) }

ENSET Mohammedia 2011/2012

Introduction Les graphes Connexit Algorithmes de connexits Implmentation en C

A

B

AConnexit et RseauConclusion Bibliographie

B

ENSET Mohammedia 2011/2012

Introduction Les graphes Connexit Algorithmes de connexits Implmentation en C Le demi degr extrieur dun nuds est le nombre darcs adjacent qui en partant d+(x) cad y est un successeur de x. Le demi degr intrieur dun nuds est le nombre darcs adjacent qui en partant d-(x) cad y est un prdcesseur de x. Exemple: Dans le graphe suivant , d+(x)=3(successeur) et d-(x)=2(prdcesseur) d(x)=5.

Connexit et RseauConclusion Bibliographie

ENSET Mohammedia 2011/2012

Introduction Les graphes Connexit Algorithmes de connexits Implmentation en C

Arte:une ligne qui joint deux sommets conscutifs, distincts ou non, d'un graphe non orient. Arc: une ligne ou trait qui joint deux sommets conscutifs, distincts ou non, d'un graphe orient.

Connexit et RseauConclusion Bibliographie

ENSET Mohammedia 2011/2012

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Un chemin de x y est une chane dans laquelle les arcs sont orients et tels que:

x est lextrmit initiale du premier arc,y est lextrmit terminale du dernier arc,

lextrmit terminale dun arc est lextrmit initiale de larc qui le suit dans la squence.

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Exemple :

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

ch1 = ((A;C),(C;E)) est un chemin de A E. ch2 = ((A;C),(C;F),(F;A),(A;C),(C;E)) est un chemin de A E. ch3 = ((A;C),(C;F),(F;D),(D;C),(C;E)) est un chemin de A E. ch4 = ((A;B),(B;D),(D;E)) est une chane de A E. ch5 = ((A;B),(B;D),(D;C),(C;A),(A;B),(B;D),(D;E)) est une chane de A E. ch6 = ((A;B),(B;D),(D;C),(C;F),(F;D),(D;E)) est une chane de A E.

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins

Reprsentation par matrices dadjacence:Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

On souhaite dfinir une structure de donnes pour reprsenter un graphe. Considrons S={s0,s1,.,sn-1} lensemble des sommets. Nous allons reprsenter le graphe par une matrice A de taille n*n.llment A[i][j] vaudra 1,sil y a un arc (i,j) du sommet s(i) vers le sommet s(j) , sinon A[i][j] vaudra 0

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

0 0 1 2 3 4 5 0 0 1 0 0 1

1 0 1 1 0 0 0

2 0 0 0 0 1 0

3 0 1 0 0 0 1

4 1 0 0 0 0 0

5 0 0 0 1 0 0

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

La notion de connexit est lie l'existence de chemins dans un graphe : depuis un sommet, existe-til un chemin pour atteindre tout autre sommet? Les graphes connexes correspondent la reprsentation naturelle que l'on se fait d'un graphe. Les graphes non connexes apparaissent comme la juxtaposition d'un ensemble de graphes : ses composantes connexes.

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Tous les sommets sont relis, directement ou non, entre eux par une chane

NB : un arbre est un graphe connexe .

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Il existe des sommets non relis entre eux .

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Forte connexit : x et y ont une relation de forte connexit il existe un chemin de x y et un chemin de y x ou bien x = y. Graphe connexe : Un graphe est dit fortement connexe si tous ses nuds ont deux deux la relation de forte connexit.

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

ENSET Mohammedia 2011/2012

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Recherche d'une composante fortement connexe : Cet algorithme recherche la composante fortement connexe d'un graphe G contenant un sommet s. L'ide de cet algorithme est de parcourir le graphe partir du point s dans le sens direct (i.e. en suivant les flches des arcs) et de crer un ensemble des nuds parcourus. La mme chose est effectue dans le sens indirect (i.e. en suivant les flches des arcs en sens inverse) et de crer un deuxime ensemble des nuds parcourus. Le premier ensemble regroupe les nuds accessibles partir de s et le deuxime ensemble regroupe les nuds qui peuvent atteindre s. L'intersection de ces deux ensembles donne les nuds qui la fois peuvent atteindre s et sont accessibles partir de s. Cette intersection est donc la composante fortement connexe qui contient s.

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Recherche d'une composante fortement connexe :

La structure de donnes X reprsentant un ensemble de sommets dispose des fonctions suivantes : X=Crer Ensemble() cre lensemble vide X Ensemble Vide(X) retourne un boolen indiquant si lensemble X est vide ou pas Insrer(x, X) permet l'ajout d'un sommet x dans X x=Extraire(X) permet le retrait du sommet x de X

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Recherche de toutes les composantes fortement connexes :

Pour trouver toutes les composantes fortement connexes d'un graphe, il suffit de choisir au hasard un nud et de dterminer, grce l'algorithme prcdent, la composante fortement connexe qui le contient. On obtient alors une premire composante fortement connexe X1. Ensuite, parmi les nuds qui ne font pas partie de X1, on en prend un au hasard pour dterminer la composante fortement connexe qui le contient. On obtient X2. On recommence ainsi jusqu' ce que tous les nuds appartiennent une composante fortement connexe.

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C

Dbut Lire sommet-> S Parcours de graphe Parcours Directe -> X1Parcours Indirecte -> X2 Intersection (X1,X2)->C

Connexit et Rseau Conclusion Bibliographie

C==0 Fin

ENSET Mohammedia 2011/2012

ENSET Mohammedia 2011/2012

Introduction Les graphes Chemins Connexit Algorithmes de connexits Implmentation en C Connexit et Rseau Conclusion Bibliographie

Seule Composants Connexe :#include #include #include int * connex(int** adjacence,int ordre,int s){ int *c1,*c2; int *c; int *marques; int x,y; int ajoute=1; //Allouer les tableaux dynamiques c1,c2,c et marque de taille c1=(int*)malloc(ordre*sizeof(int)) ; c2=(int*)malloc(ordre*sizeof(int)) ; c=(int*)malloc(ordre*sizeof(int)) ; //Intialiser les valeurs de ces tableaux a 0 For(int i=0 ;i