13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler...
-
Upload
celestin-baudoin -
Category
Documents
-
view
117 -
download
2
Transcript of 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler...
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
11
Cours de GraphesCours de Graphes
Marc GenglerMarc Gengler
[email protected]@esil.univmed.frd.fr
18h de cours18h de cours24h de TD24h de TD
… … et un et un examenexamen
Alexandra Bac - Marc Gengler Alexandra Bac - Marc Gengler Azeddine ZidouniAzeddine Zidouni
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
22
Définitions de baseDéfinitions de base ConnexitéConnexité Les plus courts cheminsLes plus courts chemins Floyd-Warshall, Dijkstra et Bellmann-Floyd-Warshall, Dijkstra et Bellmann-
FordFord ArbresArbres Arbres de recouvrement minimaux Arbres de recouvrement minimaux Problèmes de flots, Ford & FulkersonProblèmes de flots, Ford & Fulkerson Coloriage de graphesColoriage de graphes CouplageCouplage Chemins d’Euler et de HamiltonChemins d’Euler et de Hamilton Problèmes NP-completsProblèmes NP-complets
Les grandes lignes du coursLes grandes lignes du cours
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
33
BibliographieBibliographie
Tout ce qui contientTout ce qui contient graphes, graphs.graphes, graphs.
InternetInternet souvent, c’est très simplifié ou très dense,souvent, c’est très simplifié ou très dense, et pas toujours correct.et pas toujours correct.
Mes choixMes choix Introduction to Algorithms, Leiserson et al.Introduction to Algorithms, Leiserson et al. Algorithms, Sedgewick.Algorithms, Sedgewick. Fundamental Algorithms, Knuth.Fundamental Algorithms, Knuth. Graphes, Berge.Graphes, Berge. Wikipedia.Wikipedia.
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
44
L E SL E S
D E F I N I T I O N SD E F I N I T I O N S
D E B A S ED E B A S E
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
55
Il y a des sommets ! (vertex, vertices)Il y a des sommets ! (vertex, vertices)
Il y a des arêtes ( bi-directionelles ) ! Il y a des arêtes ( bi-directionelles ) ! (edge)(edge)
Il y a des arcs ( mono-directionnels ) ! Il y a des arcs ( mono-directionnels ) ! (arc)(arc)
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
66
Formellement :Formellement :
Il y a l’ensemble V des sommets.Il y a l’ensemble V des sommets. Il y en a | V | .Il y en a | V | . La complexité est fonction du nombre de sommets.La complexité est fonction du nombre de sommets.
Il yIl y a l’ensemble E des arcs et arêtes. a l’ensemble E des arcs et arêtes. C’est une partie du produit cartésien V x V .C’est une partie du produit cartésien V x V .
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
( a , b ) ( a , b ) E signifie que l’arc du E signifie que l’arc du
sommet a vers le sommet b existe.sommet a vers le sommet b existe.
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
77
Formellement :Formellement :
Il y a l’ensemble V des sommets.Il y a l’ensemble V des sommets. Il y en a | V | .Il y en a | V | . La complexité est fonction du nombre de sommets.La complexité est fonction du nombre de sommets.
Il yIl y a l’ensemble E des arcs et arêtes. a l’ensemble E des arcs et arêtes. C’est une partie du produit cartésien V x V .C’est une partie du produit cartésien V x V .
E peut être réflexifE peut être réflexif , irréflexif ou ni l’un, ni , irréflexif ou ni l’un, ni l’autre.l’autre.
E peut être symétrique , anti-symétrique ou ni E peut être symétrique , anti-symétrique ou ni -- ni.ni.
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
Graphe non orienté !Graphe non orienté ! Graphe orienté !Graphe orienté !
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
88
Formellement :Formellement :
Il y a l’ensemble V des sommets.Il y a l’ensemble V des sommets. Il y en a | V | .Il y en a | V | . La complexité est fonction du nombre de sommets.La complexité est fonction du nombre de sommets.
Il yIl y a l’ensemble E des arcs et arêtes. a l’ensemble E des arcs et arêtes. C’est une partie du produit cartésien V x V .C’est une partie du produit cartésien V x V .
E peut être réflexifE peut être réflexif , irréflexif ou ni l’un, ni l’autre. , irréflexif ou ni l’un, ni l’autre.
E peut êtreE peut être symétrique , anti-symétrique ou ni symétrique , anti-symétrique ou ni -- ni. ni.
E peut être transitif , ou non-transitif .E peut être transitif , ou non-transitif .
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
99
Un graphe G est défini commeUn graphe G est défini comme
G = ( V , E )G = ( V , E ) où V est un ensemble de sommets et E un où V est un ensemble de sommets et E un
ensemble d’arcs entre ces sommets.ensemble d’arcs entre ces sommets.
Il y a des multi-graphes qui sont correspondent au Il y a des multi-graphes qui sont correspondent au cas où E est un multi-ensemble (plusieurs arêtes cas où E est un multi-ensemble (plusieurs arêtes et/ou arcs entre deux sommets).et/ou arcs entre deux sommets).
Il y a des graphes pondérés qui correspondent au Il y a des graphes pondérés qui correspondent au fait l’on attache des poids aux arcs ou arêtes fait l’on attache des poids aux arcs ou arêtes (entiers par exemple).(entiers par exemple).
1212
15152525
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1010
Sous-graphe G’ d’un graphe G :Sous-graphe G’ d’un graphe G :
Le graphe G’ = ( V’ , E’ ) est un sous-grapheLe graphe G’ = ( V’ , E’ ) est un sous-graphe
du graphe G = ( V , E ) , si :du graphe G = ( V , E ) , si :
•V’ VV’ V
• E’ E V’ x V’E’ E V’ x V’
UUUU
vv
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
Les sommets de G’ sont parmi ceux de G .Les sommets de G’ sont parmi ceux de G .
Les arcs et arêtes de G’ sontLes arcs et arêtes de G’ sontparmi ceux et celles de G etparmi ceux et celles de G et
se limitent aux sommets de G’ .se limitent aux sommets de G’ .
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1111
Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1212
R E P R E S E N T A T I O NR E P R E S E N T A T I O N
D E SD E S
G R A P H E SG R A P H E S
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1313
Représentation des données :Représentation des données :
Nous indexons (numérotons) les sommets.Nous indexons (numérotons) les sommets.
Nous représentons les arcs et les arêtes.Nous représentons les arcs et les arêtes.
Nous obtenons une matrice M de taille n x Nous obtenons une matrice M de taille n x n qui comporte des valeurs binaires.n qui comporte des valeurs binaires.
M ( a , b ) est vrai si et seulement si l’arc M ( a , b ) est vrai si et seulement si l’arc ( a , b ) existe !( a , b ) existe !
Représentation des graphesReprésentation des graphes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1414
11
22
44
3355
66
11
22
33
44
55
66
11 22 33 44 55 66
L’existence ou nonL’existence ou nonde l’arc ( 2 , 5 ) ! ! !de l’arc ( 2 , 5 ) ! ! !
DEPUISDEPUIS
VERSVERS
Représentation des graphesReprésentation des graphes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1515
11
22
33
44
55
66
11 22 33 44 55 66
V
F
F
F
F
F
V
V
V
V
V
V
V
V
F F
F F F
F F
F F
F FF F
F F
F F
F F
FF
F
44
44
55
11 22 33
33
33 66
Il fautIl faut( ( | V || V | + + | E || E | ) * ) * log( | V | )log( | V | )bits !bits !
Parfois, le graphe est peu dense !Parfois, le graphe est peu dense !
Nous mémorisons juste les indicesNous mémorisons juste les indicesdes colonnes différentes de Faux !des colonnes différentes de Faux !
Un tableauUn tableaude listes !de listes !
Représentation des graphesReprésentation des graphes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1616
11
22
33
44
55
66
11 22 33 44 55 66
V
F
F
F
F
FLes voisins d’un sommet « u » :Les voisins d’un sommet « u » :
Les voisins sortants : V+ ( u )Les voisins sortants : V+ ( u )
Les voisins entrants : VLes voisins entrants : V-- ( u ) ( u )
V
V
V
V
V
V
V+ ( u ) = { v V+ ( u ) = { v V | ( u , v ) V | ( u , v ) E } E }
VV-- ( u ) = { v ( u ) = { v V | ( v , u ) V | ( v , u ) E } E }
V
V
F F
F F F
F F
F F
F FF F
F F
F F
F F
FF
F
Si le graphe est symétrique :Si le graphe est symétrique :
V ( u ) = V+ ( u ) = VV ( u ) = V+ ( u ) = V-- ( u ) ( u )
VV-- ( 3 ) = { 4 , 5 , 6 } ( 3 ) = { 4 , 5 , 6 }
V+ ( 4 ) = { 1 , 2 , 3 }V+ ( 4 ) = { 1 , 2 , 3 }
Représentation des graphesReprésentation des graphes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1717
11
22
33
44
55
66
11 22 33 44 55 66
V
F
F
F
F
FLe degré d’un sommet « u » :Le degré d’un sommet « u » :
Le degré sortant : D+ ( u )Le degré sortant : D+ ( u )
Le degré entrant : DLe degré entrant : D-- ( u ) ( u )
V
V
V
V
V
V
D+ ( u ) = | V+ ( u ) |D+ ( u ) = | V+ ( u ) |
DD-- ( u ) = | V ( u ) = | V-- ( u ) | ( u ) |
V
V
F F
F F F
F F
F F
F FF F
F F
F F
F F
FF
F
Si le graphe est symétrique :Si le graphe est symétrique :
D ( u ) = D+ ( u ) = DD ( u ) = D+ ( u ) = D-- ( u ) ( u )
Le degré d’un graphe G = ( V , E ) :Le degré d’un graphe G = ( V , E ) :
D( G ) = D( G ) = maxmax { D ( u ) } { D ( u ) }u u V V
Représentation des graphesReprésentation des graphes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1818
L E SL E S
C H E M I N SC H E M I N S
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
1919
Les chemins :Les chemins :
Un chemin de longueur n , de u vers v est :Un chemin de longueur n , de u vers v est :
telle quetelle que
u = w et v = wu = w et v = w
( w , w ) est une arête ou un arc, pour tout i .( w , w ) est une arête ou un arc, pour tout i .
Le chemin est orienté s’il comporte des arcs, non orienté Le chemin est orienté s’il comporte des arcs, non orienté s’il est fait d’arêtes uniquement.s’il est fait d’arêtes uniquement.
Le chemin ( u ; u ) , de u à lui-même, existe toujours !Le chemin ( u ; u ) , de u à lui-même, existe toujours !
11 n+1n+1
ii i+1i+1
11
Les cheminsLes chemins------------------------------------------------------------------------------------------------------------------------------
----
( w , . . . , w )( w , . . . , w )
n+1n+1
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2020
Notations et propriétés sur les chemins :Notations et propriétés sur les chemins :
Nous noterons ( c’est non standard ) :Nous noterons ( c’est non standard ) :
( u , v ) l’arête ou l’arc, i.e. le chemin de longueur ( u , v ) l’arête ou l’arc, i.e. le chemin de longueur 1 .1 .
( u ; v ) le chemin de longueur quelconque.( u ; v ) le chemin de longueur quelconque.
Pour tout chemin non orienté ( u ; v ) du graphe G , Pour tout chemin non orienté ( u ; v ) du graphe G , nous pouvons construire le chemin ( v ; u ) dans G .nous pouvons construire le chemin ( v ; u ) dans G .
Les cheminsLes chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2121
Preuve ( induction sur la longueur du chemin ) :Preuve ( induction sur la longueur du chemin ) :
Si u et v sont voisins,Si u et v sont voisins,
le chemin ( u ; v ) est en fait l’arête ( u , v )le chemin ( u ; v ) est en fait l’arête ( u , v )
et le chemin ( v ; u ) sera l’arête ( v , u ) .et le chemin ( v ; u ) sera l’arête ( v , u ) .
Si u et v ne sont pas voisins,Si u et v ne sont pas voisins,
le chemin ( u ; v ) est une arête ( u , t ) suivie de ( t ; v ) le chemin ( u ; v ) est une arête ( u , t ) suivie de ( t ; v )
par induction sur la longueur, le chemin ( v ; t ) existe,par induction sur la longueur, le chemin ( v ; t ) existe,
( v ; u ) est la concaténation de ( v ; t ) et l’arête ( t , u )( v ; u ) est la concaténation de ( v ; t ) et l’arête ( t , u ) . .
Les cheminsLes chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2222
Notations et propriétés sur les chemins :Notations et propriétés sur les chemins :
Nous noterons ( c’est non standard ) :Nous noterons ( c’est non standard ) :
( u , v ) l’arête ou l’arc, i.e. le chemin de longueur ( u , v ) l’arête ou l’arc, i.e. le chemin de longueur 1 .1 .
( u ; v ) le chemin de longueur quelconque.( u ; v ) le chemin de longueur quelconque.
Pour tout chemin non orienté ( u ; v ) du graphe G , Pour tout chemin non orienté ( u ; v ) du graphe G , nous pouvons construire le chemin ( v ; u ) dans G .nous pouvons construire le chemin ( v ; u ) dans G .
Dans un graphe G , l’existence du chemin orienté Dans un graphe G , l’existence du chemin orienté ( u ; v ) n’implique pas l’existence d’un chemin de ( u ; v ) n’implique pas l’existence d’un chemin de retour ( v ; u ) .retour ( v ; u ) .
Les cheminsLes chemins------------------------------------------------------------------------------------------------------------------------------
----
u v
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2323
Cycles et circuits :Cycles et circuits :
Un cycle est un chemin non orienté ( u ; v ) Un cycle est un chemin non orienté ( u ; v ) pour lequel u coïncide avec v .pour lequel u coïncide avec v .
Un circuit est un chemin orienté ( w ; t ) pour Un circuit est un chemin orienté ( w ; t ) pour lequel w coïncide avec t .lequel w coïncide avec t .
u = vu = v
Les cheminsLes chemins------------------------------------------------------------------------------------------------------------------------------
----
w = tw = t
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2424
Chemins simples :Chemins simples :
Un chemin ( u ; v ) , avec u différent de v , est Un chemin ( u ; v ) , avec u différent de v , est simplesimple si et seulement si aucun sommet n’est si et seulement si aucun sommet n’est répété dans la séquence :répété dans la séquence :
( u , . . . , v )( u , . . . , v )
uu
tt
Chemin simple ( u ; v )Chemin simple ( u ; v )
vv
ww
Chemin nonChemin nonsimple ( w ; t )simple ( w ; t )
Les cheminsLes chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2525
L E M M EL E M M E
D ED E
K Ö N I GK Ö N I G
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2626
Lemme de König :Lemme de König :
De tout chemin non simple ( u ; v ) , nous De tout chemin non simple ( u ; v ) , nous pouvons extraire un chemin de u vers v qui est pouvons extraire un chemin de u vers v qui est simplesimple et et plus courtplus court que le chemin initial. que le chemin initial.
( u , . . . , w ,( u , . . . , w , . . . , w , . . . , w , t , . . . , v )t , . . . , v )
uu
vvww
tt
Lemme de KönigLemme de König------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2727
Lemme de König :Lemme de König :
De tout chemin non simple ( u ; v ) , nous De tout chemin non simple ( u ; v ) , nous pouvons extraire un chemin de u vers v qui est pouvons extraire un chemin de u vers v qui est simplesimple et et plus courtplus court que le chemin initial. que le chemin initial.
( u , . . . ,( u , . . . , w ,w , . . . , w , . . . , w , t , . . . , v )t , . . . , v )
uu
vvww
tt
Lemme de KönigLemme de König------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2828
Tout cycle ou circuit estTout cycle ou circuit est
soit, un cycle ou circuit soit, un cycle ou circuit élémentaireélémentaire, c’est-à-, c’est-à-dire devient un chemin simple si l’on en enlève dire devient un chemin simple si l’on en enlève une arête ou un arc,une arête ou un arc,
soit, une réunion de cycles et/ou circuits soit, une réunion de cycles et/ou circuits élémentaires.élémentaires.
Lemme de KönigLemme de König------------------------------------------------------------------------------------------------------------------------------
----
Cycle élémentaire :Réunion de cyclesélémentaires :
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
2929
L E SL E S
C O M P O S A N T E SC O M P O S A N T E S
C O N N E X E SC O N N E X E S
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3030
11
22
33
44
55
66
11 22 33 44 55 66
V
F
F
F
F
F
V
V
V
V
V
V
V
V
F F
F F F
F F
F F
F FF F
F F
F F
F F
FF
F
La composante connexe de u :La composante connexe de u :
La composante sortante : C+ ( u )La composante sortante : C+ ( u )
La composante entrante : CLa composante entrante : C-- ( u ) ( u )
C+ ( u ) = { v C+ ( u ) = { v V | ( u ; v ) existe } V | ( u ; v ) existe }
CC-- ( u ) = { v ( u ) = { v V | ( v ; u ) existe } V | ( v ; u ) existe }
Si G est symétrique : C ( u ) = C+ ( u ) = CSi G est symétrique : C ( u ) = C+ ( u ) = C-- ( u ) ( u )
C+ ( 4 ) = { 1 , 2 , 3 , 4 , 5 }C+ ( 4 ) = { 1 , 2 , 3 , 4 , 5 }
CC-- ( 4 ) = { 1 , 2 , 4 } ( 4 ) = { 1 , 2 , 4 }
11
22
44
3355
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
66
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3131
Pour un graphe non orienté :Pour un graphe non orienté :
La composante connexe de u est :La composante connexe de u est :
réflexive, vous pouvez rester où vous êtes !réflexive, vous pouvez rester où vous êtes !
symétrique, les chemins de retour existent !symétrique, les chemins de retour existent !
transitive, vous pouvez concaténer des chemins !transitive, vous pouvez concaténer des chemins !
Une composante connexe est une classe Une composante connexe est une classe d’équivalence !d’équivalence !
Un graphe non orienté est partitionné en ses Un graphe non orienté est partitionné en ses classes d’équivalence !classes d’équivalence !
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3232
11
22
44
3355
66
11
22
33
44
55
66
11 22 33 44 55 66
V
V
V
V
V
V
VF F
F F F
F F
F F
F FF F
F F
F F
F F
FF
F
F
F
Nous partons d’uneNous partons d’unerelation symétrique !relation symétrique !
Nous fermons réflexivement !Nous fermons réflexivement !
La fermeture réflexive d’uneLa fermeture réflexive d’unerelation R est la plus petiterelation R est la plus petiterelation réflexive qui contienne R .relation réflexive qui contienne R .
V
V
V
V
V
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3333
11
22
44
3355
66
11
22
33
44
55
66
11 22 33 44 55 66
V
V
V
V
V
V
VF
F F F
F F
F F
F FF F
F F
F F
F F
FF
F
F
Nous partons d’uneNous partons d’unerelation symétrique !relation symétrique !
V
V
V
V
V
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
La fermeture transitive d’uneLa fermeture transitive d’unerelation R est la plus petiterelation R est la plus petiterelation transitive qui contienne R .relation transitive qui contienne R .
Nous fermons transitivement !Nous fermons transitivement !
V
V
Nous fermons réflexivement !Nous fermons réflexivement !
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3434
11
22
33
44
55
66
11 22 33 44 55 66
V
V
V
V
V
V
V F
F F F
F F
F
F
F FF F
F F
F F
F F
FF
F
F
Nous partons d’uneNous partons d’unerelation symétrique !relation symétrique !
Nous fermons réflexivement !Nous fermons réflexivement !
V
V
V
V
V
Nous fermons transitivement !Nous fermons transitivement !
V
V
Si nous renumérotons !Si nous renumérotons !
11
22
33
4455
66
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3535
Un principe de décomposition :Un principe de décomposition :
Souvent, le traitement appliqué à un graphe non Souvent, le traitement appliqué à un graphe non connexeconnexe
consiste à appliquer ce même traitement consiste à appliquer ce même traitement indépendammentindépendamment
sur chacune des composantes connexes !sur chacune des composantes connexes !
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3636
P O U R U NP O U R U N
G R A P H EG R A P H E
O R I E N T E . . .O R I E N T E . . .
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3737
Pour un graphe orienté :Pour un graphe orienté :
Un sous-ensemble X des sommets d’un graphe orienté est Un sous-ensemble X des sommets d’un graphe orienté est fortement connexefortement connexe si nous pouvons aller de n’importe quel si nous pouvons aller de n’importe quel sommet vers n’importe quel autre sommet.sommet vers n’importe quel autre sommet.
Proposition :Proposition :
Une composante est fortementUne composante est fortement connexe si et seulement si chaqueconnexe si et seulement si chaque sommet se trouve sur un circuit.sommet se trouve sur un circuit.
Preuve :Preuve : => : Si ( u ; v ) existe, alors ( v ; u ) existe et ( u ; v ; u ) .=> : Si ( u ; v ) existe, alors ( v ; u ) existe et ( u ; v ; u ) . <= : Soit ( u ; v ) de la forme ( u ; w ; v ).<= : Soit ( u ; v ) de la forme ( u ; w ; v ). Pour w bien choisi, le circuit ( w ; v ; w ) existe !Pour w bien choisi, le circuit ( w ; v ; w ) existe ! Nous recommençons le raisonnement pour ( u ; w ).Nous recommençons le raisonnement pour ( u ; w ).
uu vvww
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3838
Les composantes connexesLes composantes connexes------------------------------------------------------------------------------------------------------------------------------
----
Composantefortementconnexe !
Pour un graphe orienté :Pour un graphe orienté :
Un graphe orienté est Un graphe orienté est quasi-fortement connexequasi-fortement connexe s’il s’il existe un sommet depuis lequel nous pouvons existe un sommet depuis lequel nous pouvons atteindre tous les autres sommets. Un tel sommet atteindre tous les autres sommets. Un tel sommet sera appelé sera appelé racineracine..
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
3939
D I S T A N C E S ,D I S T A N C E S ,
D I A M E T R E ,D I A M E T R E ,
. . .. . .
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4040
Distances et diamètre :Distances et diamètre :
La distance d ( u , v ) entre un sommet u et un La distance d ( u , v ) entre un sommet u et un sommet v est :sommet v est :
la longueur du plus court chemin (forcément la longueur du plus court chemin (forcément simple) de u vers v , si celui-ci existe,simple) de u vers v , si celui-ci existe,
infini, sinon.infini, sinon.
Le diamètre d’un graphe connexe est la distance Le diamètre d’un graphe connexe est la distance entre ses sommets les plus éloignés :entre ses sommets les plus éloignés :
( G ) = ( G ) = maxmax { d ( u , v ) } { d ( u , v ) }
u , v u , v V V
Distances, diamètre, . . .Distances, diamètre, . . .------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4141
Ecarts, centre et diamètre :Ecarts, centre et diamètre :
L’écart e ( u ) d’un sommet u d’un graphe connexe L’écart e ( u ) d’un sommet u d’un graphe connexe est :est :
la distance vers le sommet v le plus loin de u :la distance vers le sommet v le plus loin de u :
e ( u ) =e ( u ) = maxmax { d ( u , v ) } { d ( u , v ) }
Un sommet u est au centre de G siUn sommet u est au centre de G si
e ( u ) =e ( u ) = minmin { e ( v ) } { e ( v ) }
( G ) = ( G ) = maxmax { e ( v ) } { e ( v ) }
v v V V
v v V V
v v V V
Distances, diamètre, . . .Distances, diamètre, . . .------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4242
Lemme des plus courts chemins :Lemme des plus courts chemins :
Si le plus court chemin de u vers v passe par w ,Si le plus court chemin de u vers v passe par w ,
alors sa partie préfixe de u vers w est aussi le plusalors sa partie préfixe de u vers w est aussi le plus
court chemin de u vers w .court chemin de u vers w .
uu vvww
Le plus court chemin de u à v !Le plus court chemin de u à v !
Le plus court chemin de u à w !Le plus court chemin de u à w !
Distances, diamètre, . . .Distances, diamètre, . . .------------------------------------------------------------------------------------------------------------------------------
----
Le raisonnement est par l’absurde :Le raisonnement est par l’absurde :S’il y avait plus court pour aller de u à w , il yS’il y avait plus court pour aller de u à w , il yaurait aussi plus court pour aller de u à v !aurait aussi plus court pour aller de u à v !
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4343
Poids d’un chemin :Poids d’un chemin :
Dans un graphe pondéré, le poids d’un chemin est la Dans un graphe pondéré, le poids d’un chemin est la somme des poids de ses arcs et arêtes.somme des poids de ses arcs et arêtes.
Nous pouvons alors, de manière évidente, définir le Nous pouvons alors, de manière évidente, définir le chemin le plus léger de u vers v .chemin le plus léger de u vers v .
Le chemin le plus léger (poids) ne coïncide pas Le chemin le plus léger (poids) ne coïncide pas forcément avec le chemin le plus court (nombre d’arcs forcément avec le chemin le plus court (nombre d’arcs et arêtes).et arêtes).
Le plus court chemin correspond au chemin le plus Le plus court chemin correspond au chemin le plus léger avec des poids qui valent tous unité.léger avec des poids qui valent tous unité.
Les poids ne vérifient pas forcément l’inégalité Les poids ne vérifient pas forcément l’inégalité triangulaire !triangulaire ! 2525
1010 1212
Distances, diamètre, . . .Distances, diamètre, . . .------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4444
N O SN O S
P R E M I E R SP R E M I E R S
A L G O R I T H M E SA L G O R I T H M E S
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4545
Sur un graphe non orienté, nous allons calculer :Sur un graphe non orienté, nous allons calculer :
les composantes connexes !les composantes connexes !
Sur une composante connexe, nous allons calculer :Sur une composante connexe, nous allons calculer :
les plus courts chemins ! les plus courts chemins !
Nous rajoutons une pondération strictement Nous rajoutons une pondération strictement positive et nous allons calculer :positive et nous allons calculer :
les chemins les plus légers ! les chemins les plus légers !
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4646
Nous utilisons trois algorithmes :Nous utilisons trois algorithmes :
un algorithme par vague, c’est un parcours en largeur,un algorithme par vague, c’est un parcours en largeur,
un algorithme par multiplication de matrices,un algorithme par multiplication de matrices,
l’algorithme de programmation dynamique Floyd-Warshall. l’algorithme de programmation dynamique Floyd-Warshall.
Pour chacun d’entre eux, il s’agit de savoirPour chacun d’entre eux, il s’agit de savoir
s’il arrive à résoudre le problème en questions’il arrive à résoudre le problème en question
et quelle est la complexité du calcul ?et quelle est la complexité du calcul ?
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4747
L AL A
V A G U EV A G U E
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4848
L’algorithme par vague :L’algorithme par vague :
Nous choisissons un sommet sec et le mouillons, Nous choisissons un sommet sec et le mouillons, nous mouillons ses voisins,nous mouillons ses voisins, nous mouillons les voisins des voisins , . . .nous mouillons les voisins des voisins , . . .
Attention, dans un graphe il peut y avoir des cycles ! ! !Attention, dans un graphe il peut y avoir des cycles ! ! !
Il faut éviter de tourner en rond !Il faut éviter de tourner en rond ! Ici, nous ne faisons rien pour un sommet déjà mouillé !Ici, nous ne faisons rien pour un sommet déjà mouillé !
A l’issu de ce calculA l’issu de ce calcul
nous avons déterminé une composante connexenous avons déterminé une composante connexe et nous recommençons sur l’éventuel reste du graphe !et nous recommençons sur l’éventuel reste du graphe !
Complexité : Complexité : ( | E | ) = O ( | E | ) = O( | V |^2 )( | V |^2 )
Chaque arête est visitée une et une seule fois !Chaque arête est visitée une et une seule fois !
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
4949
ConnexitéConnexité
Plus courtsPlus courts
Plus légersPlus légers
La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-Warshall
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
( | E | ) =( | E | ) = O ( | V |^2 )O ( | V |^2 )
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5050
L AL A
M U L T I P L I C A T I O NM U L T I P L I C A T I O N
D ED E
M A T R I C E SM A T R I C E S
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5151
La multiplication de matrices :La multiplication de matrices :
Nous prenons une matrice avec des 0 et des 1 ,Nous prenons une matrice avec des 0 et des 1 , nous la fermons réflexivement (des 1 sur la diagonale),nous la fermons réflexivement (des 1 sur la diagonale), nous effectuons le calcul suivant :nous effectuons le calcul suivant :
M * M’ ( i , j ) = M * M’ ( i , j ) = maxmax M ( i , k ) * M’ ( k , j ) M ( i , k ) * M’ ( k , j )
Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .
Propriété : M^( 2 * i ) = M^i * M^i comporte tous les chemins de Propriété : M^( 2 * i ) = M^i * M^i comporte tous les chemins de longueur au plus 2 * i .longueur au plus 2 * i .
Il suffit de calculer M^k avec k >= | V | Il suffit de calculer M^k avec k >= | V | - - 1 = n 1 = n - - 1 (le plus long 1 (le plus long chemin possible et donc tous les chemins) !chemin possible et donc tous les chemins) !
Il suffit de O ( log( | V | ) ) élévations au carré !Il suffit de O ( log( | V | ) ) élévations au carré !
kk
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5252
Preuve de la propriété :Preuve de la propriété :
La matrice M fermée réflexivement contient tous les chemins de La matrice M fermée réflexivement contient tous les chemins de longueur 0 ou 1.longueur 0 ou 1.
Hypothèse d’induction : M^i contient tous les chemins de longueur au Hypothèse d’induction : M^i contient tous les chemins de longueur au plus i . plus i .
M^( 2 * i ) ( u , v ) = 1M^( 2 * i ) ( u , v ) = 1
max_k M^i ( u , k ) * M^i ( k , v ) = 1max_k M^i ( u , k ) * M^i ( k , v ) = 1
w tel que M^i ( u , w ) * M^i ( w , v ) = 1w tel que M^i ( u , w ) * M^i ( w , v ) = 1
M^i ( u , w ) = 1 et M^i ( w , v ) = 1M^i ( u , w ) = 1 et M^i ( w , v ) = 1
des chemins ( u ; w ) et ( w ; v ) , de longueur au plus i .des chemins ( u ; w ) et ( w ; v ) , de longueur au plus i .
un chemin ( u ; v ) de longueur au plus 2 * i .un chemin ( u ; v ) de longueur au plus 2 * i . En effet, il suffit de prendre le chemin ( u ; w ; v ) .En effet, il suffit de prendre le chemin ( u ; w ; v ) .
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5353
ConnexitéConnexité
Plus courtsPlus courts
Plus légersPlus légers
La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-Warshall
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
( | E | ) =( | E | ) = O ( | V |^2 )O ( | V |^2 )
( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) )
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5454
L ’ A L G O R I T H M EL ’ A L G O R I T H M E
D ED E
F L O Y D - W A R S H A L LF L O Y D - W A R S H A L L
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5555
La multiplication recalcule de façon répétée les chemins courts. La multiplication recalcule de façon répétée les chemins courts. Si M^i ( u , v ) = 1 , alorsSi M^i ( u , v ) = 1 , alors
M^( 2 * i ) ( u , v ) = max_k M^i ( u , k ) * M^i ( k , v )M^( 2 * i ) ( u , v ) = max_k M^i ( u , k ) * M^i ( k , v )
= M^i ( u , u ) * M^i ( u , v )= M^i ( u , u ) * M^i ( u , v )
= M^i ( u , v ) = 1= M^i ( u , v ) = 1
Floyd-Warshall numérote les sommets de 1 à n et :Floyd-Warshall numérote les sommets de 1 à n et :
à l’étape (1) , ne calcule que les chemins dont les à l’étape (1) , ne calcule que les chemins dont les intermédiaires sont dans l’ensemble { 1 } ,intermédiaires sont dans l’ensemble { 1 } ,
à l’étape (2) , ne calcule que les chemins dont les à l’étape (2) , ne calcule que les chemins dont les intermédiaires sont dans l’ensemble { 1 , 2 } , en ajoutant les intermédiaires sont dans l’ensemble { 1 , 2 } , en ajoutant les chemins qui passent par le sommet 2 ,chemins qui passent par le sommet 2 ,
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5656
L ’ A L G O R I T H M EL ’ A L G O R I T H M E
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5757
M est donnée, elle comporte tous les chemins avec M est donnée, elle comporte tous les chemins avec des intermédiaires parmi { 1 , . . . , kdes intermédiaires parmi { 1 , . . . , k--1 } .1 } .
M ( u , v ) est un chemin de u vers v avec des M ( u , v ) est un chemin de u vers v avec des intermédiaires parmi { 1 , . . . , k } . intermédiaires parmi { 1 , . . . , k } .
Soit le Soit le sommet k figuresommet k figure dans ce chemin, soit dans ce chemin, soit il ne le il ne le fait pasfait pas..
((k-1k-1))
(k)(k)
/ k/ k
(k(k--1)1) (k(k--1)1)
}}
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
/ k/ k}}Une opération
de maximisation !
M ( u , v ) = M ( u , v )M ( u , v ) = M ( u , v )(k)(k) (k(k--1)1)u u -- . . . . . . -- k k -- . . . . . . -- v v
M ( u , k )M ( u , k )M ( u , k )M ( u , k )
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5858
M est la matrice d’adjacence, fermée M est la matrice d’adjacence, fermée réflexivement. Elle comporte des 0 et des 1 .réflexivement. Elle comporte des 0 et des 1 .
M ( u , v ) = M ( u , v ) = maxmax ( , ( ,
))
(0)(0)
M ( u , k ) * M ( k , v )M ( u , k ) * M ( k , v )(k(k--1)1)
M ( u , v )M ( u , v )(k(k--1)1)
(k(k--1)1)
(k)(k)
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
Le chemin de u vers vLe chemin de u vers vexiste déjà au niveau k-1 !existe déjà au niveau k-1 !
Le chemin de u vers vLe chemin de u vers vest nouveau et passe parest nouveau et passe parle sommet k !le sommet k !On ne recalcule rien !On ne recalcule rien !
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
5959
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
Pour k de 1 a | V |Pour k de 1 a | V |
Pour u de 1 a | V |Pour u de 1 a | V |
Pour v de 1 a | V |Pour v de 1 a | V |
M_k ( u , v ) <- . . .M_k ( u , v ) <- . . .
Complexité : Complexité : ( | V |^3 ) ( | V |^3 )
M est la matrice d’adjacence, fermée M est la matrice d’adjacence, fermée réflexivement. Elle comporte des 0 et des 1 .réflexivement. Elle comporte des 0 et des 1 .
M ( u , v ) = M ( u , v ) = maxmax ( , ( ,
))
M est la matrice recherchée, ou n est | V | !M est la matrice recherchée, ou n est | V | !
(0)(0)
(n)(n)M ( u , k ) * M ( k , v )M ( u , k ) * M ( k , v )(k(k--1)1)
M ( u , v )M ( u , v )(k(k--1)1)
(k(k--1)1)
(k)(k)
13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet
6060
ConnexitéConnexité
Plus courtsPlus courts
Plus légersPlus légers
La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-Warshall
Connexité & plus courts cheminsConnexité & plus courts chemins------------------------------------------------------------------------------------------------------------------------------
----
( | E | ) =( | E | ) = O ( | V |^2 )O ( | V |^2 )
( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) )
( | V |^3 )( | V |^3 )