cours de graphes
Download
Skip this Video
Download Presentation
Cours de Graphes

Loading in 2 Seconds...

play fullscreen
1 / 60

Cours de Graphes - PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on

Cours de Graphes. Alexandra Bac - Marc Gengler Azeddine Zidouni. Marc Gengler [email protected] 18h de cours 24h de TD … et un examen. Les grandes lignes du cours. Définitions de base Connexité Les plus courts chemins Floyd-Warshall, Dijkstra et Bellmann-Ford Arbres

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Cours de Graphes' - maine


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cours de graphes

Cours de Graphes

Alexandra Bac - Marc Gengler Azeddine Zidouni

Marc Gengler

[email protected]

18h de cours

24h de TD

… et un examen

Cours de graphes 1 - Intranet

slide2

Les grandes lignes du cours

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

Cours de graphes 1 - Intranet

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

Cours de graphes 1 - Intranet

slide4

L E S

D E F I N I T I O N S

D E B A S E

Cours de graphes 1 - Intranet

d finitions de base
Définitions de base-----------------------------------------------------------------
  • Il y a des sommets ! (vertex, vertices)
  • Il y a des arêtes ( bi-directionelles ) ! (edge)
  • Il y a des arcs ( mono-directionnels ) ! (arc)

Cours de graphes 1 - Intranet

d finitions de base1
Définitions de base-----------------------------------------------------------------
  • Formellement :
  • Il y a l’ensemble V des sommets.
    • Il y en a | 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 .

( a , b ) e E signifie que l’arc du

sommet a vers le sommet b existe.

Cours de graphes 1 - Intranet

d finitions de base2
Définitions de base-----------------------------------------------------------------
  • Formellement :
  • Il y a l’ensemble V des sommets.
    • Il y en a | 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é !

Cours de graphes 1 - Intranet

d finitions de base3
Définitions de base-----------------------------------------------------------------
  • Formellement :
  • Il y a l’ensemble V des sommets.
    • Il y en a | 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 êtresymétrique , anti-symétrique ou ni - ni.
    • E peut être transitif , ou non-transitif .

Cours de graphes 1 - Intranet

d finitions de base4
Définitions de base-----------------------------------------------------------------
  • Un graphe G est défini comme
    • G = ( V , E )
    • où  V est un ensemble de sommets et  E  un ensemble d’arcs entre ces sommets.
  • 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

25

15

Cours de graphes 1 - Intranet

d finitions de base5
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
      • E’ E V’ x V’

U

Les sommets de G’ sont parmi ceux de G .

U

v

  • Les arcs et arêtes de G’ sont
  • parmi ceux et celles de G et
  • se limitent aux sommets de G’ .

Cours de graphes 1 - Intranet

d finitions de base6
Définitions de base-----------------------------------------------------------------

Cours de graphes 1 - Intranet

slide12

R E P R E S E N T A T I O N

D E S

G R A P H E S

Cours de graphes 1 - Intranet

repr sentation des graphes
Représentation des graphes-----------------------------------------------------------------
  • 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 !

Cours de graphes 1 - Intranet

repr sentation des graphes1
Représentation des graphes-----------------------------------------------------------------

VERS

1

2

3

4

5

6

1

L’existence ou non

de l’arc ( 2 , 5 ) ! ! !

2

3

4

5

4

6

1

DEPUIS

6

2

3

5

Cours de graphes 1 - Intranet

repr sentation des graphes2

1

2

3

4

5

6

Représentation des graphes-----------------------------------------------------------------

1

2

3

4

5

6

4

Un tableau

de listes !

F

F

F

V

F

F

4

F

F

F

V

F

F

F

F

F

F

V

F

5

V

V

V

F

F

F

1

2

3

F

F

V

F

F

F

3

F

F

V

F

F

V

3

6

Parfois, le graphe est peu dense !

Nous mémorisons juste les indices

des colonnes différentes de Faux !

Il faut

( | V | + | E | ) * log( | V | )

bits !

Cours de graphes 1 - Intranet

repr sentation des graphes3

1

2

3

4

5

6

Représentation des graphes-----------------------------------------------------------------

1

2

3

4

5

6

Les voisins d’un sommet « u » :

Les voisins sortants : V+ ( u )

Les voisins entrants : V- ( u )

F

F

F

V

F

F

F

F

F

V

F

F

F

F

F

F

V

F

V

V

V

F

F

F

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

F

F

V

F

F

F

F

F

V

F

F

V

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

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

V- ( u ) = { v e V | ( v , u ) e E }

Si le graphe est symétrique :

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

Cours de graphes 1 - Intranet

repr sentation des graphes4

1

2

3

4

5

6

Représentation des graphes-----------------------------------------------------------------

1

2

3

4

5

6

Le degré d’un sommet « u » :

Le degré sortant : D+ ( u )

Le degré entrant : D- ( u )

F

F

F

V

F

F

F

F

F

V

F

F

F

F

F

F

V

F

V

V

V

F

F

F

F

F

V

F

F

F

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

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

F

F

V

F

F

V

u e V

Si le graphe est symétrique :

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

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

D- ( u ) = | V- ( u ) |

Cours de graphes 1 - Intranet

slide18

L E S

C H E M I N S

Cours de graphes 1 - Intranet

les chemins
Les chemins-----------------------------------------------------------------
  • Les chemins :
  • Un chemin de longueur n , de u vers v est :
  • telle que
    • u = w et v = w
    • ( w , w ) est une arête ou un arc, pour tout i .
  • Le chemin est orienté s’il comporte des arcs, non orienté s’il est fait d’arêtes uniquement.
  • Le chemin ( u ; u ) , de u à lui-même, existe toujours !

( w , . . . , w )

n+1

1

n+1

1

i

i+1

Cours de graphes 1 - Intranet

les chemins1
Les chemins-----------------------------------------------------------------
  • Notations et propriétés sur les chemins :
  • Nous noterons ( c’est non standard ) :
    • ( u , v ) l’arête ou l’arc, i.e. 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 .

Cours de graphes 1 - Intranet

les chemins2
Les chemins-----------------------------------------------------------------
  • Preuve ( induction sur la longueur du chemin ) :
  • Si u et v sont voisins,
    • le chemin ( u ; v ) est en fait l’arête ( u , v )
    • et le chemin ( v ; u ) sera l’arête ( v , u ) .
  • Si u et v ne sont pas voisins,
    • le chemin ( u ; v ) est une arête ( u , t ) suivie de ( t ; v )
    • 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 ) .

Cours de graphes 1 - Intranet

les chemins3
Les chemins-----------------------------------------------------------------
  • Notations et propriétés sur les chemins :
  • Nous noterons ( c’est non standard ) :
    • ( u , v ) l’arête ou l’arc, i.e. 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 ) .

u

v

Cours de graphes 1 - Intranet

les chemins4
Les chemins-----------------------------------------------------------------
  • Cycles et circuits :
  • Un cycle est un chemin non orienté ( u ; v ) pour lequel u coïncide avec v .
  • Un circuit est un chemin orienté ( w ; t ) pour lequel w coïncide avec t .

u = v

w = t

Cours de graphes 1 - Intranet

les chemins5
Les chemins-----------------------------------------------------------------
  • Chemins simples :
  • Un chemin ( u ; v ) , avec u différent de v , est simple si et seulement si aucun sommet n’est répété dans la séquence :

( u , . . . , v )

Chemin simple ( u ; v )

u

w

v

Chemin non

simple ( w ; t )

Cours de graphes 1 - Intranet

t

slide25

L E M M E

D E

K Ö N I G

Cours de graphes 1 - Intranet

lemme de k nig
Lemme de König-----------------------------------------------------------------
  • 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 )

t

u

w

v

Cours de graphes 1 - Intranet

lemme de k nig1
Lemme de König-----------------------------------------------------------------
  • 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 )

t

u

w

v

Cours de graphes 1 - Intranet

lemme de k nig2
Lemme de König-----------------------------------------------------------------
  • Tout cycle ou circuit est
    • soit, un cycle ou circuit élémentaire, c’est-à-dire devient un chemin simple si l’on en enlève une arête ou un arc,
    • soit, une réunion de cycles et/ou circuits élémentaires.

Réunion de cycles

élémentaires :

Cycle élémentaire :

Cours de graphes 1 - Intranet

slide29

L E S

C O M P O S A N T E S

C O N N E X E S

Cours de graphes 1 - Intranet

les composantes connexes

1

2

3

4

5

6

Les composantes connexes-----------------------------------------------------------------

1

2

3

4

5

6

La composante connexe de u :

La composante sortante : C+ ( u )

La composante entrante : C- ( u )

F

F

F

V

F

F

F

F

F

V

F

F

F

F

F

F

V

F

V

V

V

F

F

F

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

F

F

V

F

F

F

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

4

F

F

V

F

F

V

1

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

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

6

2

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

3

5

Cours de graphes 1 - Intranet

les composantes connexes1
Les composantes connexes-----------------------------------------------------------------
  • 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 !

Cours de graphes 1 - Intranet

les composantes connexes2

1

2

3

4

5

6

Les composantes connexes-----------------------------------------------------------------

1

Nous partons d’une

relation symétrique !

2

3

4

5

6

V

F

F

V

F

F

Nous fermons réflexivement !

F

V

F

V

F

F

F

F

V

F

V

F

V

V

F

V

F

F

F

F

V

F

V

F

4

F

F

F

F

F

V

1

6

La fermeture réflexive d’une

relation R est la plus petite

relation réflexive qui contienne R .

2

3

5

Cours de graphes 1 - Intranet

les composantes connexes3

1

2

3

4

5

6

Les composantes connexes-----------------------------------------------------------------

1

Nous partons d’une

relation symétrique !

2

3

4

5

6

V

V

F

V

F

F

Nous fermons réflexivement !

V

V

F

V

F

F

F

F

V

F

V

F

Nous fermons transitivement !

V

V

F

V

F

F

F

F

V

F

V

F

4

F

F

F

F

F

V

1

6

La fermeture transitive d’une

relation R est la plus petite

relation transitive qui contienne R .

2

3

5

Cours de graphes 1 - Intranet

les composantes connexes4

1

2

3

4

5

6

Les composantes connexes-----------------------------------------------------------------

1

Nous partons d’une

relation symétrique !

2

3

4

5

6

V

V

V

F

F

F

Nous fermons réflexivement !

V

V

V

F

F

F

V

V

V

F

F

F

Nous fermons transitivement !

F

F

F

V

V

F

F

F

F

V

V

F

3

F

F

F

F

F

V

1

6

Si nous renumérotons !

2

4

5

Cours de graphes 1 - Intranet

les composantes connexes5
Les composantes connexes-----------------------------------------------------------------
  • Un 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

en supposant G connexe !

Cours de graphes 1 - Intranet

slide36

P O U R U N

G R A P H E

O R I E N T E . . .

Cours de graphes 1 - Intranet

les composantes connexes6
Les composantes connexes-----------------------------------------------------------------
  • 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 ( 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

w

v

Cours de graphes 1 - Intranet

les composantes connexes7
Les composantes connexes-----------------------------------------------------------------
  • 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.

Composante

fortement

connexe !

Cours de graphes 1 - Intranet

slide39

D I S T A N C E S ,

D I A M E T R E ,

. . .

Cours de graphes 1 - Intranet

distances diam tre
Distances, diamètre, . . .-----------------------------------------------------------------
  • 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 :

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

u , v e V

Cours de graphes 1 - Intranet

distances diam tre1
Distances, diamètre, . . .-----------------------------------------------------------------
  • 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 ) }

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

v e V

v e V

v e V

Cours de graphes 1 - Intranet

distances diam tre2
Distances, diamètre, . . .-----------------------------------------------------------------
  • Lemme des plus courts chemins :
  • Si le plus court chemin de u vers v passe par w ,

alors sa partie préfixe de u vers w est aussi le plus

court chemin de u vers w .

Le plus court chemin de u à v !

u

w

v

Le plus court chemin de u à w !

Le raisonnement est par l’absurde :

S’il y avait plus court pour aller de u à w , il y

aurait aussi plus court pour aller de u à v !

Cours de graphes 1 - Intranet

distances diam tre3
Distances, diamètre, . . .-----------------------------------------------------------------

Parfois, on parle du plus court chemin

et on pense au chemin le plus léger !

  • 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).
  • Le plus court chemin correspond au chemin le plus léger avec des poids qui valent tous unité.
  • Les poids ne vérifient pas forcément l’inégalité triangulaire !

25

12

10

Cours de graphes 1 - Intranet

slide44

N O S

P R E M I E R S

A L G O R I T H M E S

Cours de graphes 1 - Intranet

connexit plus courts chemins
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 !

Cours de graphes 1 - Intranet

connexit plus courts chemins1
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
    • s’il arrive à résoudre le problème en question
    • et quelle est la complexité du calcul ?

Cours de graphes 1 - Intranet

slide47

L A

V A G U E

Cours de graphes 1 - Intranet

connexit plus courts chemins2
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é !
  • A l’issu de ce calcul
    • nous avons déterminé une composante connexe
    • et nous recommençons sur l’éventuel reste du graphe !
  • Complexité : Q ( | E | ) = O( | V |^2 )
    • Chaque arête est visitée une et une seule fois !

Cours de graphes 1 - Intranet

connexit plus courts chemins3
Connexité & plus courts chemins-----------------------------------------------------------------

La vague

Multiplication

Floyd-Warshall

Q ( | E | ) =

O ( | V |^2 )

Connexité

Plus courts

Plus légers

Cours de graphes 1 - Intranet

slide50

L A

M U L T I P L I C A T I O N

D E

M A T R I C E S

Cours de graphes 1 - Intranet

connexit plus courts chemins4
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 comporte 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

Cours de graphes 1 - Intranet

connexit plus courts chemins5
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

 $ des chemins ( u ; w ) et ( w ; v ) , de longueur au plus i .

 $ un chemin ( u ; v ) de longueur au plus 2 * i .

En effet, il suffit de prendre le chemin ( u ; w ; v ) .

Cours de graphes 1 - Intranet

connexit plus courts chemins6
Connexité & plus courts chemins-----------------------------------------------------------------

La vague

Multiplication

Floyd-Warshall

Q ( | E | ) =

O ( | V |^2 )

Q ( | V |^3 *

log( | V | ) )

Connexité

Beaucoup plus cher

que la vague ! ! !

Plus courts

Plus légers

Cours de graphes 1 - Intranet

slide54

L ’ A L G O R I T H M E

D E

F L O Y D - W A R S H A L L

Cours de graphes 1 - Intranet

connexit plus courts chemins7
Connexité & plus courts chemins-----------------------------------------------------------------
  • La multiplication recalcule de façon répétée les chemins courts. Si M^i ( u , v ) = 1 , alors

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

  • Floyd-Warshall 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 } , en ajoutant les chemins qui passent par le sommet 2 ,

Cours de graphes 1 - Intranet

slide56

L ’ A L G O R I T H M E

Cours de graphes 1 - Intranet

connexit plus courts chemins8
Connexité & plus courts chemins-----------------------------------------------------------------

(k-1)

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

(k)

/ k

/ k

e

e

(k)

(k-1)

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

}

}

M ( u , v ) = M ( u , v )

Une opération

de maximisation !

(k-1)

(k-1)

M ( u , k )

M ( u , k )

Cours de graphes 1 - Intranet

connexit plus courts chemins9
Connexité & plus courts chemins-----------------------------------------------------------------

(0)

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

M ( u , v ) = max ( ,

)

(k)

(k-1)

M ( u , v )

(k-1)

(k-1)

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

Le chemin de u vers v

existe déjà au niveau k-1 !

Le chemin de u vers v

est nouveau et passe par

le sommet k !

On ne recalcule rien !

Cours de graphes 1 - Intranet

connexit plus courts chemins10
Connexité & plus courts chemins-----------------------------------------------------------------

(0)

  • 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, ou n est | V | !

(k)

(k-1)

M ( u , v )

(k-1)

(k-1)

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

(n)

Complexité : Q ( | V |^3 )

Pour k de 1 a | V |

Pour u de 1 a | V |

Pour v de 1 a | V |

M_k ( u , v ) <- . . .

Cours de graphes 1 - Intranet

connexit plus courts chemins11
Connexité & plus courts chemins-----------------------------------------------------------------

La vague

Multiplication

Floyd-Warshall

Q ( | E | ) =

O ( | V |^2 )

Q ( | V |^3 *

log( | V | ) )

Q ( | V |^3 )

Connexité

Mieux que la multiplication,

mais la vague est la

plus économique !

Plus courts

Plus légers

Cours de graphes 1 - Intranet

ad