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 Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)

Présentations similaires


Présentation au sujet: "1 Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)"— Transcription de la présentation:

1 1 Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)

2 2 Introduction Stratégie : "couper en 2" la région réalisable, recouper en 2 chaque partie de la région réalisable susceptible de contenir la sol n optimale et ainsi de suite. Ce processus se poursuit jusquà ce quon trouve la sol n optimale ou une sol n sous-optimale satisfaisante ou bien que lon détecte labsence de sol n s. Variantes : la façon de couper en 2 la région réalisable, le choix de la partie de la région réalisable à examiner en premier, la façon de sassurer quun morceau ne contient pas la sol n optimale afin de pouvoir éliminer ce morceau.

3 3 Exemple décrivant lalgorithme de subdivision successive (P0) Le simplexe nous donne comme sol n optimale de (P0) : x = 3.5, y = 10/3 et z 0 max = 145/6.

4 4

5 5 Quelle coupe peut-on effectuer dans l'ensemble des sol n s réalisables de (P0) qui n'ôte aucun point entier de cet ensemble? La sol n optimale de (PE) doit vérifier soit y 3, soit y 4. Formons les 2 problèmes issus de (P0) : (P1) (P2) simplexe x = 18/5, y = 3, z 1 max = 24. x = 5/2, y = 4, z 2 max = 20,5.

6 6 Puisque z 1 max > z 2 max on choisit de travailler avec (P1) pour linstant. Si la sol n optimale de (PE) vérifie les contraintes de (P1), elle vérifiera aussi soit x 3 ou x 4. Formons 2 nouveaux problèmes issus de (P1): (P3) (P4) redondant x = 3, y = 3, z 3 max = 21. x = 4, y = 5/3, z 4 max = 70/3.

7 7 Puisque z 4 max > z 3 max on choisit de travailler avec (P4) pour linstant : soit y 1 ou y 2.

8 8 (P5) (P6) redondant Pas de sol n s réalisables x = 4.2, y = 1, z 5 max = 23.

9 9

10 10 À partir de (P5), on peut construire les 2 problèmes suivants : (P7) (P8) x = 4, y = 1, z 7 max = 22. Pas de sol n s réalisables. simplexe

11 11 (P7) possède une solution optimale entière réalisable pour (PE). Pour savoir si elle est optimale, il faut examiner les problèmes que nous avons laissés de côté en créant des coupes. (P8) et (P6) : on peut les négliger (pas de sol n s réalisables). (P3) : on peut le négliger car z 7 max = 22 > 21 = z 3 max. (P2) : on peut le négliger car z 7 max = 22 > 20.5 z max. Lajout de coupes à (P2) ne peut donner de sol n s où la fonction objective est plus grande que 20,5. Donc, x = 4, y = 1 et z max = 22 est la sol n optimale de (PE).

12 12

13 13 Cas particulier : Quelques variables ne sont pas entières et les autres le sont. Il suffit de ne pas introduire de coupes sur les variables non astreintes à être entières. Exemple : Le problème précédent où x nest pas astreinte à être entière. Dans larborescence précédente, on voit que (P1) et (P2) nous donnent 2 sol n s réalisables et donc que la sol n optimale serait dans ce cas : x = 18 / 5, y = 3 et z max = 24.

14 14 Énoncé de lalgorithme de subdivision successive (0)Construire une banque de problèmes qui ne renferme initialement que le problème suivant :Max z = c t x A x = b(P0) x 0 k 1; z k = - ; (renferme une borne inférieure de la valeur optimale de lobjectif z) (1) Si la banque de problèmes est vide, terminer les calculs, i.e. rechercher la meilleure sol n réalisable rencontrée dont la valeur de lobjectif est égale à la borne inférieure. Cette sol n réalisable est alors optimale. Autrement, enlever un programme linéaire de la banque et aller à (2).

15 15 (2)Résoudre le programme choisi. Si la valeur de lobjectif est au plus z k, z k+1 z k,k k +1,aller à (1). Autrement, aller à (3). (3) Si la sol n optimale obtenue du programme linéaire satisfait les contraintes d'intégralité, noter-le *, z k+1 valeur optimale de lobjectif de ce programme, faire k k + 1, aller à (1). Autrement, aller à (4). (4) Choisir une variable x j nayant pas une valeur entière (x j = b r ). Ajouter 2 programmes linéaires à la banque issus de celui de (1) : 1 e problème : x j [b r ]est ajoutée. 2 ième problème : x j [b r ] + 1 est ajoutée. Faire z k+1 z k,k k +1,aller à (1).

16 16 Choix dun programme dans la banque : Résoudre lun des 2 programmes que lon vient dajouter à la banque ou le dernier à être introduit qui nest pas encore résolu. En passant dun nœud à son fils dans larbre, on a le même problème à résoudre avec seulement une contrainte en plus. Il sagit dutiliser lalgorithme dual du simplexe. Borne supérieure sur la valeur de lobjectif : La résolution du programme continu à chaque nœud de larbre nous fournit une borne supérieure sur la valeur de lobjectif de la meilleure sol n possible dans cette branche.


Télécharger ppt "1 Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)"

Présentations similaires


Annonces Google