1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet :...

Post on 03-Apr-2015

116 views 0 download

Transcript of 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet :...

1

Licence d’informatiqueAlgorithmique des graphes

Exploration de la descendance d’un sommet : numérotation conforme,

énumération de chemins élémentaires, composantes fortement connexes.

Utilisation de ce document strictement réservée aux étudiants de l ’IFSIC dans le cadre de leur formation.Reproduction ou diffusion en dehors de l ’IFSIC strictement interdite sauf autorisation expresse de l’ auteur.

2

Toute configuration de la pile est un chemin

Propriétés d’une exploration en profondeurPropriétés d’une exploration en profondeur

Démonstration : par induction sur les configurations de la pile.

chemin. un doncest C' .],,,[est ionconfigurat nouvelle La ..

chemin undécrit ],,,,,[

ionconfigurat nouvellela donc ),( cas, ce Dans.)(.

:avoir peut on suivante, étapel' A

chemin. undécrit ],,,,[ : Hypothèse

étape. uned' finla à pilela de ionconfiguratla ],,,,[Soit

11

11

11

11

k

kk

k

kk

kk

yyxdépilerp

yyyyx

yyyempilerp

yyyx

yyyxp

Corollaire : Soit z un sommet dans la pile. Alors :

tout sommet empilé au-dessus de z est un descendant de z

3

Applications de l’exploration en profondeurApplications de l’exploration en profondeur

• Recherche de numérotation conforme (ou de circuit)

• énumération de tous les chemins élémentaires * formulation récursive

4

Applications de l’exploration en profondeurApplications de l’exploration en profondeur

• Recherche de numérotation conforme (ou de circuit)

Un graphe possède une numérotation conforme si et seulement si il est sans circuit.

)()(),( si est

: sommets des onnumérotati Une: Définition

ynumxnumyxconforme

Xnum

5

Recherche de numérotation conforme (ou de circuit)Recherche de numérotation conforme (ou de circuit)

Propriété de l’exploration en profondeur (issue de x) :

yavant

zyzy

dépilé sera il 2)

empilé; sera alors empiléest si )1),(

Preuve :empilé.est donc )( aon ,),( commeet )( empilé 1) ** zxzzyxyy

2) Si z est empilé après y alors il sera dépilé avant y (propriétés de la pile)

),(),(et circuit sans yzzyG

Si z a été empilé avant y :

Or, tous les sommets empilés au-dessus d’un sommet z sont des descendants de z.

Donc, y ne sera empilé qu’après que z soit sorti de la pile.

C’est-à-dire : z est dépilé avant y

Si G est sans circuit, alors

6

Recherche de numérotation conformeRecherche de numérotation conforme

a

j

g

m

n

i

f

e

od

lkc

hb

7

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

a fa f ea f e oa f e o ia f e o i ja f e o i j m

a

8

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

a fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a

9

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

a fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i

14

a

10

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i

14 a f e o

13

11

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i

14 a f e o

13

12

a f e

12

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

13

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

14

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

10

a f

15

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14

a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

16

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a a l a l b a l b c

17

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

18

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

19

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

a fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

6

a

a

20

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

6

a

5

21

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

6

a

5

gg n

22

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

6

a

5

g

g n

4

g

3

23

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

6

a

5

g

g n

4

g

3

h

2

24

a

j

g

m

n

i

f

e

od

lkc

hb

PILE

aa fa f ea f e oa f e o ia f e o i ja f e o i j ma f e o i j

15

a f e o i 14 a f e o

13

12

a f e a f e d

11

a f e

10

a f

9

a

8

a l a l b a l b c a l b

7

a l

6

a

5

g

g n

4

g

3

h

2

k

1

25

a b c d e f g h i j k l m n oa x x x xb x xc xd xe x xf x xg x x x xh x x xi xj xk x x xl x xmn x xo x

a

j

g

m

n

if

e

od

lkc

hb

15

14

13

12

11 10

9

8

7

6

54

3

1

2

26

1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 x x x x2 x x3 x x x4 x x x5 x x x x6 x x7 x x8 x9 x x10 x x11 x12 x13 x14 x15

a

j

g

m

n

if

e

od

lkc

hb

15

14

13

12

11 10

9

8

7

6

54

3

1

2

27

Stratégies gloutonnes et non gloutonnesStratégies gloutonnes et non gloutonnes

Calcul de la descendance d’un sommet donné :

pas de remise en cause d’un sommet terminé. Un tel sommet ne peut plus apporter d’informations nouvelles

énumération des chemins issus d’un sommet x :

remise en cause possible d’un sommet y terminé.

Un tel sommet peut appartenir à plusieurs chemins.

Si on le re-visite à partir d’un autre prédécesseur,

un nouvel ensemble de chemins (vers ses descendants) est trouvé.

28

Stratégies gloutonnes et non gloutonnesStratégies gloutonnes et non gloutonnes

énumération des chemins issus d’un sommet x :

remise en cause possible d’un sommet y terminé.

Un tel sommet peut appartenir à plusieurs chemins.

Si on le re-visite à partir d’un autre prédécesseur,

un nouvel ensemble de chemins (vers ses descendants) est trouvé.

Descendance de y explorée : y terminé.

On re-visite y en suivant un autre chemin u’

yx

u

Il faut ré-empiler y car u’ engendre de nouveaux chemins avec la descendance de y

u’

29

Stratégies gloutonnes et non gloutonnesStratégies gloutonnes et non gloutonnes

calcul de la descendance d’un sommet donné :

pas de remise en cause d’un sommet terminé.

énumération des chemins issus d’un sommet x :

remise en cause possible d’un sommet y terminé.

STRATEGIE GLOUTONNE : on « avance » toujours

STRATEGIE NON GLOUTONNE :

on « recule » parfois

30

ENUMERATION DE TOUS LES CHEMINS ELEMENTAIRES issus du sommet 1ENUMERATION DE TOUS LES CHEMINS ELEMENTAIRES issus du sommet 1

14

26

3

5

PILE

1 41 4 31 4 3 11 4 31 4 3 61 4 3 6 21 4 3 6 1 4 3 6 5

1 4 3 6 5 2 1 4 3 6 5

1 4 3 6

1 4 31 41

4

26

3

5

Les sommets 2, 3, 4, 5, 6 sont terminés

On poursuit l’exploration.

1 5 Bien que 5 soit terminé,

ON LE RÉEMPILE!1 5 31 5 3 11 5 31 5 3 61 5 3 6 21 5 3 6 2 4

1 5 3 6 21 5 3 61 5 31 51 5 2 Idem: on réempile 2

1 5 2 41 5 2 4 31 5 2 4 3 11 5 2 4 31 5 2 4 3 6

1 5 2 41 5 21 5 2 61 5 2

1 51

1 5 2 4 3

1

31

Composantes fortement connexesComposantes fortement connexes

But : structurer un graphe par rapport à ses possibilités de cheminement

Plus précisément : regrouper des sommets communiquant mutuellement ; déterminer les relations de communication entre ces groupes de sommets.

32

Composantes fortement connexesComposantes fortement connexes

But : structurer un graphe par rapport à ses possibilités de cheminement

a

b

c

h

g

f j

k

l

n

r

o

p

s

q

u

v

tmie

d

a

b

h

g

d

c

f j

r

s

u

v

t

l

o

p

mi

nq

k

e

33

Composantes fortement connexesComposantes fortement connexes

a

b

c

h

g

f j

k

l

n

r

o

p

s

q

u

v

tmie

d

a

b

h

g

d

c

f j

r

s

u

v

t

l

o

p

mi

nq

k

e

Deux sommets sont dans une même composante ssi ils sont sur un même circuit

Sommet seul dans sa composante : n’appartient à aucun circuit

34

Composantes fortement connexesComposantes fortement connexes

a

b

c

h

g

f j

k

l

n

r

o

p

s

q

u

v

tmie

d

a

b

h

g

d

c

f j

r

s

u

v

t

l

o

p

mi

nq

k

e

Réduction du graphe selon ses cfc :

35

Composantes fortement connexesComposantes fortement connexes

a

b

c

h

g

f j

k

l

n

r

o

p

s

q

u

v

tmie

d

a

b

h

g

d

c

f j

r

s

u

v

t

l

o

p

mi

nq

k

e

Réduction du graphe selon ses cfc :

Ca

Ce

Ci

Cf

Cn

Ck

36

Ck

Ce

Ca

Composantes fortement connexesComposantes fortement connexes

Réduction du graphe selon ses cfc :

Ci

Cf

CnOn obtient un graphe sans circuit

37

Ck CeCa

Composantes fortement connexesComposantes fortement connexes

Réduction du graphe selon ses cfc :

Ci

Cf

Cn

On obtient un graphe sans circuit que l’on met en niveau

38

Composantes fortement connexesComposantes fortement connexes

a

b

c

h

g

d

a

b

h

g

d

cf j

r

u

v

t

nq

nq

l

o

p

mi

l

o

p

mi

kk

ee

s

CeCn CkCf

Ca

Ci

39

Composantes fortement connexesComposantes fortement connexes

Propriété : La relation binaire sur X définie par :

)()(

circuit mêmeun sur sont et ** yxxy

yxyxyx

est une relation d’équivalence.

Ses classes d’équivalence sont les composantes fortement connexes

40

Composantes fortement connexesComposantes fortement connexes

Définition : le graphe réduit selon les composantes fortement connexes est le graphe

),(:,),(et

,) eéquivalencd' classes des (ensemble

relationla par dequotient leest /

où ),,/(

baCbCaCCCC

XX

XG

yxyxyx

Propriété : le graphe réduit est sans circuit.

En effet, s’il avait un circuit axa CCC ,,,, Il y aurait un circuit traversant toutes ces composantes et donc elles

seraient confondues.

41

Composantes fortement connexesComposantes fortement connexes

Le nombre de composantes fortement connexes d’un graphe à n sommets

est au moins 1 et au plus n.

Questions :

1) Quelle propriété vérifie un graphe ayant n c.f.c. ?

2) Quelle est la fermeture transitive d’un graphe ayant 1 c.f.c. ?

42

Algorithmes de calcul des c.f.c.Algorithmes de calcul des c.f.c.

Ascendants descendants

Observation : x et y sont dans la même c.f.c.

y est ascendant et descendant de x

)()()(: xdescxascxcfcx Principe des algorithmes

Il existe kn tel que tout sommet de numéro k est classé Deux sommets classés dans la même classe appartiennent à la même c.f.c.

Invariant : tout sommet est classé ou non classé

43

Invariant : tout sommet est classé ou non classé

Il existe kn tel que tout sommet de numéro k est classé

Algorithmes de calcul des c.f.c.Algorithmes de calcul des c.f.c.)()()(: xdescxascxcfcx

Deux sommets classés dans la même classe appartiennent à la même c.f.c.

Arrêt : tous les sommets sont classés

Init : aucun sommet n’est classé

Progression : soit x le premier sommet non classé ;

calculer A= ensemble des ascendants de x D= ensemble des descendants de x

dans le sous-graphe engendré par les sommets non classés

Classer dans x.cfc les sommets de A D

44

Et donc x et y seraient aussi dans la même classe

Algorithmes de calcul des c.f.c.Algorithmes de calcul des c.f.c.

Progression : soit x le premier sommet non classé ;

calculer A= ensemble des ascendants de x D= ensemble des descendants de x

dans le sous-graphe engendré par les sommets non classés

Classer dans x.cfc les sommets de A D

x y

Si y est déjà classéz ne peut pas être dans la même classe que x

Sinon on aurait un chemin de z à x

z