You are on page 1of 4

Connexit - cycles cocycles arbres coarbres arborescences

Dfinitions o Deux sommets font partie dune mme composante connexe dun graphe G si et seulement si il existe une chane dans G qui les relie. o Un graphe est connexe sil ne comporte quune composante connexe. o Un arbre est un graphe connexe sans cycle simple. Soit G=(V,E) un graphe connexe et EE. o Le sous-graphe partiel G=(V,E) est un arbre de G si E ne contient aucun cycle de G alors que E{e} en contient un pour tout eE-E. On note Ce le cycle obtenu en rajoutant e E. o Le sous-graphe partiel G=(V,E) est un coarbre de G si E ne contient aucun cocycle de G alors que E{e} en contient un pour tout eE-E. On note We le cocycle obtenu en rajoutant e E. Proprit : G=(V,E) est un arbre de G G=(V,E-E) est un coarbre de G (voir dmonstration la fin de ce document)

Un peu dalgbre o On peut reprsenter chaque cycle C par un vecteur c E composantes boolennes : ci=1 si la ie arte du graphe fait partie du cycle; ci=0 sinon. o On peut reprsenter chaque cocycle [W,V-W] par un vecteur w E composantes boolennes : wi=1 si la ie arte du graphe fait partie du cocycle; wi=0 sinon. o Lespace des vecteurs cycles muni de laddition modulo 2 est orthogonal lespace des vecteurs cocycles muni de laddition modulo 2 : cw=0 pour tout vecteur cycle c, et pour tout vecteur cocycle w. Le nombre de vecteurs cycles dans une base de cycles est appel le nombre cyclomatique et vaut E V + p , o p est le nombre de composantes connexes du graphe considr. o Le nombre de vecteurs cocycles dans une base de cocycles est appel le cocyclomatique et vaut V p , o p est le nombre de composantes connexes du graphe considr. nombre

Pour obtenir une base de cycles dans un graphe connexe G=(V,E), il suffit de construire un arbre form dun sous-ensemble dartes EE, et de mettre dans la base chaque cycle Ce cr par lajout dune arte eE-E dans larbre. Pour obtenir une base de cocycles dans un graphe connexe G=(V,E), il suffit de construire un arbre form dun sous-ensemble dartes EE, et de mettre dans la base chaque cocycle We cr par le retrait dune arte eE de larbre.

Codage Codage dun arbre (Prfer) Soit l'arbre T = (V, E) et supposons V = {1, 2, ..., n}. L'algorithme ci-dessous fournira le code de T, c'est--dire une suite S de n-2 termes employant (ventuellement plusieurs fois) des nombres choisis parmi {1, ..., n}. Rpter ce qui suit tant qu'il reste plus de deux sommets dans l'arbre courant T : identifier le sommet pendant v de l'arbre courant ayant le numro minimum ; ajouter la suite S le seul sommet s adjacent v dans l'arbre T courant ; enlever de l'arbre T courant le sommet v et l'arte incidente v.

Exemple de codage
Etape 0 Etape 1 Etape 2 Etape 3 Etape 4

Arbre coder Etape 5

S={4} Etape 6

S={4,10} Etape 7

S={4,10,3} Etape 8

S={4,10,3,8}

S={4,10,3,8,4,4,5,10} est le codage de Prfer de l'arbre initial.

S={4,10,3,8,4}

S={4,10,3,8,4,4}

S={4,10,3,8,4,4,5}

S={4,10,3,8,4,4,5,10}

Dcodage dun arbre Donne: une suite S de n-2 nombres pris dans {1, ..., n}. Poser I = {1, ..., n}; Rpter ce qui suit tant qu'il reste des lments dans S et plus de deux lments dans I : identifier le plus petit lment i de I n'apparaissant pas dans la suite S ; relier par une arte de T le sommet i avec le sommet s correspondant au premier lment de la suite S ; enlever i de I et s de S. Les 2 lments qui restent dans I la fin de l'algorithme constituent les extrmits de la dernire arte ajouter T. Exemple de dcodage
Etape 1 Etape 2 Etape 3 Etape 4 Etape 5

I={1,2,3,4,5,6,7,8,9,10} S={4,10,3,8,4,4,5,10} Etape 6

I={2,3,4,5,6,7,8,9,10} S={10,3,8,4,4,5,10} Etape 7

I={3,4,5,6,7,8,9,10} S={3,8,4,4,5,10} Etape 8

I={3,4,5,7,8,9,10} S={8,4,4,5,10} Etape 9

I={4,5,7,8,9,10} S={4,4,5,10} Etape 10

I={4,5,8,9,10} S={4,5,10}

I={4,5,9,10} S={5,10}

I={5,9,10} S={10}

I={9,10} S={}

I={} S={}

On peut vrifier que les deux algorithmes constituent les deux sens d'une bijection entre les arbres sur n sommets numrots et les mots de n-2 lettres sur l'alphabet n lettres. On peut donc noncer le thorme suivant. Thorme de Cayley (1857) Le nombre d'arbres que l'on peut construire sur n (n>1) sommets numrots est gal nn-2.

Arbre de poids minimum Supposons quune distance de est associe chaque arte e du graphe G=(V,E). On dsire dterminer un sous-graphe partiel de G qui soit un arbre de distance totale minimum (aussi appel arbre de poids minimum). Proprit Soit G=(V,E) un sous-graphe partiel de G qui est un arbre. Les trois proprits suivantes sont quivalentes : (a) G est un arbre de poids minimum (b) (c)

d e = max d e'
e'C e

e E' e E'

d e = min d e'
e'We

Algorithme de Kruskal de construction dun arbre de poids minimum (bas sur (b) ) Classer les artes par distance non dcroissante Parcourir la liste des artes et rajouter une arte larbre si celle-ci ne cre pas de cycle avec les artes dj rajoutes Complexit : O( V E ) (1) (2)

Algorithme de Prim de construction dun arbre de poids minimum (bas sur (c) ) (1) (2) Choisir un sommet quelconque de G et le mettre dans A Pour i allant de 1 V -1 faire Dterminer une arte de cot minimum dans le cocycle [A,V-A] Rajouter cette arte dans larbre et mettre dans A lextrmit qui ny tait pas. Complexit : O( V )
2

Arborescence de poids minimum Une arborescence de racine r dans un graphe orient G=(V,A) est un sous-graphe partiel connexe G=(V,A) tel que chaque sommet de V autre que la racine un unique arc entrant. Problme : dterminer une arborescence de racine r de poids minimum (c--d de distance totale minimum), o da reprsente la distance dun arc a de G. Prliminaire. Soit C un circuit dans un graphe G. On note GC le multi-graphe obtenu en remplaant les sommets de C par un seul sommet c, et en remplaant tout arc entrant en C ou sortant de C par des arcs entrant ou sortant de c.

Algorithme de construction dune arborescence de racine r de poids minimum. (1) t :=0; G0 :=G; d0(a) :=da pour tout a dans A (2) Soit At le sous-graphe partiel de Gt obtenu en choisissant, pour chaque sommet autre que la racine, larc entrant de distance minimum (par rapport dt) Si At na pas de circuit, aller (3) sinon aller (4). (3) Dcontracter At pour dterminer larborescence optimale dans G : STOP (4) Soit C un circuit dans At. Poser Gt+1 :=GtC et poser dt+1(a)=dt(a) pour tout arc a nentrant pas dans C, et dt+1(a)=dt(a)-dt(a) pour tout arc a entrant dans C, o a est larc de C ayant la mme extrmit terminale que a. Poser t :=t+1 et retourner (2)

Dans le cas o la racine nest pas fixe davance on peut dterminer une arborescence de poids minimum de la faon suivante (1) (2) (3) Rajouter un sommet r ainsi quun arc de r vers chacun des sommets de G, le cot de chaque arc (r,x) tant gal D+1, o D est la somme totale des distances sur les arcs de G. Dterminer une arborescence de racine r de poids minimum laide de lalgorithme ci-dessus. ter r de larborescence.

Thorme de Minty (lemme des arcs colors) Soit G=(V,A) un graphe orient et a un arc dans A. Considrons nimporte quelle coloration des arcs de A tel que a est NOIR et les autres arcs sont BLEUS, ROUGES ou NOIRS. Alors on se trouve forcment dans exactement lun des deux cas suivants 1) 2) il existe un cycle passant par a, color uniquement en ROUGE et NOIR, et dont tous les arcs NOIRS sont orients dans le mme sens que a. il existe un cocycle contenant a, color uniquement en BLEU et NOIR, et dont tous les arcs NOIRS traversent la frontire dans le mme sens que a.

Corollaire Dans un graphe orient, chaque arc fait partie soit dun circuit, soit dun cocircuit (ou exclusif)

Dmonstration que G=(V,E) est un arbre de G=(V,E) si et seulement si G=(V,E-E) est un coarbre de G Tout dabord, orientons de faon quelconque les artes de G. (1) Soit G=(V,E) un arbre de G et soit E=(E-E). Soit a un arc quelconque de E. Colorons a en NOIR, tous les arcs de E sauf a en ROUGE et tous les arcs de E en BLEU. Comme E ne contient pas de cycle, il nexiste pas de cycle ROUGE et NOIR. Il existe donc un cocycle NOIR et BLEU, ce qui montre que E{a} contient un cocycle. Soit b un arc quelconque de E. Colorons b en NOIR, tous les arcs de E en ROUGE et tous les arcs de E sauf b en BLEU. Comme E{b} contient un cycle passant par b, il existe un cycle ROUGE et NOIR avec un unique arc NOIR. Il nexiste donc pas de cocycle NOIR et BLEU, ce qui montre que Ene contient pas de cocycle.

On en dduit donc que G=(V,E-E) est un coarbre de G

(2)

Soit G=(V,E) un coarbre de G et soit E=(E-E). Soit a un arc quelconque de E. Colorons a en NOIR, tous les arcs de E sauf a en BLEU et tous les arcs de E en ROUGE. Comme E na pas de cocycle, il nexiste pas de cocycle BLEU et NOIR. Il existe donc un cycle NOIR et ROUGE, ce qui montre que E{a} contient un cycle. Soit b un arc quelconque de E. Colorons b en NOIR, tous les arcs de E en BLEU et tous les arcs de E sauf b en ROUGE. Comme E{b} contient un cocycle passant par b, il existe un cocycle BLEU et NOIR avec un unique arc NOIR. Il nexiste donc pas de cycle NOIR et ROUGE, ce qui montre que E ne contient pas de cycle.

On en dduit donc que G=(V,E-E) est un arbre de G

You might also like