# Presolver

### From Wikimization

# 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. There is profit in reducing problem size 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 optimization problem solver software chronically exits with error, hangs,
or produces nonsense due to numerical error caused by dimension.