Cours ADP-OAD4
Transcription
Cours ADP-OAD4
Outils d'aide à la décision PROGRAMMATION DYNAMIQUE 1 Le principe d’optimalité de Bellman La programmation dynamique est fondée sur le principe d’optimalité de Bellman : Soit f une fonction réelle de x et y = (y1, y2, ..., yn). Si f est décomposable, sous la forme : f (x, y) = f1(x, f2(y)) alors, on a : Optx,y f (x, y) = Optx{f1(x, Opty {f2(y)}) où Opt représente Min ou Max. Remarque: Le principe d’optimalité s’applique sous la même forme en présence de contraintes: (x, y) ∈ Ω, y ∈ Ωx. Master SIS 2009-2010 1 Outils d'aide à la décision Equation de la programmation dynamique : Pour une séquence de décisions u0, u1, ..., uT , une séquence d’états x0, x1, ..., xT , une fonction de transition : xk+1 = θk (xk , uk ) et une fonction objectif séparable. on définit pour chaque étape une fonction de coût optimal à venir (cas additif): Fk (xk ) = Optuk {fk (xk , uk ) + Fk+1(θk (xk , uk )))}. On peut alors procéder récursivement à partir de la période terminale T (Procédure en arrière) : xT x1 xT-1 x0 xk xk+1 0 1 k k+1 T-1 T Figure 1: Trajectoire Optimale Propriété Fondamentale Toute sous-trajectoire de la trajectoire optimale est optimale pour le problème à horizon réduit associé. Master SIS 2009-2010 2 t Outils d'aide à la décision 2 Algorithme de programmation dynamique Etape 1 Calculer pour chaque valeur possible de xT : La solution optimale satisfait: FT (xT ) = OptuT {fT (xT , uT )} Etape 2 Calculer successivement, pour k = T − 1, ..., 1, et pour chaque valeur possible de xk : Fk (xk ) = Optuk {fk (xk , uk ) + Fk+1(θk (xk , uk )))} Etape 3 Calculer J ∗ = F ∗(x0) = Optu0 {f0(x0, u0) + F1(θ0(x0, u0)))} Master SIS 2009-2010 3 Outils d'aide à la décision 3 Application 1 : voyage avec escales Un avion doit faire une séquence de vols le conduisant de la ville 1 à la ville 10 avec 4 escales. Les lieux d'escales possibles sont décrits par le schéma suivant. 5 2 1 8 3 10 6 4 9 7 A chaque trajet (i,j) est associé un coût, cij donné par l'un des tableaux suivants. 1 2 4 3 2 3 4 2 3 4 5 7 3 4 Master SIS 2009-2010 6 4 3 1 7 6 2 3 5 6 7 4 8 1 5 3 9 2 3 3 10 8 3 9 4 Outils d'aide à la décision Modélisation et résolution On cherche le trajet minimisant le coût total. En notant xk la ville atteinte à l’étape k, on peut écrire le critère : n X z= cxk−1xk k=1 avec x0 = 1 et x4 = 10. Si à l’étape k on se trouve à la ville i, le coût minimal restant jusqu’à la destination finale est noté fk∗(i). En particulier, z = f0∗(1) et f4∗(10) = 0. L’équation d’optimalité s’écrit, pour k = 0, 1, 2, 3 : ∗ fk∗(i) = min (c + f (xk+1). ix k+1 k+1 x k+1 Le principe de la programmation dynamique en sens rétrograde consiste à résoudre le problème pour toutes les valeurs possibles de i à chaque étape dans l’ordre 3,2,1,0. Les trajectoires localement optimales sont gardées en mémoire, ce qui permet de reconstituer ensuite le trajet en sens direct. Master SIS 2009-2010 5 Outils d'aide à la décision Etapes du calcul : k=3 i f3∗(i) x∗4 8 3 10 9 4 10 k=2 i f2∗(i) 5 4 6 7 7 6 x∗3 8 9 8 k=1 i f1∗(i) x∗2 2 11 5 ou 6 5 3 7 4 8 5 ou 6 k=0 i f0∗(i) x∗1 1 11 3 ou 4 La valeur optimale du critère est donc 11. On retrouve les trajets fournissant cette valeur optimale en relisant en sens inverse les trajets successifs: (1, 3, 5, 8, 10) ou (1, 4, 6, 9, 10) ou (1, 4, 5, 8, 10). Master SIS 2009-2010 6 Outils d'aide à la décision 4 Application 2 Algorithmes de recherche du chemin le plus long (le plus court) Soit lij la longueur de l’arc ij du graphe G = (X, U ). Un chemin µ dans G est une succession d’arcs ij tels que: xij = 1 ssi uij ∈ µ, xij = 0 sinon. La longueur du chemin µ est: l(µ) = X uij ∈µ lij = X uij ∈U xij l(uij ). Le problème du plus long chemin du sommet s au sommet t consiste à trouver le chemin µ reliant t à s, dont la longueur, l(µ) est maximale. Master SIS 2009-2010 7 Outils d'aide à la décision Formulation en programmation linéaire: P Maximiser uij ∈U xij lij P P sous i∈P (j) uij − l∈S(l) ujl = aj avec as = −1, at = +1, aj = 0 si j 6= s, j 6= t. Le dual de ce problème s’écrit ainsi: Minimiser λt sous λj − λi ≥ lij et λs = 0. A l’optimum, λ∗j est la longueur du plus long chemin de s à j. Existence de solution Le problème dual a des solutions (admissibles) si et seulement s’il n’existe pas dans G de circuit absorbant, c.a.d. de circuit de longueur positive. Procédures de marquage Marquer le noeud i, c’est affecter une valeur (temporaire ou définitive) à λi. Master SIS 2009-2010 8 Outils d'aide à la décision Algorithme de Moore-Dijkstra En général, cet algorithme est utilisé si toutes les longueurs lij sont non-négatives. Soit P (i) l’ensemble des prédécesseurs du sommet i. On cherche le chemin de longueur maximale à partir d’un sommet s λ∗s = 0 1. On pose : λ0 = 0 , i 6= s. i On considère un ensemble S de sommets définitivement marqués. Au départ,S = {s} 2. On introduit l’un après l’autre tous les sommets (s,...,t) du graphes. Le sommet sk est introduit à l’itération k. Le vecteur λk est construit par: k−1 λkj = max(λk−1 j , λsk + lsk j ) On garde en mémoire le meilleur antécédent de j. Cet algorithme donne par λn tous les chemins extrémaux issus de s en n itérations. Il permet aussi de détecter d’éventuels circuits absorbants. Cet algorithme correspond à la résolution par approximations successives de l’équation d’optimalité de Bellman: λ∗j = max {λ∗i + lij } i∈P (j) La solution optimale est trouvée en n-1 étapes de parcours de tous les sommets. Et pour chaque nouveau sommet dans S, on parcourt tous les sommets non marqués. La complexité de l’algorithme est O(n2). Master SIS 2009-2010 9 Outils d'aide à la décision Exemple d’application Un projet comporte 10 opérations reliées par le graphe de précédence potentiels-tâches suivant: G 1 4 A 5 B 2 C D Master SIS 2009-2010 K Graphe du projet 10 E 1 4 J 4 2 4 4 Figure 3: I 3 3 2 4 3 H 3 F Outils d'aide à la décision 1. Recherche du chemin critique dans le graphe On applique l’algorithme de Moore pour trouver le chemin critique, et tous les plus longs chemins à partir du début de l’opération A. Les longueurs de ces chemins sont obtenus par programmation dynamique à partir du marquage successif des sommets A B G CJHDIKE: A A B G C J H D I K E F 0 5 0 0 0 0 0 0 0 0 0 B G 0 5 9 9 9 0 0 0 0 0 0 0 5 9 9 9 10 0 0 0 0 0 C 0 5 9 9 9 11 11 0 0 0 0 J 0 5 9 9 9 11 13 0 13 0 0 H 0 5 9 9 9 11 14 14 13 14 0 D 0 5 9 9 9 11 14 14 13 16 0 I 0 5 9 9 9 11 14 14 13 16 18 K 0 5 9 9 9 11 14 14 13 16 18 E 0 5 9 9 9 11 14 14 13 16 19 Le chemin critique est obtenu en remontant les chemins les plus longs à partir du sommet F jusqu’à A. Sa longueur est 19. C’est: A B C H D E F. Master SIS 2009-2010 11 Outils d'aide à la décision 2. Seconde étape Calcul des dates de début au plus tôt et au plus tard de toutes les opérations pour une date due globale correspondant au minimum atteignable. La date au plus tôt de l’opération i est la longueur du plus long chemin (A,i), obtenu précédemment. La date de début au plus tard de la tâche i est la date due de F (19), moins la longueur du plus long chemin (i,F). Sur le chemin critique, les dates au plus tôt et au plus tard sont égales. 9-10 G 11 1 H 4 0 A 5 5 B 9 4 14 2 C D 9-10 Figure 4: Master SIS 2009-2010 E 1 4 J 16 2 4 4 4 3 3 2 14-15 I 3 K 13-15 Dates du projet 12 19 3 F Outils d'aide à la décision . 5 Application 3 : Problème de voyageur de commerce n villes V = 1; :::; n constituent les sommets d'un graphe. Un arc (ij) represente un chemin direct de i à j, avec un coût cij . 2 C12 C21 1 C32 C41 C14 Master SIS 2009-2010 C23 3 C43 C34 4 13 Outils d'aide à la décision Modélisation du problème de voyageur de commerce On cherche le circuit hamiltonien de coût minimal. X Minimiser cij xij X sous xij = 1 ∀i j X X i∈U,j ∈U / i xij = 1 ∀j xij ≥ 1 ∀U ⊂ V ; 2 ≤ |U | ≤ |V | − 2 et Master SIS 2009-2010 14 xij = 0 ou 1.