13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler...

60
13 février 2008 13 février 2008 Cours de graphes 1 - Intr Cours de graphes 1 - Intr anet anet 1 Cours de Graphes Cours de Graphes Marc Gengler Marc Gengler [email protected] [email protected] .fr .fr 18h de cours 18h de cours 24h de TD 24h de TD et un et un examen examen Alexandra Bac - Marc Gengler Alexandra Bac - Marc Gengler Azeddine Zidouni Azeddine Zidouni

Transcript of 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler...

Page 1: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 2: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 3: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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.

Page 4: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 5: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 6: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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.

Page 7: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 8: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 9: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 10: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 11: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

13 février 200813 février 2008 Cours de graphes 1 - IntraCours de graphes 1 - Intranetnet

1111

Définitions de baseDéfinitions de base------------------------------------------------------------------------------------------------------------------------------

----

Page 12: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 13: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 14: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 15: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 16: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 17: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 18: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 19: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 20: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 21: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 22: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 23: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 24: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 25: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 26: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 27: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 28: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 :

Page 29: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 30: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 31: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 32: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 33: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 !

Page 34: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 35: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 36: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 37: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 38: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 39: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 ,

. . .. . .

Page 40: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 41: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 42: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 !

Page 43: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 44: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 45: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 46: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 47: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 48: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 49: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 )

Page 50: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 51: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 52: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 53: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 | ) )

Page 54: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 55: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

----

Page 56: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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

Page 57: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 )

Page 58: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 !

Page 59: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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)

Page 60: 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Alexandra.

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 )