PROGRAMMATION DYNAMIQUE de cours_134.pdf · Les longueurs de ces chemins sont obtenus par...
Transcript of PROGRAMMATION DYNAMIQUE de cours_134.pdf · Les longueurs de ces chemins sont obtenus par...
PROGRAMMATION DYNAMIQUE
1 Le principe d’optimalite de Bellman
La programmation dynamique est fondee sur le principe
d’optimalite de Bellman :
Soit f une fonction reelle de x et y = (y1, y2, ..., yn).
Si f est decomposable, sous la forme :
f (x, y) = f1(x, f2(y))
alors, on a :
Optx,yf (x, y) = Optxf1(x,Optyf2(y))ou Opt represente Min ou Max.
Remarque:
Le principe d’optimalite s’applique sous la meme forme
en presence de contraintes: (x, y) ∈ Ω, y ∈ Ωx.
Outils d'aide à la décision
Master SIS 2009-2010 1
Equation de la programmation dynamique :
Pour une sequence de decisions u0, u1, ..., uT ,
une sequence d’etats x0, x1, ..., xT ,
une fonction de transition :
xk+1 = θk(xk, uk)
et une fonction objectif separable.
on definit pour chaque etape une fonction de cout optimal
a venir (cas additif):
Fk(xk) = Optukfk(xk, uk) + Fk+1(θk(xk, uk))).
On peut alors proceder recursivement a partir de la
periode terminale T (Procedure en arriere) :
tTT-1k k+10 1
x0
x1
xk
xk+1
xT-1
xT
Figure 1: Trajectoire Optimale
Propriete Fondamentale
Toute sous-trajectoire de la trajectoire optimale est opti-
male pour le probleme a horizon reduit associe.
Outils d'aide à la décision
Master SIS 2009-2010 2
2 Algorithme de programmation dynamique
Etape 1
Calculer pour chaque valeur possible de xT :
La solution optimale satisfait:
FT (xT ) = OptuTfT (xT , uT )
Etape 2
Calculer successivement, pour k = T − 1, ..., 1, et pour
chaque valeur possible de xk :
Fk(xk) = Optukfk(xk, uk) + Fk+1(θk(xk, uk)))
Etape 3
Calculer
J∗ = F ∗(x0) = Optu0f0(x0, u0) + F1(θ0(x0, u0)))
Outils d'aide à la décision
Master SIS 2009-2010 3
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.
A chaque trajet (i,j) est associé un coût, cij donné par l'un des tableaux suivants.
2 2 1 4 3 3 4
5 6 7 2 7 4 6 3 3 3 2 4 4 1 3
8 9 5 1 2 6 5 3 7 3 3
10 8 3 9 4
1
2
3
4
5
6
7
8
9
10
Outils d'aide à la décision
Master SIS 2009-2010 4
Modelisation et resolution
On cherche le trajet minimisant le cout total.
En notant xk la ville atteinte a l’etape k, on peut ecrire
le critere :
z =n∑
k=1cxk−1xk
avec x0 = 1 et x4 = 10.
Si a l’etape k on se trouve a la ville i, le cout minimal
restant jusqu’a la destination finale est note f ∗k (i).
En particulier, z = f ∗0 (1) et f ∗4 (10) = 0.
L’equation d’optimalite s’ecrit, pour k = 0, 1, 2, 3 :
f ∗k (i) = minxk+1
(cixk+1 + f ∗k+1(xk+1).
Le principe de la programmation dynamique en sens retrograde
consiste a resoudre le probleme pour toutes les valeurs
possibles de i a chaque etape dans l’ordre 3,2,1,0. Les tra-
jectoires localement optimales sont gardees en memoire,
ce qui permet de reconstituer ensuite le trajet en sens di-
rect.
Outils d'aide à la décision
Master SIS 2009-2010 5
Etapes du calcul :
k=3i f ∗3 (i) x∗48 3 10
9 4 10
k=2i f ∗2 (i) x∗35 4 8
6 7 9
7 6 8
k=1i f ∗1 (i) x∗22 11 5 ou 6
3 7 5
4 8 5 ou 6
k=0i f ∗0 (i) x∗11 11 3 ou 4
La valeur optimale du critere 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).
Outils d'aide à la décision
Master SIS 2009-2010 6
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(µ) =∑
uij∈µlij =
∑
uij∈Uxijl(uij).
Le probleme du plus long chemin du sommet s au sommet t con-
siste a trouver le chemin µ reliant t a s, dont la longueur, l(µ) est
maximale.
Outils d'aide à la décision
Master SIS 2009-2010 7
Formulation en programmation lineaire:
Maximiser∑
uij∈U xijlijsous
∑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 probleme s’ecrit ainsi:
Minimiser λt
sous λj − λi ≥ lijet λs = 0.
A l’optimum, λ∗j est la longueur du plus long chemin de s a j.
Existence de solution
Le probleme 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.
Procedures de marquage
Marquer le noeud i, c’est affecter une valeur (temporaire ou definitive)
a λi.
Outils d'aide à la décision
Master SIS 2009-2010 8
Algorithme de Moore-Dijkstra
En general, cet algorithme est utilise si toutes les longueurs lij sont
non-negatives. Soit P (i) l’ensemble des predecesseurs du sommet i.
On cherche le chemin de longueur maximale a partir d’un sommet s
1. On pose :
λ∗s = 0
λ0i = 0 , i 6= s.
On considere un ensemble S de sommets definitivement marques.
Au depart,S = s2. On introduit l’un apres l’autre tous les sommets (s,...,t) du graphes.
Le sommet sk est introduit a l’iteration k. Le vecteur λk est con-
struit par:
λkj = max(λk−1
j , λk−1sk
+ lskj)
On garde en memoire le meilleur antecedent de j.
Cet algorithme donne par λn tous les chemins extremaux issus de s
en n iterations.
Il permet aussi de detecter d’eventuels circuits absorbants.
Cet algorithme correspond a la resolution par approximations suc-
cessives de l’equation d’optimalite de Bellman:
λ∗j = maxi∈P (j)
λ∗i + lij
La solution optimale est trouvee en n-1 etapes de parcours de tous
les sommets. Et pour chaque nouveau sommet dans S, on parcourt
tous les sommets non marques. La complexite de l’algorithme est
O(n2).
Outils d'aide à la décision
Master SIS 2009-2010 9
Exemple d’application
Un projet comporte 10 operations reliees par le graphe de precedence
potentiels-taches suivant:
A B C D E F
J K
IHG
5
4
4
4
2
2
1 3
33
4
1
4
4
32
Figure 3: Graphe du projet
Outils d'aide à la décision
Master SIS 2009-2010 10
1. Recherche du chemin critique dans le graphe
On applique l’algorithme de Moore pour trouver le chemin cri-
tique, et tous les plus longs chemins a partir du debut de l’operation
A.
Les longueurs de ces chemins sont obtenus par programmation
dynamique a partir du marquage successif des sommets A B G
C J H D I K E :
A B G C J H D I K E
A 0 0 0 0 0 0 0 0 0 0
B 5 5 5 5 5 5 5 5 5 5
G 0 9 9 9 9 9 9 9 9 9
C 0 9 9 9 9 9 9 9 9 9
J 0 9 9 9 9 9 9 9 9 9
H 0 0 10 11 11 11 11 11 11 11
D 0 0 0 11 13 14 14 14 14 14
I 0 0 0 0 0 14 14 14 14 14
K 0 0 0 0 13 13 13 13 13 13
E 0 0 0 0 0 14 16 16 16 16
F 0 0 0 0 0 0 0 18 18 19
Le chemin critique est obtenu en remontant les chemins les plus
longs a partir du sommet F jusqu’a A. Sa longueur est 19. C’est:
A B C H D E F.
Outils d'aide à la décision
Master SIS 2009-2010 11
2. Seconde etape
Calcul des dates de debut au plus tot et au plus tard de toutes les
operations pour une date due globale correspondant au minimum
atteignable.
La date au plus tot de l’operation i est la longueur du plus long
chemin (A,i), obtenu precedemment. La date de debut au plus
tard de la tache 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 tot et au plus tard sont
egales.
A B C D E F
J K
IHG
5
4
4
4
2
2
1 3
33
4
1
4
4
320 5
9-10 11 14-15
1916
13-159-10
149
Figure 4: Dates du projet
Outils d'aide à la décision
Master SIS 2009-2010 12
. 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 .
C12
C34
C43
C32
C23
C21
C41
C14
1
2
4
3
Outils d'aide à la décision
Master SIS 2009-2010 13
Modelisation du probleme de voyageur de
commerce
On cherche le circuit hamiltonien de cout minimal.
Minimiser∑
cijxij
sous∑
jxij = 1 ∀i
∑
ixij = 1 ∀j
∑
i∈U,j /∈Uxij ≥ 1 ∀U ⊂ V ; 2 ≤ |U | ≤ |V | − 2
et xij = 0 ou 1.
Outils d'aide à la décision
Master SIS 2009-2010 14