Algorithmique avancée TD Programmation Dynamique
Transcript of Algorithmique avancée TD Programmation Dynamique
1
Algorithmique avancéeTD Programmation Dynamique
Laurent LemarchandLaurent LemarchandLab-STICC/UBOLab-STICC/UBO
[email protected]@univ-brest.fr
2
TD programmation dynamique gestion de stock
Achat et vente de jetskis – stock maximum de 5 jetskis
Achats du magasin en début de période Ventes uniquement des unités en stock en début de mois Stock nul au départ et en fin de saison (pas d'entrepot en nov-déc)
Combien acheter de jetskis au début de chaque période ?
mois mars-avril
mai-juin
juillet-aout
sept-oct
nov-déc
ventes 2 3 4 3 2
Prix HT 1.3k€ 1.5k€ 2.0k€ 1.1k€ 1.2k€
3
TD programmation dynamique gestion de stock
Achat et vente de jetskis – stock maximum de 5 jetskis
Achats du magasin en début de période Ventes uniquement des unités en stock en début de mois Stock nul au départ et en fin de saison (pas d'entrepot en jan-fév)
Combien acheter de jetskis au début de chaque période ? Variables xi : achats de la période i
→ variables de décision Variables ai : quantité en stock à la fin de la période i
→ variables d'état du système
mois mars-avril
mai-juin
juillet-aout
sept-oct
nov-déc
ventes 2 3 4 3 2
Prix HT 1.3k€ 1.5k€ 2.0k€ 1.1k€ 1.2k€
4
TD programmation dynamique gestion de stock
Combien peut on acheter de jetskis au début de la première période ?(valeurs possibles de x1) – quel est le cout associé ?
Combien de jetskis en stock à la fin de la première période ? (valeurs possibles de a1) – quel est la relation avec d1 ?
Variables xi : achats de la période i → variables de décision
Variables ai : quantité en stock à la fin de la période i
→ variables d'état du système
mois mars-avril
mai-juin
juillet-aout
sept-oct
nov-déc
ventes 2 3 4 3 2
Prix HT 1.3k€ 1.5k€ 2.0k€ 1.1k€ 1.2k€
5
TD programmation dynamique gestion de stock
Généraliser pour chaque période
La relation entre xi et ai
La relation entre di et ai
La relation entre (xi, ai, di) et (xi+1, ai+1, di+1) Quelle est la fonction de cout du problème
→ donner le programme linéaire (IP) associé
Variables xi : achats de la période i → variables de décision
Variables ai : quantité en stock à la fin de la période i
→ variables d'état du système
6
TD programmation dynamique gestion de stock
Pour la résolution Comment est défini un état du système ? Comment est défini le cout d'un passage d'un état à un autre ? Construire le graphe d'état complet
Comment avoir le cout optimal pour un état donné ? Solution = cout optimal de l'état final Appliquer l'algorithme de Bellman pour l'obtenir
7
TD programmation dynamique gestion de stock
Sommets états (i, ai)
D(k, ak) = min{ak-1} { D(k-1, ak-1
) +pk(a
k – a
k-1 + d
k) }
0,0
1,3
1,2
1,1
1,0
2,0
2,1
2,2
3,1
3,0
4,0
4,1
4,2
5,0
65
52
39
26
30
150
45
301560
45
30
75 60
45
60
40
80
60
100
8033
44
55
44
33
22
0
12
24
8
TD programmation dynamique gestion de stock
Sommets états (i, ai)
D(k, ak) = min{ak-1} { D(k-1, ak-1
) +pk(a
k – a
k-1 + d
k) }
0,0
1,3
1,2
1,1
1,0
2,0
2,1
2,2
3,1
3,0
4,0
4,1
4,2
5,0
65
52
39
26
30
150
45
301560
45
30
75 60
45
60
40
80
60
100
8033
44
55
44
33
22
0
12
24
65
52
39
26
??
9
TD Branch and Bound sac à dos
Définition KP
données
variables
IP
10
TD Branch and Bound sac à dos
Relaxation C(KP) :
solution dans [0..1] (ℝ)
au lieu de {0,1} (ℕ)
z*(ℝ) z*(ℕ) car ℕ ℝ
→ meilleure borne supérieure que z*(ℝ)
→ résolution directe possible sans passer par la PL
11
TD Branch and Bound sac à dos
Résolution de C(KP)
tri des itemspar profit/kg
solutionoptimale
12
TD Branch and Bound sac à dos
Borne supérieure U
1
valeur de solutionoptimale pour C(KP)
borne supérieure pour KP
z*(KP) U1
13
TD Branch and Bound sac à dos
Pour un Branch & Bound sur KP
Borne sup U1
Règle de séparation et parcours de l'arbre de rechercheU
1=19
U1=16 U
1=14
U1=15 U
1=16
p1/w
1 p
2/w
2 ...
x1=0 x
1=1
*
*
*
x2=0 x
1=1
14
TD Branch and Bound sac à dos
Appliquer au problème suivant, avec n=8 et c=102:
Poids : 2 20 20 30 40 30 60 10
Profits : 15 100 90 60 40 15 10 1
Triés par profit unitaire décroissant : 7.5, 5, 4.5, 2, 1, 0.5, 0.17, 0.10
s = 5 U
1=295
s = 5 U
1=295
s = 6 U
1=282
x1=1 x
1=0
15
TD Branch and Bound sac à dos
s = 5 U
1=295
s = 5 U
1=295
s = 6 U
1=282
x1=1 x
1=0
s = 5 U
1=295
x2=1
s = 6 U
1=210
x2=0
s = 5 U
1=295
x3=1
s = 6 U
1=220
x3=0
s = 5 U
1=295
x3=1
s = 5 U
1=295
s = 6 U
1=255
s = 5 infeas
s = - U=U
1=280
x4=1 x
4=0
x5=1 x
5=0
(1 1 1 1 0 1)réalisable
16
TD Branch and Bound sac à dos
s = 5 U
1=295
x1=0
s = 5 U
1=282
s = 5 U
1=282
s = 6 U
1=196
x2=1 x
2=0
x3=1 x
3=0
s = 5 infeas
s = 5 U
1=282
s = 6 U
1=206
s = 5 U
1=282
x4=1
s = 6 U
1=241
x4=0
x5=1 x
5=0
s = 6 U
1=265.00
s = 5 U
1=295
s = 5 U
1=295
s = 6 U
1=255
s = 5 infeas
s = - U=U
1=280
x4=1 x
4=0
x5=1 x
5=0
x1=1