Vous êtes sur la page 1sur 20

Université Mohammed V – Rabat

Ecole Mohammadia d’Ingénieurs


Département Génie MIS

Dans le cadre du cours de l’optimisation


combinatoire (S5)

Cutting plane Method: part 2

Réalisé par: Encadré par:


-Kenza ZDAIK Mr. Rachid ELLAI
-Abir EL MALHI

ANNÉE UNIVERSITAIRE 2022-2023


1
Remerciements:

Au terme de ce projet, nous tenons nous les deux à


exprimer notre profonde gratitude et nos vifs remerciements à
notre chère professeur Monsieur Rachid ELLAIA de nous
avoir attribué ce projet.
En effet, nous avons bel et bien pu acquérir un savoir-
faire considérable quant à cette matière et nous avons pu nous
familiariser avec des nouvelles applications. Par ailleurs, nous
remercions nos chers parents qui nous lèguent toutes les
conditions convenables pour offrir au final la meilleure
version de ce travail.

Enfin, nous n’oserions oublier de remercier tout le corps


professoral de l’EMI, pour le travail énorme qu’il effectue
pour nous créer les conditions les plus favorables pour le
déroulement de nos études.

2
Table des matières

Remerciements:........................................................................2

Introduction:.............................................................................4

La méthode de Gomory’s Cut:.................................................4

Exemples de problème ILP: Gomory’s Cut.............................5

Application 1:.........................................................................5

Généralisation de la méthode de Gomory:.............................11

Application 2:.........................................................................13

Conclusion:.............................................................................19

Références bibliographiques:.................................................20

3
Introduction:
En optimisation linéaire en nombres entiers, la méthode des plans sécants,
ou cutting plane method, est une méthode utilisée pour trouver une solution
entière d'un problème d'optimisation linéaire. Elle fut introduite par Ralph E.
Gomory puis étudiée par Gomory et Václav Chvátal.
Le principe de la méthode est d'ajouter des contraintes au programme linéaire
pour le raffiner, et le rapprocher des solutions intégrales. Plus précisément, étant
donné un ensemble de contraintes, et une solution optimale x* au problème
d'optimisation linéaire, la méthode consiste à créer de nouvelles contraintes, telle
que la solution entière optimale est conservée, mais x* viole l'une des nouvelles
contraintes.
Afin de mieux comprendre la méthode de cutting plane, nous allons traiter
quelques exemples et applications.

La méthode de Gomory’s Cut:


On considère un problème de programmation en nombres entiers purs: c'est-à-
dire un problème LP standard avec restriction entière sur les variables et les
coefficients intégraux.

Idée principale:
L'ajout de nouvelles contraintes, une à la fois, conduit finalement à une solution
optimale avec des coordonnées intégrales.
Les étapes de l’algorithme de Gomory’s Cut peuvent se résumer comme suite:
1-D'abord on résoud le problème LP en négligeant la contrainte entière. Si la
solution optimale a des coordonnées intégrales, STOP.
2- Sinon, on ajoute une nouvelle contrainte, avec les propriétés suivantes:

4
 La solution optimale non entière de l'ancien LP ne satisfait pas la nouvelle
contrainte.
 Toutes les solutions réalisables intégrales de l'ancien LP resteront
réalisables dans le nouveau LP.
La nouvelle contrainte "coupe" une partie de la région réalisable qui ne contient
pas de solutions réalisables intégrales.
3- Si la solution au nouveau LP est entière, alors STOP, sinon, on répète l'étape
précédente au besoin.

Exemples de problème ILP: Gomory’s Cut


Application 1:
On considère le problème suivant:
Minimiser Z=x1-3x2
Sous contraintes :
x1-x2≤2
2*x1+4*x2≤15
x1,x2≥0 , entiers

Notre problème peut s’écrire de la manière suivante:


Maximiser Z=-x1+3x2
Sous contraintes :
x1-x2≤2
2*x1+4*x2≤15
x1,x2≥0, entiers

On va par la suite relaxer notre problème en négligeant les contraintes


d’intégrité:

5
Maximiser Z=-x1+3x2
Sous contraintes :
x1-x2≤2
2*x1+4*x2≤15
x1,x2≥0

On va résoudre notre problème à l’aide de la méthode de simplex.


On introduit des variables d’écart x3 et x4. Ainsi, le premier tableau du simplexe
s’écrit:

x1 x2 x3 x4 bi bi/a i,k

x3 1 -1 1 0 2 -2

x4 2 4 0 1 15 3,75

Z -1 3 0 0 0 0

Colonne Pivot
La colonne pivot représente la colonne dont la valeur de Z est maximale, la ligne
pivot correspond à la ligne dont le rapport bi/a i,k est plus grand dans notre cas
c’est 3,75.

x1 x2 x3 x4 bi bi/ ai,k

x3 1 -1 1 2 2 -2

6
x4 2 4 0 15 15 3,75

Z -1 3 0 0 0 0

Ligne de pivot
Colonne Pivot

Donc x4 est la variable sortante. La ligne de x4 sert de ligne pivot et on exécute


une transformation du pivot autour de la valeur 3 (à l’intersection de la ligne de
x4 et de la colonne de x2).

On obtient le tableau suivant:

x1 x2 x3 x4 bi

x3 3/2 0 1 1/4 23/4

x2 1/2 1 0 1/4 15/4

Z -5/2 0 0 -3/4 -45/4

La ligne de Z contient des coefficients qui sont tous négatifs donc on a attaint
l’optimalité.
Zmin=45/4, x*= (0,15/4,23/4,0) non entière.

Ajout d’une nouvelle contrainte:


-On séléctionne la première ligne de tableau de simplexe optimale:

3 1 23
x 1 + ¿ x 3+ x 4 =
2 4 4

- On sépare tous les coefficients en partie entière et partie fractionnaire:

7
1 1 3
(1+ 2 ¿ x 1+¿ x 3+ 4 x 4= 5+ 4

-On réorganize l’équation en gardant les parties fractionnaires à gauche, et la


partie entière à droite:

1 1 −3
x 1+¿ x 3+ x 4 = 5- x 1- x 3
2 4 4
Discussion:

 Si x 3 , x 4 sont des entiers, alors la partie a droite RHS de l’équation est


entière. Il en va de même pour la partie gauche LHS.
1 1 3
 Puisque x 1, x 4 ≥ 0, donc so 2
x 1+ x 4 −x5 ≥ 0, et LHS ≥ -
4 4

⇒ Le plus petit entier que LHS peut etre égale à 0. Donc LHS ≥ 0

Nouvelle contrainte:
Soit LHS= x 5et x 5≥ 0. Cela donne:

1 1 3 −1 1 −3
2
x 1+ x 4 −x5 =
4 4
⇒ 2 x 1 − 4 x 4 + x 5= 4

Donc, on peut écrire notre problème de la manière suivante:


5 3 45
Minimiser 2 x 1+ 4 x 4− 4

Sous contrainte :
3 1 23
x 1 + ¿ x 3+ x 4 =
2 4 4

8
1 1 15
x 1+¿ x 2+ x 4=
2 4 4
−1 1 3
x 1+ ¿ x 5−¿ x 4= -
2 4 4
x 1, ……., x 5 ≥ 0, entières

On modifie la nouvelle contrainte dans le tableau final et on résoud le problème


avec l'algorithme double Simplex.
La ligne pivot correspond au b i négatif le plus petit et la colonne correspond au
rapport minimal de | z j /a ij], avec a ij sont les coefficients de la ligne pivot.

X1 X2 X3 x4 x5 bi

X3 3/2 0 1 1/4 0 23/4

X2 1/2 1 0 1/4 0 15/4

x5 -1/2 0 0 -1/4 1 -3/4

Z 5/2 0 0 3/4 0 45/4

x3 1 0 1 0 1 5

x2 0 1 0 0 1 3

x4 2 0 0 1 -4 3

9
Z 1 0 0 0 3 9

Explication géométrique:
On considère notre problème:
Min (x1-3x2)
s.c
x1-x2 ≤2
2*x1+4*x2≤15
x1,x2 ≥0 , integral

La solution géométrique avant d’appliquer la méthode de cutting plane:

(0,3.75)

Le point optimal est (0,3.75)


1 1 3
• La contrainte ajouté: x 5= x 1 + ¿ x 4 - ≥ 0
2 4 4

En utilisant: x 4 =15-2 x 1-4 x 2 , on obtient alors:


1 1 3
x 1+¿ ¿15-2 x 1-4 x 2) ≥ d’où: x 2 ≤3
2 4 4

10
Ainsi, on ajoute la nouvelle contrainte au graphe qui va éliminer la solution
optimale non entière.
On se ramène à un graphe qui contient les solutions optimales et entières:

(0,3)

Généralisation de la méthode de Gomory:

Soit a un nombre quelconque


 [a]= est la partie entière tel que [a]≤a
 a - [a]= la partie fractionnaire de a

Exemples:
Si a =3,25 alors [a]=3 et a - [a]=0,25
Si a =-3,25 alors [a]=-4 et a - [a]=0,75
Et on a toujours:
0≤a - [a]<1
-Choisissons une ligne du tableau finale issues de l’algorithme de simplex où b i
n’est pas un entier:
∑ aij x j=b i
j

-Notons les parties fractionnaires:

11
f ij= a ij−[a¿¿ ij]¿ , gi = b i−[b¿¿ i]¿ alors a ij= f ij +[a¿¿ ij]¿, b i= gi +[b ¿¿ i]¿

-L’équation de la ligne choisie devient alors:


∑ ¿¿= gi +[b ¿¿ i]¿ d’où ∑ (f ij) x j−¿ gi=[b¿¿ i ]¿- ∑ ¿¿ ¿
j j j

Terme de gauche= ∑
j
(f ij )x j−¿ g =[b¿¿ i]¿- ∑ ¿¿ ¿ = terme de droite
i
j

Le terme de droite est entier et puisque 0≤ f ij <1, x j ≥ 0 est 0 ≤ g i<1, donc Terme de
gauche≥ - gi>-1
-Ainsi, le plus petit entier que peut prendre le terme de gauche est 0.

On peut, alors ajouter la nouvelle contrainte:∑


j
(f ij )x j−¿ g =¿ x
i n+1

avec x n+1 entier positive ( x n+1 ≥0 ¿ .

∑ (f ij)x j−¿ gi=¿ x n+1 càd -∑ ( f ij ) x j + x n+1 ¿ - g


i
j j

Les inconvenient de la méthode de cutting plane:


 Il est difficile de prouver la convergence de son algorithme.
 Il n’y a pas une condition sur le choix d’une ligne de tableau parmi
plusieurs, mais on choisit généralement celle avec le plus grand.

Application 2:
La société TELFA fabrique des tables et des chaises. Une table nécessite 1
heure de travail et 9 pieds carrés de planche de bois, et une chaise nécessite 1

12
heure de travail et 5 pieds carrés de planche de bois. Actuellement, 6 heures
de travail et 45 pieds carrés de planche de bois sont disponibles,
Chaque table contribue 8$ au profit, et chaque chaise contribue 5$ au profit.
Formuler et résoudre un problème IP pour maximiser le profit de Telfa.

Solution:
On considère les variables suivantes:
 x 1 =nombre de tables fabriquées
 x 2= nombre de chaises fabriquées
On peut formuler le problème comme suite:
Maximiser z= 8 x 1+5 x 2
Sous contraintes:
x 1- x 2≤6 (labor constraint)
9* x 1+5* x 2 ≤ 45 ( Wood constraint)
x 1, x 2≥0, integer

Après avoir ajouté des variables d'écart, nous obtenons le tableau optimal:

Z x1 x2 s1 s2 bi

1 0 0 1,25 0,75 41,25

0 0 1 2,25 -0,25 2,25

13
0 1 0 -1,25 0,25 3,75

L'algorithme du plan de coupe commence par choisir la contrainte dans le


tableau. Nous choisissons la deuxième contrainte dans le tableau.
La seconde contrainte du tableau:
x1-1,25s1+0,25s2=3,75
-Ecrivons toutes les équations de la forme [x]+f , 0≤f<1
x1-2s2+0,75s1+0,25s2 =3+0,75
-Mettons tous les termes avec des coefficients entiers dans la partie gauche de
l’équation et tous les termes avec des coefficients fractionnaire dans la partie
droite.
Ainsi: x1-2s2-3 =0,75-0,75s1 -0,25s2
De cet arrangement on obtient:
x1-2s2-3 =0,75-0,75s1 -0,25s2
On ajoute la nouvelle contrainte:

Right-hand side <=0

Donc:
0,75-0,75s1 -0,25s2 ≤0
-0,75s1 -0,25s2 ≤-0,75

En ajoutant ainsi la nouvelle variable s3 et on l’ajoute à l’ancien tableau.


Le tableau après l’ajout de la nouvelle coupe, devient:

z X1 X2 s1 s2 s3 bi

1 0 0 1,25 0,75 0 41,25

14
0 0 1 2,25 -0,25 0 2,25

0 1 0 -1,25 0,25 0 3,75

0 0 0 -0,75 -0,25 1 -0,75

On applique l’algorithme de simplex dual ,et on trouve:

z X1 X2 s1 s2 s3 bi

1 0 0 0 0,33 1,67 40

0 0 1 0 -1 3 0

0 1 0 0 0,67 -1,67 5

0 0 0 1 -0,33 -1,33 1

On implémente la méthode de Gomory sous python:

15
Résolution par la méthode graphique:
Maximize z= 8x1+5x2
Sous contrainte
x1-x2≤6
9*x1+5*x2 ≤45
x1,x2≥0 , integer
s1=6-x1-x2
s2=45-9x1-5x2
La coupe:
-0,75s1 -0,25s2 ≤-0,75
3*x1+2*x2≤ 15

16
17
Recapitulatif:
Pour récapituler ce qu’on est en train de faire, on commence par un problème
linéaire avec restriction entière, on résoud le problème comme s’il était sans
restriction avec la méthode primaire de simplexe si ce n’est pas réalisable, on
vérifie la solution si la solution est entière on a fini sinon on procède au
simplexe dual et on recommence le procédé jusqu’à trouver l’optimum.

LP relaxation
ILP LP
problem problem
Optimum
Primal
Simplex yes
yes
Feasible? Integral?

Dual
no
Simplex
Gomory’s
derivation

18
Conclusion:

En guise de conclusion, on peut dire que l'algorithme de coupe de Gomory a


montré ses limites dans de nombreux cas, le temps d'exécution devenant très
prohibitif.
L'algorithme de coupe de Gomory a été combiné avec la méthode Branch and
Bound pour donner une méthode hybride appelée Branch and Cut.

19
Références bibliographiques:

- https://bdesgraupes.pagesperso-orange.fr/UPX/Master1/MNM1_corr_doc1.pdf

- https://faculty.math.illinois.edu/~mlavrov/docs/482-fall-2019/lecture35.pdf

-https://sites.ju.edu.jo/sites/Alzalg/Documents/973/CPpres.pdf

20

Vous aimerez peut-être aussi