Mise à Niveau en Recherche Opérationnelle Première partie Théorie des graphes Mohamed Ali Aloulou [email protected]Ce transparents ont été élaborés en se basant sur le document de Pierre Lopez, LAAS, Toulouse http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html
47
Embed
Mise à Niveau en Recherche Opérationnelle - Paris … · Théorie des graphes Mohamed Ali Aloulou [email protected] ... – Pour tout sommet x˛X, la 1ère loi de Kirchhoff
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
– 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
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é
• 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