Presolver
From Wikimization
Line 1: | Line 1: | ||
=Introduction= | =Introduction= | ||
- | ''Presolving'' conventionally means quick elimination of some variables 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 <math>a^{\rm T}x=0\,,~x\succeq0</math> for example, | Presented with constraints <math>a^{\rm T}x=0\,,~x\succeq0</math> for example, | ||
- | a good presolver | + | a good presolver is likely to check whether constant vector <math>\,a</math> were positive; for if it were, |
then variable <math>\,x</math> has only the trivial solution. | then variable <math>\,x</math> has only the trivial solution. | ||
- | The overall effect of such tests is | + | The overall effect of such tests is to make a problem dimensionally smaller. |
Most commercial optimization problem solvers incorporate presolving. | Most commercial optimization problem solvers incorporate presolving. | ||
Line 14: | Line 14: | ||
smaller because, then, a solver can compete more effectively in the marketplace for large-scale problems. | smaller because, then, a solver can compete more effectively in the marketplace for large-scale problems. | ||
- | We present a method for | + | We present a method for reducing variable dimension based upon geometry of constraints in the problem statement: |
<center><math>\begin{array}{rl}\mbox{minimize}_{x\in_{}\mathbb{R}^{^n}}&f(x)\\ | <center><math>\begin{array}{rl}\mbox{minimize}_{x\in_{}\mathbb{R}^{^n}}&f(x)\\ | ||
\mbox{subject to}&A_{}x=b\\ | \mbox{subject to}&A_{}x=b\\ |
Revision as of 00:34, 6 August 2011
Introduction
Presolving conventionally means quick elimination of some variables and constraints prior to numerical solution of an optimization problem. Presented with constraints for example, a good presolver is likely to check whether constant vector were positive; for if it were, then variable has only the trivial solution. The overall effect of such tests is to make a problem dimensionally smaller.
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. But all presolvers have the same motivation: to make an optimization problem smaller. The smaller a problem, the less likely it is that a solver will encounter numerical problems due to finite precision arithmetic. There is profit in making optimization problems smaller because, then, a solver can 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:
where is a matrix of predetermined dimension, represent the integers, the real numbers, and 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 an optimization problem solver chronically fails, hangs, or produces nonsense due to numerical error.