Solution of integer quadratic programs
Résolution de programmes quadratiques en nombres entiers
Abstract
Soit (QP) un programme quadratique en variables entières qui consiste à minimiser une fonction quadratique soumise à des contraintes linéaires. Un tel problème appartient à la classe des problèmes NP-difficiles. Les solveurs standards qui utilisent des algorithmes de Branch and Bound peuvent résoudre efficacement (QP) dans le cas particulier où sa fonction objectif est convexe. Ainsi, pour résoudre (QP) nous avons choisi de le reformuler en un programme équivalent ayant une fonction objectif convexe. Deux cas sont alors possibles : soit nous reformulons (QP) en un programme linéaire, soit nous le reformulons en un programme quadratique et convexe. Dans la première partie de cette thèse, nous présentons plusieurs reformulations linéaires de (QP), i.e. reformulations en un programme équivalent qui a une fonction objectif linéaire. Il existe de nombreuses méthodes de linéarisation pour la programmation quadratique binaire. Une approche naturelle pour résoudre (QP) est donc de le reformuler en un programme quadratique en variables binaires. Cela peut être fait en remplaçant chaque variable entière par sa décomposition binaire, puis en linéarisant chaque nouveau produit de variables binaires. Cependant, cette méthode que nous appelons BBL (Binary Binary Linearization), fournit un programme linéaire avec un grand nombre de variables et de contraintes. Nous proposons donc une nouvelle approche, BIL (Binary Integer Linearization), qui consiste à reformuler (QP) en un programme quadratique particulier où chaque terme quadratique est le produit d'une variable entière par une variable binaire. Comme dans la méthode BBL, les variables binaires viennent de la décomposition binaire des variables entières initiales. Ensuite, nous linéarisons le programme obtenu en remplaçant chaque terme quadratique par une variable réelle et un ensemble d'inégalités. Comme le nombre de termes quadratiques est plus petit que dans la méthode BBL, le nombre de variables additionnelles est réduit. Donc, le programme obtenu avec la méthode BIL est significativement plus petit. De plus, contrairement à ce que l'on pourrait attendre, l'approche BIL fournit une borne obtenue par relaxation continue de meilleure qualité que celle fournie par l'approche BBL. Chaque reformulation aboutit à un programme linéaire équivalent à (QP) que nous renforçons en lui ajoutant des inégalités valides. Dans une deuxième partie, nous présentons plusieurs reformulations quadratiques convexes de (QP), i.e. nous reformulons (QP) en un programme équivalent ayant une fonction objectif quadratique et convexe. Nous introduisons d'abord une approche simple pour convexifier (QP) qui consiste à exprimer linéairement les carrés des variables entières en utilisant leurs décompositions unaires, puis à convexifier à l'aide de la plus petite valeur propre du Hessien de la fonction objectif de (QP). Nous appelons cette méthode NC (Naive Convexification). Ensuite, nous introduisons un nouveau schéma de reformulations convexes qui perturbe la fonction objectif à l'aide de l'expression linéaire des produits des variables entières initiales, et des contraintes d'égalité de (QP). Puis nous montrons que nous pouvons calculer au sein de ce schéma une reformulation optimale du point de vue de la borne obtenue par relaxation continue : la reformulation IQCR (Integer Quadratic Convex Reformulation). Cette reformulation est basée sur la solution optimale duale d'une relaxation semi-définie de (QP). De plus, nous montrons que la méthode IQCR peut s'adapter facilement à la programmation mixte entière. Cette adaptation, que nous appelons IQCRs permet également d'intégrer les contraintes d'inégalité dans la perturbation de la fonction objectif de notre schéma de reformulations convexes. Ensuite, nous présentons une restriction intéressante de la méthode IQCR, appelée CQCR (Compact Quadratic Convex Reformulation). La différence entre cette approche et la méthode IQCR est que CQCR n'utilise que les expressions linéaires des carrés des variables pour perturber la fonction objectif, alors qu'IQCR utilise celles de tous les produits. L'intérêt est que de CQCR fournit un programme reformulé de plus petite taille en comparaison avec celui de l'approche IQCR, ce qui peut être avantageux expérimentalement. Finalement, nous appliquons les 3 méthodes NC, CQCR et IQCR à la programmation quadratique binaire. Nous montrons que NC et CQCR sont équivalentes à des méthodes déjà connues. Un résultat intéressant est que IQCR constitue une amélioration des convexifications existantes pour la programmation quadratique binaire. Dans une troisième partie, nous présentons un algorithme de Branch and Bound spécifique basé sur une propriété de projection de la méthode IQCR. Finalement, nous comparons expérimentalement les quatre reformulations linéaires et les trois reformulations quadratiques et convexes de (QP) que nous avons obtenues. Dans le cas où les variables sont entières, les expérimentations concernent deux classes d'instances de (QP), l'une ayant une contrainte d'égalité et l'autre une contrainte d'inégalité. Les résultats montrent que la plupart des instances ayant jusqu'à 40 variables peuvent être résolues en moins d'une heure avec un solveur standard par les reformulations IQCR et CQCR. Nous testons ensuite notre reformulation convexe IQCR sur la programmation quadratique binaire. Les résultats confirment que notre approche IQCR améliore les convexifications existantes.
Let $(QP)$ be an integer quadratic program that consists in minimizing a quadratic function subject to linear constraints. A such problem belongs to the class of $\mathcal{NP}\textrm{-Hard}$ problems. Standard solvers that use a Branch and Bound algorithm can efficiently solve $(QP)$ in the specific case where its objective function is convex. Thus, to solve $(QP)$, we choose to reformulate it into an equivalent problem with a convex objective function. Two reformulations are possible: either we reformulate $(QP)$ into a linear program, or we reformulate it into a convex quadratic program.
\par In the first part of this dissertation, we present several linearizations of $(QP)$, i.e. reformulations into an equivalent program with a linear objective function. Many linearization methods for the quadratic binary programs are known. A natural approach when considering $(QP)$ is therefore to reformulate it into a quadratic binary program. This can be done by the binary decomposition of each integer variable and then the linearization of each new product of two binary variables. However, this method, that we denote by \texttt{BBL (Binary Binary Linearization)}, leads to a linear program with a large number of variables and constraints. We then present a new approach, \texttt{BIL (Binary Integer Linearization)}, that consists in reformulating $(QP)$ into a particular quadratic integer program where each quadratic term is the product of an integer variable by a binary variable. As in the \texttt{BBL} approach, the binary variables come from the binary decomposition of the initial integer variables. Then, we linearize the obtained program by replacing each quadratic term by a new real variable and a set of inequalities. As the number of quadratic terms is lower than in the \texttt{BBL} approach, the number of additional variables is reduced. Hence, the obtained integer linear program is significantly smaller in the \texttt{BIL} approach. Moreover, contrary to what one might think, the \texttt{BIL} approach provides a better bound obtained by continuous relaxation than the \texttt{BBL} approach. Each reformulation leads to an integer linear program that is equivalent to $(QP)$ and that we improve by adding valid inequalities.
\par In a second part, we present several quadratic convex reformulations of $(QP)$, i.e. we reformulate $(QP)$ into an equivalent program, with a quadratic convex objective function. We first introduce a simple approach to convexify $(QP)$ that consists in expressing linearly the squares of integer variables using their unary decompositions, and then to convexify with the smallest eigenvalue of the Hessian matrix of $(QP)$. We call this approach \texttt{NC (Naive Convexification)}. Then, we introduce a new convex reformulation scheme that perturbs the objective function of $(QP)$ with the linear expression of the products of integer variables, and the equality constraints of $(QP)$. Then, we show that we can compute, within this scheme, an optimal reformulation of $(QP)$ in terms of bound obtained by continuous relaxation : the \texttt{IQCR (Integer Quadratic Convex Reformulation)} approach. This reformulation is based on the optimal dual solution of a semi-definite relaxation of $(QP)$. Moreover, we show that the method \texttt{IQCR} is easily adaptable to mixed-integer programming. This adaptation, that we call \texttt{IQCRs}, also allows us to integrate the inequality constraints of $(QP)$ into the perturbation of the objective function of our convex reformulation scheme. Then, we present an interesting restriction of the method \texttt{IQCR}, called \texttt{CQCR (Compact Quadratic Convex Reformulation)}. The difference between this last approach and \texttt{IQCR} is that \texttt{CQCR} only uses the linear expression of the integer variable squares to perturb the objective function, while \texttt{IQCR} uses all the products. The interest is that \texttt{CQCR} produces a reformulated problem with a reduced size in comparison with the \texttt{IQCR} approach, what could be profitable experimentally. Finally, we apply these $3$ methods \texttt{NC}, \texttt{CQCR} and \texttt{IQCR} to binary quadratic programming. We show that \texttt{NC} and \texttt{CQCR} are equivalent to existing binary convex reformulations. An interesting result is that \texttt{IQCR} is an improvement of existing convexifications for binary quadratic programming.
\par In a third part, we design a specific Branch and Bound algorithm based on a projection property of the \texttt{IQCR} approach.
\par Finally, we compare the four obtained linearizations and the three obtained quadratic convex reformulations from the computational point of view. For integer programming, computational experiences are carried out with two classes of instances of $(QP)$, the first having one equality constraint, and the other having one inequality constraint. The results show that most of the considered instances with up to $40$ variables can be solved in one hour of CPU time by the \texttt{IQCR} and \texttt{CQCR} approaches. We then test \texttt{IQCR} on binary quadratic programming. The results corroborate that our approach \texttt{IQCR} improves existing convexifications.
Origin | Files produced by the author(s) |
---|