Plus courts chemins dans les réseaux sans circuit

Download Report

Transcript Plus courts chemins dans les réseaux sans circuit

Recherche Opérationnelle
Recherche Opérationnelle
Théorie des graphes: Algorithmes
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
EXERCICE 1
ARBRE DE POIDS MINIMUM : Application de KRUSKAL ET PRIM
Recherche Opérationnelle
Graphes
EXERCICE 2
Une commune veut offrir des possibilités de connexion a haut débit par câble dans
ses nouveaux lotissements. Les liaisons envisageables entre les lotissements
(numérotes de 1 a 7), ainsi que les estimations des coûts de construction sont donnes
dans le graphe ci-dessous :
Actuellement, seul le lotissement numéro 1 est relie au réseau a haut débit.
Déterminer les liaisons à mettre en place de manière à connecter tous les
lotissements au réseau tout en minimisant les coûts de construction.
Recherche Opérationnelle
Graphes
EXERCICE 3
Le réseau ci-dessous représente une partie du réseau routier d'une ville. Les noeuds
correspondent aux carrefours, les arêtes aux routes que l'on suppose toutes a double sens et les
nombres sur les arêtes indiquent la hauteur maximale (en centimètres) qu'un véhicule peut avoir s'il
désire emprunter la route correspondante.
Un livreur désire se rendre du point A au point B. Pour ceci, il veut déterminer la hauteur maximale
x, en mètres, du camion qu'il peut utiliser.
a) Déterminer quel problème de la théorie des graphes permet de décider si le livreur, ayant un
camion de hauteur x mètres, peut effectuer sa livraison en utilisant uniquement les routes du
réseau donné.
b) Citer un algorithme vu au cours permettant de résoudre le problème précédant.
c) Appliquer l'algorithme cité ci-dessus et déterminer la hauteur maximale du camion pour que la
livraison soit possible et donner un itinéraire réalisable.
Recherche Opérationnelle
Graphes
Le problème du plus court chemin
Les problèmes de cheminement dans les graphes (en particulier la recherche d’un
plus court chemin) comptent parmi les problèmes les plus anciens de la théorie des
graphes et les plus importants par leurs applications.
2.1 Définition
Soit G = (V,E) un graphe orienté et valué ; on associe à chaque arc u = (i, j) une
longueur l(u) ou lij. Le problème du plus court chemin entre i et j est de trouver un
chemin μ(i, j) de i à j tel que :
l(μ) =
l(u) soit minimale.
uμ
Interprétation de l(μ) : coût de transport, dépense de construction, temps nécessaire de parcours, ...
Recherche Opérationnelle
Graphes
Remarques :
• la recherche du plus court chemin est analogue à la recherche du plus long chemin.
• Les algorithmes seront différents suivant les propriétés des graphes :
– l(u) >= 0
– l(u) égales (l(u)=1) ( Problème du plus court chemin en nombre d’arcs)
– G sans circuit
– G et l(u) quelconques
et suivant le problème considéré (à une ou plusieurs origines):
Ce problème est aussi appelé le problème de recherche du plus court chemin à origine
unique.
Beaucoup d’autres problèmes peuvent être résolus par l’algorithme avec origine unique:
– plus court chemin à destination unique (inversion du sens de chaque arc du graphe) ;
– plus court chemin pour un couple de sommets donné ;
– plus court chemin pour tout couple de sommets
(algorithme à origine unique à partir de chaque sommet).
Recherche Opérationnelle
Graphes
L'algorithme de Dijkstra (1959) [Moore (1957)]
Données : Un réseau R = (V,E,c) connexe, |V| = n, |E| = m, ou c : E  R+ est une
pondération non négative des arcs du graphe G = (V,E). Un sommet particulier s  V .
Résultat : Pour tout sommet i  V , la longueur i d'un plus court chemin de s à i
(i = s'il n'existe pas de chemin de s à i dans G) ainsi que le prédécesseur immédiat
p(i) du sommet i dans un tel chemin.
(1) s = 0, i =   i  s, p(i) = NULL  i, T = V (initialisation)
(2) Tant que T  ; faire
(2.1) Soit i le sommet de T de plus petite étiquette i (départager arbitrairement
en cas d'égalité).
(2.2) Si un tel sommet n'existe pas ( j =   j  T) : STOP, les sommets
encore dans T ne sont pas atteignables depuis s.
(2.3) Sinon, retirer i de T et pour tout successeur j de i encore dans T tester si
j > i + cij auquel cas poser j = i + cij et p(j) = i.
Recherche Opérationnelle
Graphes
EXERCICE 1
Soit le réseau R=(V,E,c) de la figure :
Déterminer un plus long chemin du sommet v1 au sommet v6.
Préciser la méthode utilisée ainsi que les étapes de la résolution
EXERCICE 2
Khadija habite à GUELIZ et travaille la faculté des Sciences Semlalia (FSSM). Elle effectue donc l’aller et
le retour chaque jour en voiture. Ayant énormément de peine à se lever, elle aimerait trouver le chemin lui
permettant de repousser le plus tard possible l’heure de son départ tout en arrivant au travail à 8h00.
Le réseau des routes qu’elle peut emprunter pour se rendre de Gueliz à FSSm est le suivant:
GUELIZ
FSSM
Les sommets représentent les carrefours, les arcs les rues à sens unique et les arêtes les rues à double
sens. Les valeurs à côté des arcs et des arêtes représentent le temps de parcours nécessaire en
minutes pour rejoindre deux carrefours dans un sens ou dans l’autre (s’il est permis).
De plus il y a une attente de 3 minutes en chaque carrefour, sauf en ceux de Gueliz et De FSSM.
Déterminer le chemin que Khadija doit emprunter lui permettant de partir le plus tard possible et d’arriver
à l’heure à FSSM. A quelle heure doit-elle partir?.
Recherche Opérationnelle
Graphes
Les graphes sans circuit
Dans un réseau R = (V, E, c) sans circuit les problèmes de plus courts et de plus longs
chemins sont toujours bien définis et, dès qu'il existe un chemin entre deux sommets
d'un tel réseau, il existe un plus court et un plus long chemin.
Propriété . Un graphe G = (V, E) sans circuit possède au moins un sommet sans
prédécesseur et au moins un sommet sans successeur.
Théorème . Le graphe G = (V, E) est sans circuit si et seulement si on peut attribuer à
chaque sommet iV un nombre r(i), appelé le rang de i, tel que pour tout arc (i, j)E on
ait r(i) < r(j).
Cette numérotation (qui n'est généralement pas unique !) se calcule à l'aide d'un tri
topologique et est telle que, pour tout arc du graphe, le numéro de son extrémité initiale
est inférieure à celui de extrémité finale.
Recherche Opérationnelle
Graphes
Algorithme du rang
Données : Un graphe orienté G = (V, E) sans circuit.
Résultat : Pour tout sommet i  V , un rang r(i) minimal.
(1) k = 1, W = V
(2) Tant que W  ; faire
(2.1) Soit X l'ensemble des sommets sans prédécesseur du sous-graphe
GW = (W, E(W)).
(2.2) Poser r(i) = k pour tout i  X.
(2.3) Poser W = W \ X et k = k + 1.
Recherche Opérationnelle
Graphes
Tri topologique
Données : Un graphe oriente G = (V, E) sans circuit, |V| = n.
Résultat : Une numérotation rt : V  {1,….,n} des sommets de G compatible avec le
rang.
(1) k = 1, W = V
(2) Tant que W  ; faire
(2.1) Soit i un sommet sans prédécesseur du sous-graphe
GW = (W, E(W)).
(2.2) Poser rt(i) = k, W = W\ {i} et k = k + 1.
Recherche Opérationnelle
Graphes
Exemple
Soit le graphe sans circuit
Appliquant l'algorithme du rang, on obtient la suite d'ensembles X et de sous-graphes
suivante
Recherche Opérationnelle
Graphes
Plus courts chemins dans les réseaux sans circuit
Pour calculer un plus court chemin dans un réseau sans circuit, il suffit de numéroter les
sommets de manière compatible avec le rang (en effectuant un tri topologique du
graphe) et de tester la condition d'optimalité en parcourant les sommets dans l'ordre
croissant de leur numéro.
Le plus souvent cet algorithme s'applique dans des réseaux possédant un seul sommet
sans prédécesseur, le problème étant de trouver un plus court chemin de ce sommet à
tous les autres.
Dans un tel cas, après avoir trié topologiquement le graphe, on pose 1 = 0 et pour k de
2 à n on calcule
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Application à la gestion de projet :
la méthode du chemin critique
On considère un projet complexe décrit par
• un ensemble de tâches de durée connue ;
• des contraintes de précédence entre certaines tâches.
On cherche à ordonner les tâches et à planifier leur dates d'exécution de manière à
• satisfaire les contraintes de précédence ;
• minimiser la durée totale de réalisation du projet ;
• pouvoir évaluer l'impact sur cette durée d'un retard d'exécution.
Recherche Opérationnelle
Graphes
Modélisation
On modélise le problème par un réseau où
• les sommets représentent les tâches du projet ;
• un arc relie deux sommets i et j s'il existe une contrainte de précédence entre les
tâches associées aux sommets i et j.
• le poids cij de l'arc (i, j) est égal à la durée di de la tâche (représenté par le
sommet) i.
Au réseau ainsi construit on ajoute également
• un sommet  représentant le début des travaux, de durée nulle et précédant
toutes les activités sans prédécesseur ;
• un sommet  représentant la fin des travaux, de durée nulle et succédant à toutes
les tâches sans successeur.
Recherche Opérationnelle
Graphes
Le graphe associé à un projet est sans circuit et possède un seul sommet sans
prédécesseur (le sommet  ) et un seul sommet sans successeur (le sommet ).
Déterminer la durée minimale de réalisation d'un projet revient à calculer un plus long
chemin entre les sommets  et  du graphe associé.
Remarques.
1. Un projet peut également être modélisé par un graphe sans circuit ou les arcs
correspondent aux tâches, les sommets représentant alors les différentes étapes du
projet. C’est la méthode PERT (Programm Evaluation and Research Task ). Cette
approche est totalement équivalente à celle présentée ici mais ne sera pas développée
plus avant.
2. La modélisation présentée ici est aussi connue sous le nom de méthode MPM
(Méthode des Potentiels Metra ). Les deux méthodes sont très proches et ont été
développées simultanément et de manière indépendante par deux groupes de
chercheurs.
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Recherche Opérationnelle
Graphes
Terminologie
Une tâche i est critique si i = i. Tout retard dans l'exécution d'une tâche critique se
répercute en un accroissement de la durée totale de réalisation du projet.
Un chemin critique est un chemin du sommet  (début des travaux) au sommet  (n
des travaux) composé uniquement de tâches critiques.
La longueur d'un chemin critique correspond à la durée minimale nécessaire à la
réalisation du projet.
Dans l'exemple, les tâches critiques sont les tâches , A, B, C, E et . Le seul chemin
critique est
C = (, (, A), A, (A, B), B, (B, C), C, (C, E), E, (E, ), )
Sa longueur est égale à 19 ce qui correspond à la durée minimale d'exécution du projet.
EXRECICE 1
C’est bientôt nouvel an. Aicha et Moha ont décidé d’organiser une petite fête déguisée pour l’occasion. Ils doivent tout
prévoir du thème du déguisement au transport des invités, car la fête aura lieu un peu en dehors de Marrakech. Ils ont
énuméré les tâches qu’ils doivent effectuer pour que la fête soit belle.
- Représenter le graphe de précédence des tâches pour l’organisation de la fête.
- Effectuer une numérotation des sommets compatible avec le rang.
- Calculer les dates de début au plus tôt et au plus tard de chacune des tâches.
- Donner la durée minimale de l’organisation.
- Déterminer le chemin critique et les tâches critiques.
- Sachant que l’imprimeur du quartier est toujours très demandé. Aicha et Moha doutent de la durée de la
tâche E. S’il faut 3 jours au lieu de 2 pour imprimer les cartons, devrons-ils commencer plus tôt pour être
prêts le jour de la fête? Si oui, de combien de jours?
EXRECICE 2
Un projet a été divisé en 7 tâches, notées A, B, C, D, E, F et G, dont les durées, en jours, sont données dans la
table qui suit.
Les contraintes suivantes doivent être respectés lors de la réalisation du projet :
– La tâche A commence au plus tôt après la fin de la tache B mais pas avant que la moitié de la tâche E ne soit
achevée.
– La tâche F ne peut débuter avant que les tâches A et D soient terminées.
– L’exécution de la tâche F doit précéder celles des tâches C et G.
– La tâche D doit attendre la fin de la tâche E pour débuter. De plus, trois jours au minimum doivent s’écouler
entre le début de A et le moment où D peut commencer.
– Une pause de sept jours au moins doit être respectée entre le moment où D se termine et celui où G peut
commencer.
a) Donner le graphe potentiels-tâches associé au projet.
b) Calculer, pour chaque tâche, les dates de début au plus tôt et au plus tard. Donner également la durée
minimale de réalisation du projet ainsi que les tâches et les chemins critiques.
c) Lors de la modélisation du problème, la contrainte suivante a été oubliée : « La tâche C doit débuter au plus
tard x jours après le début de la tâche B. »
Comment modifier le graphe potentiels-tâches du projet afin de tenir compte de cette nouvelle contrainte ? Quelle
est la valeur minimale possible pour le délai x ?