|
Minotaur 0.4.1
Docs for developers
|
#include <Presolver.h>

Public Member Functions | |
| Presolver () | |
| Default constructor. | |
| Presolver (ProblemPtr problem, EnvPtr env, HandlerVector handlers) | |
| Constructor for a given problem. | |
| virtual | ~Presolver () |
| Destroy. | |
| virtual void | presolve () |
| Default presolve. | |
| virtual SolutionPtr | getSolution () |
| get solution if any | |
| virtual SolveStatus | getStatus () |
| virtual void | standardize () |
| virtual SolveStatus | solve () |
| virtual void | removeDuplicates () |
| Search and remove any duplicate rows and columns from the problem. | |
| virtual void | getX (const double *x, DoubleVector *newx) |
| SolutionPtr | getPostSol (SolutionPtr s) |
Protected Member Functions | |
| void | removeEmptyObj_ () |
| Remove objective function, if it is zero or constant. | |
| void | minimizify_ () |
| convert to minimization problem. | |
| void | linearizeObjective_ () |
| void | ifIntsAreBins_ () |
| void | standardizeConstraints_ () |
Protected Attributes | |
| EnvPtr | env_ |
| Environment. | |
| double | eTol_ |
| Tolerance for checking feasibility. | |
| HandlerVector | handlers_ |
| Handlers used to presolve the problem. | |
| double | intTol_ |
| A value in [z-intTol_, z+intTol_], z integer, will be treated as z. | |
| LoggerPtr | logger_ |
| Log manager. | |
| PreModQ | mods_ |
| A queue of presolve-modifications required for post-solve. | |
| ProblemPtr | problem_ |
| SolutionPtr | sol_ |
| Pointer to optimal solution, if one found. | |
| SolveStatus | status_ |
| Status. | |
Static Protected Attributes | |
| static const std::string | me_ = "Presolver: " |
| For logging. | |
A Presolver is used to modify a problem such that it becomes simplified or easier to solve. A Presolver, in its default form, will create a copy of the problem. A user will need to specifically tell presolver not to copy a problem. It should maintain a list of changes made to the original problem.
The Presolver may also be able to detect infeasibility, optimality, feasibility or unboundedness. A presolver in this way, is very much a solver.
| SolutionPtr Presolver::getPostSol | ( | SolutionPtr | s | ) |
Construct a solution for the original problem from that of the presolved problem.
|
virtual |
Translate a given x into solution of the original problem. The space for newx needs to be allocated.
|
protected |
Some interfaces (like AMPL) and the users may specify binary variables as integer variables. This function converts such variables to binary.
|
protected |
Replace the objective with a linear function. The problem remains equivalent to the one before the function is called.
|
virtual |
standardize is called before solving any problem even when presolve is disabled. This method is necessary to standardize the problem: convert maximize to minimize, add a new variable for the objective function, ...