View
216
Download
0
Category
Preview:
Citation preview
Mise à Niveau en Recherche Opérationnelle
Première partie
Théorie des graphes
Mohamed Ali Alouloualoulou@lamsade.dauphine.fr
Ce transparents ont été élaborés en se basant sur le document dePierre Lopez, LAAS, Toulouse
http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html
Plan du cours
1. Qu’est ce qu’on peut faire avec la théorie des graphes ?
2. Concepts généraux en théorie des graphes
3. Le problème du plus court chemin4. Problème central de l’ordonnancement5. Flots et réseaux de transports
http://http://www.laas.frwww.laas.fr/~/~lopezlopez/cours/GRAPHES//cours/GRAPHES/graphes.htmlgraphes.html
Pourquoi la théorie des graphes ?
• Modélisation– Plusieurs problèmes dans différentes
disciplines (chimie, biologie, sciences sociales, applications industrielles, …)
– Un graphe peut représenter simplement la structure, les connexions, les cheminements possibles d’un ensemble complexe comprenant un grand nombre de situations
• Un graphe est une structure de données puissante pour l’informatique
Exemples
1. Concepts généraux en théorie des graphes
• Définitions• Représentations d’un graphe• Coloration des sommets d’un graphe• Connexité dans les graphes• Graphes particuliers
1. Concepts généraux en théorie des graphes
Définitions• Concepts orientés
– Un graphe G(X,U) est déterminé par
• Un ensemble X={x1,…,xn} de sommets
• Un ensemble U={u1, …, um} du produit cartésien X×X d’arcs.
– Un p-graphe : pas plus que p arcs (xi,xj)
3-graphe
1-graphe = graphe
boucleArc u=(xi,xj)
1. Concepts généraux en théorie des graphes
Définitions• Graphes et applications multivoques
– xj est successeur de xi si (xi,xj)∈U– L’ensemble des successeurs de xi est noté
Γ(xi)– L’ensemble des prédécesseurs de xi est noté
Γ-1(xi)– Γ est appelée une application multivoque
• Pour un 1-graphe, G peut être parfaitement déterminé (ou caractérisé) par (X,Γ)
1. Concepts généraux en théorie des graphes
Définitions• Concepts non orientés
– On s’intéresse à l’existence d’arcs entre deux sommets sans en préciser l’ordre
– Arc = arête– U est constitué de paires non pas de couples– Multigraphe : plusieurs arêtes entre deux
sommets– Graphe simple = non multigraphe + pas de
boucles
1. Concepts généraux en théorie des graphes
Définitions• D’autres définitions : Voir
http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html– Adjacence, degrés, Graphe complémentaire,
partiel, sous graphe, sous graphe partiel– Graphe réflexif, irréflexif, symétrique,
antisymétrique, transitif, complet …
définitions
1. Concepts généraux en théorie des graphes
Représentations d’un graphe
1. Matrice d’adjacence
Pour un graphe numérisé : remplacer 1 par la valeur de l’arc
Place mémoire : n²
1. Concepts généraux en théorie des graphes
Représentations d’un graphe2. Matrice d’incidence sommets-arcs
Place mémoire : n x m
1. Concepts généraux en théorie des graphes
Représentations d’un graphe3. Listes d’adjacence
Place mémoire : n+1+m
1. Concepts généraux en théorie des graphes
Coloration d’un graphe
1. Concepts généraux en théorie des graphes
Coloration d’un graphe
1. Concepts généraux en théorie des graphes
Connexité dans les graphes• Chaîne – Cycle
• Chemin – Circuit
1. Concepts généraux en théorie des graphes
Connexité dans les graphes• Le terme parcours regroupe les chemins, les
chaînes, les circuits et les cycles• Un parcours peut être
– élémentaire : tous les sommets sont distincts– simple : tous les arcs sont distincts– hamiltonien : passe une fois et une seule par chaque
sommet– eulérien : passe une fois et une seule par chaque arc– préhamiltonien : ou moins une fois par chaque
sommet– préeulérien : au moins une fois par chaque arc
1. Concepts généraux en théorie des graphes
Connexité dans les graphes• Exemple
– Le problème du voyageur de commerce : un voyageur de commerce doit visiter n villes données en passant par chaque ville exactement une fois et doit revenir à la ville de départ.
�Trouver un circuit hamiltonien de coût minimal dans un graphe valué
1. Concepts généraux en théorie des graphes
Connexité dans les graphes• Connexité
1. Concepts généraux en théorie des graphes
Connexité dans les graphes• Forte connexité
1. Concepts généraux en théorie des graphes
Graphes particuliers• Graphes sans circuit
– Décomposition en niveaux
• Graphe biparti• Graphe planaire• Hypergraphe• Arbre• Forêt• Arborescence
2. Le problème du plus court chemin
• Définition• Principe d’optimalité et conditions
d’existence• Graphes à valuations positives
– Algorithme de Moore-Dijkstra (1959)
• Graphes à valuations quelconques– Contre-exemple– Algorithme de Bellman-Ford
2. Le problème du plus court chemin
Définition
• Exemple : Construire une autoroute entre deux villes A et K– Arcs = tronçons possibles de
l’autoroute– Valuation des arcs peut être
• coût de réalisation correspondant• longueur du trajet • …
A
B
C
D
E
F
H
I
J
K
G
2. Le problème du plus court chemin
Principe d’optimalité et condition d’existence
• Condition d’existenceLe graphe n’admet pas de circuit de longueur négative
i
j
k
w l(w)<0
2. Le problème du plus court chemin
Graphes à valuations positives
• Algorithme de Dijkstra : plus court chemin d’une source s à tous les autres sommets
∆∆∆∆[s]←←←← 0Pour tout x�s faire
∆∆∆∆[s]←←←← +∞∞∞∞Fin pourT ←←←← STant que T�Ø faire
soit x∈∈∈∈T tel que ∆∆∆∆[x]=miny∈∈∈∈T{∆∆∆∆[y]}Pour tout y∈∈∈∈T, y∈Γ∈Γ∈Γ∈Γ+(x) faire
∆∆∆∆[y]←←←← min (∆∆∆∆[y], ∆∆∆∆[x]+l(x,y))fin pourT ←←←← T\{x}
Fin Tant que
2. Le problème du plus court chemin
Graphes à valuations positives• Algorithme de Dijkstra : Exemple
A
B
D
C
E
F H
G
2
4
4
32 2
12
3
25
• ∆(a)=0 ; ∆(b,c,d,e,f,g,h)=+∞• ∆(a)=0;∆(b)=2;∆(d)=4;∆(c,e,f,g,h)=+∞• ∆(a)=0;∆(b)=2;∆(d)=3;∆(e)=6;∆(f)=7;
∆(c,g,h)=+∞• ∆(a)=0;∆(b)=2;∆(c)=5;∆(d)=3;∆(e)=6;
∆(f)=7; ∆(g,h)=+∞• ∆(a)=0;∆(b)=2;∆(c)=5;∆(d)=3;∆(e)=6;
∆(f)=7;∆(g)=6;∆(h)=+∞• ∆(a)=0;∆(b)=2;∆(c)=5;∆(d)=3;∆(e)=6;
∆(f)=7;∆(g)=6;∆(h)=8• ∆(a)=0;∆(b)=2;∆(c)=5;∆(d)=3;∆(e)=6;
∆(f)=7;∆(g)=6;∆(h)=8• …
A
B
D
C
E
F H
G
2
4
4
3 2 2
1
2
3
25
3 ?
1
0 00
0 ∞∞0 ∞∞
0 ∞∞
0 ∞∞0 ∞∞
0 ∞∞
0 ∞∞
A 22
A 44B 33
B 77
B 66
D 55C 66
E 88
2. Le problème du plus court chemin
Algorithme de Dijkstra et graphes à valuations quelconques
• L’algorithme de Dijkstra donne – ∆(s)=0; ∆(a)=1; ∆(b)=2; ∆(c)=2;
∆(d)=5; ∆(e)=6;
• Or – ∆(c)=2 et ∆(e)=6 alors que
l(c,e)=2� On pourrait avoir un chemin de
s à e de longueur 4� ∆(e)=6 ne peut pas être la
longueur du plus court chemin de s à e
S
A
B
C
E
D
6
1
23
3
2
2
-4
2. Le problème du plus court chemin
Graphes à valuations quelconques
• Algorithme de Bellman-Ford∆∆∆∆[s]←←←← 0Pour tout x�s faire ∆∆∆∆[s]←←←← +∞∞∞∞ Fin pourk ←←←← 0Répéter
stable ←←←← vrai Pour tout y∈∈∈∈S\{s}
Pour tout x∈Γ∈Γ∈Γ∈Γ-(y)si (∆∆∆∆[y] > ∆∆∆∆[x]+l(x,y)) alors
∆∆∆∆[y] ←←←← ∆∆∆∆[x]+l(x,y)stable ←←←← faux
fsifin pour
fin pourk ←←←← k+1
Jusqu’à (stable = vrai) ou (k>n-1)si k>n-1 alors présence d’un circuit de poids négatif
2. Le problème du plus court chemin
Graphes à valuations quelconques
• Graphes sans circuits– Il suffit de visiter les successeurs de chaque
sommet
• Plus court chemin entre tous les couples de sommets– Algorithme matriciel de Floyd-Warshall
3. Le problème central de l’ordonnancement
�������������� �������
���������������������
������������� ������������
!���� ������������
"���#�$%�����������&��
'�&��()����&��*�����������������$
+!'� ���������������
��&�����
�,�����������������������
+%�� ��������������������������#
'�&���'� ������������+
����&����
�!���������� � ����
'%����-�.����
�('������*����� � ���'
����
",������������*��
)!�����������*�"
�%'� ��������������*�)
/���
0� �������� �����'�&��
������������ ��
������������� ���������������
�������������� �������
���������������������
������������� ������������
!���� ������������
"���#�$%�����������&��
'�&��()����&��*�����������������$
+!'� ���������������
��&�����
�,�����������������������
+%�� ��������������������������#
'�&���'� ������������+
����&����
�!���������� � ����
'%����-�.����
�('������*����� � ���'
����
",������������*��
)!�����������*�"
�%'� ��������������*�)
/���
0� �������� �����'�&��
������������ ��
������������� ���������������
3. Le problème central de l’ordonnancement
Modélisation
���������������� ������������������������������� �������� ����������������������
'�&��
+
$
�
#
'
)
� �
" �
�
�
�
�
��
� � , 1 ! 2 % 3 (��������
�
� ( %!
!
�
,
�
,!%
!
!
�
�
( %
!
%
3. Le problème central de l’ordonnancement
Dates de début au plus tôt
• La date début au plus tôt dptôt(i) d’une tâche i = longueur du plus long chemin de la tâche Début (ou 0) à i
• Formule de récurrence– dptôt(i)=maxj∈Pred(i)(dptôt(j)+durée(j))– dptôt(0) =0
3. Le problème central de l’ordonnancement
Dates de fin au plus tard
• On souhaite terminer le projet au plus tard à la date D=dptôt(n+1)
• Date de début au plus tard de i = Date maximum àlaquelle on peut exécuter i sans retarder le chantier
• Longueur du plus long chemin de i à Fin (ou n+1)
• Formule de récurrence– dptard(n+1)=D– dptard(i)=minj∈Succ(i)dptard(j)-durée(i)
3. Le problème central de l’ordonnancement
Marges, chemin critique
• La marge totale d’une tâche i est le retard total qu’on peut se permettre sur i sans remettre en cause la date de fin du projet
• MT(i)=dptard(i)-dptôt(i).
• Les tâches critiques ont une marge nulle. Tout retard sur leur exécution entraîne un retard global sur le projet
• Un chemin est critique s’il relie Début à Fin et s’il ne contient que des tâches critiques
4. Flots dans les réseaux
• Définition : Un flot dans un graphe G=(X,U) est un vecteur ϕ=[ϕ1,ϕ2,…,ϕm]∈ℜm tel que– La quantité de flot ou flux sur l’arc j ϕj ≥ 0, pour tout j
=1,…, m – Pour tout sommet x∈X, la 1ère loi de Kirchhoff est
vérifiée
��−+ ∈∈
=���� ���
�
���
� ϕϕ
4. Flots dans les réseaux
Réseau de transport
• Définition : un réseau de transport de E à S est un graphe G=(X,U) connexe sans bouclecomportant une racine unique E (entrée ou source) et une antiracine unique S (sortie ou puit)– Chaque arc u=(xi,xj) est caractérisé par
• Une capacité max k(u) et une capacité min b(u) de matière pouvant circuler sur u
• Un coût unitaire c(u)
• Soit G0=(X,U0) le graphe issu de G en rajoutant un arc de retour (S,E)
4. Flots dans les réseaux
Flot dans un réseau de transport• On dit que le vecteur ϕ=[ϕ1,ϕ2,…,ϕm] est flot
de E à S dans G ssi la loi de Kirshhoff est vérifiée en tout sommet de G sauf pour E et S où on a
• Donc, si ϕ=[ϕ1,ϕ2,…,ϕm] est un flot dans G alors ϕ’=[ϕ0,ϕ1,ϕ2,…,ϕm] est un flot dans G0
• ϕ’=[ϕ0,ϕ1,ϕ2,…,ϕm] est un flot admissible dans G0 ssi pour tout j=0,…,m, b(j)≤ϕj≤k(j)
���������� ���
�
��
��−+ ∈∈
==���
�
���
� ϕϕϕ
4. Flots dans les réseaux
Flot dans un réseau de transport• On veut acheminer un produit à partir de 3
entrepôts (1,2,3) vers 4 clients (a,b,c,d)– Quantités en stock : 45, 25, 25– Demande des clients : 30,10, 20, 30– Limitations en matière de transport d’un entrepôt à un
client
1010--3
-55202
20-15101
dcba
E
1
2
3
a
b
d
c
S
[0,10]
[0,15]
[0,20]
[0,20]
[0,5]
[0,5][0,10]
[0,10]
[0,45]
[0,25][0,25]
[0,30][0,10]
[0,20]
[0,30]
4. Flots dans les réseaux
Exemple de flot
E
1
2
3
a
b
d
c
S
[0,10], 10
[0,15], 5
[0,20], 20
[0,20], 15
[0,5], 5
[0,5], 5
[0,10], 10
[0,10], 10
[0,45], 35
[0,25], 25
[0,25], 20
[0,30], 25
[0,10], 10
[0,20], 15
[0,30], 30
Valeur du flot = 80
Ce flot est un flot complet, c-à-d, tout chemin de E à S comporte au moins un arc saturé
4. Flots dans les réseaux
Quelques problèmes qui se posent1. Détermination d’un flot réalisable ou
compatible : c’est le cas où il existe des arcs u tels que b(u)>0
2. Détermination d’un flot maximum• Un flot complet n’est pas forcément maximum• Un flot maximum est forcément complet
3. Détermination d’un flot maximum de coût minimum
4. Flots dans les réseaux
Détermination d’un flot maximum• Principe de l’algorithme de Ford-Fulkerson
1. Construire un flot complet2. Améliorer itérativement ce flot
1. Construire un flot complet– Examiner tous les chemins de E à S de façon
systématique– Pour chaque chemin faire passer un flot égal à la
capacité résiduelle minimale de ce chemin
4. Flots dans les réseaux
Détermination d’un flot maximum
2. Améliorer itérativement ce flot– Graphe d’écart : Soit ϕ un flot admissible sur
G. Le graphe d’écart Ge(ϕ)=(X, Üe(ϕ)) est tel que• Pour tout arc j∈U on associe deux arcs dans
Üe(ϕ)– j+ de même sens que j et de capacité résiduelle
k+(j)=k(j)- ϕj
– j- de sens opposé que j et de capacité k-(j)=ϕj-b(j)
10
5
10 5 5
5
E
1
2
3
a
b
d
c
S
[0,10], 10
[0,15], 5
[0,20], 20
[0,20], 15
[0,5], 5
[0,5], 5
[0,10], 10
[0,10], 10
[0,45], 35
[0,25], 25
[0,25], 20
[0,30], 25
[0,10], 10
[0,20], 15
[0,30], 30
E
1
2
3
a
b
d
c
S
35
25
2010
1020
55
10
15
5
25
10
30
15
Graphe d’écart
Un flot complet
4. Flots dans les réseaux
Détermination d’un flot maximum
2. Améliorer itérativement ce flot– Théorème : Un flot ϕ compatible est
maximal ssi il n’existe pas de chemin de E àS dans Ge(ϕ).
– Principe de l’amélioration• Chercher un chemin γ de E à S dans Ge(ϕ)• Soit δ la plus petite capacité de γ
– Pour j+ de γ, augmenter ϕj de δ– Pour j- de γ, diminuer ϕj de δ
4. Flots dans les réseaux
Détermination d’un flot maximum
10
5
10 5 5
5E
1
2
3
a
b
d
c
S
35
25
2010
1020
55
10
15
5
25
10
30
15
Capacité minimale δ = 5
5
40
5
100
5
020 0
30
Valeur du flot = 85
Exemples
En 1736, Euler a montré que c’est impossible !!
retour
retour
Références bibliographiques
• P. Lopez, Cours de graphes, LAAS-CNRS http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html
• Ph. Vallin and D. Vanderpooten. Aide à la décision : une approche par les cas. Ellipses, Paris, 2000.
• M. Gondron, M. Minoux, Graphes et algorithmes, Eyrolles, Paris, 1984
• C. Prins, Algorithmes de graphes, Eyrolles, Paris, 1994
• Ph. Lacomme, C. Prins, M. Sevaux, Algorithmes de graphes, Eyrolles, 2003
• B. Baynat, Ph. Chrétienne, …, Exercices et problèmes d’algorithmique, Dunod, 2003
Recommended