An abstract solver for the linear relaxation. More...
#include <linrelax.h>
Public Member Functions | |
LinearRelaxSolver (LinearRelax &linrelax_) | |
virtual | ~LinearRelaxSolver () |
virtual void | init ()=0 |
Initializes the model for the core linear relaxation. | |
virtual void | reset ()=0 |
Resets the solver, so we use only the core linear relaxation. | |
virtual void | construct (Pointer< MinlpNode > node=NULL)=0 |
Builds the linear relaxation for a specific node or uses global cuts only. | |
virtual void | add_cut (const CutPool::CutInfo &cutinfo)=0 |
Updates the linear relaxation for a specific node. | |
virtual void | set_objective (Pointer< SepQcFunc > obj)=0 |
virtual void | update_levelcut (double newlevel)=0 |
virtual bool | feasible ()=0 |
Checks the linear relaxation only for feasiblity instead of solving it. | |
virtual int | solve (Pointer< MinlpNode > node)=0 |
virtual void | remove_cuts ()=0 |
According to the information, set in the remove-member of the cutinfos, remove cuts. | |
int | solve () |
Solves the problem. | |
virtual int | generate_cuts (list< Pointer< SimpleCut > > &cuts)=0 |
Public Attributes | |
list< CutPool::CutInfo > | cutinfos |
dvector | duals |
Contains the dual variables of the core linear relaxation after a successful solve() or feasible() run. | |
Protected Attributes | |
LinearRelax & | linrelax |
An abstract solver for the linear relaxation.
Defines methods for adding constraints, resetting and constructing the linear relaxation depending on a MinlpNode. In addition to a solve()-method, it contains also a method for feasiblity-check.
Definition at line 268 of file linrelax.h.
LinearRelaxSolver::LinearRelaxSolver | ( | LinearRelax & | linrelax_ | ) |
virtual LinearRelaxSolver::~LinearRelaxSolver | ( | ) | [virtual] |
virtual void LinearRelaxSolver::init | ( | ) | [pure virtual] |
Initializes the model for the core linear relaxation.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
virtual void LinearRelaxSolver::reset | ( | ) | [pure virtual] |
Resets the solver, so we use only the core linear relaxation.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
Builds the linear relaxation for a specific node or uses global cuts only.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
virtual void LinearRelaxSolver::add_cut | ( | const CutPool::CutInfo & | cutinfo | ) | [pure virtual] |
Updates the linear relaxation for a specific node.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
virtual void LinearRelaxSolver::update_levelcut | ( | double | newlevel | ) | [pure virtual] |
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
virtual bool LinearRelaxSolver::feasible | ( | ) | [pure virtual] |
Checks the linear relaxation only for feasiblity instead of solving it.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
virtual void LinearRelaxSolver::remove_cuts | ( | ) | [pure virtual] |
According to the information, set in the remove-member of the cutinfos, remove cuts.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
int LinearRelaxSolver::solve | ( | ) | [virtual] |
Solves the problem.
Abstract.
Implements Solver.
Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.
LinearRelax& LinearRelaxSolver::linrelax [protected] |
Definition at line 270 of file linrelax.h.
Definition at line 273 of file linrelax.h.
Contains the dual variables of the core linear relaxation after a successful solve() or feasible() run.
Definition at line 277 of file linrelax.h.