IntroOpti_Glouton_PB_cours3_2015_2016

publicité
UE Intro Opti
L3 INFO UPSud
2015-2016
Programmation linéaire en variables
entières (ou mixtes) : résolution approchée
par heuristique
[email protected]
1
Une solution approchée ?
En maximisation : si une solution est admissible (de bonne
qualité) mais pas optimale, alors
C'est une solution approchée et qui fournit une borne
inférieure de meilleure qualité peut-être qu'une solution
évidente.
La relaxation continue fournit une borne supérieure de la
valeur optimale.
f(heuristique) <= Valeur optimale <= f(relaxation cont.)
En minimisation : une solution admissible fournit alors une
borne supérieure alors que la relaxation continue du
problème fournit une borne inférieure.
2
Algorithme GLOUTON
Principe : choisir des solutions locales optimales d'un
problème dans le but d'obtenir une solution optimale
globale au problème.
- Suivant les problèmes pas de garantie d'optimalité
- mais peu coûteuse en temps CPU
- choix intuitif
C'est une bonne approche pour des problèmes difficiles
Partons d'un exemple rencontré par tous.
3
Algo. Glouton à travers un exemple
Vous passez à la caisse d'un magasin. Le caissier doit vous rendre de l'argent car le montant que vous
lui avez donné est supérieur à celui que vous devez payer.
Supposons qu'on doive vous rendre la somme de 2,63€.
Il y a plusieurs façons de procéder. On peut par exemple vous rendre 263 pièces de 1 cent, 125 pièces
de 2 cents et 13 pièces de 1 cent ou encore 5 pièces de 50 cents, une de 10 cents, une de 2 cents
et enfin une de 1 cent.
Il y a bien évidemment énormément de possibilités pour vous rendre la somme.
Il y a fort à parier que les solutions du type "263 pièces de 1 cent" ne vous conviennent pas...
Le problème qui se pose est donc de minimiser le nombre de pièces rendues pour un
montant fixé.
4
Algo. Glouton à travers un exemple
Une solution immédiate (évidente) : énumérer toutes les combinaisons possibles puis
sélectionner celles qui impliquent un minimum de pièces et enfin choisir la meilleure.
Cette solution fonctionnera toujours mais est très loin d'être efficace.
En effet, si elle est simple dans certains cas, elle implique en général un nombre très
important de combinaisons différentes, ce qui nuit grandement à l'efficacité de notre
solution.
Notre tâche va donc être de formuler une solution (algorithmique) plus efficace pour ce
type de problème mais pas forcément optimale.
5
Algo. Glouton à travers un exemple
La méthode gloutonne vise à optimiser la résolution d'un problème en partant du principe
suivant : des choix locaux optimaux, étape après étape, devraient produire un
résultat global optimal.
Dans notre cas, on va répéter le choix de la pièce de plus grande valeur qui ne dépasse pas
la somme restante.
Reprenons donc notre exemple de monnaie à rendre :
On doit donc nous rendre la somme de 2,63€ et on dispose du système de monnaie
européen, à savoir ceci :
PIÈCES (en cents) : [1,2,5,10,20,50,100,200]
6
Algo. Glouton à travers un exemple
ÉTAPE 1 :
- Somme à rendre : 263 cents.
- Solution locale : 200.
- Pièces utilisées : 1*2€.
ÉTAPE 2 :
- Somme à rendre : 63 cents.
- Solution locale : 50.
- Pièces utilisées : 1*2€ + 1*50cents.
ÉTAPE 3 :
- Somme à rendre : 13 cents.
- Solution locale : 10.
- Pièces utilisées : 1*2€ + 1*50cents +1*10cents.
7
Algo. Glouton à travers un exemple
ÉTAPE 4 :
- Somme à rendre : 3 cents.
- Solution locale : 2.
- Pièces utilisées : 1*2€ + 1*50cents +1*10cents +1*2cents
ÉTAPE 5 :
- Somme à rendre : 1 cent
- Solution locale : 1
- Pièces utilisées : 1*2€ + 1*50cents +1*10cents +1*2cents +1*1cent
On a rendu toute la monnaie, on s'arrête là !
8
Algo. Glouton à travers le problème du sac à
dos 01 (très connu en Optimisation
Combinatoire)
On dispose d'un ensemble S contenant n objets. Chaque objet i possède une valeur bi et
un poids wi.
On souhaiterait prendre une partie T de ces objets dans notre sac-à-dos,
malheureusement, ce dernier dispose d'une capacité limitée W.
On ne pourra pas toujours mettre tous les objets dans le sac étant donné que la somme
des poids des objets ne peut pas dépasser la capacité maximale.
On va cependant chercher à maximiser la somme des valeurs des objets qu'on
va emporter avec soi.
9
Sac à dos 0-1
Sous forme de programme mathématique :
(KP) : maximiser f(x)= ∑ b_i x_i
sous les contraintes :
∑ w_i x_i  W
x_i 1;0{ ∈}
10
Un glouton pour le KP 0-1
L'idée à suivre, si on veut développer une méthode
gloutonne, est d'ajouter les objets de valeurs élevées en
premier, jusqu'à saturation du sac.
Cette méthode est parfois efficace, mais parfois pas, on
verra ses limites dans la prochaine partie.
Prenons un exemple, afin d'illustrer cela.
Supposons qu'on dispose d'un sac de capacité W=26 et de
l'ensemble d'objets suivant
Objets A B C D E F G H I J K L M N
Valeurs
4 3 8 5 10 7 1 7 3 3 6 12 2 4
Poids
2 2 5 2 7 4 1 4 2 1 4 10 2 1
11
Un glouton pour KP 0-1
Suivons le principe de la méthode et prenons les objets de
meilleure valeur.
Ça nous donne le sous-set d'objets suivant :
L(12,10); E(10,7); C(8,5); F(7,4)
Notre sac est tout juste saturé et la somme des valeurs des
objets qu'il contient est de 37.
12
Un autre glouton pour KP 0-1
Trier les objets par ordre croissant du quotient :
Valeur / Poids
Dans ce cas, on obtient la liste suivante :
Objets
Valeurs
Poids
Val/Poids
N° trié
A
B
4
2
2
4
C
3
2
1,5
7
D
8
5
1,6
6
E
F
5 10
7
2
7
4
2,5 1,429 1,75
3 10
5
G
H
1
7
1
4
1 1,75
12
3
I
J
3
2
1,5
8
K
3
1
3
2
L
6
4
1,5
9
M
12
10
1,2
11
N
2
2
1
13
13
4
1
4
1
Un autre glouton pour KP 0-1
On peut mettre dans le sac les objets : N, J, H,A,F,C,B, I, K
pour un poids de 22. Il reste 4 possible mais E a un poids
de 10. Donc on passe aux objets suivants qui peuvent
être placés dans le sac tout en respectant sa capacité, cad
G(1) et M(2).
Cette combinaison d'objets a une valeur objective de 46
(meilleure valeur que celle fournie par un glouton de
base).
14
Un autre ex. : comparaison B&B et Glouton
Un avion cargo a une capacité de chargement de 18 unités de
volume. Il doit transporter des conteneurs de marchandises de
façon à maximiser la valeur totale de son chargement. Les
conteneurs disponibles sont en quantité illimitée pour chaque
type, et choisis par la liste suivante :
- Conteneur de type A ; valeur 6, volume 2
- Conteneur de type B ; valeur 8, volume 3
- Conteneur de type C ; valeur 13, volume 4
- Conteneur de type D ; valeur 17, volume 5
- Conteneur de type E ; valeur 20, volume 7
15
Un autre ex. : comparaison B&B et Glouton
I. résolvons de façon heuristique (avec l'utilisation d'un glouton)
II. résolvons avec une méthode exacte de type B&B
16
Un autre ex. : comparaison B&B et Glouton
I. résolvons de façon heuristique (avec l'utilisation d'un glouton)
II. résolvons avec une méthode exacte de type B&B
Notations :
c_K : coefficients objectif
a_K : coefficients des contraintes
17
Cours III: Le cargo
18
(P) : maximiser f(x)=6 xA +8 xB +13 xC +17 xD + 20 xE
sous les contraintes :
2 xA +3 xB +4 xC + 5 xD + 7 xE x2  18
xA , xB , xC , xD , xE  0
xA , xB , xC , xD , xE entiers
Un autre ex. : comparaison B&B et Glouton
I. GLOUTON : classons les variables par ordre décroissant des
c_K/a_K :
c_D/a_D=3.4
c_C/a_C=3.25
c_A/a_A=3
c_E/a_E=2.86..
c_B/a_B=2.67..
19
Un autre ex. : comparaison B&B et Glouton
I. GLOUTON : classons les variables par ordre décroissant des
c_K/a_K :
- On met à sa valeur maximale la variable x_D dont le terme
c_D/a_D est le plus fort :
x_D=3
Ayant fixé cette valeur, la variable de plus grand c/a pouvant
prendre une valeur entière positive est x_A, d'où : x_A=1
Avec ces deux variables fixées, la capacité résiduelle est 1. Elle ne
permet pas qu'une autre variable soit positive.
20
Un autre ex. : comparaison B&B et Glouton
I. GLOUTON : classons les variables par ordre décroissant des
c_K/a_K :
- la solution approchée (sous optimale) est donc :
x_D=3, x_A=1 de valeur objective : 57
Cette valeur fournit une borne inférieure pour la solution optimale
du problème en nombre entier :
57 <= OPT <= 61.2 [Borne Sup (obtenue via la
relaxation continue)]
21
22
Cours IV : B&B
(1)
(2)
(P) avec xD <=3
Solution optimale :
xC=0.75 et xD=3
Val. Opt.=60, borne = 60
(4)
(P1) avec xD<=3 et xC<=0
Solution optimale :
xC=0,xD=3 et xA=1.5
Val opt : 60, Borne 60
(6)
(P1) avec xD<=3 et xC<=0 et
xA <=1
Solution optimale :
xC=0,xD=3 et xA=0 et
xE=0.42
Val opt : 59.51, Borne 59
(P)
Solution optimale :
xD= 3.6
Val. Opt.=61.2, borne =
61 (borne inf=57)
(3)
(P) + xD >=3
(5)
(P1) avec xD<=3 et xC>=1
(7)
(P1) avec xD<=3 et xC<=0 et
xA <=1 et xE <=0
Solution optimale :
XD=3 et xB=1
Val opt : 59, Borne 59
Téléchargement