Cgl 0.60.2

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
OsiBabSolver Class Reference

This class allows for the use of more exotic solvers e.g. More...

`#include <OsiAuxInfo.hpp>`

Inheritance diagram for OsiBabSolver:
[legend]
Collaboration diagram for OsiBabSolver:
[legend]

## Public Member Functions
| OsiBabSolver (int solverType=0)
| OsiBabSolver (const OsiBabSolver &rhs)
virtual | ~OsiBabSolver ()
virtual OsiAuxInfo * | clone () const
| Clone. More...
OsiBabSolver & | operator= (const OsiBabSolver &rhs)
| Assignment operator. More...
void | setSolver (const OsiSolverInterface *solver)
| Update solver. More...
void | setSolver (const OsiSolverInterface &solver)
| Update solver. More...
int | solution (double &objectiveValue, double *newSolution, int numberColumns)
| returns 0 if no heuristic solution, 1 if valid solution with better objective value than one passed in Sets solution values if good, sets objective value numberColumns is size of newSolution More...
void | setSolution (const double *solution, int numberColumns, double objectiveValue)
| Set solution and objective value. More...
bool | hasSolution (double &solutionValue, double *solution)
| returns true if the object stores a solution, false otherwise. More...
void | setSolverType (int value)
| Sets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check solver to see if feasible and what objective value is. More...
int | solverType () const
| gets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is More...
bool | solutionAddsCuts () const
| Return true if getting solution may add cuts so hot start etc will be obsolete. More...
bool | alwaysTryCutsAtRootNode () const
| Return true if we should try cuts at root even if looks satisfied. More...
bool | solverAccurate () const
| Returns true if can use solver objective or feasible values, otherwise use mipBound etc. More...
bool | reducedCostsAccurate () const
| Returns true if can use reduced costs for fixing. More...
double | mipBound () const
| Get objective (well mip bound) More...
bool | mipFeasible () const
| Returns true if node feasible. More...
void | setMipBound (double value)
| Set mip bound (only used for some solvers) More...
double | bestObjectiveValue () const
| Get objective value of saved solution. More...
bool | tryCuts () const
| Says whether we want to try cuts at all. More...
bool | warmStart () const
| Says whether we have a warm start (so can do strong branching) More...
int | extraCharacteristics () const
| Get bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e.g. More...
void | setExtraCharacteristics (int value)
| Set bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e.g. More...
const double * | beforeLower () const
| Pointer to lower bounds before branch (only if extraCharacteristics set) More...
void | setBeforeLower (const double *array)
| Set pointer to lower bounds before branch (only if extraCharacteristics set) More...
const double * | beforeUpper () const
| Pointer to upper bounds before branch (only if extraCharacteristics set) More...
void | setBeforeUpper (const double *array)
| Set pointer to upper bounds before branch (only if extraCharacteristics set) More...
void | setExtraPointer (void *extraInfo)
| Set pointer to extra stuff. More...
void * | getExtraPointer () const
| get pointer to extra info More...
Public Member Functions inherited from OsiAuxInfo
| OsiAuxInfo (void *appData=NULL)
| OsiAuxInfo (const OsiAuxInfo &rhs)
virtual | ~OsiAuxInfo ()
OsiAuxInfo & | operator= (const OsiAuxInfo &rhs)
| Assignment operator. More...
void * | getApplicationData () const
| Get application data. More...

## Protected Attributes
double | bestObjectiveValue_
| Objective value of best solution (if there is one) (minimization) More...
double | mipBound_
| Current lower bound on solution ( if > 1.0e50 infeasible) More...
const OsiSolverInterface * | solver_
| Solver to use for getting/setting solutions etc. More...
double * | bestSolution_
| Best integer feasible solution. More...
const double * | beforeLower_
| Pointer to lower bounds before branch (only if extraCharacteristics set) More...
const double * | beforeUpper_
| Pointer to upper bounds before branch (only if extraCharacteristics set) More...
void * | extraInfo_
| Pointer to extra info. More...
int | solverType_
| Solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is. More...
int | sizeSolution_
| Size of solution. More...
int | extraCharacteristics_
| Bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e.g. More...
Protected Attributes inherited from OsiAuxInfo
void * | appData_
| Pointer to user-defined data structure. More...

## Detailed Description

This class allows for the use of more exotic solvers e.g.

Non-Linear or Volume.

You can derive from this although at present I can't see the need.

Definition at line 52 of file OsiAuxInfo.hpp.

## Constructor & Destructor Documentation

OsiBabSolver::OsiBabSolver | ( | int | solverType = `0` | ) |

OsiBabSolver::OsiBabSolver | ( | const OsiBabSolver & | rhs | ) |

virtual OsiBabSolver::~OsiBabSolver | ( |  | ) |
| virtual

## Member Function Documentation

virtual OsiAuxInfo* OsiBabSolver::clone | ( |  | ) | const
| virtual

Clone.

Reimplemented from OsiAuxInfo.

OsiBabSolver& OsiBabSolver::operator= | ( | const OsiBabSolver & | rhs | ) |

Assignment operator.

void OsiBabSolver::setSolver | ( | const OsiSolverInterface * | solver | ) |
| inline

Update solver.

Definition at line 68 of file OsiAuxInfo.hpp.

void OsiBabSolver::setSolver | ( | const OsiSolverInterface & | solver | ) |
| inline

Update solver.

Definition at line 73 of file OsiAuxInfo.hpp.

int OsiBabSolver::solution | ( | double & | objectiveValue,
|  | double * | newSolution,
|  | int | numberColumns
| ) |  |

returns 0 if no heuristic solution, 1 if valid solution with better objective value than one passed in Sets solution values if good, sets objective value numberColumns is size of newSolution

void OsiBabSolver::setSolution | ( | const double * | solution,
|  | int | numberColumns,
|  | double | objectiveValue
| ) |  |

Set solution and objective value.

Number of columns and optimization direction taken from current solver. Size of solution is numberColumns (may be padded or truncated in function)

bool OsiBabSolver::hasSolution | ( | double & | solutionValue,
|  | double * | solution
| ) |  |

returns true if the object stores a solution, false otherwise.

If there is a solution then solutionValue and solution will be filled out as well. In that case the user needs to allocate solution to be a big enough array.

void OsiBabSolver::setSolverType | ( | int | value | ) |
| inline

Sets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check solver to see if feasible and what objective value is.

    - may also return heuristic solution

3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is. Using Outer Approximation so called lp based

- may also return heuristic solution 4 - normal solver but cuts are needed for integral solution

Definition at line 109 of file OsiAuxInfo.hpp.

int OsiBabSolver::solverType | ( |  | ) | const
| inline

gets solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is

    - may also return heuristic solution

3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is. Using Outer Approximation so called lp based

- may also return heuristic solution 4 - normal solver but cuts are needed for integral solution

Definition at line 125 of file OsiAuxInfo.hpp.

bool OsiBabSolver::solutionAddsCuts | ( |  | ) | const
| inline

Return true if getting solution may add cuts so hot start etc will be obsolete.

Definition at line 131 of file OsiAuxInfo.hpp.

bool OsiBabSolver::alwaysTryCutsAtRootNode | ( |  | ) | const
| inline

Return true if we should try cuts at root even if looks satisfied.

Definition at line 136 of file OsiAuxInfo.hpp.

bool OsiBabSolver::solverAccurate | ( |  | ) | const
| inline

Returns true if can use solver objective or feasible values, otherwise use mipBound etc.

Definition at line 142 of file OsiAuxInfo.hpp.

bool OsiBabSolver::reducedCostsAccurate | ( |  | ) | const
| inline

Returns true if can use reduced costs for fixing.

Definition at line 147 of file OsiAuxInfo.hpp.

double OsiBabSolver::mipBound | ( |  | ) | const

Get objective (well mip bound)

bool OsiBabSolver::mipFeasible | ( |  | ) | const

Returns true if node feasible.

void OsiBabSolver::setMipBound | ( | double | value | ) |
| inline

Set mip bound (only used for some solvers)

Definition at line 156 of file OsiAuxInfo.hpp.

double OsiBabSolver::bestObjectiveValue | ( |  | ) | const
| inline

Get objective value of saved solution.

Definition at line 161 of file OsiAuxInfo.hpp.

bool OsiBabSolver::tryCuts | ( |  | ) | const
| inline

Says whether we want to try cuts at all.

Definition at line 166 of file OsiAuxInfo.hpp.

bool OsiBabSolver::warmStart | ( |  | ) | const
| inline

Says whether we have a warm start (so can do strong branching)

Definition at line 171 of file OsiAuxInfo.hpp.

int OsiBabSolver::extraCharacteristics | ( |  | ) | const
| inline

Get bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e.g.

cplex 2 - solver may want bounds before branch

Definition at line 179 of file OsiAuxInfo.hpp.

void OsiBabSolver::setExtraCharacteristics | ( | int | value | ) |
| inline

Set bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e.g.

cplex 2 - solver may want bounds before branch

Definition at line 187 of file OsiAuxInfo.hpp.

const double* OsiBabSolver::beforeLower | ( |  | ) | const
| inline

Pointer to lower bounds before branch (only if extraCharacteristics set)

Definition at line 192 of file OsiAuxInfo.hpp.

void OsiBabSolver::setBeforeLower | ( | const double * | array | ) |
| inline

Set pointer to lower bounds before branch (only if extraCharacteristics set)

Definition at line 197 of file OsiAuxInfo.hpp.

const double* OsiBabSolver::beforeUpper | ( |  | ) | const
| inline

Pointer to upper bounds before branch (only if extraCharacteristics set)

Definition at line 202 of file OsiAuxInfo.hpp.

void OsiBabSolver::setBeforeUpper | ( | const double * | array | ) |
| inline

Set pointer to upper bounds before branch (only if extraCharacteristics set)

Definition at line 207 of file OsiAuxInfo.hpp.

void OsiBabSolver::setExtraPointer | ( | void * | extraInfo | ) |
| inline

Set pointer to extra stuff.

Definition at line 212 of file OsiAuxInfo.hpp.

void* OsiBabSolver::getExtraPointer | ( |  | ) | const
| inline

get pointer to extra info

Definition at line 217 of file OsiAuxInfo.hpp.

## Member Data Documentation

double OsiBabSolver::bestObjectiveValue_
| protected

Objective value of best solution (if there is one) (minimization)

Definition at line 224 of file OsiAuxInfo.hpp.

double OsiBabSolver::mipBound_
| protected

Current lower bound on solution ( if > 1.0e50 infeasible)

Definition at line 226 of file OsiAuxInfo.hpp.

const OsiSolverInterface* OsiBabSolver::solver_
| protected

Solver to use for getting/setting solutions etc.

Definition at line 228 of file OsiAuxInfo.hpp.

double* OsiBabSolver::bestSolution_
| protected

Best integer feasible solution.

Definition at line 230 of file OsiAuxInfo.hpp.

const double* OsiBabSolver::beforeLower_
| protected

Pointer to lower bounds before branch (only if extraCharacteristics set)

Definition at line 232 of file OsiAuxInfo.hpp.

const double* OsiBabSolver::beforeUpper_
| protected

Pointer to upper bounds before branch (only if extraCharacteristics set)

Definition at line 234 of file OsiAuxInfo.hpp.

void* OsiBabSolver::extraInfo_
| protected

Pointer to extra info.

Definition at line 236 of file OsiAuxInfo.hpp.

int OsiBabSolver::solverType_
| protected

Solver type 0 - normal LP solver 1 - DW - may also return heuristic solutions 2 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is.

    - may also return heuristic solution

3 - NLP solver or similar - can't compute objective value just from solution check this (rather than solver) to see if feasible and what objective value is. Using Outer Approximation so called lp based

- may also return heuristic solution

Definition at line 248 of file OsiAuxInfo.hpp.

int OsiBabSolver::sizeSolution_
| protected

Size of solution.

Definition at line 250 of file OsiAuxInfo.hpp.

int OsiBabSolver::extraCharacteristics_
| protected

Bit mask for odd actions of solvers 1 - solution or bound arrays may move in mysterious ways e.g.

cplex 2 - solver may want bounds before branch

Definition at line 255 of file OsiAuxInfo.hpp.

The documentation for this class was generated from the following file:

- /tmp/Cgl-0.60.2/Osi/src/Osi/OsiAuxInfo.hpp