St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler [email protected] Cours de...

60
St Valentin 2006 Cours de graphes 1 - Intranet 1 Marc Gengler [email protected] mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours 12h de TD des devoirs … et un examen

Transcript of St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler [email protected] Cours de...

Page 1: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 1

• Marc Gengler• [email protected]

Cours de graphes

Alexandra Bac - Sébastien Fournier

12h de cours12h de TDdes devoirs

… et un examen

Page 2: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 2

Bibliographie

•Tout ce qui contient- graphes, graphs.•Internet- souvent, c’est trop simplifié ou trop dense,- et pas toujours correct.•Mes choix- Introduction to Algorithms, Leiserson et al.- Algorithms, Sedgewick.- Fundamental Algorithms, Knuth.- Graphes, Berge.

Page 3: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 3

Les grandes lignes du cours

•Définitions de base•Connexité•Les plus courts chemins•Dijkstra et Bellmann-Ford•Arbres•Arbres de recouvrement minimaux •Problèmes de flots•Coloriage de graphes•Couplage•Chemins d’Euler et de Hamilton•Problèmes NP-complets

Page 4: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 4

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

• Il y a des sommets ! (vertex, vertices)

• Il y a des arêtes ! (edge)

• Il y a des arcs ! (arc)

Page 5: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 5

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

• Formellement :

• Il y a l’ensemble « V » des sommets.– Il y en a « n », c’est-à-dire | V | .– La complexité est fonction du nombre de sommets.

• Il y a l’ensemble « E » des arcs et arêtes.– C’est une partie du produit cartésien V x V .

– « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre.

Tous des couples ( a , a ) ! Aucun couple ( a , a ) !

Page 6: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 6

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

( a , b ) ssi ( b , a ) !Si ( a , b ) avec a = b alors pas ( b , a ) !/

• Formellement :

• Il y a l’ensemble « V » des sommets.– Il y en a « n », c’est-à-dire | V | .– La complexité est fonction du nombre de sommets.

• Il y a l’ensemble « E » des arcs et arêtes.– C’est une partie du produit cartésien V x V .

– « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre.

– « E » peut être symétrique, anti-symétrique ou ni - ni.

Page 7: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 7

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

• Formellement :

• Il y a l’ensemble « V » des sommets.– Il y en a « n », c’est-à-dire | V | .– La complexité est fonction du nombre de sommets.

• Il y a l’ensemble « E » des arcs et arêtes.– C’est une partie du produit cartésien V x V .

– « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre.

– « E » peut être symétrique, anti-symétrique ou ni - ni.

Graphe non orienté ! Graphe orienté !

Page 8: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 8

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

Si ( a , b ) et ( b , c ) alors (a , c ) !

• Formellement :

• Il y a l’ensemble « V » des sommets.– Il y en a « n », c’est-à-dire | V | .– La complexité est fonction du nombre de sommets.

• Il y a l’ensemble « E » des arcs et arêtes.– C’est une partie du produit cartésien V x V .

– « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre.

– « E » peut être symétrique, anti-symétrique ou ni - ni.

– « E » peut être transitive, ou non-transitive.

Page 9: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 9

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

• Formellement :

– G = ( V , E )– Un graphe est donné par les ensembles « V » et « E ».

• Il y a des multi-graphes qui sont correspondent au cas où « E » est un multi-ensemble (plusieurs arêtes et/ou arcs entre deux sommets).

• Il y a des graphes pondérés qui correspondent au fait l’on attache des poids aux arcs ou arêtes (entiers par exemple).

12

1525

Page 10: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 10

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

• Sous-graphe G’ d’un graphe G :

– Le graphe G’ = ( V’ , E’ ) est un sous-graphe du graphe G = ( V , E ) , si :

• V’ V les sommets de G’ sont parmi ceux de G

• E’ E V’ x V’ les arcs et arêtes de G’ sont parmi ceux et celles de G et se limitent aux sommets de G’.

UU

v

Page 11: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 11

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

• Représentation des données :

• Nous indexons (numérotons) les sommets.

• Nous représentons les arcs et les arêtes.

• Nous obtenons une matrice « M » de taille n x n qui comporte des valeurs binaires.

• M( a , b ) est vrai si et seulement si l’arc ( a , b ) existe !

Page 12: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 12

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

L’existence ou nonde l’arc ( 2 , 5 ) ! ! !

Page 13: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 13

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

V

F

F

F

F

F

V

V

V

V

Les arêtes ( 2 , 4 ) et ( 3 , 5 )sont symétriques !

V

V

Les arcs ( 1 , 4 ) et ( 4 , 1 )donnent aussi une symétrie !

V

V

Les arcs ( 4 , 3 ) et ( 6 , 3 ) n’ontpas leur pendant symétrique ! ! !

Il faut n^2 bits !

F F

F F F

F F

F F

F FF F

F F

F F

F F

FF

F

La diagonale parle des couples ( u , u ) !

Page 14: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 14

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

V

F

F

F

F

FPour des multi-graphes, nousremplaçons les booléens pardes multiplicités !V

V

V

V

V

V

Pour des graphes pondérés,nous remplaçons les booléenspar des poids !

V

V

F F

F F F

F F

F F

F FF F

F F

F F

F F

FF

F

Page 15: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 15

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

1

2

3

4

5

6

1 2 3 4 5 6

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

4

4

5

1 2 3

3

3 6

Il faut( | V | + | E | ) * log( | V | )bits !

Parfois, le graphe est peu dense !

Nous mémorisons juste les indicesdes colonnes différentes de Faux !

Page 16: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 16

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

1

2

3

4

5

6

1 2 3 4 5 6

V

F

F

F

F

FLes voisins d’un sommet « u » :

Les voisins sortants : V+ ( u )

Les voisins entrants : V- ( u )

V

V

V

V

V

V

V+ ( u ) = { v V | ( u , v ) E }

V- ( u ) = { v V | ( v , u ) 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 :

V ( u ) = V+ ( u ) = V- ( u )

V- ( 3 ) = { 4 , 5 , 6 }

V+ ( 4 ) = { 1 , 2 , 3 }

Page 17: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 17

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

1

2

3

4

5

6

1 2 3 4 5 6

V

F

F

F

F

FLe degré d’un sommet « u » :

Le degré sortant : D+ ( u )

Le degré entrant : D- ( u )

V

V

V

V

V

V

D+ ( u ) = | V+ ( u ) |

D- ( u ) = | V- ( 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 :

D ( u ) = D+ ( u ) = D- ( u )

Le degré d’un graphe G = ( V , E ) :

D( G ) = max { D ( u ) }u V

Page 18: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 18

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

1

2

3

4

5

6

1 2 3 4 5 6

V

F

F

F

F

FLe degré d’un sommet « u » :

Le degré sortant : D+ ( u )

Le degré entrant : D- ( u )

V

V

V

V

V

V

D+ ( u ) = | V+ ( u ) |

D- ( u ) = | V- ( 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 :

D ( u ) = D+ ( u ) = D- ( u )

Le degré d’un graphe G = ( V , E ) :

D( G ) = max { D ( u ) }u V

Page 19: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 19

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

• Les chemins :

• Un chemin, de longueur « n », du sommet « u » au sommet « v » est :

( w , . . . , w )

• telle que

– u = w et v = w

– ( w , w ) est une arête ou un arc du graphe.

• Le chemin est orienté s’il comporte des arcs, non orienté s’il est fait d’arêtes uniquement.

1 n+1

i i+1

1 n+1

Page 20: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 20

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

• Notations et propriétés sur les chemins :

• Nous noterons ( c’est non standard ) :

– ( u , v ) l’arête ou l’arc, c’est-à-dire le chemin de longueur 1 .

– ( u ; v ) le chemin de longueur quelconque.

• Pour tout chemin non orienté ( u ; v ) du graphe G, nous pouvons construire le chemin ( v ; u ) dans G.

• Dans un graphe G, l’existence du chemin orienté ( u ; v ) n’implique pas l’existence d’un chemin de retour ( v ; u ) .

Page 21: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 21

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

• Cycles et circuits :

• Un chemin non orienté ( u ; v ) pour lequel « u » coïncide avec « v » est un cycle.

• Un chemin orienté ( w ; t ) pour lequel « w » coïncide avec « t » est un circuit.

u = v

w = t

Page 22: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 22

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

• Chemins simples :

• Un chemin ( u ; v ) , où « u » est différent de « v », est simple si et seulement si aucun sommet n’est répété dans la séquence :

( u , . . . , v )

u

t

Chemin simple ( u ; v )

v

w

Chemin nonsimple ( w ; t )

Page 23: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 23

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

• Lemme de König :

• De tout chemin non simple ( u ; v ) , nous pouvons extraire un chemin de « u » vers « v » qui est simple et plus court que le chemin initial.

( u , . . . , w , . . . , w , t , . . . , v )

u

vw

tDe tout cycle oucircuit nouspouvonsextraire uncycle ou circuitélémentaire !

Page 24: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 24

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

• Lemme de König :

• De tout chemin non simple ( u ; v ) , nous pouvons extraire un chemin de « u » vers « v » qui est simple et plus court que le chemin initial.

( u , . . . , w , . . . , w , t , . . . , v )

u

vw

tDe tout cycle oucircuit nouspouvonsextraire uncycle ou circuitélémentaire !

Page 25: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 25

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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 sortante : C+ ( u )

La composante entrante : C- ( u )

C+ ( u ) = { v V | ( u ; v ) existe }

C- ( u ) = { v V | ( v ; u ) existe }

Si G est symétrique : C ( u ) = C+ ( u ) = C- ( u )

C+ ( 4 ) = { 1 , 2 , 3 , 4 , 5 }

C- ( 4 ) = { 1 , 2 , 4 }

Page 26: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 26

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

• Pour un graphe non orienté :

• La composante connexe de « u » est :

– réflexive, vous pouvez rester où vous êtes !

– symétrique, les chemins de retour existent !

– transitive, vous pouvez concaténer des chemins !

• Une composante connexe est une classe d’équivalence !

• Un graphe non orienté est partitionné en ses classes d’équivalence !

Page 27: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 27

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

V

F

F

F

F

F

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’unerelation symétrique !

Nous fermons réflexivement !

La fermeture réflexive d’unerelation « R » est la plus petiterelation réflexive qui contienne « R ».

Page 28: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 28

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

La fermeture réflexive d’unerelation « R » est la plus petiterelation réflexive qui contienne « R ».

V

V

V

V

V

Page 29: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 29

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

La fermeture transitive d’unerelation « R » est la plus petiterelation transitive qui contienne « R ».

V

V

V

V

V

Nous fermons transitivement !

Page 30: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 30

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

La fermeture transitive d’unerelation « R » est la plus petiterelation transitive qui contienne « R ».

V

V

V

V

V

Nous fermons transitivement !

V

V

Page 31: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 31

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

V

V

V

V

V

Nous fermons transitivement !

V

V

{ 1 , 2 , 4 } est une composante connexe !

Page 32: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 32

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

V

V

V

V

V

Nous fermons transitivement !

V

V

{ 3 , 5 } est une composante connexe !

Page 33: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 33

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

1

2

4

35

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

V

V

V

V

V

Nous fermons transitivement !

V

V

{ 6 } est une composante connexe !

Page 34: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 34

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

1

2

3

45

6

1

2

3

4

5

6

1 2 3 4 5 6

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’unerelation symétrique !

Nous fermons réflexivement !

V

V

V

V

V

Nous fermons transitivement !

V

V

Si nous renumérotons !

Page 35: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 35

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

• Principe de décomposition :

• Souvent, le traitement appliqué à un graphe non connexe

consiste à appliquer ce même traitement indépendamment

sur chacune des composantes connexes !

• Dans ce cas, on ne perd rien à supposer G connexe ! ! !

Page 36: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 36

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

• Pour un graphe orienté :

• Un sous-ensemble « X » des sommets d’un graphe orienté est fortement connexe si nous pouvons aller de n’importe quel sommet vers n’importe quel autre sommet.

• Proposition :

– Une composante est fortement connexe si et seulement si chaque sommet se trouve sur un circuit.

• Preuve :– => : Si ( u ; v ) existe, alors ( v ; u ) existe et donc ( u ; v ; u )

.– <= : Soit ( u ; v ) de la forme ( u ; w ; v ). Pour « w » bien choisi, le circuit ( w ; v ; w ) existe ! Nous recommençons le raisonnement pour ( u ; w ) .

u vw

Page 37: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 37

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

• Pour un graphe orienté :

• Un graphe orienté est quasi-fortement connexe s’il existe un sommet depuis lequel nous pouvons atteindre tous les autres sommets. Un tel sommet sera appelé « racine ».

Page 38: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 38

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

• Distances et diamètre :

• La distance « d ( u , v ) » entre un sommet « u » et un sommet « v » est :

– la longueur du plus court chemin (forcément simple) de « u » vers « v », si celui-ci existe,

– infini, sinon.

• Le diamètre d’un graphe connexe est la distance entre ses sommets les plus éloignés :

( G ) = max { d ( u , v ) }

u , v V

Page 39: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 39

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

u

v

Chemin simple de longueur 4 !

Le plus court chemin est de longueur 3 : d ( u , v ) = 3

( G ) = 4

Page 40: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 40

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

• Ecarts, centre et diamètre :

• L’écart « e ( u ) » d’un sommet « u » d’un graphe connexe est :

– la distance vers le sommet « v » le plus loin de « u » :

e ( u ) = max { d ( u , v ) }

• Un sommet « u » est au centre de G si

e ( u ) = min { e ( v ) }

• ( G ) = max { e ( v ) }

v V

v V

v V

Page 41: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 41

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

u

e ( u ) = 3

v

« v » est au centre car e ( v ) = 2 est minimal !

( G ) = e ( w ) = 4

w

Page 42: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 42

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

• Lemme des plus courts chemins (De la Palisse) :

• Si le plus court chemin de « u » vers « v » passe par « w »,

alors la partie préfixe de « u » vers « w » est aussi le plus

court chemin de « u » vers « w ».

u vw

Le plus court chemin de « u » à « v » !

Le plus court chemin de « u » à « w » !

Page 43: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 43

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

• Poids d’un chemin :

• Dans un graphe pondéré, le poids d’un chemin est la somme des poids de ses arcs et arêtes.

• Nous pouvons alors, de manière évidente, définir le chemin le plus léger de « u » vers « v ».

• Le chemin le plus léger (poids) ne coïncide pas forcément avec le chemin le plus court (nombre d’arcs et arêtes).

• Les poids ne vérifient pas forcément l’inégalité triangulaire !

25

10 12

Page 44: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 44

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

• Poids d’un chemin :

• Dans un graphe pondéré, le poids d’un chemin est la somme des poids de ses arcs et arêtes.

• Nous pouvons alors, de manière évidente, définir le chemin le plus léger de « u » vers « v ».

• Le chemin le plus léger (poids) ne coïncide pas forcément avec le chemin le plus court (nombre d’arcs et arêtes).

• Les poids ne vérifient pas forcément l’inégalité triangulaire !

25

10 12

Page 45: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 45

Connexité – plus courts chemins-----------------------------------------------------------------

• Sur un graphe non orienté, nous allons calculer :

– les composantes connexes !

• Sur une composante connexe, nous allons calculer :

– les plus courts chemins !

• Nous rajoutons une pondération strictement positive et nous allons calculer :

– les chemins les plus légers !

Page 46: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 46

Connexité – plus courts chemins-----------------------------------------------------------------

• Nous utilisons trois algorithmes :

– un algorithme par « vague », c’est un parcours en largeur,

– un algorithme par « multiplication de matrices »,

– l’algorithme de programmation dynamique « Floyd-Warshall » !

• Pour chacun d’entre eux, il s’agit de savoir si :

– il arrive à résoudre le problème en question,

– quelle est la complexité du calcul ?

Page 47: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 47

Connexité – plus courts chemins-----------------------------------------------------------------

Connexité

Plus courts

Plus légers

La vague Multiplication Floyd-Warshall

Page 48: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 48

Connexité – plus courts chemins-----------------------------------------------------------------

• L’algorithme par vague :

– Nous choisissons un sommet sec et le mouillons, – nous mouillons ses voisins,– nous mouillons les voisins des voisins , . . .

• Attention, dans un graphe il peut y avoir des cycles ! ! !

– Il faut éviter de tourner en rond !– Ici, nous ne faisons rien pour un sommet déjà mouillé !

• Complexité : ( | E | ) = O( | V |^2 ) = O ( n^2 )

– Chaque arête est visitée une et une seule fois !

Page 49: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 49

Connexité – plus courts chemins-----------------------------------------------------------------

Connexité

Plus courts

Plus légers

La vague Multiplication Floyd-Warshall

( | E | ) = O ( | V |^2 )

Page 50: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 50

Connexité – plus courts chemins-----------------------------------------------------------------

• La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » et des « 1 »,– nous la fermons réflexivement (des « 1 » sur la diagonale),– nous effectuons le calcul suivant :

M * M’ ( i , j ) = max M ( i , k ) * M’ ( k , j )

• Nous calculons : M -> M^2 -> M^4 -> . . .

• Propriété : M^( 2 * i ) = M^i * M^i contient tous les chemins de longueur au plus 2 * i .

• Il suffit de calculer M^k avec k >= | V |-1 = n-1 (le plus long chemin possible; et donc tous les chemins) !

• Il suffit de O ( log( | V | ) ) élévations au carré !

k

Page 51: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 51

Connexité – plus courts chemins-----------------------------------------------------------------

• Preuve de la propriété :

– La matrice M fermée réflexivement contient tous les chemins de longueur 0 ou 1.

– Hypothèse d’induction : M^i contient tous les chemins de longueur au plus i .

M^( 2 * i ) ( u , v ) = 1 max_k M^i ( u , k ) * M^i ( k , v ) = 1 w tel que M^i ( u , w ) * M^i ( w , v ) = 1 M^i ( u , w ) = 1 et M^i ( w , v ) = 1 ( u ; w ) et ( w ; v ) sont de longueur au plus i ( u ; w ; v ) est de longueur au plus 2 * i .

• On obtient bien-sûr tous les chemins !

Page 52: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 52

Connexité – plus courts chemins-----------------------------------------------------------------

Connexité

Plus courts

Plus légers

La vague Multiplication Floyd-Warshall

( | E | ) = O ( | V |^2 )

( | V |^3 * log( | V | ) )

Page 53: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 53

Connexité – plus courts chemins-----------------------------------------------------------------

• Floyd-Warshall :

– La multiplication recalcule de façon répétée les chemins courts. Si M^i ( u , v ) = 1 :

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 , v ) = 1

• La DP numérote les sommets de « 1 » à « n » et :

– à l’étape (1), ne calcule que les chemins dont les intermédiaires sont dans l’ensemble { 1 },

– à l’étape (2), ne calcule que les chemins dont les intermédiaires sont dans l’ensemble { 1 , 2 }, . . .

Page 54: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 54

Connexité – plus courts chemins-----------------------------------------------------------------

12

3

Initialement : M(0)

Etape 1 : M(1)

Nous n’avons pas dessiné les boucles de la fermeture réflexive !

Etape 2 : M(2)

Etape 3 : M(3)

Petit à petit, les uns . . .

Page 55: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 55

Connexité – plus courts chemins-----------------------------------------------------------------

12

3

Initialement : M(0)

Etape 1 : M(1)

Nous n’avons pas dessiné les boucles de la fermeture réflexive !

Etape 2 : M(2)

Etape 3 : M(3)

Petit à petit, les autres . . .

Page 56: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 56

Connexité – plus courts chemins-----------------------------------------------------------------

12

3

Initialement : M(0)

Etape 1 : M(1)

Nous n’avons pas dessiné les boucles de la fermeture réflexive !

Etape 2 : M(2)

Etape 3 : M(3)

Petit à petit, finalement . . .

Page 57: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 57

Connexité – plus courts chemins-----------------------------------------------------------------

M ( u , v ) = M ( u , v )(k) (k-1)

(k-1)

(k)

• M est donnée, elle comporte tous les chemins avec des intermédiaires parmi { 1 , . . . , k-1 } .

• M ( u , v ) est un chemin de « u » vers « v » avec des intermédiaires parmi { 1 , . . . , k } .

• Soit le sommet « k » figure dans ce chemin, soit il ne le fait pas.

u - . . . - k - . . . - v

M ( u , k ) M ( k , v )

/ k / k

(k-1) (k-1)

} }

Page 58: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 58

Connexité – plus courts chemins-----------------------------------------------------------------

• M est la matrice d’adjacence, fermée réflexivement. Elle comporte des « 0 » et des « 1 ».

M ( u , v ) = max ( ,

)

• M est la matrice recherchée !

(0)

M ( u , k ) * M ( k , v )(k-1)

M ( u , v )(k-1)

(k-1)

(n)

(k)

Pour k de 1 a | V |

Pour u de 1 a | V |

Pour v de 1 a | V |

M_k ( u , v ) <- . . .

Page 59: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 59

Connexité – plus courts chemins-----------------------------------------------------------------

Connexité

Plus courts

Plus légers

La vague Multiplication Floyd-Warshall

( | E | ) = O ( | V |^2 )

( | V |^3 * log( | V | ) )

( | V |^3 )

Page 60: St Valentin 2006Cours de graphes 1 - Intranet1 Marc Gengler Marc.Gengler@esil.univ-mrs.fr Cours de graphes Alexandra Bac - Sébastien Fournier 12h de cours.

St Valentin 2006 Cours de graphes 1 - Intranet 60

Synthèse-----------------------------------------------------------------

• Définitions de base

• Connexité :

– à l’aide de la vague,

– à l’aide de la multiplication,

– à l’aide de Floyd-Warshall.