La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmation dynamique

Présentations similaires


Présentation au sujet: "Programmation dynamique"— Transcription de la présentation:

1 Programmation dynamique
Module IAD/M1/RP Master Informatique de Paris 6 Philippe Chrétienne

2 Programmation dynamique déterministe
Processus de décisions séquentielles. Cadre des problèmes résolus par la programmation dynamique. Schéma de résolution d ’un problème par la programmation dynamique: équations de récurrence avant et arrière . Un problème type: le sac à dos.

3 Processus de décisions séquentielles
Un processus de décisions séquentielles est défini par: -un « système » caractérisé par une variable d ’état , -une suite d ’étapes décisionnelles (phases) . Si le système est dans l ’état e i-1 juste avant l ’étape i, la phase i consiste à prendre une décision di qui a comme conséquence: -de faire faire passer l ’état du système de l ’état e i-1 à ei -un coût « immédiat » ri.

4 e0 e1 ei-1 eN-1 eN ei d1 d2 di dN-1 dN 1 2 i N-1 N r1 r2 ri rN-1 rN D=(d1,d2,……,dN) est une politique réalisable pour passer de l ’état initial e0 à l ’état final eN en N phases décisionnelles. Le coût associé à la politique D est une fonction (r1,r2,…,rN) des coûts immédiats. (r1,r2,…,rN) est la fonction objectif. D ’une manière générale, il faut trouver une politique réalisable dont le coût est minimum (ou maximum). Selon les problèmes, l ’état initial et/ou l ’état final sont (ou ne sont pas) fixés.

5 Cadre des problèmes résolus par la programmation dynamique
La programmation dynamique permet de résoudre un cas particulier de problèmes de décisions séquentielles. Hypothèses à satisfaire: L ’ensemble des décisions possibles à la phase i ne dépend que: - de l ’état ei-1; - du numéro i de la phase décisionnelle. On note i (ei-1) cet ensemble. Hypothèse markovienne sur l ’ensemble des décisions à la phase i: cet ensemble ne dépend des décisions précédentes qu’à travers l ’état ei-1qui résulte de ces décisions. Autre formulation de cette hypothèse: Quelle que soit la suite des décisions (d1, … , di-1) conduisant à l ’état e i-1, l ’ensemble des décisions possibles à la phase i est le même.

6 L ’état ei ne dépend que: - de l ’état ei-1 - de la décision di (i)
- du numéro i de la phase décisionnelle. On note ei = i(ei-1,di) la fonction de changement d ’état Hypothèse markovienne sur le changement d ’état à la phase i: le nouvel état ei ne dépend des décisions précédentes qu’à travers l ’état ei-1 qui résulte de ces décisions. Autre formulation de cette hypothèse: La fonction de changement d ’état à l ’étape i ne dépend pas de la suite (d1, … , di-1) des décisions ayant conduit à l ’état e i-1.

7 Séparabilité de la fonction objectif:
(r1,r2,…,rN) (fonction de N variables) est dite séparable s ’il existe une fonction g(u,v): - de 2 variables u et v; - monotone non décroissante par rapport à v; et une fonction (r2,…,rN) (fonction de N-1 variables) séparable telles que: (r1,r2,…,rN)=g(r1, (r2,…,rN)). 2 exemples de fonctions séparables: (r1,r2,…,rN) = r1 + r2 + ……. + rN Ici g(u,v) = u + v et (r2,…,rN) = r2 + ……. + rN . (r1,r2,…,rN) = Max{r1,r2, ……. , rN} Ici g(u,v) = Max{u,v} et (r2,…,rN) = Max{r2, …….,rN}.

8 Remarque: En pratique, les fonctions objectifs sont souvent du type: (r1,r2,…,rN)=r1r2  ……..  rN où  est un opérateur binaire associatif. Exemples pour  : +,,Min,Max Dans ce cas, on a: g(u,v)=u  v et (r2,…,rN) = r2  …….  rN. (r1,r2,…,rN) est alors séparable si et seulement si g(u,v) est monotone non décroissante par rapport à la seconde variable.

9 Un exemple: le sac à dos Donnée: un sac à dos S;
n articles {A1,…..,An} pour chaque article Ai, son poids pi (entier > 0) et sa valeur vi (entier > 0) le poids maximum de S: P (entier > 0) Une solution s est un sous-ensemble d ’articles de poids total (noté p(s) ) au plus égal à P. La valeur totale d ’une solution s étant notée v(s) , on cherche une solution maximisant v(s).

10 Modèle de programmation dynamique.
Système: le contenu du sac S. Etat du système: le poids de S état initial: e0=0. Phases décisionnelles: une phase par article; ordre (1,2,….,N) Décisions possibles à partir de l ’état ei-1 avant la phase i: si ei-1+pi>P alors une seule décision possible: di=0 (ne pas mettre Ai dans S) si ei-1+pi≤P alors 2 décisions possibles: et di=1 (mettre Ai dans S)

11 Changement d ’état: ei = e i-1 + (di  pi)
Gain immédiat: ri = di  vi Fonction objectif: (r1,r2,…,rn) = r1 + r2 + ……. + rn

12 N=4 article 1 2 3 4 poids 5 2 3 7 valeur 6 3 4 7 e0 e1 e2 e3 e4 A1
Phase 1 Phase 2 Phase 3 Phase 4 e0 e1 e2 e3 e4 1 2 3 4 5 6 7 8 9 10 11 12 A1 non A2 A3 non A4

13 Schéma de résolution par la programmation dynamique
A) Schéma de Récurrence Arrière. Pour simplifier l ’exposé nous faisons 2 hypothèses: - état initial e0 et final eN fixés; - (r1,r2,…,rN)=r1  r2  ……..  rN où a)  est un opérateur binaire associatif b) g(u,v)= u  v est monotone non décroissante par rapport à v. On note  n(s,t) le sous-problème de  associé: - aux n dernières phases de  (récurrence arrière) - à l ’état initial s (avant la phase N-n+1) et à l ’état final t.

14 Le sous-problème n(s,t)
eN-n=s eN=t dN-n+1 dN N-n+1 N-n+2 N e0 d1 1 2 r1 rN-n+1 rN Le sous-problème n(s,t) Une politique D ’ pour  n(s,t) est une suite de décisions (d ’1,d ’2 ,…., d ’n) concernant les phases respectives N-n+1, …., N faisant passer le système de l ’état s à l ’état t. Notation: f*n(s,t) le coût minimum (valeur minimum de la fonction objectif) d ’une politique pour  n(s,t).

15 L ’ensemble  des premières décisions possibles
pour une politique D ’ de  n(s,t) est égal à  N-n+1 (s) . Fixons une première décision d’1 dans . Il en résulte l ’état u = N-n+1(s,d ’1) après la phase 1 de D ’. Soit D*n-1 (u,t) une politique optimale pour  n-1(u,t) On a alors la propriété suivante: Théorème d ’optimalité (Bellman): La politique (d ’1, D*n-1 (u,t)) de  n(s,t) est de coût minimal sur l ’ensemble des politiques de  n(s,t) dont la première décision est d ’1.

16 Preuve: Si d ’1 est fixé, alors l ’état u (=  N-n+1(s,d ’1)) est aussi fixé. De même, le coût r ’1 (= N-n+1(s,d ’1)) est aussi fixé. Soit Dn (s,t) = (d ’1, 2, …. , n) une politique quelconque pour  n (s,t) dont la première décision est d ’1. Soit (r ’1, c2, ….. , cn) la suite des coûts immédiats de Dn (s,t) . Le coût de Dn (s,t) est r ’1c2  ……..  cn Par construction (2, …. , n) est une politique pour  n-1(u,t) dont le coût est c2  ……..  cn. Il en résulte que: f*n-1(u,t) ≤ c2  ……..  cn. D’après l ’hypothèse de monotonie: r ’1 f*n-1(u,t) ≤ r ’1c2  ……..  cn Or r ’1 f*n-1(u,t) est le coût de la politique (d ’1, D*n-1 (u,t)) Et r ’1c2  ……..  cn est le coût de la politique Dn (s,t) . (d ’1, D*n-1 (u,t)) est donc meilleure que Dn (s,t) . CQFD.

17 Pour trouver la meilleure politique pour n(s,t),
il suffit de faire varier la première décision d ’1 dans l ’ensemble des décisions possibles N-n+1 (s). On obtient l ’équation de récurrence (arrière): f*n(s,t) = MIN {N-n+1(s,d ’1)  f*n-1(N-n+1(s,d ’1),t)d ’1 N-n+1 (s)} Initialisation: La fonction f0*(t) est une donnée du problème. Notons E i-1 l ’ensemble de états possibles du système juste avant la phase décisionnelle i. L ’équation précédente permet le calcul des valeurs de f*n(s,t), s  E N-n (e0) lorsque les valeurs de f*n-1(s,t), s  E N-n+1 (e0) sont connues. Remarque: en général, on ne sait pas caractériser exactement Ei, on le remplace alors par un sur-ensemble Si  Ei.

18 Algorithme de récurrence arrière
Soit  un problème d ’optimisation modélisé par un schéma S de programmation dynamique caractérisé par: N phases décisionnelles; un état initial fixé s ; un état final fixé t affecté d ’un coût K ; des fonctions de changement d ’état k,k=1..N des fonctions de coût immédiats k ,k=1..N ; une fonction objectif à minimiser caracrérisée par l ’opération . L ’algorithme Prog_Dyn_Arriere(,S,C,D) calcule - le coût C d ’une politique optimale pour N(s,t) - une politique optimale D de N(s,t).

19 Procedure Prog_Dyn_Arriere(,S,C,D)
optv0(t,0):=K; % initialisation % Pour k de 1 à N faire % calcul de f*N(s,t)% Pour tout e dans E N-k faire optv(e,k):=Min{N-k+1(e,d)  optv(N-k+1(e,d),k-1) d N-k+1 (e)}; optd(e,k) := Argmin(optv(e,k)) FinPour FinPour ; C := optv (s,N) ; e:=s ; Pour k de 0 à N-1 faire % calcul d ’une politique optimale % Dk+1:= optd(e,N-k) ; e:= k+1 (e,Dk+1) FinPour.

20 Complexité temporelle pire-cas de
Prog_Dyn_Arriere (,S,C,D) Hypothèses concernant l ’énoncé I de  (de longueur l(I)): 1) Pour tout k: Card (E k ) ≤ E ( l(I) ) ; 2) Le temps de calcul de u  v est en 0(1) ; 3) Pour tout k et pour tout e dans E k: Card ( k (e)) ≤  (l(I)) ; La complexité de Prog_Dyn_Arriere(,S,C,D) est alors en O( N  E(l(I))  (l(I)) ) Remarque: On a souvent:  (l(I))=O(1) Il est donc très important d ’ajuster au mieux les espaces d ’états pour chaque phase décisionnelle.

21 A) Schéma de Récurrence Avant.
Pour simplifier l ’exposé nous faisons 2 hypothèses: - état initial e0 et final eN fixés; - (r1,r2,…,rN)=r1r2  ……..  rN (où  est un opérateur binaire associatif). On note  n(s,p) le sous-problème de  associé: - aux n premières phases de  (récurrence avant) - à l ’état initial s et à l ’état final p.

22 Le sous-problème n(s,p)
en=p eN dn dN n n+1 N e0=s d1 1 2 r1 rn rN Le sous-problème n(s,p) Une politique D ’ pour n(s,p) est une suite de décisions (d ’1,d ’2 ,…., d ’n) concernant les n premières phases faisant passer le système de l ’état s à l ’état p. Notation: g*n(s,p) le coût minimum (valeur minimum de la fonction objectif) d ’une politique pour  n(s,p).

23 Soit Cn(p) l’ensemble des couples (e n-1,d n) possibles
en=p eN dn dN n n+1 N e0=s d1 1 2 r1 rn rN Soit Cn(p) l’ensemble des couples (e n-1,d n) possibles pour une politique D ’ de  n(s,p). Cn(p) = {(e,d)/ e  E n-1, d   n(e),  n(e,d)=p} Fixons un couple (e,d) de Cn(p). Soit D*n-1 (s,e) une politique optimale pour  n-1(s,e) On a alors la propriété suivante: Théorème d ’optimalité (Bellman): La politique (D*n-1 (s,e),d) de  n(s,p) est de coût minimal sur l ’ensemble des politiques de  n(s,p) dont le dernier couple (état,décision) est (e,d).

24 Pour trouver la meilleure politique pour  n(s,p) , il suffit de
en=p eN dn dN n n+1 N e0=s d1 1 2 r1 rn rN Pour trouver la meilleure politique pour  n(s,p) , il suffit de faire varier le dernier couple (e,d) dans Cn(p). On obtient l ’équation de récurrence (avant): g*n(s,p) = MIN {n(e,d)  g*n-1(s,e))(e,d) Cn(p)} Initialisation: La fonction g*0(s) est une donnée du problème. L ’équation précédente permet le calcul des valeurs de g*n(s,p), p  E n+1(e0) lorsque les valeurs de g*n-1(s,t), t  E n(e0) sont connues.

25 Récurrence avant pour le sac à dos.
Etat du système: le poids de S, état initial: e0=0. Phases décisionnelles: une phase par article; ordre (1,2,….,N) Décisions possibles à partir de l ’état ei-1 avant la phase i: si ei-1+pi>P alors di=0 (ne pas mettre Ai dans S) si ei-1+pi≤P alors (di=0 ou di=1) Changement d ’état: ei = e i-1 + (di  pi) Gain immédiat: ri = di  vi Fonction objectif: (r1,r2,…,rn) = r1 + r2 + ……. + rn Equations de récurrence avant. g*i(p) = MAX {vi + g*i-1(p-pi) , g*i-1(p)} si p ≥ pi g*i(p) = g*i-1(p)} si p < pi

26 N=4 article 1 2 3 4 poids 5 2 3 7 valeur 6 3 4 7 P=13 e0 e1 e2 e3 e4
Phase 1 Phase 2 Phase 3 Phase 4 e0 e1 e2 e3 e4 1 2 3 4 5 6 7 8 9 10 11 12 13 14

27 Récurrence avant pour un problème d ’ordonnancement sur une machine
Paramètres du problème: une machine M ; n tâches T1, T2, … , Tn non interruptibles; pour chaque tâche Ti: sa durée pi, son deadline di et son gain gi Une solution est un séquencement des n tâches sur M. Si, dans une solution, l ’exécution d ’une tâche Ti se termine au plus tard à la date di, la tâche Ti est dite « en avance », le gain associé est gi. Le gain d ’une solution est la somme des gains réalisés. Il faut trouver une solution de gain maximal.

28 Recherche d ’un ensemble dominant de solutions
Propriété: Les solutions s telles que: 1) s=h.r où: h est une sous-liste de tâches à l ’heure, r est une sous-liste de tâches en retard; 2) les tâches de h sont placées dans l ’ordre croissant au sens large de leurs deadlines sont dominantes. Preuve: On montre d ’abord que les solutions qui vérifient 1) sont dominantes. On montre ensuite que l ’on peut reséquencer les tâches à l ’heure selon 2).

29 Solution s1 telle que Ti est la première tâche en retard
suivie d ’une tâche à l ’heure Tj : s1 di dj s2 Solution s2 déduite de s1: G(s2) ≥ G(s1) En itérant cette transformation, on obtient une solution de type h.r satisfaisant 1).

30 Soit s une solution de type h.r satisfaisant 1) telle que:
A) les 2 tâches Ti et Tj soient consécutives dans h; B) di > dj . s h r di dj s ’ La solution s ’ de type h.r obtenue par échange de Ti et Tj satisfait G(s) = G(s ’). En itérant cette transformation on obtient une solution de type h.r satisfaisant 2).

31 On peut donc poser le problème sous la forme:
Déterminer une liste h de tâches à l ’heure de gain maximal. On suppose donc, sans perte de généralité que: d1 ≤ d2 ≤ ….. ≤ dn Nous allons résoudre par la programmation dynamique un problème « dual » du problème initial: Si h est une liste de tâches à l ’heure, on note g(h)=  Tih gi le gain associé à h, p(h)=  Tih pi la durée de h. Pour chaque valeur de gain total e, on cherche une liste h de tâches à l ’heure telle que: g(h)=e et p(h) minimum.

32 SCHEMA DE RECURRENCE AVANT.
n étapes décisionnelles 1, 2, … , n. L ’étape numéro i concerne la tâche Ti: elle consiste à prendre (ou non) la tâche Ti dans l ’ensemble des tâches à l ’heure. Di = 1 si Ti est prise, Di = 0 sinon. Variable d ’état: ei est le gain réalisé après les i premières décisions. Coût immédiat: ri = pi si Di = 1, ri = 0 si Di = 0.

33 Ensemble  i (e) des décisions possibles si e i-1 = e.
On note P i-1 (e) la durée minimale d ’une liste de tâches à l ’heure appartenant à {T1, T2, …., Ti-1} et dont le gain est égal à e. Convention: si une telle liste n ’existe pas: P i-1 (e) = + Si P i-1 (e) + pi > di, alors il n ’est pas possible de prendre la tâche Ti et donc  i (e) ={0} Si P i-1 (e) + pi ≤ di, alors  i (e) ={0,1} Fonction objectif:  ri. Les hypothèses d ’un schéma de résolution par la programmation dynamique sont donc satisfaites.

34 Equation de récurrence avant:
P i-1 (e) si [ (P i-1 (e) + pi > di) ou (e < gi) ] P i (e) = Min{P i-1 (e) , P i-1 (e-gi) + pi} sinon. Initialisation: P 0 (e) = + si e>0 P 0 (0) = 0 La valeur maximale du gain est Max{eP n (e) < + }

35 Un exemple 5 tâches i 1 2 3 4 5 pi 5 1 4 3 6 di 8 8 9 9 10
gi Les tâches sont déjà triées dans l ’ordre croissant au sens large de leur deadline. Trouver la politique optimale et le gain maximal.

36 Solution optimale: (T1, T2, T4) Gain maximal: 8
Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 e0 e1 e2 e3 e4 e5 5 1 6 3 4 8 7 9 2 Rem: Les valeurs + de Pi(e) (en vert) ne sont pas écrites i pi di gi Solution optimale: (T1, T2, T4) Gain maximal: 8


Télécharger ppt "Programmation dynamique"

Présentations similaires


Annonces Google