programmation dynamique de cours_134.pdf · les longueurs de ces chemins sont obtenus par...

14
PROGRAMMATION DYNAMIQUE 1 Le principe d’optimalit´ e de Bellman La programmation dynamique est fond´ ee sur le principe d’optimalit´ e de Bellman : Soit f une fonction r´ eelle de x et y =(y 1 ,y 2 , ..., y n ). Si f est d´ ecomposable, sous la forme : f (x, y )= f 1 (x, f 2 (y )) alors, on a : Opt x,y f (x, y )= Opt x {f 1 (x, Opt y {f 2 (y )}) o` u Opt repr´ esente Min ou Max. Remarque: Le principe d’optimalit´ e s’applique sous la mˆ eme forme en pr´ esence de contraintes: (x, y ) Ω,y Ω x . Outils d'aide à la décision Master SIS 2009-2010 1

Upload: others

Post on 10-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 2: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 3: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 4: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 5: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 6: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 7: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 8: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 9: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 10: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 11: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 12: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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

Page 13: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

. 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

Page 14: PROGRAMMATION DYNAMIQUE de cours_134.pdf · 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

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