La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 UE Intro Opti L3 INFO UPSud 2015-2016 Programmation linéaire en variables entières (ou mixtes) : résolution approchée par heuristique

Présentations similaires


Présentation au sujet: "1 UE Intro Opti L3 INFO UPSud 2015-2016 Programmation linéaire en variables entières (ou mixtes) : résolution approchée par heuristique"— Transcription de la présentation:

1 1 UE Intro Opti L3 INFO UPSud 2015-2016 Programmation linéaire en variables entières (ou mixtes) : résolution approchée par heuristique quadri@lri.fr

2 2 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.

3 3 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.

4 4 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é.

5 5 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.

6 6 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]

7 7 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.

8 8 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à !

9 9 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.

10 10 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 ‏ ∈ {0;1}

11 11 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

12 12 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.

13 13 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 :

14 14 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).

15 15 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

16 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

17 17 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

18 18 Cours III: Le cargo (P) : maximiser f(x)=6 x A +8 x B +13 x C +17 x D + 20 x E sous les contraintes : 2 x A +3 x B +4 x C + 5 x D + 7 x E x 2  18 x A, x B, x C, x D, x E  0 x A, x B, x C, x D, x E entiers

19 19 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..

20 20 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.

21 21 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)]

22 22 Cours IV : B&B (1) (P) Solution optimale : xD= 3.6 Val. Opt.=61.2, borne = 61 (borne inf=57) (2) (P) avec xD <=3 Solution optimale : xC=0.75 et xD=3 Val. Opt.=60, borne = 60 (3) (P) + xD >=3 (4) (P1) avec xD<=3 et xC<=0 Solution optimale : xC=0,xD=3 et xA=1.5 Val opt : 60, Borne 60 (5) (P1) avec xD =1 (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 (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 OPTIMUM


Télécharger ppt "1 UE Intro Opti L3 INFO UPSud 2015-2016 Programmation linéaire en variables entières (ou mixtes) : résolution approchée par heuristique"

Présentations similaires


Annonces Google