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.