LinearRelaxSolver Class Reference

An abstract solver for the linear relaxation. More...

#include <linrelax.h>

Inheritance diagram for LinearRelaxSolver:
Inheritance graph
[legend]
Collaboration diagram for LinearRelaxSolver:
Collaboration graph
[legend]

List of all members.

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::CutInfocutinfos
dvector duals
 Contains the dual variables of the core linear relaxation after a successful solve() or feasible() run.

Protected Attributes

LinearRelaxlinrelax

Detailed Description

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.


Constructor & Destructor Documentation

LinearRelaxSolver::LinearRelaxSolver ( LinearRelax linrelax_  ) 
virtual LinearRelaxSolver::~LinearRelaxSolver (  )  [virtual]

Member Function Documentation

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.

virtual void LinearRelaxSolver::construct ( Pointer< MinlpNode node = NULL  )  [pure virtual]

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.

virtual void LinearRelaxSolver::set_objective ( Pointer< SepQcFunc obj  )  [pure virtual]
virtual void LinearRelaxSolver::update_levelcut ( double  newlevel  )  [pure virtual]
virtual bool LinearRelaxSolver::feasible (  )  [pure virtual]

Checks the linear relaxation only for feasiblity instead of solving it.

Implemented in LinearRelaxSolverGeneral, and LinearRelaxSolverMIP.

virtual int LinearRelaxSolver::solve ( Pointer< MinlpNode node  )  [pure virtual]
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.

Returns:
A status code: 0, if all went right.
See also:
solve(dvector&)

Implements Solver.

virtual int LinearRelaxSolver::generate_cuts ( list< Pointer< SimpleCut > > &  cuts  )  [pure virtual]

Member Data Documentation

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.


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

Generated on 10 Mar 2013 for LaGO by  doxygen 1.6.1