R
EVUE FRANÇAISE D’
AUTOMATIQUE INFORMATIQUE RECHERCHE OPÉRATIONNELLE. M
ATHÉMATIQUEJ. F REHEL
Sur l’utilisation de troncatures de Gomory dans les algorithmes énumératifs
Revue française d’automatique informatique recherche opération- nelle. Mathématique, tome 7, noR2 (1973), p. 5-15
<http://www.numdam.org/item?id=M2AN_1973__7_2_5_0>
© AFCET, 1973, tous droits réservés.
L’accès aux archives de la revue « Revue française d’automatique infor- matique recherche opérationnelle. Mathématique » implique l’accord avec les conditions générales d’utilisation (http://www.numdam.org/conditions).
Toute utilisation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte- nir la présente mention de copyright.
Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques
R.A.I.R.O.
(7* année, R-2, 1973, p. 5-15)
SUR L'UTILISATION DE TRONGATURES DE GOMORY
DANS LES ALGORITHMES ENUMERATIFS
par J. FREHEL (*)
Résumé. — L'utilisation des troncatures de type Gomory a conduit à des algorithmes qui numériquement convergent parfois difficilement»
Dans le cadre d'une énumération implicite destinée à résoudre^ soit le problème de pro- grammation en entiers purs9 soit le problème général mixte, les équations d'intégrité des
variables de base permettent de calculer des fonctions d'évaluation plus forte que la classique fonction d'évaluation linéaire. Ces nouvelles fonctions d'évaluations peuvent être calculées
de différentes façons qui n'utilisent pas d'itération supplémentaire du simplexe.
1. Introduction
Un des facteurs essentiels de l'efficacité d'une énumération implicite de type branch and bound est la valeur de la fonction d'évaluation utilisée. Dans un problème de minimisation du type :
n «
Min { c • x = X CjXj | £ fly*/ — bt VÏ = 1, 2,..., m / = l, 2 , . . . , » }
appelons 6(xu..., xk) l'évaluation par défaut utilisée lorsque les variables xu -..,** sont fixées aux valeurs xu...9xk. L'algorithme sera d'autant plus efficace que la valeur de 6Çcu ..., xh) sera plus élevée. Cet article présente un processus d'amélioration des fonctions d'évaluation obtenues par la program- mation linéaire par adjonction d'un ensemble de contraintes de Gomory.
Contrairement à ce qui a été proposé par M. Guignard dans [1], cette amélio- ration n'introduit pas d'itérations supplémentaires du simplexe dual et est donc très économique du point de vue des calculs. Un exemple montrera par ailleurs que la meilleure estimation par défaut n'est pas systématiquement obtenue par introduction d'une contrainte valide minimale au sens de Gomory et Johnson [2],
(1) Direction Scientifique Metra.
Revue Française d'Automatique, Informatique et Recherche Opérationnelle n° août 1973, R-2.
Dans le paragraphe 2, on s'occupera du problème en entiers purs sans préci- ser un mode précis de description de l'arborescence de toutes les solutions possibles car les résultats sont indépendants de la méthode de descente de l'arbo- rescence. Le paragraphe 3 décrira une procédure d'accélération de la remontée dans l'arborescence utilisant un raisonnement analogue à celui de Gilmore et Gomory dans leur méthode énumérative pour le knap sack [3] et [4],
Le paragraphe 4 étudiera les adaptations possibles au problème mixte.
Le point de départ sera identique à celui de Gomory pour les problèmes mixtes [5] mais les calculs ne seront pas sensiblement compliqués par l'aspect mixte du problème.
2. Adjonction de contraintes de Gomory et nouvelles estimations par défaut Lorsque, au cours d'une énumération implicite, on a fixé les variables xu
X2>—>xk a u x valeurs xi9 x2, ...,£fc, on utilise en général une estimation par défaut de la forme :
6(xu ..„ xk) = 2 J CJXJ + 04(*i» •••» ^Jt)
i
où
ft
ift\xu ..., xk) = Min { £ CJXJ | £ dtjXj = p, = b% — £ atjxp
Vz = 1, 2,..., m, Xj > 1
En fait, une meilleure estimation par défaut serait obtenue avec la fonction S cjXj \ Z aU XJ = vi Vï"> ^ N
V; > k + 1 } •
Mais obtenir cette dernière consiste à résoudre un problème en nombres entiers aussi complexe que le problème initial. On conviendra de noter avec le même symbole un ensemble d'indices de colonnes et la matrice composée des colonnes correspondantes. D'autre part, les équations de congruence x = y mod 1 seront notées x = y (1). Pour calculer tff\xl9..., xk), on est amené à résoudre un problème linéaire continu, donc à déterminer une base optimale B;
soit R la matrice hors base; le problème du calcul de tft2 peut donc s'écrire :
!,..., xk) = ^ ( ï i , . . . , Xft) + Min \ 2_j <xjXj \xB=B 1v — B~~lRxR
K j€R
> 0, xj&i VjeBUR } où les dj sont les coûts réduits.
TRONCATURES DE GOMORY DANS LES ALGORITHMES ENUMERATIFS 7
Soit i un indice de base, i € B; xt s'exprime en fonction des variables hors base par une formule du type :
xi = Po — 2-r
J€R
On a donc ^2( xl 5. . . , xk) ^ $zÇcu •••> **) avec
^ f o , . . . , xk) = ^ ( Ï ! , . . . , xft) + Min { X OCJXJ \ xt = # — ]T $ * . entier,
Examinons la condition xt = J8Q — 2 J PJXJ entier et pour tout nombre réel s désignons par s* le représentant de s modulo 1 compris entre 0 et 1.
Pour que xt soit entier, il faut et il suffit que :
Z J PjXJ ~ PO \\)*
Puisque les Xj doivent prendre des valeurs entières, ceci entraîne selon Gomory : 2^ OSJ)*-*^ ^ (Po)* qui e s t ^a coupe classique de Gomory.
j€R
On a donc :
ips(xu x2,..., xk) > ^1(3c1,..., 3cft) + Min
^(xt,..., x
k) + Min { X
* j€R
Remarquons d'autre part que pour tout entier r € N :
= j8J (1) entraîne 2^ (r$)xj = (^o) (1)
jf€K j€R
YJ PjXj = i8{» (1) entraîne donc £ (rPj)*xj > (rPo.
j€R j€R
On voit donc que l'inégalité suivante sera satisfaite pour tout r ifj (xu ..., xk) ^ ^ ( ^ i , . . . , xk) + Min
Donc
ÎA3(3C1S .,., Xt) ^ 04(3ci5.... icfc) + Max < Min
n° août 1973, R-2.
Si les coefficients atJ de A sont rationnels, il existe un entier A tel que Donc le maximum sera en fait à chercher sur l'ensemble fini :
au lieu de l'ensemble N des entiers naturels. On pourra bien entendu faire le même calcul pour toutes les variables de base de manière à obtenir une nouvelle évaluation par défaut :
Çc» ..., x
k) X Max { Max { Min { - S - (r#)* }}}
i€B K R€N «• j€R <• (r/Ij)* J * ' u ..., xk) -
La maximisation pouvant se faire sur tout sous ensemble de N; soit K un tel sous ensemble fini; on obtient la famille d'évaluations :
*
6(*i,.... **) = P&u ~, **) + Max { Max { Min
i€B K r€K i j€R ( j j )
Le choix entre ces différentes fonctions d'évaluation $k(xl9..., xk) ne pou- vant être fait qu'en fonction des expériences numériques.
EXEMPLE 1
Considérons l'équation de Gomory
2*! + 3x2 + 3x3 = 1 (12)
qui est une équation de congnience dans laquelle tous les coefficients ont été multipliés par 12 pour les rendre entiers et supposons que les coûts réduits soient 3, 5, 3. Lorsque l'on applique la formule : on obtient la liste des valeurs suivantes :
r
1 2 3 4 5 6 7 8 9 10 11
2 4 6 8 10 0 2 4 6 8 10
3 6 9 0 3 6 9 0 3 6 9
(rfy*
4 8 0 4 8 0 4 8 0 4 8
('A,)*
1 2 3 4 5 6 7 8 9 10 11
Min
3/4 3/4 3/2 3/2 3/2 5 35/9
3 9/2 15/4 33/10
Revue Française d'Automatique, Informatique et Recherche Opérationnelle
TRONCATURES DE GOMORY DANS LES ALGORITHMES ENUMERATIFS 9
On remarque tout de suite que la meilleure valeur 5 donne une amélioration presque 7 fois plus grande que la contrainte de Gomory initiale, ce qui permet d'apprécier l'intérêt de ce calcul.
Remarquons que les évaluations qui précèdent ne tiennent compte que de rintégrité de la variable de base x{ en résolvant le knap-sack :
0) *y>0 V/g*}
j€R R
Intéressons-nous à la résolution du knap-sack suivant :
^ = Min {Xv*,*,| £#*>==& (1)
K j€R R
dans lequel on tient compte de l'intégrité des variables hors base.
Ce knap-sack s'écrit encore :
<f>2 = Min { 2 jj |
* j€R
soit j'i l'indice de variable hors base qui minimise — i ï = M i n
on a :
^ * = ^ L _ (|8« ) + Min | ^ o ^ | ^ j8j'^ - 09?) (1), ou
«S
i *En effet le terme oJ " (i^o)* représente l'optimum continu et l'équation
2 J jSj'JCj = JSQ'CI) exprime simplement l'intégrité de la nouvelle variable de
J€R
base xJr
Le knap-sack qui intervient dans le calcul de ^2 est du même type que le knap-sack initial de sorte que l'on va pouvoir itérer le processus. Précisément
no août 1973, R-2.
désignons par P° le knap-sack initial et par Tla transformation qui à P° = Min { £ ocjxj | X $xj = # (1)
K R
fait correspondre le knap-sack
T(P°) = Min { £ «;*, | £ #'*, = jB& xfilffj }.
K R J
Désignons pour tout knap-sack P par S(P) la valeur de la fonction économique à l'optimum continu. Alors, on a :
<f>
2> S(P°) + T(P°)
et en itérant le processus :
<f>2 > S(P°) + S(T(P0)) + ...
Lemme : Si les coefficients /?j sont rationnels, il existe un nombre entier p tel que TP(P°) = 0. On a alors l'inégalité :
<f>
2^ S(P°) + S(T(P°) ) + ... + 5(T
(P"
1}(P°) )
Démonstration : Soit q le dénominateur commun des coefficients ($)* qui s'écrivent alors (/?j)* = y)\q où les yls sont entiers Vj € R U{0}.
L'équation de P° s'écrit donc : £ yjxj = yl0 (q)
Soit q1 le représentant modulo q de yjx oùji est l'indice tel que
on a ^x < q et l'équation de T(P°) est alors : où
De même l'équation de T(P°) est une équation modulo q2 avec q2 < <l\ < <l et ainsi de suite. Donc, au bout d'un nombre fini de transformations p, on à qp = 0 ce qui achève la démonstration. On pourra donc utiliser comme fonc- tion d'évaluation :
2>
Revue Française d'Automatique, Informatique et Recherche Opérationnelle
TRONCATURES DE GOMORY D A N S LES ALGORITHMES ENUMERATIFS 1 1
3. Accélération de la procédure de remontée dans l'arborescence
Considérons encore une énumération implicite et plaçons-nous à Fétape k de la descente lorsque les variables xu x2, ..., xk ont été fixées aux valeurs xl9..., xk et supposons que l'évaluation linéaire classique définie par
,..., xk) = X CjXj + $X(xu ..., xj)
satisfasse à Ia condition 8(xu ..., xk) ^ <f>oii<j> désigne le coût de la meilleure solution réalisable déjà trouvée.
Soit yk une valeur possible de xk non encore explorée, c'est-à-dire que le nœud (3cl5..., xkU yk) n'a pas encore été examiné. Calculons a priori
k
d(5cu ...» xkl9 yk) = X CjXj — c&(x& — yk) + $\xu ..., >^fe) on a
Z1" - v . f y . y __ v.__ 1
^» ta. 1 t-j. i '
OU
= Max ] X ^
f|
YJ* a=t
Soit ût une solution optimale de ce problème dual. De même : Min { 2L CjXj | X ayx, = vt + aik(xk—yk),
K k+X k+X
l(xu ..., *4_i. 7*) = Max { £ «i(»i + ö»t(x4 — ƒ*)) | E a,jU, < c,
1 1 »
y/ > * + 1 }
est encore une solution réalisable de ce nouveau problème dual; on a donc
— yk) ).
1
II en résulte que
0(xl9..., x ^l 9 yk) ^ 6(xu ..., xfc) + (2ûflik — CftXx* — yk).
n° août 1973, R-2.
Si 6(xl9 ..., xk) > <£, on peut donc supprimer toutes les branches corres- pondant à xu •.., xk fixées à xt,..., xk mais aussi toutes celles de la forme (3cl5 Jc2, ...,7fc) telles que (J? ûtaik — ck) (xk— yk) $5 0 c'est-à-dire toutes les branches avec yk > xh + 1 si Eufl^ — ck < 0 et toutes les branches corres- pondant à yk ^ xk si Eû^ — c* ^ 0.
C'est ce qui se produit systématiquement dans l'algorithme de Gilmore et Gomory pour le knap-sack. Considérons en effet le knap-sack :
Min {icjXj | Sfl/x, = A,Xj€N Vy = 1,2,..., n
dans lequel les variables sont classées de manière que /af fai+1
Si les variables x1 ?..., xk sont fixées aux valeurs xl9..., 3cA 3ck satisfaisant à
xk
= Max I / | 2] tf|£i + a* * <
toute valeur possible de j>& est < xft — 1 et l'évaluation par défaut en xu ..., yk
est
L ..., 5»-!) = J z i (ô — £ a,x, + ajtfe —j
ft) ) — c
ft(x
fc— y
k)a k i i
..., xjt) + | S Ü ak{xh — yk) — ck(xk — yk) or -^^- ^ —, donc les nœuds correspondant à des valeurs positives de yk n'ont
ak+i ak
pas à être considérés.
4. Cas du problème mixte
Pour étendre ces résultats au problème mixte, considérons le problème : Min { ex | Ax = b9 x > 0, x, € N Vi € I C {1,2, .„, »} }.
On pourra toujours supposer que / = {1,2, ...,/> },/? < n.
Lorsque les variables xu ..., xk ont été fixées aux valeurs xl9,.., xk entières, on utilisera comme précédemment l'évaluation par défaut :
iftx(xu ..., xk) = Min ] £ CjXj | £ atjXj = 6f — £ a ^ , ^ ^ 0
Vj > k + 1 }
TRONCATURES DE GOMORY DANS LES ALGORITHMES ENUMERATIFS 1 3
Si les variables de base de ce problème dont les indices sont compris entre k + 1 et/? sont entières, on dispose d'une solution réalisable du problème mixte.
Sinon, notons B l'ensemble des indices de variables de base, R l'ensemble des indices de variables hors base; posons J= Rf\ I, J = j R — / e t soit xt
une variable de base non entière à l'optimum. xt s'exprime en fonction des variables hors base par une formule du type :
j
J€J j€J j€J ~
où jSj > 0 V/€H, / = J+ UJ".
L'intégrité de xt s'écrit donc :
j€J j€J+ j€J
ce qui entraîne :
! I k- E fcj = (&)* a)
j€J j€J+ j€J
Si <zj9 j€R désignent les coûts réduits, l'amélioration de l'évaluation que l'on peut espérer calculer consiste à résoudre le problème :
Aift = M i n 2 ^ <XjXj J€R
avec
J€J j€J + J€J ~
xjÉS V/€/, ^y > 0 V/€?
posons
posons
J
Le coût de l'égalité £ j8j^. = A dans J ^ est alors égal à A2\.
On a donc :
A* > Min { £ a^- + ^
2A +A a),x>€
> Min { 2] «tt + ^2 A | S (#)* JÇ, + E jBj*,
> ( (&)* + A)*, *, > 0 V/6
n' août 1973, R-2.
II est clair que l'optimum de ce dernier problème est obtenu pour
A< 1-ft*.
Prenons le cas A < 1 — (#)*; on a alors (($)* + A)* = #,* + A et
A
t= Min { Mm { 3L ft* }, Min { ^(j8
0)* }}
L'optimum est obtenu pour X — 0 et la valeur correspondante de Aift est Si A = l—(
On a donc :
A$ > Min { AM* , 42(1 - j3(*) }.
On pourra donc prendre comme évaluation par défaut :
lt..., xk) = ^(xt,..., xk) + Min { Arfî*, A2(l - ^
Reprenons l'équation d'intégrité :
2_, (fi})* Xj + 2Li Pjxj — 2 J fijxj ~ (Po)* 0 )
j€J j€J+ j€J~
et soit r 6 N. On a également :
E ('#)* xj + g
+riSjx, - Y/fcs - WÜ* (1)
Donc
Aifs ^ Min { ^i(O(^j5o)* , ^42(r)(l — (rj8o)* ) } où
et
TRONCARUTES DE GOMORY DANS LES ALGORITHMES ENUMERATIFS 15
REFERENCES
[1] Communication orale de Mlle Guignard de la Faculté des Sciences de Lille à la journée du groupe combinatoire de PA.F.C.E.T. (1-12-71) sur l'utilisation des
« Minimal valid inaquaüties » de Gomory-Johnson dans des schémas énumératifs.
[2] GOMORY-JOHNSON, IBM Research Report FC 3311 Feb. 71 : Some continuous functions related to corner Polyhedra.
[3] M. L. BALINSKI, Integer Programming : uses, methods, computation. Management Science, vol. 12, n° 13, November 1965.
[4] An aîgorithm for integer solutions to Linear Programs^ Princeton-IBM Research Center, Report RC 189, January 29, 1960.
[5] R. E. GOMORY, An aîgorithm for mixed Integer Problem9 RM 2597, Rand Corpo- ration, July 7, 1960.
n° août 1973, R-2.