1 / 54

Mise à Niveau en Recherche Opérationnelle

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.

chessa
Download Presentation

Mise à Niveau en Recherche Opérationnelle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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, Toulousehttp://www.laas.fr/~lopez/cours/GRAPHES/graphes.html

  2. 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

  3. 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

  4. 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

  5. Concepts généraux en théorie des graphesDé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

  6. Concepts généraux en théorie des graphesDé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,)

  7. Concepts généraux en théorie des graphesDé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

  8. Concepts généraux en théorie des graphesDé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

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

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

  11. Concepts généraux en théorie des graphesReprésentations d’un graphe • Listes d’adjacence Place mémoire : n+1+m

  12. Concepts généraux en théorie des graphesColoration d’un graphe

  13. Concepts généraux en théorie des graphesColoration d’un graphe

  14. Concepts généraux en théorie des graphesConnexité dans les graphes • Chaîne – Cycle • Chemin – Circuit

  15. Concepts généraux en théorie des graphesConnexité 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

  16. Concepts généraux en théorie des graphesConnexité 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é

  17. Concepts généraux en théorie des graphesConnexité dans les graphes • Connexité

  18. Concepts généraux en théorie des graphesConnexité dans les graphes • Forte connexité

  19. 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

  20. 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

  21. Le problème du plus court chemin Définition

  22. B E H C F I K A G J D 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 • …

  23. 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

  24. 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

  25. 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

  26. Le problème du plus court cheminPrincipe 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}

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

  28. Le problème du plus court cheminGraphes 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 -4 1 1 2 1 6 5 3 9 3 5 6

  29. Le problème du plus court cheminGraphes à 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

  30. Le problème du plus court cheminGraphes à 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

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

  32. 1 A C 6 2 S E 2 -4 2 3 3 D B Le problème du plus court cheminAlgorithme de Dijkstra et graphes à valuations quelconques

  33. Le problème du plus court cheminGraphes à 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)

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

  35. Le problème central de l’ordonnancement

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

  37. Le problème central de l’ordonnancementDates 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

  38. Le problème central de l’ordonnancementDates 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)

  39. Le problème central de l’ordonnancementMarges, 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

  40. 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

  41. Flots dans les réseauxFlot 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)

  42. a [0,10] [0,20] [0,30] 1 [0,15] [0,45] [0,5] [0,10] b [0,25] E 2 S [0,20] [0,5] [0,25] c [0,10] 3 [0,20] [0,30] [0,10] d Flots dans les réseauxFlot 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

  43. a [0,10], 10 1 [0,20], 15 [0,30], 25 [0,15], 5 [0,45], 35 [0,10], 10 b [0,5], 5 [0,25], 25 E 2 S [0,20], 15 [0,5], 5 [0,25], 20 c [0,10], 10 3 [0,20], 20 [0,30], 30 [0,10], 10 d Flots dans les réseauxExemple de flot Valeur du flot = 80 Ce flot est un flot complet, c-à-d, tout chemin de E à S comporte au moins un arc saturé

  44. Flots dans les réseauxQuelques 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

  45. 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 • 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

  46. 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)

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

  48. 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 

  49. 30 20 5 5 0 0 40 10 0 5 Flots dans les réseaux Détermination d’un flot maximum 25 10 a 15 5 5 10 1 10 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

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

More Related