# Presolver

(Difference between revisions)
 Revision as of 01:10, 6 August 2011 (edit)← Previous diff Revision as of 11:23, 7 August 2011 (edit) (undo)m (→Introduction)Next diff → Line 3: Line 3: ''Presolving'' conventionally means quick elimination of some variables and constraints prior to numerical solution of an optimization problem. ''Presolving'' conventionally means quick elimination of some variables and constraints prior to numerical solution of an optimization problem. Presented with constraints $a^{\rm T}x=0\,,~x\succeq0$ for example, Presented with constraints $a^{\rm T}x=0\,,~x\succeq0$ for example, - a good presolver is likely to check whether constant vector $\,a$ were positive; for if it were, + a presolver is likely to check whether constant vector $\,a$ is positive; for if so, - then variable $\,x$ has only the trivial solution. + variable $\,x$ can have only the trivial solution. - The overall effect of such tests is to make a problem dimensionally smaller. + The effect of such tests is to reduce the problem dimensions. Most commercial optimization problem solvers incorporate presolving. Most commercial optimization problem solvers incorporate presolving. - Particular reductions performed can be proprietary, invisible, or some control or selection may be given to a user. + Particular reductions can be proprietary or invisible, while some control or selection may be given to a user. - But all presolvers have the same motivation: to make an optimization problem smaller. + But all presolvers have the same motivation: to make an optimization problem smaller - There is profit in reducing problem size because, then, + and (ideally) easier to solve. - a solver can compete more effectively in the marketplace for large-scale problems. + There is profit potential because + a solver can then compete more effectively in the marketplace for large-scale problems. We present a method for reducing variable dimension based upon geometry of constraints in the problem statement: We present a method for reducing variable dimension based upon geometry of constraints in the problem statement: -
$\begin{array}{rl}\mbox{minimize}_{x\in_{}\mathbb{R}^{^n}}&f(x)\\ + - \mbox{subject to}&A_{}x=b\\ + [itex] - &x\succeq0\\ + \begin{array}{rl} - &x_{j\!}\in\mathbb{Z}~,\qquad j\in\mathcal{J} + \mbox{minimize}_{x\in_{}\mathbb{R}^{^n}} &f(x) - \end{array}$
+ \\ \mbox{subject to} &A_{}x=b + \\ &x\succeq0 + \\ &x_{j\!}\in\mathbb{Z}~,\qquad j\in\mathcal{J} + \end{array} + [/itex] +
where $\,A$ is a matrix of predetermined dimension, $\mathbb{Z}$ represent the integers, $\reals$ the real numbers, where $\,A$ is a matrix of predetermined dimension, $\mathbb{Z}$ represent the integers, $\reals$ the real numbers, and $\mathcal{J}$ is some possibly empty index set. and $\mathcal{J}$ is some possibly empty index set. Line 24: Line 30: The ''caveat'' to use of our proposed method for presolving is that it is not fast. The ''caveat'' to use of our proposed method for presolving is that it is not fast. One would incorporate this method only when a problem is too big to be solved; One would incorporate this method only when a problem is too big to be solved; - that is, when optimization problem solver software chronically exits with error, hangs, + that is, when solver software chronically exits with error or hangs. - or produces nonsense due to numerical error caused by dimension. +

# Introduction

Presolving conventionally means quick elimination of some variables and constraints prior to numerical solution of an optimization problem. Presented with constraints $LaTeX: a^{\rm T}x=0\,,~x\succeq0$ for example, a presolver is likely to check whether constant vector $LaTeX: \,a$ is positive; for if so, variable $LaTeX: \,x$ can have only the trivial solution. The effect of such tests is to reduce the problem dimensions.

Most commercial optimization problem solvers incorporate presolving. Particular reductions can be proprietary or invisible, while some control or selection may be given to a user. But all presolvers have the same motivation: to make an optimization problem smaller and (ideally) easier to solve. There is profit potential because a solver can then compete more effectively in the marketplace for large-scale problems.

We present a method for reducing variable dimension based upon geometry of constraints in the problem statement: $LaTeX: \begin{array}{rl} \mbox{minimize}_{x\in_{}\mathbb{R}^{^n}} &f(x) \\ \mbox{subject to} &A_{}x=b \\ &x\succeq0 \\ &x_{j\!}\in\mathbb{Z}~,\qquad j\in\mathcal{J} \end{array}$


where $LaTeX: \,A$ is a matrix of predetermined dimension, $LaTeX: \mathbb{Z}$ represent the integers, $LaTeX: \reals$ the real numbers, and $LaTeX: \mathcal{J}$ is some possibly empty index set.

The caveat to use of our proposed method for presolving is that it is not fast. One would incorporate this method only when a problem is too big to be solved; that is, when solver software chronically exits with error or hangs.