Mise à Niveau en Recherche Opérationnelle

Slides:



Advertisements
Présentations similaires
7. Probème de flot à coût minimum.
Advertisements

Introduction à la Théorie des graphes
La recherche de chemin optimal
Théorie des graphes.
Présentation générale Marc Gengler
Algorithmes et structures de données avancées Cours 7
Algorithmes et structures de données avancées Cours 6 Patrick Reuter
Algorithmes et structures de données avancés

Introduction à la Théorie des graphes
UMLV 1 Problème G = (S, A) graphe (orienté) Calculer H = (S, B) où B est la clôture réflexive et transitive de A. Note : (s,t) B ssi il existe un chemin.
Modélisation par le concept de graphe
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
LES GRAPHES.
Visualisation d’information interactive 5 : Graphes
LES GRAPHES.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
Introduction à la Théorie des Graphes
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Recherche Opérationnelle
Chapitre VIII. Introduction aux graphes
COURS SUR LA THEORIE DES GRAPHES
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Optimisation et Complexité
Théorie des graphes Un peu de vocabulaire.
Pr ZEGOUR Djamel Eddine
Algorithme de Bellman-Ford
Structures de données IFT-2000
Structures de données IFT-2000
Les dominos Peut-on aligner tous les dominos d’un jeu ?
7. Problème de flot à coût minimum.
IFT Complexité et NP-complétude




Algorithmes d ’approximation
PROBLEMES DE DEGRE-DIAMETRE DE GRAPHES DANS LE CAS GENERAL
Optimisation dans les réseaux
Programmation linéaire et Recherche opérationnelle
Recherche Opérationnelle
- GRAPHES - Composantes et types
Cours de graphes Marc Gengler Alexandra Bac Sébastien Fournier
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
23 février 2007Cours de graphes 4 - Intranet1 Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut. Algos de Ford-Fulkerson et Edmonds-Karp.
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
Atelier de formation : MAT optimisation II (les graphes).
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Pour le chemin le plus court pour tous les couples
Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Arbres et graphes.
LE FLOT MAXIMAL et LA COUPE MINIMALE
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Licence d’informatique Algorithmique des graphes
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
6. Problème de flot à coût minimum.
Helen KASSEL (amphi), Herve BARBOT (TD, TP)
Licence d’Informatique Algorithmique des graphes

Systèmes formels 1. Définition d'un SF Morphologie Théorie propre
Sixième étape : pondérer les graphes. Longueur d’une chaîne d’un graphe quelconque = nombre des arêtes qui la constituent. Distance entre deux sommets.
Introduction à la Théorie des graphes
Techniques d’Optimisation Chapitre 2: Problème de flôt Dr TARI Abdelkamel Mars 2014.
Cycle, Cocycle, Arbre et Arborescence
Cours de base: Théorie des Graphes Dr TARI Abdelkamel
Chapitre 3 Problèmes de Cheminement
Transcription de la présentation:

Mise à Niveau en Recherche Opérationnelle Première partie Théorie des graphes Mohamed Ali Aloulou aloulou@lamsade.dauphine.fr 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

Plan du cours Qu’est ce qu’on peut faire avec la théorie des graphes ? Concepts généraux en théorie des graphes Le problème du plus court chemin Problème central de l’ordonnancement Flots et réseaux de transports http://www.laas.fr/~lopez/cours/GRAPHES/graphes.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

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

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) Arc u=(xi,xj) boucle 3-graphe 1-graphe = graphe

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,)

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

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

Concepts généraux en théorie des graphes Représentations d’un graphe Matrice d’adjacence Place mémoire : n² Pour un graphe numérisé : remplacer 1 par la valeur de l’arc

Concepts généraux en théorie des graphes Représentations d’un graphe Matrice d’incidence sommets-arcs Place mémoire : n x m

Concepts généraux en théorie des graphes Représentations d’un graphe Listes d’adjacence Place mémoire : n+1+m

Concepts généraux en théorie des graphes Coloration d’un graphe

Concepts généraux en théorie des graphes Coloration d’un graphe

Concepts généraux en théorie des graphes Connexité dans les graphes Chaîne – Cycle Chemin – Circuit

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

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é

Concepts généraux en théorie des graphes Connexité dans les graphes

Concepts généraux en théorie des graphes Connexité dans les graphes Forte connexité

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

Le problème du plus court chemin Définition Exemples de formulation avec pcch Principe d’optimalité et conditions d’existence Graphes sans circuit Graphes à valuations positives Algorithme de Moore-Dijkstra (1959) Graphes à valuations quelconques Contre-exemple Algorithme de Bellman-Ford

Le problème du plus court chemin Définition

Le problème du plus court chemin Exemples Exemple 1 : 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

Le problème du plus court chemin Exemples Exemple 2 : Chemin le plus fiable dans un réseau de télécommunication Arêtes = liens physiques Valuation des arêtes (i,j) est pij: fiabilité du lien (la probabilité pour que le lien fonctionne) La fiabilité d’un chemin est le produit des probabilités des liens qui le constituent Le problème devient un problème de pcch en remplaçant chaque probabilité par aij = - log pij

Le problème du plus court chemin Exemples Exemple 3 : Problème de sac à dos Un sac à dos de capacité b n objets j=1…n aj : poids de l’objet j pj : profit de l’objet j Objectif : déterminer un sous ensemble d’objets de profit maximal respectant la capacité du sac. Maximiser j pjxj s.c. j aj xj  b avec xij = 1 si l’objet est choisi et 0 sinon

Le problème du plus court chemin Exemples Exemple 3 : Problème de sac à dos n(b+1) sommets notés j(k), j=1,2,…,n et k=0,1,…,b Un sommet origine s et un sommet destination t Un sommet j(k) a deux arcs entrants (s’ils existent): Un arc de (j-1)(k) valué par 0 Un arc de (j-1)(k-aj) valué par pj Deux arcs de s vers 1(0) et 1(a1) valués par 0 et p1 Un arc de valuation 0 entre chaque sommet n(k) et t Un chemin de s à j(k) correspond a un sous ensemble des j premiers objets dont le poids total est égal à k. La longueur du chemin est la valeur du sous ensemble

Le problème du plus court chemin Principe d’optimalité aij = longueur de l’arc (i,j) si l’arc existe sinon +  uj : longueur du pcch de l’origine 1 vers le sommet j Equations de Bellman u1 =0 uj = min {kj, uk + akj}

Le problème du plus court chemin Condition d’existence Condition d’existence Le graphe n’admet pas de circuit de longueur négative i j k w l(w)<0

Le problème du plus court chemin Graphes acycliques Un graphe est acyclique ssi il existe une numérotation des sommets telle qu’un arc existe entre i et j seulement si i < j Les équations de Bellman deviennent u1 =0 uj = min {k < j, uk + akj} -6 3 2 4 2 1 -4 1 2 1 6 5 3 9 3 5 6

Le problème du plus court chemin Graphes à valuations positives Algorithme de Dijkstra : plus court chemin de l’origine à tous les autres sommets Utilise des labels pour les sommets Les labels permanents représentent la valeur du pcch de l’origine jusqu’au sommet correspondant Les labels temporaires représentent une borne supérieure de ce pcch A chaque itération un label temporaire est transformé en label permanent

Le problème du plus court chemin Graphes à valuations positives Algorithme de Dijkstra Etape 0 u1 =0; uj =a1j, pour j=2,…, n P={1}, T={2, …, n} Etape 2 (Désignation du label permanent) Déterminer kT, tq uk=min{j T, uj} T=T\{k} et P=P{k} Si T=vide, stop Etape 3 (Révision des labels temporaires) uj=min{uj, uk+akj} pour tout j T Aller à l’étape 1

Le problème du plus court chemin Graphes à valuations positives Exemple A B D C E F H G 2 4 3 1 5 3

Le problème du plus court chemin Algorithme de Dijkstra et graphes à valuations quelconques 6 1 2 3 -4

Le problème du plus court chemin Graphes à valuations quelconques Algorithme de Bellman-Ford uj(m) = longueur du pcch de 1 vers j tel que le chemin ne contient pas plus que m arcs u1(1)= 0 uj(1) = a1j uj(m+1) = min{uj(m) , min{kj, uk(m) + akj}} Si le graphe ne contient pas de circuit de valeur négative alors uj = uj(n-1)

Le problème du plus court chemin Graphes à valuations quelconques Plus court chemin entre tous les couples de sommets Algorithme matriciel de Floyd-Warshall

Le problème central de l’ordonnancement

Le problème central de l’ordonnancement Modélisation Début G K J H D A E F B C O L M N I Fin 1 2 3 4 5 6 7 8 NIVEAU : 8 6 4 1 2 Le niveau d’une tâche X est le plus grand nombre d’arc sur un chemin entre Début et X

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

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)

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

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

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)

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 1 2 3 a b d c [0,10] [0,15] [0,20] [0,5] S [0,30] [0,10] [0,20] a b c d 1 10 15 - 20 2 5 3 E [0,45] [0,25]

Flots dans les réseaux Exemple de flot 1 2 3 a b d c S [0,10], 10 [0,15], 5 [0,20], 20 [0,20], 15 [0,5], 5 [0,45], 35 [0,25], 25 [0,25], 20 [0,30], 25 [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é

Flots dans les réseaux Quelques problèmes qui se posent Détermination d’un flot réalisable ou compatible : c’est le cas où il existe des arcs u tels que b(u)>0 Détermination d’un flot maximum Un flot complet n’est pas forcément maximum Un flot maximum est forcément complet Détermination d’un flot maximum de coût minimum

Flots dans les réseaux Détermination d’un flot maximum Principe de l’algorithme de Ford-Fulkerson Construire un flot complet Améliorer itérativement ce flot 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

Flots dans les réseaux Détermination d’un flot maximum 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)

Un flot complet Graphe d’écart 15 10 35 25 5 5 20 30 10 [0,10], 10 b d c S [0,10], 10 [0,15], 5 [0,20], 20 [0,20], 15 [0,5], 5 [0,45], 35 [0,25], 25 [0,25], 20 [0,30], 25 [0,30], 30 Un flot complet E 1 2 3 a b d c S 35 25 20 10 5 15 30 10 5 Graphe d’écart

Flots dans les réseaux Détermination d’un flot maximum 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 

Flots dans les réseaux Détermination d’un flot maximum 25 5 40 10 20 30 10 a 15 10 5 5 10 1 35 5 b 10 25 5 5 E 2 S 5 15 5 c 10 20 20 3 30 10 d Valeur du flot = 85 Capacité minimale  = 5

Exemples En 1736, Euler a montré que c’est impossible !! retour

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 E. Lawler, Combinatorial Optimization – Networks and matroids, Dover Publications, INC, 1976.