88
Les algorithmes de Branch-and-Bound pour la PLNE Amélie Lambert Cnam ECE 2016-2017 Amélie Lambert (Cnam) ECE 2016-2017 1 / 33

Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Les algorithmes de Branch-and-Bound pour la PLNE

Amélie Lambert

Cnam

ECE 2016-2017

Amélie Lambert (Cnam) ECE 2016-2017 1 / 33

Page 2: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

1 Difficulté des problèmes discrets et explosion combinatoire

2 Les méthodes de séparation et évaluation

Amélie Lambert (Cnam) ECE 2016-2017 2 / 33

Page 3: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

1 Difficulté des problèmes discrets et explosion combinatoire

2 Les méthodes de séparation et évaluation

Amélie Lambert (Cnam) ECE 2016-2017 3 / 33

Page 4: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un exemple de problème avec explosion combinatoire

Comment placer n dames sur un échiquier de n × n cases sans que lesdames ne puissent se menacer mutuellement ?

Une solution pour n = 8→

Résolution naïve :Vérifier les nn solutions candidates !

Même lorsque n = 4 il y a 256 posibilités

On dit qu’il y a explosion combinatoire : le nombre de solutions(scénarios) envisageable est exponentiel.

Amélie Lambert (Cnam) ECE 2016-2017 4 / 33

Page 5: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un exemple de problème avec explosion combinatoire

Comment placer n dames sur un échiquier de n × n cases sans que lesdames ne puissent se menacer mutuellement ?

Une solution pour n = 8→

Résolution naïve :Vérifier les nn solutions candidates !

Même lorsque n = 4 il y a 256 posibilités

On dit qu’il y a explosion combinatoire : le nombre de solutions(scénarios) envisageable est exponentiel.

Amélie Lambert (Cnam) ECE 2016-2017 4 / 33

Page 6: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un exemple de problème avec explosion combinatoire

Comment placer n dames sur un échiquier de n × n cases sans que lesdames ne puissent se menacer mutuellement ?

Une solution pour n = 8→

Résolution naïve :Vérifier les nn solutions candidates !

Même lorsque n = 4 il y a 256 posibilités

On dit qu’il y a explosion combinatoire : le nombre de solutions(scénarios) envisageable est exponentiel.

Amélie Lambert (Cnam) ECE 2016-2017 4 / 33

Page 7: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un exemple de problème avec explosion combinatoire

Comment placer n dames sur un échiquier de n × n cases sans que lesdames ne puissent se menacer mutuellement ?

Une solution pour n = 8→

Résolution naïve :Vérifier les nn solutions candidates !

Même lorsque n = 4 il y a 256 posibilités

On dit qu’il y a explosion combinatoire : le nombre de solutions(scénarios) envisageable est exponentiel.

Amélie Lambert (Cnam) ECE 2016-2017 4 / 33

Page 8: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum ?

Un malfaiteur arrive à s’introduire à l’intérieur d’une banque

Il peut volerdes lingotsdes liasses de billets

Problème : Son sac à dos a :un volume max : 32 litresune charge max : 20kg

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $, 3kg, 6litres

Et si le prix du lingot baissait à 200000 $ ?

⇒ Modélisation du problème

Amélie Lambert (Cnam) ECE 2016-2017 5 / 33

Page 9: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum ?

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueIl peut voler

des lingotsdes liasses de billets

Problème : Son sac à dos a :un volume max : 32 litresune charge max : 20kg

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $, 3kg, 6litres

Et si le prix du lingot baissait à 200000 $ ?

⇒ Modélisation du problème

Amélie Lambert (Cnam) ECE 2016-2017 5 / 33

Page 10: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum ?

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueIl peut voler

des lingotsdes liasses de billets

Problème : Son sac à dos a :un volume max : 32 litresune charge max : 20kg

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $, 3kg, 6litres

Et si le prix du lingot baissait à 200000 $ ?

⇒ Modélisation du problème

Amélie Lambert (Cnam) ECE 2016-2017 5 / 33

Page 11: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum ?

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueIl peut voler

des lingotsdes liasses de billets

Problème : Son sac à dos a :un volume max : 32 litresune charge max : 20kg

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $, 3kg, 6litres

Et si le prix du lingot baissait à 200000 $ ?

⇒ Modélisation du problème

Amélie Lambert (Cnam) ECE 2016-2017 5 / 33

Page 12: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Modélisation du problème par un PLNE

Utilisation de la programmation linéaire en nombres entiers.

Variables :variable x1 nombre de lingots (300000$, 8 kg, 6 litres)variable x2 nombre de paquets de billets (100000$, 3 kg, 6 litres)

(PLNE )

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ N2 Contraintes d’intégrité

Amélie Lambert (Cnam) ECE 2016-2017 6 / 33

Page 13: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Modélisation du problème par un PLNE

Utilisation de la programmation linéaire en nombres entiers.

Variables :variable x1 nombre de lingots (300000$, 8 kg, 6 litres)variable x2 nombre de paquets de billets (100000$, 3 kg, 6 litres)

(PLNE )

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ N2 Contraintes d’intégrité

Amélie Lambert (Cnam) ECE 2016-2017 6 / 33

Page 14: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un premier algorithme de résolution

Algorithme 1 :Remplir le sac avec le maximum d’or et compléter avec des billets.

Avec ces données le voleur a intérêt à dérober 2 lingots et 1 paquet debillets pour gagner 700000 $.

On trouve une solution, mais on ne sait pas si c’est la meilleure solutionpour toute les instances de ce problème⇒ notre algorithme est Heuristique

Amélie Lambert (Cnam) ECE 2016-2017 7 / 33

Page 15: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un premier algorithme de résolution

Algorithme 1 :Remplir le sac avec le maximum d’or et compléter avec des billets.

Avec ces données le voleur a intérêt à dérober 2 lingots et 1 paquet debillets pour gagner 700000 $.

On trouve une solution, mais on ne sait pas si c’est la meilleure solutionpour toute les instances de ce problème⇒ notre algorithme est Heuristique

Amélie Lambert (Cnam) ECE 2016-2017 7 / 33

Page 16: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un premier algorithme de résolution

Algorithme 1 :Remplir le sac avec le maximum d’or et compléter avec des billets.

Avec ces données le voleur a intérêt à dérober 2 lingots et 1 paquet debillets pour gagner 700000 $.

On trouve une solution, mais on ne sait pas si c’est la meilleure solutionpour toute les instances de ce problème⇒ notre algorithme est Heuristique

Amélie Lambert (Cnam) ECE 2016-2017 7 / 33

Page 17: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un algorithme dit "heuristique"

Définition 1 : Une solution réalisable d’un (PLNE) est une solution x quisatisfait les contraintes du problème.

Définition 2 : Un algorithme de résolution Heuristique est un algorithmequi fournit une solution réalisable en un temps polynomial pour unproblème NP-difficile.

Amélie Lambert (Cnam) ECE 2016-2017 8 / 33

Page 18: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un algorithme dit "heuristique"

Définition 1 : Une solution réalisable d’un (PLNE) est une solution x quisatisfait les contraintes du problème.

Définition 2 : Un algorithme de résolution Heuristique est un algorithmequi fournit une solution réalisable en un temps polynomial pour unproblème NP-difficile.

Amélie Lambert (Cnam) ECE 2016-2017 8 / 33

Page 19: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un deuxième algorithme de résolution

Algorithme 2 :Enumérer toutes les solution réalisables de (PLNE ) et choisir celle de

coût maximal.

Avec cet alorithme il y a explosion combinatoire.

Idée : Enumérer seulement une partie des solutions, celles qui vontpotentiellement améliorer la meilleure solution courante

Comment éliminer les solutions dont on est sûr quelles ne serontpas meilleures que la meilleure solution courante ?

⇒ En utilisant des bornes facilement calculables

Amélie Lambert (Cnam) ECE 2016-2017 9 / 33

Page 20: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un deuxième algorithme de résolution

Algorithme 2 :Enumérer toutes les solution réalisables de (PLNE ) et choisir celle de

coût maximal.

Avec cet alorithme il y a explosion combinatoire.

Idée : Enumérer seulement une partie des solutions, celles qui vontpotentiellement améliorer la meilleure solution courante

Comment éliminer les solutions dont on est sûr quelles ne serontpas meilleures que la meilleure solution courante ?

⇒ En utilisant des bornes facilement calculables

Amélie Lambert (Cnam) ECE 2016-2017 9 / 33

Page 21: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un deuxième algorithme de résolution

Algorithme 2 :Enumérer toutes les solution réalisables de (PLNE ) et choisir celle de

coût maximal.

Avec cet alorithme il y a explosion combinatoire.

Idée : Enumérer seulement une partie des solutions, celles qui vontpotentiellement améliorer la meilleure solution courante

Comment éliminer les solutions dont on est sûr quelles ne serontpas meilleures que la meilleure solution courante ?

⇒ En utilisant des bornes facilement calculables

Amélie Lambert (Cnam) ECE 2016-2017 9 / 33

Page 22: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un deuxième algorithme de résolution

Algorithme 2 :Enumérer toutes les solution réalisables de (PLNE ) et choisir celle de

coût maximal.

Avec cet alorithme il y a explosion combinatoire.

Idée : Enumérer seulement une partie des solutions, celles qui vontpotentiellement améliorer la meilleure solution courante

Comment éliminer les solutions dont on est sûr quelles ne serontpas meilleures que la meilleure solution courante ?

⇒ En utilisant des bornes facilement calculables

Amélie Lambert (Cnam) ECE 2016-2017 9 / 33

Page 23: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

(PLNE )

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ N2 Contraintes d’intégrité

(PLNE ) est difficile à cause de l’explositon combinatoire, mais il seraitfacile si les variables n’étaient pas entières.

(PL)

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ R2+ Pas de contraintes d’intégrité ⇒ Facile

Amélie Lambert (Cnam) ECE 2016-2017 10 / 33

Page 24: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

(PLNE )

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ N2 Contraintes d’intégrité

(PLNE ) est difficile à cause de l’explositon combinatoire, mais il seraitfacile si les variables n’étaient pas entières.

(PL)

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ R2+ Pas de contraintes d’intégrité ⇒ Facile

Amélie Lambert (Cnam) ECE 2016-2017 10 / 33

Page 25: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

(PLNE )

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ N2 Contraintes d’intégrité

(PLNE ) est difficile à cause de l’explositon combinatoire, mais il seraitfacile si les variables n’étaient pas entières.

(PL)

max f (x1, x2) = 3x1 + x2 Maximiser le profit

8x1 + 3x2 ≤ 20 Contrainte de charge

6x1 + 6x2 ≤ 32 Contrainte de volume

x1, x2 ∈ R2+ Pas de contraintes d’intégrité ⇒ Facile

Amélie Lambert (Cnam) ECE 2016-2017 10 / 33

Page 26: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

Un malfaiteur arrive à s’introduire à l’intérieur d’une banque

Caractéristiques :un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $,3kg, 6litres

Solution heuristique : l’or d’abord2 lingots + 1 liasseprofit : 2 ∗ 3+ 1 ∗ 1 = 7

Peut-il espérer un profit beaucoup plus important que 7 ?

Si on pouvait fondre l’or : sol. opt. : 2.5 lingots ⇒ Valeur : 7.5⇒ Une borne supérieure du problème est 7.5

⇒ Le profit de 7 est optimal en nombre entiers

Amélie Lambert (Cnam) ECE 2016-2017 11 / 33

Page 27: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueCaractéristiques :

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $,3kg, 6litres

Solution heuristique : l’or d’abord2 lingots + 1 liasseprofit : 2 ∗ 3+ 1 ∗ 1 = 7

Peut-il espérer un profit beaucoup plus important que 7 ?

Si on pouvait fondre l’or : sol. opt. : 2.5 lingots ⇒ Valeur : 7.5⇒ Une borne supérieure du problème est 7.5

⇒ Le profit de 7 est optimal en nombre entiers

Amélie Lambert (Cnam) ECE 2016-2017 11 / 33

Page 28: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueCaractéristiques :

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $,3kg, 6litres

Solution heuristique : l’or d’abord2 lingots + 1 liasseprofit : 2 ∗ 3+ 1 ∗ 1 = 7

Peut-il espérer un profit beaucoup plus important que 7 ?

Si on pouvait fondre l’or : sol. opt. : 2.5 lingots ⇒ Valeur : 7.5⇒ Une borne supérieure du problème est 7.5

⇒ Le profit de 7 est optimal en nombre entiers

Amélie Lambert (Cnam) ECE 2016-2017 11 / 33

Page 29: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueCaractéristiques :

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $,3kg, 6litres

Solution heuristique : l’or d’abord2 lingots + 1 liasseprofit : 2 ∗ 3+ 1 ∗ 1 = 7

Peut-il espérer un profit beaucoup plus important que 7 ?

Si on pouvait fondre l’or : sol. opt. : 2.5 lingots ⇒ Valeur : 7.5

⇒ Une borne supérieure du problème est 7.5⇒ Le profit de 7 est optimal en nombre entiers

Amélie Lambert (Cnam) ECE 2016-2017 11 / 33

Page 30: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment dérober le maximum : utilisation de bornes

Un malfaiteur arrive à s’introduire à l’intérieur d’une banqueCaractéristiques :

un lingot : 300000 $ , 8kg, 6litresun paquet de billets : 100000 $,3kg, 6litres

Solution heuristique : l’or d’abord2 lingots + 1 liasseprofit : 2 ∗ 3+ 1 ∗ 1 = 7

Peut-il espérer un profit beaucoup plus important que 7 ?

Si on pouvait fondre l’or : sol. opt. : 2.5 lingots ⇒ Valeur : 7.5⇒ Une borne supérieure du problème est 7.5

⇒ Le profit de 7 est optimal en nombre entiers

Amélie Lambert (Cnam) ECE 2016-2017 11 / 33

Page 31: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Représentation graphique

(PLNE )

max 3x1 + x2

8x1 + 3x2 ≤ 20

6x1 + 6x2 ≤ 32

x1, x2 ∈ N2

Amélie Lambert (Cnam) ECE 2016-2017 12 / 33

Page 32: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

Peut-on ajouter une contrainte intelligente (coupe) pour obtenir une tellezone réalisable ?

Oui : en se servant de la valeur de la borne (ici obtenue par relaxationcontinue)

La valeur de la relaxation continue vaut 7.5

Donc la meilleure valeur entière possible (borne supérieure) est : b7.5c = 7

On peut donc ajouter f (x1, x2) = 3x1 + x2 ≤ 7

Amélie Lambert (Cnam) ECE 2016-2017 13 / 33

Page 33: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

Peut-on ajouter une contrainte intelligente (coupe) pour obtenir une tellezone réalisable ?

Oui : en se servant de la valeur de la borne (ici obtenue par relaxationcontinue)

La valeur de la relaxation continue vaut 7.5

Donc la meilleure valeur entière possible (borne supérieure) est : b7.5c = 7

On peut donc ajouter f (x1, x2) = 3x1 + x2 ≤ 7

Amélie Lambert (Cnam) ECE 2016-2017 13 / 33

Page 34: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

Peut-on ajouter une contrainte intelligente (coupe) pour obtenir une tellezone réalisable ?

Oui : en se servant de la valeur de la borne (ici obtenue par relaxationcontinue)

La valeur de la relaxation continue vaut 7.5

Donc la meilleure valeur entière possible (borne supérieure) est : b7.5c = 7

On peut donc ajouter f (x1, x2) = 3x1 + x2 ≤ 7

Amélie Lambert (Cnam) ECE 2016-2017 13 / 33

Page 35: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

Peut-on ajouter une contrainte intelligente (coupe) pour obtenir une tellezone réalisable ?

Oui : en se servant de la valeur de la borne (ici obtenue par relaxationcontinue)

La valeur de la relaxation continue vaut 7.5

Donc la meilleure valeur entière possible (borne supérieure) est : b7.5c = 7

On peut donc ajouter f (x1, x2) = 3x1 + x2 ≤ 7

Amélie Lambert (Cnam) ECE 2016-2017 13 / 33

Page 36: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

Peut-on ajouter une contrainte intelligente (coupe) pour obtenir une tellezone réalisable ?

Oui : en se servant de la valeur de la borne (ici obtenue par relaxationcontinue)

La valeur de la relaxation continue vaut 7.5

Donc la meilleure valeur entière possible (borne supérieure) est : b7.5c = 7

On peut donc ajouter f (x1, x2) = 3x1 + x2 ≤ 7

Amélie Lambert (Cnam) ECE 2016-2017 13 / 33

Page 37: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

(PLNE )

max 3x1 + x2

8x1 + 3x2 ≤ 206x1 + 6x2 ≤ 323x1 + x2 ≤ 7x1, x2 ∈ N2

Ici, si on résout à nouveau le problème en ignorant les contraintesd’intégrité et on obtient une solution entière (2, 1) c’est l’optimum.

Attention : en général on n’obtient pas directement une solution entière.

Amélie Lambert (Cnam) ECE 2016-2017 14 / 33

Page 38: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

(PLNE )

max 3x1 + x2

8x1 + 3x2 ≤ 206x1 + 6x2 ≤ 323x1 + x2 ≤ 7x1, x2 ∈ N2

Ici, si on résout à nouveau le problème en ignorant les contraintesd’intégrité et on obtient une solution entière (2, 1) c’est l’optimum.

Attention : en général on n’obtient pas directement une solution entière.

Amélie Lambert (Cnam) ECE 2016-2017 14 / 33

Page 39: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment se servir des bornes

(PLNE )

max 3x1 + x2

8x1 + 3x2 ≤ 206x1 + 6x2 ≤ 323x1 + x2 ≤ 7x1, x2 ∈ N2

Ici, si on résout à nouveau le problème en ignorant les contraintesd’intégrité et on obtient une solution entière (2, 1) c’est l’optimum.

Attention : en général on n’obtient pas directement une solution entière.

Amélie Lambert (Cnam) ECE 2016-2017 14 / 33

Page 40: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

1 Difficulté des problèmes discrets et explosion combinatoire

2 Les méthodes de séparation et évaluation

Amélie Lambert (Cnam) ECE 2016-2017 15 / 33

Page 41: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un algorithme de Séparation et Evaluation

Définition 3 : Une relaxation d’un problème (P) est un nouveau problème(P ′) construit à partir de (P) et auquel on a retiré au moins une contrainte.

Observation 1 : Toutes les solutions de P sont des solutions de (P ′).Attention ! La réciproque est fausse.

Observation 2 : Une borne supérieure d’un problème de maximisation(P) peut être calculée en résolvant une relaxation de (P).On a v(P) ≤ v(P ′), (v(P) valeur optimale de (P)).

Amélie Lambert (Cnam) ECE 2016-2017 16 / 33

Page 42: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un algorithme de Séparation et Evaluation

Définition 3 : Une relaxation d’un problème (P) est un nouveau problème(P ′) construit à partir de (P) et auquel on a retiré au moins une contrainte.

Observation 1 : Toutes les solutions de P sont des solutions de (P ′).Attention ! La réciproque est fausse.

Observation 2 : Une borne supérieure d’un problème de maximisation(P) peut être calculée en résolvant une relaxation de (P).On a v(P) ≤ v(P ′), (v(P) valeur optimale de (P)).

Amélie Lambert (Cnam) ECE 2016-2017 16 / 33

Page 43: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un algorithme de Séparation et Evaluation

Définition 3 : Une relaxation d’un problème (P) est un nouveau problème(P ′) construit à partir de (P) et auquel on a retiré au moins une contrainte.

Observation 1 : Toutes les solutions de P sont des solutions de (P ′).Attention ! La réciproque est fausse.

Observation 2 : Une borne supérieure d’un problème de maximisation(P) peut être calculée en résolvant une relaxation de (P).On a v(P) ≤ v(P ′), (v(P) valeur optimale de (P)).

Amélie Lambert (Cnam) ECE 2016-2017 16 / 33

Page 44: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Un algorithme de Séparation et Evaluation

Définition 4 : Un algorithme de Séparation et Evaluation (oubranch-and-bound) pour résoudre le problème de maximisation (P) estfondé sur cette l’idée d’utiliser des bornes supérieures pour choisir quellessolutions éliminer en étant sûr quelles ne seront pas meilleures que lameilleure solution courante.

Amélie Lambert (Cnam) ECE 2016-2017 17 / 33

Page 45: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes et relaxationsComment résoudre de façon exacte (= trouver une solution optimale à) unPLNE :

(PLNE )

max ctx

Ax ≤ bx ∈ N

Obtenir une évaluation (borne) de la valeur optimale

Déterminer une borne inférieure de cette valeur ?⇒ Valeur de n’importe quelle solution admissible !

Déterminer une borne supérieure de cette valeur ?⇒ En général, on a recours à des relaxations

Si ces deux bornes sont égales, alors on a fini !

Amélie Lambert (Cnam) ECE 2016-2017 18 / 33

Page 46: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes et relaxationsComment résoudre de façon exacte (= trouver une solution optimale à) unPLNE :

(PLNE )

max ctx

Ax ≤ bx ∈ N

Obtenir une évaluation (borne) de la valeur optimale

Déterminer une borne inférieure de cette valeur ?⇒ Valeur de n’importe quelle solution admissible !

Déterminer une borne supérieure de cette valeur ?⇒ En général, on a recours à des relaxations

Si ces deux bornes sont égales, alors on a fini !

Amélie Lambert (Cnam) ECE 2016-2017 18 / 33

Page 47: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes et relaxationsComment résoudre de façon exacte (= trouver une solution optimale à) unPLNE :

(PLNE )

max ctx

Ax ≤ bx ∈ N

Obtenir une évaluation (borne) de la valeur optimaleDéterminer une borne inférieure de cette valeur ?⇒ Valeur de n’importe quelle solution admissible !

Déterminer une borne supérieure de cette valeur ?⇒ En général, on a recours à des relaxations

Si ces deux bornes sont égales, alors on a fini !

Amélie Lambert (Cnam) ECE 2016-2017 18 / 33

Page 48: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes et relaxationsComment résoudre de façon exacte (= trouver une solution optimale à) unPLNE :

(PLNE )

max ctx

Ax ≤ bx ∈ N

Obtenir une évaluation (borne) de la valeur optimaleDéterminer une borne inférieure de cette valeur ?⇒ Valeur de n’importe quelle solution admissible !

Déterminer une borne supérieure de cette valeur ?⇒ En général, on a recours à des relaxations

Si ces deux bornes sont égales, alors on a fini !

Amélie Lambert (Cnam) ECE 2016-2017 18 / 33

Page 49: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes et relaxationsComment résoudre de façon exacte (= trouver une solution optimale à) unPLNE :

(PLNE )

max ctx

Ax ≤ bx ∈ N

Obtenir une évaluation (borne) de la valeur optimaleDéterminer une borne inférieure de cette valeur ?⇒ Valeur de n’importe quelle solution admissible !

Déterminer une borne supérieure de cette valeur ?⇒ En général, on a recours à des relaxations

Si ces deux bornes sont égales, alors on a fini !

Amélie Lambert (Cnam) ECE 2016-2017 18 / 33

Page 50: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes primales

Une Borne primale est la valeur d’une solution admissible.

Si on maximise, c’est une borne inférieureSi on minimise, c’est une borne supérieure

Parfois, trouver une borne primale est simple :Exemple : Problème du sac-à-dos

Parfois, ça l’est moins :Exemple : Problème du voyageur de commerce dans un graphe quelconque

Mais trouver une bonne borne primale est souvent une tâchedifficile...

Amélie Lambert (Cnam) ECE 2016-2017 19 / 33

Page 51: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes primales

Une Borne primale est la valeur d’une solution admissible.

Si on maximise, c’est une borne inférieureSi on minimise, c’est une borne supérieure

Parfois, trouver une borne primale est simple :Exemple : Problème du sac-à-dos

Parfois, ça l’est moins :Exemple : Problème du voyageur de commerce dans un graphe quelconque

Mais trouver une bonne borne primale est souvent une tâchedifficile...

Amélie Lambert (Cnam) ECE 2016-2017 19 / 33

Page 52: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes primales

Une Borne primale est la valeur d’une solution admissible.

Si on maximise, c’est une borne inférieureSi on minimise, c’est une borne supérieure

Parfois, trouver une borne primale est simple :Exemple : Problème du sac-à-dos

Parfois, ça l’est moins :Exemple : Problème du voyageur de commerce dans un graphe quelconque

Mais trouver une bonne borne primale est souvent une tâchedifficile...

Amélie Lambert (Cnam) ECE 2016-2017 19 / 33

Page 53: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes primales

Une Borne primale est la valeur d’une solution admissible.

Si on maximise, c’est une borne inférieureSi on minimise, c’est une borne supérieure

Parfois, trouver une borne primale est simple :Exemple : Problème du sac-à-dos

Parfois, ça l’est moins :Exemple : Problème du voyageur de commerce dans un graphe quelconque

Mais trouver une bonne borne primale est souvent une tâchedifficile...

Amélie Lambert (Cnam) ECE 2016-2017 19 / 33

Page 54: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes duales

Borne dualeSi on maximise, c’est une borne supérieureSi on minimise, c’est une borne inférieure

On détermine des bornes duales via des relaxations :Idéalement, problème plus simple (plus rapide) à résoudre que leproblème initialProblème dont chaque solution a une valeur plus grande (si onmaximise) ou plus petite (sinon) que celle de toute solution admissibledu problème initial

Amélie Lambert (Cnam) ECE 2016-2017 20 / 33

Page 55: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bornes duales

Borne dualeSi on maximise, c’est une borne supérieureSi on minimise, c’est une borne inférieure

On détermine des bornes duales via des relaxations :Idéalement, problème plus simple (plus rapide) à résoudre que leproblème initialProblème dont chaque solution a une valeur plus grande (si onmaximise) ou plus petite (sinon) que celle de toute solution admissibledu problème initial

Amélie Lambert (Cnam) ECE 2016-2017 20 / 33

Page 56: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

La relaxation continue

Soit le PLNE suivant :

(P)

max ctx

Ax ≤ bx ∈ N

Question : quelle relaxation simple (P ′) est plus simple à résoudre ?

Le PL suivant :

(P ′)

max ctx

Ax ≤ bx ∈ R

est appelé relaxation continue de (P)

Amélie Lambert (Cnam) ECE 2016-2017 21 / 33

Page 57: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

La relaxation continue

Soit le PLNE suivant :

(P)

max ctx

Ax ≤ bx ∈ N

Question : quelle relaxation simple (P ′) est plus simple à résoudre ?

Le PL suivant :

(P ′)

max ctx

Ax ≤ bx ∈ R

est appelé relaxation continue de (P)

Amélie Lambert (Cnam) ECE 2016-2017 21 / 33

Page 58: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

La relaxation continue

Le PL suivant :

(P ′)

max ctx

Ax ≤ bx ∈ R

est appelé relaxation continue de (P)

Propriété : (PL) est bien une relaxation de (P), car toute solutionde (P) est solution de (PL) !

Corollaire : si (PL) admet une solution optimale entière, cettesolution est optimale pour (P) !

Intérêt de (PL) : (PL) est un programme continu, et peut donc être résoluà l’aide d’algorithmes efficaces.

Amélie Lambert (Cnam) ECE 2016-2017 22 / 33

Page 59: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

La relaxation continue

Le PL suivant :

(P ′)

max ctx

Ax ≤ bx ∈ R

est appelé relaxation continue de (P)

Propriété : (PL) est bien une relaxation de (P), car toute solutionde (P) est solution de (PL) !

Corollaire : si (PL) admet une solution optimale entière, cettesolution est optimale pour (P) !

Intérêt de (PL) : (PL) est un programme continu, et peut donc être résoluà l’aide d’algorithmes efficaces.

Amélie Lambert (Cnam) ECE 2016-2017 22 / 33

Page 60: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

La relaxation continue

Le PL suivant :

(P ′)

max ctx

Ax ≤ bx ∈ R

est appelé relaxation continue de (P)

Propriété : (PL) est bien une relaxation de (P), car toute solutionde (P) est solution de (PL) !

Corollaire : si (PL) admet une solution optimale entière, cettesolution est optimale pour (P) !

Intérêt de (PL) : (PL) est un programme continu, et peut donc être résoluà l’aide d’algorithmes efficaces.

Amélie Lambert (Cnam) ECE 2016-2017 22 / 33

Page 61: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

La relaxation continue

Le PL suivant :

(P ′)

max ctx

Ax ≤ bx ∈ R

est appelé relaxation continue de (P)

Propriété : (PL) est bien une relaxation de (P), car toute solutionde (P) est solution de (PL) !

Corollaire : si (PL) admet une solution optimale entière, cettesolution est optimale pour (P) !

Intérêt de (PL) : (PL) est un programme continu, et peut donc être résoluà l’aide d’algorithmes efficaces.

Amélie Lambert (Cnam) ECE 2016-2017 22 / 33

Page 62: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment résoudre la relaxation continuePar l’algorithme du simplexe =⇒ en utilisant un solveur

Par un algorithme spécifiqueExemple : le sac à dos

(SAD)

maxn∑

i=1

cixi

n∑i=1

aixi ≤ b

x ∈ {0, 1}n

Résolution de la relaxation continue :

1 Trier les objets dans l’ordre décroissant des ratios ciai

2 Charger le sac à dos dans cet ordre jusqu’à sa capacité maximale⇐⇒ mettre à 1 toutes les variables possibles et couper la dernière

Amélie Lambert (Cnam) ECE 2016-2017 23 / 33

Page 63: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Comment résoudre la relaxation continuePar l’algorithme du simplexe =⇒ en utilisant un solveur

Par un algorithme spécifiqueExemple : le sac à dos

(SAD)

maxn∑

i=1

cixi

n∑i=1

aixi ≤ b

x ∈ {0, 1}n

Résolution de la relaxation continue :

1 Trier les objets dans l’ordre décroissant des ratios ciai

2 Charger le sac à dos dans cet ordre jusqu’à sa capacité maximale⇐⇒ mettre à 1 toutes les variables possibles et couper la dernière

Amélie Lambert (Cnam) ECE 2016-2017 23 / 33

Page 64: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Exercice 1

Calculez la relaxation continue du problème suivant :

(SAD)

max x1 + x2 + 5x3 + 3x4

3x1 + 2x2 + 4x3 + 2x4 ≤ 5x ∈ {0, 1}4

Amélie Lambert (Cnam) ECE 2016-2017 24 / 33

Page 65: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Exemple de relaxation continue

(P)

max x1 + 3x2

2x1 + 4x2 ≤ 5x1, x2 ∈ N2

(P ′)

max x1 + 3x2

2x1 + 4x2 ≤ 5x1, x2 ≥ 0x1, x2 ∈ R2

Solution optimale de (P ′) : x1 = 0, x2 = 1.25 de valeur 3.75

Ainsi, la solution entière (x1 = 0, x2 = 1) de valeur 3 est optimale pour (P)car x1 + 3x2 ≤ b3.75c = 3

Amélie Lambert (Cnam) ECE 2016-2017 25 / 33

Page 66: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Exemple de relaxation continue

(P)

max x1 + 3x2

2x1 + 4x2 ≤ 5x1, x2 ∈ N2

(P ′)

max x1 + 3x2

2x1 + 4x2 ≤ 5x1, x2 ≥ 0x1, x2 ∈ R2

Solution optimale de (P ′) : x1 = 0, x2 = 1.25 de valeur 3.75

Ainsi, la solution entière (x1 = 0, x2 = 1) de valeur 3 est optimale pour (P)car x1 + 3x2 ≤ b3.75c = 3

Amélie Lambert (Cnam) ECE 2016-2017 25 / 33

Page 67: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Exemple de relaxation continue

(P)

max x1 + 3x2

2x1 + 4x2 ≤ 5x1, x2 ∈ N2

(P ′)

max x1 + 3x2

2x1 + 4x2 ≤ 5x1, x2 ≥ 0x1, x2 ∈ R2

Solution optimale de (P ′) : x1 = 0, x2 = 1.25 de valeur 3.75

Ainsi, la solution entière (x1 = 0, x2 = 1) de valeur 3 est optimale pour (P)car x1 + 3x2 ≤ b3.75c = 3

Amélie Lambert (Cnam) ECE 2016-2017 25 / 33

Page 68: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Méthode (exacte) pour résoudre des programmes mathématiques (P), de lafamille des méthodes de recherche arborescente

Principe : résoudre le (P) en faisant une énumération intelligente (nonexhaustive) des solutions admissibles→ Enumération = séparation (branchement)

Objectif : ne pas développer tout l’arbre de recherche , en "coupant" desbranches à l’aide de bornes.

Générer des bornes primales (solutions admissibles) ?Générer des bornes duales (évaluation) via une relaxation ?→ Utiliser la relaxation continue !

Amélie Lambert (Cnam) ECE 2016-2017 26 / 33

Page 69: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Méthode (exacte) pour résoudre des programmes mathématiques (P), de lafamille des méthodes de recherche arborescente

Principe : résoudre le (P) en faisant une énumération intelligente (nonexhaustive) des solutions admissibles→ Enumération = séparation (branchement)

Objectif : ne pas développer tout l’arbre de recherche , en "coupant" desbranches à l’aide de bornes.

Générer des bornes primales (solutions admissibles) ?Générer des bornes duales (évaluation) via une relaxation ?→ Utiliser la relaxation continue !

Amélie Lambert (Cnam) ECE 2016-2017 26 / 33

Page 70: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Méthode (exacte) pour résoudre des programmes mathématiques (P), de lafamille des méthodes de recherche arborescente

Principe : résoudre le (P) en faisant une énumération intelligente (nonexhaustive) des solutions admissibles→ Enumération = séparation (branchement)

Objectif : ne pas développer tout l’arbre de recherche , en "coupant" desbranches à l’aide de bornes.

Générer des bornes primales (solutions admissibles) ?Générer des bornes duales (évaluation) via une relaxation ?→ Utiliser la relaxation continue !

Amélie Lambert (Cnam) ECE 2016-2017 26 / 33

Page 71: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : la séparation

Etape de séparation = diviser le pb en plusieurs sous-pb, de façon à ceque la résolution de tous ces sous-pb garantisse la résolution du pb initial

En pratique, on effectue un "branchement" dans l’arbre, tout engarantissant la conservation de toutes les solutions admissibles du pb avantbranchement.

Par exemple, un PLNE ayant une variable x1 ∈ {0, 9} peut être résolu enposant d’abord x1 ≤ 4, puis x1 ≥ 5

Amélie Lambert (Cnam) ECE 2016-2017 27 / 33

Page 72: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : la séparation

Etape de séparation = diviser le pb en plusieurs sous-pb, de façon à ceque la résolution de tous ces sous-pb garantisse la résolution du pb initial

En pratique, on effectue un "branchement" dans l’arbre, tout engarantissant la conservation de toutes les solutions admissibles du pb avantbranchement.

Par exemple, un PLNE ayant une variable x1 ∈ {0, 9} peut être résolu enposant d’abord x1 ≤ 4, puis x1 ≥ 5

Amélie Lambert (Cnam) ECE 2016-2017 27 / 33

Page 73: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : la séparation

Etape de séparation = diviser le pb en plusieurs sous-pb, de façon à ceque la résolution de tous ces sous-pb garantisse la résolution du pb initial

En pratique, on effectue un "branchement" dans l’arbre, tout engarantissant la conservation de toutes les solutions admissibles du pb avantbranchement.

Par exemple, un PLNE ayant une variable x1 ∈ {0, 9} peut être résolu enposant d’abord x1 ≤ 4, puis x1 ≥ 5

Amélie Lambert (Cnam) ECE 2016-2017 27 / 33

Page 74: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : la séparation

Etape de séparation = diviser le pb en plusieurs sous-pb, de façon à ceque la résolution de tous ces sous-pb garantisse la résolution du pb initial

En pratique, on effectue un "branchement" dans l’arbre, tout engarantissant la conservation de toutes les solutions admissibles du pb avantbranchement.

Par exemple, un PLNE ayant une variable x1 ∈ {0, 9} peut être résolu enposant d’abord x1 ≤ 4, puis x1 ≥ 5

Amélie Lambert (Cnam) ECE 2016-2017 27 / 33

Page 75: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : la séparation

Amélie Lambert (Cnam) ECE 2016-2017 28 / 33

Page 76: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : l’évaluation

Evaluer un noeud = calculer une "estimation" (borne duale) de la valeuroptimale de ce PLNE :

On résout la relaxation continue de ce PLNEA la racine de l’arbre on considère le PLNE initial

Intérêt de l’évaluation :

La borne duale calculée avec l’hypothèse x1 ≤ 4 est différente de cellecalculée avec l’hypothèse x1 ≥ 5.Ces bornes peuvent permettre d’élaguer l’arbre de recherchePour cela, une borne primale peut être nécessaire...

Amélie Lambert (Cnam) ECE 2016-2017 29 / 33

Page 77: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation : l’évaluation

Evaluer un noeud = calculer une "estimation" (borne duale) de la valeuroptimale de ce PLNE :

On résout la relaxation continue de ce PLNEA la racine de l’arbre on considère le PLNE initial

Intérêt de l’évaluation :

La borne duale calculée avec l’hypothèse x1 ≤ 4 est différente de cellecalculée avec l’hypothèse x1 ≥ 5.Ces bornes peuvent permettre d’élaguer l’arbre de recherchePour cela, une borne primale peut être nécessaire...

Amélie Lambert (Cnam) ECE 2016-2017 29 / 33

Page 78: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Procédure : on évalue un noeud, puis on sépare :

Sur la valeur d’une variable fractionnaire (non entière) dans la solutionoptimale de la relaxation continueExemple : si x1 = 4.3, on pose d’abord x1 ≤ 4, puis x1 ≥ 5

Parfois, on peut "couper" une branche de l’arbre de recherche :1 Si la valeur optimale de la relaxation continue est moins bonne que la

borne primale courante (noeud sans intérêt)2 Si la relaxation continue n’admet aucune solution admissible3 Si la relaxation continue admet une solution entière

Amélie Lambert (Cnam) ECE 2016-2017 30 / 33

Page 79: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Procédure : on évalue un noeud, puis on sépare :

Sur la valeur d’une variable fractionnaire (non entière) dans la solutionoptimale de la relaxation continueExemple : si x1 = 4.3, on pose d’abord x1 ≤ 4, puis x1 ≥ 5

Parfois, on peut "couper" une branche de l’arbre de recherche :1 Si la valeur optimale de la relaxation continue est moins bonne que la

borne primale courante (noeud sans intérêt)2 Si la relaxation continue n’admet aucune solution admissible3 Si la relaxation continue admet une solution entière

Amélie Lambert (Cnam) ECE 2016-2017 30 / 33

Page 80: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Couper suppose l’existence d’une borne primale ! :

Meilleure est cette borne, plus on risque de couper

Parfois, lors de la construction de l’arbre, l’évaluation du noeud fournitune solution entière (borne primale) : si nécessaire, actualiser alors laborne primale courante

On peut aussi essayer de générer par différents biais une borne primale(solution admissible) initiale...

Amélie Lambert (Cnam) ECE 2016-2017 31 / 33

Page 81: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Couper suppose l’existence d’une borne primale ! :

Meilleure est cette borne, plus on risque de couper

Parfois, lors de la construction de l’arbre, l’évaluation du noeud fournitune solution entière (borne primale) : si nécessaire, actualiser alors laborne primale courante

On peut aussi essayer de générer par différents biais une borne primale(solution admissible) initiale...

Amélie Lambert (Cnam) ECE 2016-2017 31 / 33

Page 82: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Couper suppose l’existence d’une borne primale ! :

Meilleure est cette borne, plus on risque de couper

Parfois, lors de la construction de l’arbre, l’évaluation du noeud fournitune solution entière (borne primale) : si nécessaire, actualiser alors laborne primale courante

On peut aussi essayer de générer par différents biais une borne primale(solution admissible) initiale...

Amélie Lambert (Cnam) ECE 2016-2017 31 / 33

Page 83: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Procédure de séparation et évaluation

Couper suppose l’existence d’une borne primale ! :

Meilleure est cette borne, plus on risque de couper

Parfois, lors de la construction de l’arbre, l’évaluation du noeud fournitune solution entière (borne primale) : si nécessaire, actualiser alors laborne primale courante

On peut aussi essayer de générer par différents biais une borne primale(solution admissible) initiale...

Amélie Lambert (Cnam) ECE 2016-2017 31 / 33

Page 84: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bilan

La PLNE permet de modéliser de très nombreux problèmes

Résolution d’un PLNE plus difficile qu’un PL, et nécessite de faire uncompromis temps/qualité

Méthodes exactes (méthodes par Séparation et Evaluation) :Résolution à l’optimum, parfois trop lentes

Méthodes approchées ((méta-)heuristiques) : Qualité des solutionsvariable (et souvent non garantie), Peuvent être très rapides si bienutilisées

Amélie Lambert (Cnam) ECE 2016-2017 32 / 33

Page 85: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bilan

La PLNE permet de modéliser de très nombreux problèmes

Résolution d’un PLNE plus difficile qu’un PL, et nécessite de faire uncompromis temps/qualité

Méthodes exactes (méthodes par Séparation et Evaluation) :Résolution à l’optimum, parfois trop lentes

Méthodes approchées ((méta-)heuristiques) : Qualité des solutionsvariable (et souvent non garantie), Peuvent être très rapides si bienutilisées

Amélie Lambert (Cnam) ECE 2016-2017 32 / 33

Page 86: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bilan

La PLNE permet de modéliser de très nombreux problèmes

Résolution d’un PLNE plus difficile qu’un PL, et nécessite de faire uncompromis temps/qualité

Méthodes exactes (méthodes par Séparation et Evaluation) :Résolution à l’optimum, parfois trop lentes

Méthodes approchées ((méta-)heuristiques) : Qualité des solutionsvariable (et souvent non garantie), Peuvent être très rapides si bienutilisées

Amélie Lambert (Cnam) ECE 2016-2017 32 / 33

Page 87: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Bilan

La PLNE permet de modéliser de très nombreux problèmes

Résolution d’un PLNE plus difficile qu’un PL, et nécessite de faire uncompromis temps/qualité

Méthodes exactes (méthodes par Séparation et Evaluation) :Résolution à l’optimum, parfois trop lentes

Méthodes approchées ((méta-)heuristiques) : Qualité des solutionsvariable (et souvent non garantie), Peuvent être très rapides si bienutilisées

Amélie Lambert (Cnam) ECE 2016-2017 32 / 33

Page 88: Les algorithmes de Branch-and-Bound pour la PLNEcedric.cnam.fr/~lamberta/ECE/OutLog/OL_BB_C3_2016-2017.pdf · 2016-11-02 · Les algorithmes de Branch-and-Bound pour la PLNE AmélieLambert

Exercice 2

Soit le problème suivant :

(SAD)

max x1 + x2 + 5x3 + 3x4

3x1 + 2x2 + 4x3 + 2x4 ≤ 5x ∈ {0, 1}4

1 En branchant sur les variables dans l’ordre x1, x2, x3, x4 enuméreztoutes les solutions réalisables.

2 Dérouler l’arbre de recherche obtenu par la procédure de séparation etévaluation basée sur la relaxation continue.

Amélie Lambert (Cnam) ECE 2016-2017 33 / 33