Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1...

106
Optimisation en nombre entiers Daniel Porumbel Contributions aux slides: Cédric Bentz Lê Nguyên Hoang 1/47

Transcript of Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1...

Page 1: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Optimisation en nombre entiers

Daniel Porumbel

Contributions aux slides:Cédric Bentz

Lê Nguyên Hoang

1/47

Page 2: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associées

3 Exemples de Modélisations Avancées

4 Méthodes de Résolution en Nombre Entiers

Page 3: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

3/47

Page 4: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Soit un sac-à-dos et uneliste d’articlesde poids et va-leurs variées

10€ 12 kg

2€ 2 kg

1€ 7 kg

2€ 1 kg

10€ 4 kg

15 kg

Problème du sac-à-dosQuels articles choisir pour maximiser le profit ?

Problème de la partition équitablePeut-on diviser les articles en deux sous-ensembles demême poids total ?

Page 5: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Soit un sac-à-dos et uneliste d’articlesde poids et va-leurs variées

10€ 12 kg

2€ 2 kg

1€ 7 kg

2€ 1 kg

10€ 4 kg

15 kg

Problème du sac-à-dosQuels articles choisir pour maximiser le profit ?

Problème de la partition équitablePeut-on diviser les articles en deux sous-ensembles demême poids total ?

Page 6: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Soit un sac-à-dos et uneliste d’articlesde poids et va-leurs variées

10€ 12 kg

2€ 2 kg

1€ 7 kg

2€ 1 kg

10€ 4 kg

15 kg

Problème du sac-à-dosQuels articles choisir pour maximiser le profit ?

Problème de la partition équitablePeut-on diviser les articles en deux sous-ensembles demême poids total ?

Page 7: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Un problème non-binaire : les huit dames

Comment placer n dames sur un échiquier de n × n cases sansque les dames ne puissent s’attaquer mutuellement ?

Une solution pour n = 8 −→Résolution naïve : vérifier nn

solutions candidates ! ! !Même n = 4 demande256 solutions

Explosion combinatoirenombre exponentiel de solutions(scénarios) envisageable.

5/47

Page 8: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Un problème non-binaire : les huit dames

Comment placer n dames sur un échiquier de n × n cases sansque les dames ne puissent s’attaquer mutuellement ?

Une solution pour n = 8 −→Résolution naïve : vérifier nn

solutions candidates ! ! !Même n = 4 demande256 solutions

Explosion combinatoirenombre exponentiel de solutions(scénarios) envisageable.

5/47

Page 9: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Un problème non-binaire : les huit dames

Comment placer n dames sur un échiquier de n × n cases sansque les dames ne puissent s’attaquer mutuellement ?

Une solution pour n = 8 −→Résolution naïve : vérifier nn

solutions candidates ! ! !Même n = 4 demande256 solutions

Explosion combinatoirenombre exponentiel de solutions(scénarios) envisageable.

5/47

Page 10: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Décision Optimale de Sauts

On considère le début d’un jeu Monopoly :

On avance vers la gauche à l’aide des opérations suivantes :saut de 2 positionssaut de 3 positionssortir avec l’argent récupéré jusqu’au moment actuel

Comment calculer le profit maximal ?

6/47

Page 11: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Comment dérober le maximum ?• Un malfaiteur arrive à s’introduire dans une banque

Il peut volerdes barres d’or etdes liasses de billets

Problème : 2 limitationsde son sac-à-dos• charge max : 20kg• volume max : 32 litres

une barre d’or : 300000$, 8kg, 6litresun paquet de billets : 100000$, 3kg, 6litres

Et si le prix de la barre d’or baissait à 200000$ ?

7/47

Page 12: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Comment dérober le maximum ?• Un malfaiteur arrive à s’introduire dans une banque

Il peut volerdes barres d’or etdes liasses de billets

Problème : 2 limitationsde son sac-à-dos• charge max : 20kg• volume max : 32 litres

une barre d’or : 300000$, 8kg, 6litresun paquet de billets : 100000$, 3kg, 6litres

Et si le prix de la barre d’or baissait à 200000$ ?

7/47

Page 13: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Comment dérober le maximum ?• Un malfaiteur arrive à s’introduire dans une banque

Il peut volerdes barres d’or etdes liasses de billets

Problème : 2 limitationsde son sac-à-dos• charge max : 20kg• volume max : 32 litres

une barre d’or : 300000$, 8kg, 6litresun paquet de billets : 100000$, 3kg, 6litres

Et si le prix de la barre d’or baissait à 200000$ ?

7/47

Page 14: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Comment dérober le maximum ?• Un malfaiteur arrive à s’introduire dans une banque

Il peut volerdes barres d’or etdes liasses de billets

Problème : 2 limitationsde son sac-à-dos• charge max : 20kg• volume max : 32 litres

une barre d’or : 300000$, 8kg, 6litresun paquet de billets : 100000$, 3kg, 6litres

Et si le prix de la barre d’or baissait à 200000$ ?

7/47

Page 15: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Un programme linéaire un nombre entiers

variable x1 nombre de barres d’or (300000$, 8kg, 6l)variable x2 nombre de paquets de billets (100000$, 3kg, 6litres)

max 3x1 + x2 ← maximiser le profit8x1 + 3x2 ≤ 206x1 + 6x2 ≤ 32

}← Contraintes de poids et volume

x1, x2 ∈ Z+ ← Contraintes d’intégrité

8/47

Page 16: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Classes de Méthodes de Résolution

Héuristiques et Méta-heuristiquesHeuristique classique : remplir le sac avec le maximum d’or etcompléter avec des billets

Optimale si le prix de l’or est 300000$ mais pas toujours

Méta-heuristique : Une heuristique qui s’applique à une largefamilles de problèmes, ex, recherche locale

Méthodes exactes1 Énumération complète→ explosion combinatoire2 Relaxation linéaire

On imagine qu’on pouvait fondre l’or→ une borne supérieurede l’optimum entier (un profit exagéré)Bonne modélisation =⇒ optimum continu=optimum entier

3 Combiner 1 et 2 → branch and bound (séparation et évalua-tion) 9/47

Page 17: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Classes de Méthodes de Résolution

Héuristiques et Méta-heuristiquesHeuristique classique : remplir le sac avec le maximum d’or etcompléter avec des billets

Optimale si le prix de l’or est 300000$ mais pas toujours

Méta-heuristique : Une heuristique qui s’applique à une largefamilles de problèmes, ex, recherche locale

Méthodes exactes1 Énumération complète→ explosion combinatoire2 Relaxation linéaire

On imagine qu’on pouvait fondre l’or→ une borne supérieurede l’optimum entier (un profit exagéré)Bonne modélisation =⇒ optimum continu=optimum entier

3 Combiner 1 et 2 → branch and bound (séparation et évalua-tion) 9/47

Page 18: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Classes de Méthodes de Résolution

Héuristiques et Méta-heuristiquesHeuristique classique : remplir le sac avec le maximum d’or etcompléter avec des billets

Optimale si le prix de l’or est 300000$ mais pas toujours

Méta-heuristique : Une heuristique qui s’applique à une largefamilles de problèmes, ex, recherche locale

Méthodes exactes1 Énumération complète→ explosion combinatoire2 Relaxation linéaire

On imagine qu’on pouvait fondre l’or→ une borne supérieurede l’optimum entier (un profit exagéré)Bonne modélisation =⇒ optimum continu=optimum entier

3 Combiner 1 et 2 → branch and bound (séparation et évalua-tion) 9/47

Page 19: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Classes de Méthodes de Résolution

Héuristiques et Méta-heuristiquesHeuristique classique : remplir le sac avec le maximum d’or etcompléter avec des billets

Optimale si le prix de l’or est 300000$ mais pas toujours

Méta-heuristique : Une heuristique qui s’applique à une largefamilles de problèmes, ex, recherche locale

Méthodes exactes1 Énumération complète→ explosion combinatoire2 Relaxation linéaire

On imagine qu’on pouvait fondre l’or→ une borne supérieurede l’optimum entier (un profit exagéré)Bonne modélisation =⇒ optimum continu=optimum entier

3 Combiner 1 et 2 → branch and bound (séparation et évalua-tion) 9/47

Page 20: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

10/47

Page 21: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

11/47

Page 22: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : Intuition

Rappels caractéristiquesor 300000$, 8kg, 6litresbillets 100000$, 3kg, 6litresmax poids 20, volume 32

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, la solution optimale serait de prendrele maximum d’or : 2.5 lingots !

=⇒ Valeur optimale relaxée : 7.5=⇒ Le profit de 7 est optimal en nombre entiers !

12/47

Page 23: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : Intuition

Rappels caractéristiquesor 300000$, 8kg, 6litresbillets 100000$, 3kg, 6litresmax poids 20, volume 32

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, la solution optimale serait de prendrele maximum d’or : 2.5 lingots !

=⇒ Valeur optimale relaxée : 7.5=⇒ Le profit de 7 est optimal en nombre entiers !

12/47

Page 24: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : Intuition

Rappels caractéristiquesor 300000$, 8kg, 6litresbillets 100000$, 3kg, 6litresmax poids 20, volume 32

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, la solution optimale serait de prendrele maximum d’or : 2.5 lingots !

=⇒ Valeur optimale relaxée : 7.5=⇒ Le profit de 7 est optimal en nombre entiers !

12/47

Page 25: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : modèle mathématique

max 3x1 + x2 ← prix : or=300000$ billets :100000$8x1 + 3x2 ≤ 20 ← Limite de poids6x1 + 6x2 ≤ 32 ← Limite de volume

x1, x2 ∈ Z+ ← Contraintes d’intégrité

Ce type de programmes est difficile en nombre entiers àcause de l’explositon combinatoire !Mais il serait facile si les variables n’étaient pas entières.

max 3x1 + x2

8x1 + 3x2 ≤ 206x1 + 6x2 ≤ 32

x1, x2 ∈ R+ ← Pas d’intégrité =⇒ Facile !

13/47

Page 26: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : représentation 2D

max 3x1 + x2

8x1 + 3x2 ≤ 206x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

Le point rouge est lasolution optimale duprogramme continu(x1, x2 ∈ R+).

Tracer le graphique 2D des solutions

1 Tracer des courbes de niveau de lafonction objectif

2 Si on changeait8x1 + 3x2 ≤ 20→ 8x2 + 3x2 ≤ 22?

De l’optimum fractionnaire vers une solution entièreTrouver l’optimum fractionnaire (continu) et prendre le point en-tier le plus proche =⇒ (x1, x2) = (2,0), pas optimal en nb ent.

14/47

Page 27: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : représentation 2D

max 3x1 + x2

8x1 + 3x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

Le point rouge est lasolution optimale duprogramme continu(x1, x2 ∈ R+).

De l’optimum fractionnaire vers une solution entièreTrouver l’optimum fractionnaire (continu) et prendre le point en-tier le plus proche =⇒ (x1, x2) = (2,0), pas optimal en nb ent.

14/47

Page 28: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Relaxation linéaire : représentation 2D

max 3x1 + x2

8x1 + 3x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

Le point rouge est lasolution optimale duprogramme continu(x1, x2 ∈ R+).

De l’optimum fractionnaire vers une solution entièreTrouver l’optimum fractionnaire (continu) et prendre le point en-tier le plus proche =⇒ (x1, x2) = (2,0), pas optimal en nb ent.

14/47

Page 29: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Meilleure modélisation à base de coupesQuel est l’avantage d’une zone réalisable comme ci-dessous ?

Peut-on ajouter une contrainte intelligente (coupe) pour séparer(x1, x2) = (2,3)? On veut obtenir l’

�� ��enveloppe convexe descroix.

Astuce : a · x1 + b · x2 = const en (2,1) et (1,4)Oui : 3x1 + x2 ≤ 7

15/47

Page 30: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Meilleure modélisation à base de coupesQuel est l’avantage d’une zone réalisable comme ci-dessous ?

max . . .x1 ≤ 2

x1 + x2 ≤ 5

x1, x2 ∈ R+

Peut-on ajouter une contrainte intelligente (coupe) pour séparer(x1, x2) = (2,3)? On veut obtenir l’

�� ��enveloppe convexe descroix.

Astuce : a · x1 + b · x2 = const en (2,1) et (1,4)Oui : 3x1 + x2 ≤ 7

15/47

Page 31: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Meilleure modélisation à base de coupesQuel est l’avantage d’une zone réalisable comme ci-dessous ?

max . . .x1 ≤ 2

x1 + x2 ≤ 53x1 + x2 ≤ 7x1, x2 ∈ R+

Peut-on ajouter une contrainte intelligente (coupe) pour séparer(x1, x2) = (2,3)? On veut obtenir l’

�� ��enveloppe convexe descroix.

Astuce : a · x1 + b · x2 = const en (2,1) et (1,4)Oui : 3x1 + x2 ≤ 7

15/47

Page 32: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Après avoir ajouté une première coupe, l’optimum fractionnairen’est pas forcement entier. =⇒ On peut itérer le processus :

Exemple d’exécution de la méthode des Plans Coupants :�

�1. L’optimum dela relaxation li-néaire est non-entier.

→�

�2. Après unecoupe, l’op-timum restenon-entier.

→��

��

3. Après la 2èmecoupe, l’optimumest bien entier ! !

Page 33: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

max 2x1 + x2

8x1 + 3x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

ExempleBranch & Bound

(séparation&évaluation)

Page 34: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire
Page 35: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Autre exemple Branch and Bound

max 3x1 + x2

8x1 + 4x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

À partir de la solution optimale fractionnaire (x1, x2) =(228 ,0) de

profit 3228 = 8.25 , on considère deux cas :

x1 = 2 optimum fractionnaire : (x1, x2) = (2, 64) de valeur 6+

1.5 = 7.5x2 = 1 Valeur : 7x1 = 0 Valeur : 6

x1 ≤ 1 optimum factionnaire : (x1, x2) = (1, 144 ) de valeur

3 + 3.5 = 6.5 =⇒ on coupe toute la branche !

19/47

Page 36: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Autre exemple Branch and Bound

max 3x1 + x2

8x1 + 4x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

À partir de la solution optimale fractionnaire (x1, x2) =(228 ,0) de

profit 3228 = 8.25 , on considère deux cas :

x1 = 2 optimum fractionnaire : (x1, x2) = (2, 64) de valeur 6+

1.5 = 7.5x2 = 1 Valeur : 7x1 = 0 Valeur : 6

x1 ≤ 1 optimum factionnaire : (x1, x2) = (1, 144 ) de valeur

3 + 3.5 = 6.5 =⇒ on coupe toute la branche !

19/47

Page 37: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Autre exemple Branch and Bound

max 3x1 + x2

8x1 + 4x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

À partir de la solution optimale fractionnaire (x1, x2) =(228 ,0) de

profit 3228 = 8.25 , on considère deux cas :

x1 = 2 optimum fractionnaire : (x1, x2) = (2, 64) de valeur 6+

1.5 = 7.5x2 = 1 Valeur : 7x1 = 0 Valeur : 6

x1 ≤ 1 optimum factionnaire : (x1, x2) = (1, 144 ) de valeur

3 + 3.5 = 6.5 =⇒ on coupe toute la branche !

19/47

Page 38: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Autre exemple Branch and Bound

max 3x1 + x2

8x1 + 4x2 ≤ 226x1 + 6x2 ≤ 32

x1, x2 ∈ Z+

À partir de la solution optimale fractionnaire (x1, x2) =(228 ,0) de

profit 3228 = 8.25 , on considère deux cas :

x1 = 2 optimum fractionnaire : (x1, x2) = (2, 64) de valeur 6+

1.5 = 7.5x2 = 1 Valeur : 7x1 = 0 Valeur : 6

x1 ≤ 1 optimum factionnaire : (x1, x2) = (1, 144 ) de valeur

3 + 3.5 = 6.5 =⇒ on coupe toute la branche !

19/47

Page 39: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

20/47

Page 40: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Un simple exemple de fichier mod

fichier test.mod :� �var x1>=0 ;var x2>=0 ;maximize ob j :3∗ x1+x2 ;sub jec t to c1 : 8∗x1+4∗x2<=22 ;sub jec t to c2 : 6∗x1+4∗x2<=32 ;solve ;d i sp lay x1 , x2 ;end ;� �La commande glpsol -m test.mod optimise le modèle.Pour passer en nombre entières, on déclare :var x1>=0,integer;

21/47

Page 41: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Un simple exemple de fichier mod

fichier test.mod :� �var x1>=0 ;var x2>=0 ;maximize ob j :3∗ x1+x2 ;sub jec t to c1 : 8∗x1+4∗x2<=22 ;sub jec t to c2 : 6∗x1+4∗x2<=32 ;solve ;d i sp lay x1 , x2 ;end ;� �La commande glpsol -m test.mod optimise le modèle.Pour passer en nombre entières, on déclare :var x1>=0,integer;

21/47

Page 42: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

22/47

Page 43: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Vers l’optimisation à grande échelle

Le problème du cambrioleur : 2 variablesMais : souvent besoin d’un tableau de n ou n2 variablesEx : Soit n articles et un tableau de prix, ex a = [1,10,11,3]

pas le droit de prendre deux articles consecutifs ;quels articles choisir pour maximiser le prix ?� �

1 param n , >0 , i n t e g e r ;2 param a { 1 . . n } , i n t e g e r ;3 var x { 1 . . n } , >=0 , b inary ;4 s . t . c_consec { i i n 1 . . n−1} : x [ i ]+ x [ i +1]<=1 ;5 maximize ob j : sum{ i i n 1 . . n } a [ i ]∗ x [ i ] ;6 solve ;7 f o r { i i n 1 . . n } { p r i n t f "%d " , x [ i ] ; }8 data ;9 param n :=4 ;

10 param a := 1 2011 2 312 3 513 4 4 ;14 end ;� �

23/47

Page 44: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Vers l’optimisation à grande échelle

Le problème du cambrioleur : 2 variablesMais : souvent besoin d’un tableau de n ou n2 variablesEx : Soit n articles et un tableau de prix, ex a = [1,10,11,3]

pas le droit de prendre deux articles consecutifs ;quels articles choisir pour maximiser le prix ?� �

1 param n , >0 , i n t e g e r ;2 param a { 1 . . n } , i n t e g e r ;3 var x { 1 . . n } , >=0 , b inary ;4 s . t . c_consec { i i n 1 . . n−1} : x [ i ]+ x [ i +1]<=1 ;5 maximize ob j : sum{ i i n 1 . . n } a [ i ]∗ x [ i ] ;6 solve ;7 f o r { i i n 1 . . n } { p r i n t f "%d " , x [ i ] ; }8 data ;9 param n :=4 ;

10 param a := 1 2011 2 312 3 513 4 4 ;14 end ;� �

23/47

Page 45: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Vers l’optimisation à grande échelle

D’autres problèmes de localisation ou de tournées de véhiculessont modélisés sur des graphes, cartes routières, etc.

d(Paris,Lille) = 4, d(Paris,Toulouse) = 7, . . .

24/47

Page 46: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Vers l’optimisation à grande échelle

D’autres problèmes de localisation ou de tournées de véhiculessont modélisés sur des graphes, cartes routières, etc.

d(Paris,Lille) = 4, d(Paris,Toulouse) = 7, . . .

24/47

Page 47: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Vers l’optimisation à grande échelle

D’autres problèmes de localisation ou de tournées de véhiculessont modélisés sur des graphes, cartes routières, etc.

Rappels graphe pondéré G(V ,E ,d)V ensemble de sommetsE un ensemble d’arêtes {u, v}

d(u, v) fonction de distance de u à v

V = {Paris, Lille, Cannes, . . .}E =

{{Paris,Lille}, {Paris,Toulouse}{Paris,Cannes}, . . . . . .

}d(Paris,Lille) = 4, d(Paris,Toulouse) = 7, . . .

24/47

Page 48: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Vers l’optimisation à grande échelle

D’autres problèmes de localisation ou de tournées de véhiculessont modélisés sur des graphes, cartes routières, etc.

1 2 3 4 5 61 0 7 6 5 2 42 73 64 55 26 4Paris (1), Cannes (2),

Toulouse (3), Nantes (4),

Bethune (5), Lille (6)d(Paris,Lille) = 4, d(Paris,Toulouse) = 7, . . .

24/47

Page 49: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

25/47

Page 50: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème du stable maximalSoit un graphe G(V ,E) :

S =stable de G : ∀u, v ∈ S =⇒ u et v pas reliées ({u, v} /∈ E)Objectif : trouver le stable de taille maximale

max∑

v∈V xv

xu + xv ≤ 1 ∀{u, v} ∈ Exv ∈ {0,1} ∀v ∈ V

Pour quoi étudier un tel problème ?

Il généralise de nombreux problèmes, ex : les huit damesApplications

ouvrir le maximum de magasins en France sous la contrainte :ne pas ouvrir 2 magasins à une distance <100 km

26/47

Page 51: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème du stable maximalSoit un graphe G(V ,E) :

S =stable de G : ∀u, v ∈ S =⇒ u et v pas reliées ({u, v} /∈ E)Objectif : trouver le stable de taille maximale

max∑

v∈V xv

xu + xv ≤ 1 ∀{u, v} ∈ Exv ∈ {0,1} ∀v ∈ V

Pour quoi étudier un tel problème ?

Il généralise de nombreux problèmes, ex : les huit damesApplications

ouvrir le maximum de magasins en France sous la contrainte :ne pas ouvrir 2 magasins à une distance <100 km

26/47

Page 52: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème du stable maximalSoit un graphe G(V ,E) :

S =stable de G : ∀u, v ∈ S =⇒ u et v pas reliées ({u, v} /∈ E)Objectif : trouver le stable de taille maximale

max∑

v∈V xv

xu + xv ≤ 1 ∀{u, v} ∈ Exv ∈ {0,1} ∀v ∈ V

Pour quoi étudier un tel problème ?

Il généralise de nombreux problèmes, ex : les huit damesApplications

ouvrir le maximum de magasins en France sous la contrainte :ne pas ouvrir 2 magasins à une distance <100 km

26/47

Page 53: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème du stable maximalSoit un graphe G(V ,E) :

S =stable de G : ∀u, v ∈ S =⇒ u et v pas reliées ({u, v} /∈ E)Objectif : trouver le stable de taille maximale

max∑

v∈V xv

xu + xv ≤ 1 ∀{u, v} ∈ Exv ∈ {0,1} ∀v ∈ V

Pour quoi étudier un tel problème ?

Il généralise de nombreux problèmes, ex : les huit damesApplications

ouvrir le maximum de magasins en France sous la contrainte :ne pas ouvrir 2 magasins à une distance <100 km

26/47

Page 54: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème du stable maximalSoit un graphe G(V ,E) :

S =stable de G : ∀u, v ∈ S =⇒ u et v pas reliées ({u, v} /∈ E)Objectif : trouver le stable de taille maximale

max∑

v∈V xv

xu + xv ≤ 1 ∀{u, v} ∈ Exv ∈ {0,1} ∀v ∈ V

Pour quoi étudier un tel problème ?

Il généralise de nombreux problèmes, ex : les huit damesApplications

ouvrir le maximum de magasins en France sous la contrainte :ne pas ouvrir 2 magasins à une distance <100 km

26/47

Page 55: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème du stable en GLPKIl faut préciser plusieurs blocs :� �param n ;param mat { 1 . . n , 1 . . n } , i n t e g e r ;

var x { 1 . . n } , >=0 , i n t e g e r ;

sub jec t to nomConstr { i i n 1 . . n ,j i n 1 . . n : mat [ i , j ]==1 } : x [ i ] + x [ j ] <=1 ;

maximize ob j : sum{ i i n 1 . . n } x [ i ] ;

solve ;

p r i n t f "sum=%d " , (sum{ i i n 1 . . n } x [ i ] ) ;data ; −>ces 3 l i g n e s. . . . . −>dans un aut reend −> f i c h i e r� �27/47

Page 56: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le bloc à la fin

param n:=4;param a:1 2 3 4:=

1 0 1 1 12 1 0 0 13 1 0 0 14 1 1 1 1;

end;

Ce bloc est optionnel et il peut apparaître dans un fichier séparé(voir l’option −d de glpsol)Comparons le temps de calcul en nombre réels est entiers

28/47

Page 57: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le bloc à la fin

param n:=4;param a:1 2 3 4:=

1 0 1 1 12 1 0 0 13 1 0 0 14 1 1 1 1;

end;

Ce bloc est optionnel et il peut apparaître dans un fichier séparé(voir l’option −d de glpsol)Comparons le temps de calcul en nombre réels est entiers

28/47

Page 58: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le code final� �param n , >0 , i n t e g e r ;param a { 1 . . n , 1 . . n } , i n t e g e r ;var x { 1 . . n } , >=0 , b inary ;s . t . c { i i n 1 . . n , j i n i + 1 . . n : a [ i , j ]==1 } :

x [ i ] + x [ j ] <=1 ;maximize ob j : sum{ i i n 1 . . n } x [ i ] ;solve ;p r i n t f "sum=%d " , (sum{ i i n 1 . . n } x [ i ] ) ;data ;param n :=4 ;param a :1 2 3 4:=

1 0 1 1 12 1 0 0 13 1 0 0 14 1 1 1 0 ;

end ;� �29/47

Page 59: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème d'affectation linéaire

Contexte : dans une entreprise, n tâches doivent être affectées à n agents de façon à minimiser le temps total (= somme des temps) mis pour effectuer toutes les tâches, sachant que le temps mis par un agent pour effectuer une tâche dépend de la tâche ET de l'agent

Formalisation : chaque paire (tâche, agent) est munie d'une valeur (temps en minutes), et 1 tâche = 1 agent

Modèle PLNE ?

− Une variable 0-1 par paire (tâche, agent)

Tâche 1 Tâche 2 Tâche 3

10 min 15 min 40 min1

2

3

5 min 20 min 1 heure

10 min 3 heures 3 heures

Agents10

Page 60: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème d’affectation linéaire

Données et paramètres• Taches T = {1,2, . . .n}• Machines A = {1,2, . . .n}• cta = cout d’affectation de la tache t à la machine a

Variables de décisionxta = 1 si la tache t affectée à la machine a, 0 sinon

=⇒min

∑ta ctaxta∑n

t=1 xta = 1 ∀a ∈ {1,2, . . .n}∑na=1 xta = 1 ∀t ∈ {1,2, . . .n}

xat ∈ {0,1}

30/47

Page 61: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème d’affectation linéaire : GLPKOn modifie le .mod précédent. La contrainte devient :

s.t. contr_pour_chaque_ligne{ligne in 1..n}:sum{col in 1..n} x[ligne,col]=1;

s.t. contr_pour_chaque_col{col in 1..n}:sum{ligne in 1..n} x[ligne,col]=1;

Pour afficher une matrice, on utilise :

for {i in 1..n}{

for {j in 1..n}{

printf "%d ", (x[i,j]);}printf "\n";

}

31/47

Page 62: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème du ... ?...

max c>x =∑n

i=1 cixi∑nt=1 aixi ≤ bxi ∈ {0,1}

Données et paramètres• n articles {1,2, . . .n}, n poids a1,a2, . . .an, n valeurs (prix)c1, c2, . . . cn, ainsi qu’un une capacité b• on veux maximiser le cout des articles choisis

Variables de décisionxi = 1 si l’article i est sélectionnée, 0 sinon

Exemple : a = [4,3,2,1], c = [44,30,20,15] et b = 6Comment comparer ce modèle avec sa relaxation linéaire ?

32/47

Page 63: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème du sac à dos

max c>x =∑n

i=1 cixi∑nt=1 aixi ≤ bxi ∈ {0,1}

Données et paramètres• n articles {1,2, . . .n}, n poids a1,a2, . . .an, n valeurs (prix)c1, c2, . . . cn, ainsi qu’un une capacité b• on veux maximiser le cout des articles choisis

Variables de décisionxi = 1 si l’article i est sélectionnée, 0 sinon

Exemple : a = [4,3,2,1], c = [44,30,20,15] et b = 6Comment comparer ce modèle avec sa relaxation linéaire ?

32/47

Page 64: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème du sac à dos

max c>x =∑n

i=1 cixi∑nt=1 aixi ≤ bxi ∈ {0,1}

Données et paramètres• n articles {1,2, . . .n}, n poids a1,a2, . . .an, n valeurs (prix)c1, c2, . . . cn, ainsi qu’un une capacité b• on veux maximiser le cout des articles choisis

Variables de décisionxi = 1 si l’article i est sélectionnée, 0 sinon

Exemple : a = [4,3,2,1], c = [44,30,20,15] et b = 6Comment comparer ce modèle avec sa relaxation linéaire ?

32/47

Page 65: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème de la couverture minimum par les sommets

Contexte : on veut placer le moins possible de caméras de surveillance à des carrefours de façon à surveiller toutes les rues d'un quartier

Formalisation : on représente le quartier par un graphe, dont les sommets sont les carrefours et les arêtes les rues entre ces carrefours (on cherche alors un ensemble de sommets de taille minimum qui « couvre » toutes les arêtes du graphe)

Modèle PLNE ?

− Une variable 0-1 par sommet du graphe

11

Page 66: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Modélisation problème de couverture

Données et paramètresGraphe G(V ,E) : sommets V = {1,2, . . .}, arrêtes E à surveiller

Variables de décisionxi = 1 si on place une caméra au sommet i , 0 sinon

=⇒min

∑i xi

xi + xj ≥ 1 ∀i , j ∈ Exi ∈ {0,1}

33/47

Page 67: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème de localisation (de caméras)Si on voulait placer k caméras pour maximiser le nombre desommets “surveillés” ?On ajoute une variable yi qui indique si le sommet i est surveillépar une caméra ou pas.

max∑

i yi

on ajoute les contraintes sur vecteurs x et y∑ni=1 xi =k

yi ≤ xi +∑{i,j}∈E xj ∀i ∈ {1,2, . . .n}

yi ≤ 1 ∀i ∈ {1,2, . . .n}yi , xi ∈ {0,1}

code GLPK pour la contrainte en x et y :

s.t. c{i in 1..n}:sum {j in 1..n: a[i,j]==1}x[j] >=y[i];

34/47

Page 68: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème de localisation (de caméras)Si on voulait placer k caméras pour maximiser le nombre desommets “surveillés” ?On ajoute une variable yi qui indique si le sommet i est surveillépar une caméra ou pas.

max∑

i yi

on ajoute les contraintes sur vecteurs x et y∑ni=1 xi =k

yi ≤ xi +∑{i,j}∈E xj ∀i ∈ {1,2, . . .n}

yi ≤ 1 ∀i ∈ {1,2, . . .n}yi , xi ∈ {0,1}

code GLPK pour la contrainte en x et y :

s.t. c{i in 1..n}:sum {j in 1..n: a[i,j]==1}x[j] >=y[i];

34/47

Page 69: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème de localisation (de caméras)Si on voulait placer k caméras pour maximiser le nombre desommets “surveillés” ?On ajoute une variable yi qui indique si le sommet i est surveillépar une caméra ou pas.

max∑

i yi

on ajoute les contraintes sur vecteurs x et y∑ni=1 xi =k

yi ≤ xi +∑{i,j}∈E xj ∀i ∈ {1,2, . . .n}

yi ≤ 1 ∀i ∈ {1,2, . . .n}yi , xi ∈ {0,1}

code GLPK pour la contrainte en x et y :

s.t. c{i in 1..n}:sum {j in 1..n: a[i,j]==1}x[j] >=y[i];

34/47

Page 70: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Problème de localisation (de caméras)Si on voulait placer k caméras pour maximiser le nombre desommets “surveillés” ?On ajoute une variable yi qui indique si le sommet i est surveillépar une caméra ou pas.

max∑

i yi

on ajoute les contraintes sur vecteurs x et y∑ni=1 xi =k

yi ≤ xi +∑{i,j}∈E xj ∀i ∈ {1,2, . . .n}

yi ≤ 1 ∀i ∈ {1,2, . . .n}yi , xi ∈ {0,1}

code GLPK pour la contrainte en x et y :

s.t. c{i in 1..n}:sum {j in 1..n: a[i,j]==1}x[j] >=y[i];

34/47

Page 71: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

35/47

Page 72: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème de la bi-partition équitable

On doit trouver deux sous-ensembles d’articles de même tailletotale =⇒ minimiser la valeur absolue d’une différence :

min∣∣∑n

t=1 aixi∣∣

xi ∈ {−1,1}

Linéarisation=⇒

min y∑nt=1 aixi ≤ y

−∑n

t=1 aixi ≤ yxi ∈ {−1,1}

y ∈ [0,∞]

36/47

Page 73: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le problème de la bi-partition équitable

On doit trouver deux sous-ensembles d’articles de même tailletotale =⇒ minimiser la valeur absolue d’une différence :

min∣∣∑n

t=1 aixi∣∣

xi ∈ {−1,1}

Linéarisation=⇒

min y∑nt=1 aixi ≤ y

−∑n

t=1 aixi ≤ yxi ∈ {−1,1}

y ∈ [0,∞]

36/47

Page 74: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le sous-graphe induit de densité maximale

ObjectifEntrée : un graphe (V ,E)

Objectif : Sélectionner k sommets S = {v1, v2, . . . vk} ⊂ Vqui comportent le maximum d’arêtes {vi , vj} ∈ E .

max∑{i,j}∈E xi · xj∑n

i=1 xi ≤ kxi ∈ {0,1}n ∀i ∈ {1,2 . . . n}

Défi : le programme n’est pas linéaire et les solveurs (commeglpk) ne peuvent pas tous gérer les produits xi · xj

=⇒ On doit replacer xi · xj par des combinaisons linéaires =⇒linéarisation.

37/47

Page 75: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le sous-graphe induit de densité maximale

ObjectifEntrée : un graphe (V ,E)

Objectif : Sélectionner k sommets S = {v1, v2, . . . vk} ⊂ Vqui comportent le maximum d’arêtes {vi , vj} ∈ E .

max∑{i,j}∈E xi · xj∑n

i=1 xi ≤ kxi ∈ {0,1}n ∀i ∈ {1,2 . . . n}

Défi : le programme n’est pas linéaire et les solveurs (commeglpk) ne peuvent pas tous gérer les produits xi · xj

=⇒ On doit replacer xi · xj par des combinaisons linéaires =⇒linéarisation.

37/47

Page 76: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Linéarisation de xi · xj vers yij

On ajoute des variables additionnelles yij ∈ {0,1} et on impose :

yij ≤ xi

yij ≤ xj

et .......yij ≥ xj + xi − 1

=⇒ yij = xi · xj parce que toutes les variables sont binaires !

=⇒

On résout un PLNE (programme linéaire en nombre entiers)avec objectif

∑yij et on obtient la solution entière du

programme initial (quadratique en nombre entiers)

38/47

Page 77: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Linéarisation de xi · xj vers yij

On ajoute des variables additionnelles yij ∈ {0,1} et on impose :

yij ≤ xi

yij ≤ xj

etyij ≥ xj + xi − 1

=⇒ yij = xi · xj parce que toutes les variables sont binaires !

=⇒

On résout un PLNE (programme linéaire en nombre entiers)avec objectif

∑yij et on obtient la solution entière du

programme initial (quadratique en nombre entiers)

38/47

Page 78: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

La contrainte x 6= 7 via un PLx ≥ 8− y · Cx ≤ 6 + (1− y) · Cy ∈ {0,1}

Si y = 1, alors x ≤ 6 (donc x = 7 est impossible)Si y = 0, alors x ≥ 8 (donc x = 7 est impossible)

Comment linéariser x1 6= x2 ?

Page 79: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

40/47

Page 80: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

41/47

Page 81: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Décision Optimale de Sauts

On considère le début d’un jeu Monopoly :

On avance vers la gauche à l’aide des opérations suivantes :saut de 2 positionssaut de 3 positionssortir avec l’argent récupéré jusqu’au moment actuel

Comment calculer le profit maximal ?

42/47

Page 82: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

PLNE (Prog. Lin. En Nombre Entiers) pour le sac-à-dos

max 15x1 + 18x

2 + 4x

3 + 2x

4 + 5x

5 + x

6

3x1 + 4x

2 + x

3 + x

4 + 3x

5 + x

6 ≤ 5

xi∈{0,1} pour tout i entre 1 et 6

On peut générer un arbre de recherche (AR):

x=[? ? ? ? ? ?]

x=[0 ? ? ? ? ?] x = [1 ? ? ? ? ?]

x=[0 0 ? ? ? ?] x=[0 1 ? ? ? ?] x=[1 0 ? ? ? ?] x=[1 1 ? ? ? ?]

Page 83: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Séparation et évaluation (2/5)

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

− Par exemple, un PLNE ayant une variable x1∈{0,9}

peut être résolu en posant d'abord x1≤4, puis x

1≥5

Sous-problème 1 Sous-problème 2

04 5 9

x1

Branche « gauche »avec x

1 ≤ 4 Branche « droite » avec x

1 ≥ 5

Noeud = problème (PLNE) initial

Page 84: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Séparation et évaluation (3/5)

Evaluer un noeud = calculer une « estimation » (borne duale) de la valeur optimale de ce PLNE

− On résout la Relaxation Continue (RC) du PLNE − Racine = PLNE initial (pas de contraintes en plus)

Intérêt de l'évaluation :

− La borne duale calculée avec l'hypothèse x1 ≤ 4 est

différente de celle calculée avec l'hypothèse x1 ≥ 5

− Ces bornes peuvent permettre d'élaguer l'AR− Pour cela, une borne primale peut être nécessaire...

Page 85: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Séparation et évaluation (4/5)

Couper suppose l'existence d'une borne primale !− Meilleure est cette borne, plus on risque de couper− Une solution admisible peut être construite avec une

héuristique − Parfois, lors de la construction de l'AR, l'évaluation du

noeud fournit une solution entière → solution admisible− On peut aussi générer une solution adminisible à partir

de la solution continue (arrondir les valeurs continues).

Page 86: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Séparation et évaluation (5/5)

Réglages/choix du concepteur :− Déjà évoqués

Choix d'une borne primale, d'une borne duale

− Sur quelle variable effectuer la séparation ? Variable fractionnaire

− Plus grande partie fractionnaire ?− Autre stratégie ?

− Quelle stratégie adopter pour explorer l'AR ? Profondeur d'abord (DFS) Noeuds de coupe d'abord, puis noeud ayant la meilleure

évaluation parmi les noeuds encore non explorés

Page 87: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple : le sac-à-dos (1/2)

Pourquoi ce choix ?− Variables 0-1

Hypothèses de branchement simples à faire/à intégrer

− Calcul de la borne duale simple Solution optimale de la RC très rapide à calculer

Soit un SAD : max{cTx : aTx≤b, x∈{0,1}n}

− On suppose spdg que c1/a

1 ≥ c

2/a

2 ≥ ... ≥ c

n/a

n

− Sol. opt. de la RC : on met à 1 toutes les variables x

1, x

2, ..., x

i-1 tant que possible, puis on prend la plus

grande valeur < 1 possible pour xi (Exercice)

Page 88: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple : le sac-à-dos (2/2)

PLNE (Prog. Lin. En Nombre Entiers) :

max 15x1 + 18x

2 + 4x

3 + 2x

4 + 5x

5 + x

6

3x1 + 4x

2 + x

3 + x

4 + 3x

5 + x

6 ≤ 5

xi∈{0,1} pour tout i entre 1 et 6

On a bien : 15/3>18/4>4/1>2/1>5/3>1/1

− Borne primale (solution) initiale : xi=0 pour tout i

− Borne duale initiale : 15+9=24

Page 89: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Le meilleur cas : le problème d’affectation

La solution optimale continue du PL est toujours entière

=⇒opt(PL)=opt(PLNE)

Rappel du problème d’affectation linéaireTaches T = {1,2, . . .n}, Machines A = {1,2, . . .n} ;cta = cout d’affectation de la tache t à la machine aVariables de décision : xta = 1 si la tache t affectée à lamachine a, 0 sinon

min∑

ta ctaxta∑nt=1 xta = 1 ∀a ∈ {1,2, . . .n}∑na=1 xta = 1 ∀t ∈ {1,2, . . .n}

xat ∈ {0,1}43/47

Page 90: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Plan

1 Difficulté des problèmes discrets et explosion combinatoire

2 La relaxation linéaire et les bornes associéesUn aperçu des méthodes de résolutionRésolution à l’aide du solveur GLPK

3 Exemples de Modélisations AvancéesProblèmes d’affectation et de localisation en GLPKLinéarisations de problèmes non-linéaires

4 Méthodes de Résolution en Nombre EntiersSéparation et évaluation (branch-and-bound)Plans Coupants et Coupes Gomory

44/47

Page 91: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Méthodes à base de coupes

Idée : étant donnée une solution optimale fractionnaire, ajouter des inégalités valides (coupes) pour rendre cette solution non admissible

Exemple sac-à-dos: soit 3 articles de poids [5,4,3,2] et capacité 7. Comment “couper” la solution fractionnaire x=[1, 0.5, 0, 0] ?

– On ajoute x1+x2 <=1 qui est une inégalité valide !

– On peut aussi ajouter x1+x3<=1

– On ne peux pas ajouter x2+x3<=1!

Page 92: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Coupes de (Chvatal-)Gomory Rappels Simplex:

xj=0 pour toute variable j HB (hors base)

une variable basique (B) a un seul 1 dans sa colonne.

⇒La ligne i du tableau Simplex optimal est :

xB(i)

+∑j∈HB

tij x

j=b

i

⇒ xB(i)

+∑j∈HB

tij xj

≤bi (où 1.7=1)

xi entière ∀ i et b

i non entier ⇒ x

B(i)+∑

j∈HB t

ij xj

≤ bi est une

coupe valide, équivalente à ∑j∈HB

(tij-t

ij)x

j ≥ b

i-b

i !

La solution continue courante ne la vérifie pas : xj=0 pour

tout j dans HB, mais bi-b

i > 0, car b

i non entier

Page 93: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Méthode alternative de résolution (exacte) d'un PLNE

Possibilité d'utiliser ces coupes dans l'algorithme de résolution de PLNE suivant (alternative à S&E)

− Résoudre la RC du PLNE− Tant que solution optimale non entière faire

Calculer une coupe à partir du tableau optimal Résoudre la RC du PLNE

− Fin tant que Convergence garantie si coupes bien choisie

Page 94: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple d'algorithme utilisant les coupes Gomory

On veut résoudre le PLNE suivant :

max{21x1+11x

2 s.c. 7x

1+4x

2+x

3=13, x

i∈IN pour tout i}

− Sol. opt. de la RC : x1=13/7 et x

2=x

3=0, de valeur 39

Au bout de 2 itérations (ajout d'une contrainte, puis résolution de la RC), on obtient :

− Solution optimale de la 3e RC : x1=0, x

2=3 et x

3=1

− Solution entière de valeur 33, et donc optimale pour le PLNE initial

Page 95: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 1/3

0 7 4 1 13 7x1 + 4x2 + 1x3 = 131 -21 -11 0 0 +z − 21x1 − 11x2 − 0x3 = 0

HB HB B

Rappels :HB=hors base variable nulleB=en base variable non-nulle

Pas 1 Simplexe : On introduit dans la base la colonne 1, car -21est le plus petit coef. de la dernière ligne =⇒0

�� ��1 47

17

137 x1 +

47x2 + 1

7x3 = 137

1 0 1 3 39 +z + 0x1 + 1x2 + 3x3 = 39B HB HB

Coupe Gomory :x1 +

47x2 + 1

7x3 = 137 =⇒ (*)

x1 + b47cx2 + b1

7cx3 ≤ b137 c =⇒ x1 ≤ 1

45/47

Page 96: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 1/3

0�� ��7 4 1 13 7x1 + 4x2 + 1x3 = 13

1 -21 -11 0 0 +z − 21x1 − 11x2 − 0x3 = 0HB HB B

Rappels :HB=hors base variable nulleB=en base variable non-nulle

Pas 1 Simplexe : On introduit dans la base la colonne 1, car -21est le plus petit coef. de la dernière ligne =⇒0

�� ��1 47

17

137 x1 +

47x2 + 1

7x3 = 137

1 0 1 3 39 +z + 0x1 + 1x2 + 3x3 = 39B HB HB

Coupe Gomory :x1 +

47x2 + 1

7x3 = 137 =⇒ (*)

x1 + b47cx2 + b1

7cx3 ≤ b137 c =⇒ x1 ≤ 1

45/47

Page 97: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 1/3

0�� ��7 4 1 13 7x1 + 4x2 + 1x3 = 13

1 -21 -11 0 0 +z − 21x1 − 11x2 − 0x3 = 0HB HB B

Rappels :HB=hors base variable nulleB=en base variable non-nulle

Pas 1 Simplexe : On introduit dans la base la colonne 1, car -21est le plus petit coef. de la dernière ligne =⇒0

�� ��1 47

17

137 x1 +

47x2 + 1

7x3 = 137

1 0 1 3 39 +z + 0x1 + 1x2 + 3x3 = 39B HB HB

Coupe Gomory :x1 +

47x2 + 1

7x3 = 137 =⇒ (*)

x1 + b47cx2 + b1

7cx3 ≤ b137 c =⇒ x1 ≤ 1

45/47

Page 98: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 1/30

�� ��7 4 1 13 7x1 + 4x2 + 1x3 = 131 -21 -11 0 0 +z − 21x1 − 11x2 − 0x3 = 0

HB HB B

Rappels :HB=hors base variable nulleB=en base variable non-nulle

Pas 1 Simplexe : On introduit dans la base la colonne 1, car -21est le plus petit coef. de la dernière ligne =⇒0

�� ��1 47

17

137 x1 +

47x2 + 1

7x3 = 137

1 0 1 3 39 +z + 0x1 + 1x2 + 3x3 = 39B HB HB

Coupe Gomory :x1 +

47x2 + 1

7x3 = 137 =⇒ (*)

x1 + b47cx2 + b1

7cx3 ≤ b137 c =⇒ x1 ≤ 1 1

1. Grâce à (*), cette contrainte est équivalente à 47 x2 +

17 x3 ≥ 6

7 , qui est lacoupe Gomory standard. Pour simplifier l’exposé, on continue avec x1 ≤ 1.

45/47

Page 99: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 2/30 7 4 1 0 13 7x1 + 4x2 + 1x3 = 130

�� ��1 0 0 1 1 1x1 + +s1 = 11 -21 -11 0 0 0 +z − 21x1 − 11x2 − 0x3 − 0s1 = 0

HB HB B BPas 1 Simplexe :0 0

�� ��4 1 -7 6 + 4x2 + 1x3 − 7s1 = 60 1 0 0 1 1 1x1 + +s1 = 11 0 -11 0 21 21 +z − 11x2 − 0x3 + 21s1 = 21

B HB B HBPas 2 Simplexe :0 0 1 1

4 -74

64 +x2 +

14x3 − 7

4s1 = 64

0 1 0 0 1 1 1x1 + +s1 = 11 0 0 11

474

1504 +z + +11

4 x3 +74s1 = 150

4B B HB HB

1x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

46/47

Page 100: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 2/30 7 4 1 0 13 7x1 + 4x2 + 1x3 = 130

�� ��1 0 0 1 1 1x1 + +s1 = 11 -21 -11 0 0 0 +z − 21x1 − 11x2 − 0x3 − 0s1 = 0

HB HB B BPas 1 Simplexe :0 0

�� ��4 1 -7 6 + 4x2 + 1x3 − 7s1 = 60 1 0 0 1 1 1x1 + +s1 = 11 0 -11 0 21 21 +z − 11x2 − 0x3 + 21s1 = 21

B HB B HBPas 2 Simplexe :0 0 1 1

4 -74

64 +x2 +

14x3 − 7

4s1 = 64

0 1 0 0 1 1 1x1 + +s1 = 11 0 0 11

474

1504 +z + +11

4 x3 +74s1 = 150

4B B HB HB

1x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

46/47

Page 101: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 2/30 7 4 1 0 13 7x1 + 4x2 + 1x3 = 130

�� ��1 0 0 1 1 1x1 + +s1 = 11 -21 -11 0 0 0 +z − 21x1 − 11x2 − 0x3 − 0s1 = 0

HB HB B BPas 1 Simplexe :0 0

�� ��4 1 -7 6 + 4x2 + 1x3 − 7s1 = 60 1 0 0 1 1 1x1 + +s1 = 11 0 -11 0 21 21 +z − 11x2 − 0x3 + 21s1 = 21

B HB B HBPas 2 Simplexe :0 0 1 1

4 -74

64 +x2 +

14x3 − 7

4s1 = 64

0 1 0 0 1 1 1x1 + +s1 = 11 0 0 11

474

1504 +z + +11

4 x3 +74s1 = 150

4B B HB HB

1x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

46/47

Page 102: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 2/30 7 4 1 0 13 7x1 + 4x2 + 1x3 = 130

�� ��1 0 0 1 1 1x1 + +s1 = 11 -21 -11 0 0 0 +z − 21x1 − 11x2 − 0x3 − 0s1 = 0

HB HB B BPas 1 Simplexe :0 0

�� ��4 1 -7 6 + 4x2 + 1x3 − 7s1 = 60 1 0 0 1 1 1x1 + +s1 = 11 0 -11 0 21 21 +z − 11x2 − 0x3 + 21s1 = 21

B HB B HBPas 2 Simplexe :0 0 1 1

4 -74

64 +x2 +

14x3 − 7

4s1 = 64

0 1 0 0 1 1 1x1 + +s1 = 11 0 0 11

474

1504 +z + +11

4 x3 +74s1 = 150

4B B HB HB

1x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

46/47

Page 103: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 3/3

x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

=⇒x2 − 2s1 ≤ 1

s1=1−x1=⇒ la contrainte ci-dessus est équivalente à :

2x1 + x2 ≤ 3

Le programme résultant est équivalent à :

max 21x1 + 11x2

7x1 + 4x2 + 1x3 = 13x1 ≤ 1

2x1 + x2 ≤ 3

=⇒ Simplexe trouve la solution optimale x1 = 0 et x2 = 3 decoût 33 !

47/47

Page 104: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 3/3

x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

=⇒x2 − 2s1 ≤ 1

s1=1−x1=⇒ la contrainte ci-dessus est équivalente à :

2x1 + x2 ≤ 3

Le programme résultant est équivalent à :

max 21x1 + 11x2

7x1 + 4x2 + 1x3 = 13x1 ≤ 1

2x1 + x2 ≤ 3

=⇒ Simplexe trouve la solution optimale x1 = 0 et x2 = 3 decoût 33 !

47/47

Page 105: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 3/3

x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

=⇒x2 − 2s1 ≤ 1

s1=1−x1=⇒ la contrainte ci-dessus est équivalente à :

2x1 + x2 ≤ 3

Le programme résultant est équivalent à :

max 21x1 + 11x2

7x1 + 4x2 + 1x3 = 13x1 ≤ 1

2x1 + x2 ≤ 3

=⇒ Simplexe trouve la solution optimale x1 = 0 et x2 = 3 decoût 33 !

47/47

Page 106: Optimisation en nombre entiers - cedric.cnam.frcedric.cnam.fr/~porumbed/rcp104/main.pdf · 1 Difficulté des problèmes discrets et explosion combinatoire 2 La relaxation linéaire

Exemple de coupes Gomory 3/3

x2 +⌊1

4⌋x3 +

⌊− 7

4⌋s1 ≤

⌊64⌋

=⇒x2 − 2s1 ≤ 1

s1=1−x1=⇒ la contrainte ci-dessus est équivalente à :

2x1 + x2 ≤ 3

Le programme résultant est équivalent à :

max 21x1 + 11x2

7x1 + 4x2 + 1x3 = 13x1 ≤ 1

2x1 + x2 ≤ 3

=⇒ Simplexe trouve la solution optimale x1 = 0 et x2 = 3 decoût 33 !

47/47