Cours sur les graphes

Transcription

Cours sur les graphes
Cours sur les graphes
Graphes orientés, problème du plus court chemin
Florent Madelaine
([email protected])
Université d’Auvergne
8 Octobre 2007
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
1 / 18
Plan du cours
1
Introduction
De casses-têtes amusants...
... aux problèmes industriels
2
Graphes orientés
Définitions
Représentations
Graphes orientés valués
3
Problème du plus court chemin
Définitions
Algorithme de Bellman-Ford
4
Exercices
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
2 / 18
Les sept ponts de Königsberg
Étant donné que la ville est construite sur deux ı̂les reliées au continent par six
ponts, et entre elles par un pont, trouver un chemin quelconque permettant, à
partir d’un point de départ au choix, de passer une et une seule fois par chaque
pont, et de revenir à son point de départ, étant entendu qu’on ne peut
traverser l’eau qu’en passant par les ponts.
Léonard Euler. (( Solutio problematis ad geometriam situs pertinentis )).
Mémoires de l’académie des sciences de Berlin, 1759
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
3 / 18
Le cavalier
Sur un échiquier, le cavalier se déplace de deux cases dans une direction
(horizontale ou verticale) puis d’une case dans une direction orthogonale
(mouvement en forme de L). Est-il possible qu’un cavalier passe par toutes les
cases de l’échiquier sans passer deux fois par la même case et revenir à son
point de départ ?
al-Adli ar-Rumi donne une solution, vers 840.
Warnsdorff donne une méthode heuristique, 1843.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
4 / 18
Le voyageur de commerce
Étant donné un ensemble de destinations, le problème est de trouver un circuit
qui visite chaque destination en visitant chacune d’elle exactement une seule
fois, le tout en minimisant le coût du voyage.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
5 / 18
Arbre couvrant
Une société de téléphonie souhaite câbler entièrement une zone à l’aide de
fibres optiques en minimisant le nombres de connexions à réaliser. Le
nouveau câblage s’appuie sur le réseau téléphonique déjà existant.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
6 / 18
Distance
Problème de routage dans un réseau du type internet. Si un utilisateur
désire accéder au contenu d’une page web présentée sur un serveur, une
connexion entre ce serveur et la machine de l’utilisateur. Cette connexion
n’est en général pas directe mais doit passer par une série de machine
relais.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
7 / 18
Graphes Orientés
Definition (graphe orienté)
un ensemble de sommets V
un ensemble d’arcs E ⊆ V × V
Exemple
a
A
B
f
d
b
g
c
V = {A, B, C , D}
E = {a, b, c, d, e, f , g , h}
C
D
h
Florent Madelaine (Université d’Auvergne)
e
Graphes
8 Octobre 2007
8 / 18
Représentations par listes
Listes de successeurs
a
A
B
sommet successeurs
A
B, C
C, D
B
C
C
A, B, C
D
f
d
b
g
c
C
D
h
e
Exercice
Donnez la représentation du graphe par listes de prédécesseurs.
Peut-on retrouver cette représentation à partir de la liste des
successeurs ? si oui, comment ?
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
9 / 18
Représentations par Matrices I
Matrice d’adjacence
Tableau d’adjacence
a
A
origine \
B
A
B
C
D
f
d
b
g
c
h
Florent Madelaine (Université d’Auvergne)
A B C
a b
c
e
f g h
Matrice d’adjacence

0 1 1 0
 0 0 1 1

 0 0 1 0
1 1 1 0
C
D
fin
e
Graphes
D
d




8 Octobre 2007
10 / 18
Représentations par Matrices II
Matrice d’incidence
a
A
B
Tableau d’incidence
A
B
C
D
f
d
b
g
c
C
D
h
On utilise cette représentation
pour les graphes sans boucle
uniquement.
Florent Madelaine (Université d’Auvergne)
e
Matrice

1
 −1

 0
0
Graphes
a
d
f
b
d
f
c
d
d
f
d
f
e f
× f
×
×
× d
g
h
f
d
f
d
d’incidence

1
0
0 −1 0
0
0
1
1
0 −1 0 

−1 −1 0
0
0 −1 
0
0 −1 1
1
1
8 Octobre 2007
11 / 18
Graphes valués
Exemple
2
A
Definition (graphe orienté valué)
B
un ensemble de sommets V
un ensemble d’arcs E ⊆ V × V
une fonction de valuation
f : E → R.
0
6
8
1
3
Definitions
C
D
-1
valeur d’un chemin : somme des
valeurs des arcs qui le compose
1
plus court chemin : chemin de
valeur minimale
Le chemin DCC a longueur
−1 + 1 + 1 = 1
Le chemin fermé (circuit) DBD
a longueur 1 + 6 = 7
Florent Madelaine (Université d’Auvergne)
plus long chemin : chemin de
valeur maximale
Graphes
8 Octobre 2007
12 / 18
Mise en oeuvre
Exercice
2
A
B
existe-t’il un unique plus
court chemin de A à C ?
0
6
8
1
3
est-ce-toujours le cas ?
existe-t’il un plus long
chemin de A à C ?
C
D
-1
Florent Madelaine (Université d’Auvergne)
est-ce-toujours le cas ?
1
Graphes
8 Octobre 2007
13 / 18
Problème du plus court chemin
Donnée
Exercice
source s
Un graphe orienté valué sans
circuit de valeur négatif ; et,
2
un sommet spécial s, la source.
0
On doit calculer
6
8
1
3
La longueur L(v ) des plus court
chemins de la source à chaque
sommet du graphe ; et,
pour chaque sommet v , la
description d’un plus court
chemin de la source à v .
Florent Madelaine (Université d’Auvergne)
-1
Graphes
1
8 Octobre 2007
14 / 18
L’algorithme de Bellman-Ford
Idée
Pour tout v , on calcule successivement une approximation de L(v ) : si
passer par u puis par l’arc (u, v ) pour aller à v , alors on le fait.
Initialisation
L(s) = 0
L(v ) = ∞, pour v 6= s.
On répète l’étape de relaxation
Pour tout arc (u, v ), si L(v ) > L(u) + f (u, v ),
alors L(v ) ← L(u) + f (u, v )
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
15 / 18
Mise en oeuvre
Exemple sur un graphe
3
4
4
s
9
-4
1
6
2
4
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
16 / 18
Exercice
Appliquer Bellman-Ford
1
1
s
1
2
3
2
-1
3
3
2
3
2
-4
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
17 / 18
Exercice
Algorithme de Bellman-Ford
Montrer que si il n’y a pas de circuit de longueur négative, alors les
plus courts chemins sont élémentaires (n’a pas de sommet qui y
apparaı̂t plus d’une fois).
Au plus combien d’étapes sont-elles nécessaires pour l’algorithme de
Bellman-Ford ?
Écrire l’algorithme en pseudo-code.
Comment peut-on stocker le chemin le plus court qui correspond à
celui trouvé par l’algorithme de Bellman-Ford ?
Adapter le pseudo-code en conséquence.
Variation de Bellman-Ford
plus court chemin de tous les sommets vers t ?
plus long chemin de s vers tous les autres sommets ?
Donnez un algorithme dans ces deux cas.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
18 / 18
Exercice
Algorithme de Bellman-Ford
Montrer que si il n’y a pas de circuit de longueur négative, alors les
plus courts chemins sont élémentaires (n’a pas de sommet qui y
apparaı̂t plus d’une fois).
Au plus combien d’étapes sont-elles nécessaires pour l’algorithme de
Bellman-Ford ?
Écrire l’algorithme en pseudo-code.
Comment peut-on stocker le chemin le plus court qui correspond à
celui trouvé par l’algorithme de Bellman-Ford ?
Adapter le pseudo-code en conséquence.
Variation de Bellman-Ford
plus court chemin de tous les sommets vers t ?
plus long chemin de s vers tous les autres sommets ?
Donnez un algorithme dans ces deux cas.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
18 / 18
Exercice
Algorithme de Bellman-Ford
Montrer que si il n’y a pas de circuit de longueur négative, alors les
plus courts chemins sont élémentaires (n’a pas de sommet qui y
apparaı̂t plus d’une fois).
Au plus combien d’étapes sont-elles nécessaires pour l’algorithme de
Bellman-Ford ?
Écrire l’algorithme en pseudo-code.
Comment peut-on stocker le chemin le plus court qui correspond à
celui trouvé par l’algorithme de Bellman-Ford ?
Adapter le pseudo-code en conséquence.
Variation de Bellman-Ford
plus court chemin de tous les sommets vers t ?
plus long chemin de s vers tous les autres sommets ?
Donnez un algorithme dans ces deux cas.
Florent Madelaine (Université d’Auvergne)
Graphes
8 Octobre 2007
18 / 18