Cours de graphes
This presentation is the property of its rightful owner.
Sponsored Links
1 / 60

Cours de Graphes PowerPoint PPT Presentation


  • 85 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Cours de Graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


Cours de graphes

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


  • Login