Upload
otes-jardin
View
116
Download
0
Embed Size (px)
Citation preview
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