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

44
1 Licence d’informatique Algorithmique 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

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

Page 1: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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.

Page 2: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 3: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 4: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 5: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 6: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

6

Recherche de numérotation conformeRecherche de numérotation conforme

a

j

g

m

n

i

f

e

od

lkc

hb

Page 7: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 8: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 9: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 10: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 11: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 12: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 13: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 14: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 15: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 16: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 17: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 18: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 19: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 20: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 21: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 22: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 23: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 24: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 25: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 26: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 27: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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é.

Page 28: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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’

Page 29: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 30: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 31: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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.

Page 32: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 33: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 34: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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 :

Page 35: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 36: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

36

Ck

Ce

Ca

Composantes fortement connexesComposantes fortement connexes

Réduction du graphe selon ses cfc :

Ci

Cf

CnOn obtient un graphe sans circuit

Page 37: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 38: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 39: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 40: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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.

Page 41: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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. ?

Page 42: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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é

Page 43: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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

Page 44: 1 Licence dinformatique Algorithmique des graphes Exploration de la descendance dun sommet : numérotation conforme, énumération de chemins élémentaires,

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