#include <node.h>
Collaboration diagram for MinlpNode:
Public Member Functions | |
MinlpNode (const dvector &lower_, const dvector &upper_) | |
Constructor for a MinlpNode. | |
MinlpNode (MinlpNode &node) | |
Copy-Constructor. | |
pair< double, pair< int, int > > | bcp_rho (const dvector &x, const vector< ivector > &block, const vector< bool > &discr) |
Evaluates the key and the related block and index. | |
bool | inside_part_set (dvector &point, int k, const vector< ivector > &block) |
Checks if a sub-vector is inside the partition set. | |
set< SolCandidate >::const_iterator | outside_part_set (const set< SolCandidate > &points) |
Checks if a set of points is outside the partition set. | |
double | key () |
Evaluates the key of a node. | |
double | key (const vector< int > &i_discr) |
Evaluates the key of the node which is currently the lower bound. | |
Private Attributes | |
double | low_bound |
A lower bound of the optimal value. | |
bool | update_subdiv_bound_called |
dvector | lower |
Box for this node. | |
dvector | upper |
set< int > | fix_branch_var |
List of fixed branching variables. | |
vector< dvector > | lagprob_solutions |
Solution points from the lagrangian problems. | |
dvector | ref_point |
Point, used by feasible_linrelax to store the solution of (R[U]). | |
dvector | dual_point |
The dual point to the refpoint. | |
dvector | yz_RMP |
Solution point of the RMP. | |
vector< list< list< ExtremePoint >::iterator > > | i_ExtremePoints |
The points and columns of the RMP for each block. | |
vector< list< ExtremePoint >::iterator > | i_ExtremePoints_limit |
Points to the last RMP_point (in MinlpBCP), we checked. | |
Friends | |
class | MinlpBCP |
class | ColumnGenerator |
class | RMPManager |
class | LinearRelax |
class | LinearRelaxSolverGeneral |
class | LinearRelaxSolverMIP |
class | RelaxationSolver |
class | LagHeu |
class | LagHeu1 |
class | LagHeu_SimAnnealing |
class | LagHeu2 |
class | LagHeu2b |
Definition at line 29 of file node.h.
Constructor for a MinlpNode.
lower_ | Lower bounds on the variables. | |
upper_ | Upper bounds on the variables. | |
already | Variables, which are already fixed. Can be left out. |
pair<double, pair<int,int> > MinlpNode::bcp_rho | ( | const dvector & | x, | |
const vector< ivector > & | block, | |||
const vector< bool > & | discr | |||
) |
Evaluates the key and the related block and index.
Computes the minimum distance of the variables in x to the middle of its box regarding the discrete unfixed variables. And gives the block and index of a variable, where this minimum is attached. The indices of fixed variables are taken from bcp_fixed_var.
Checks if a sub-vector is inside the partition set.
point | A point. | |
k | The block number. | |
block | The block structure. |
set<SolCandidate>::const_iterator MinlpNode::outside_part_set | ( | const set< SolCandidate > & | points | ) |
Checks if a set of points is outside the partition set.
points | A set of points. |
double MinlpNode::key | ( | ) | [inline] |
double MinlpNode::key | ( | const vector< int > & | i_discr | ) |
Evaluates the key of the node which is currently the lower bound.
If all discrete variables are fixed, the key in increased by rtol.
friend class ColumnGenerator [friend] |
friend class RMPManager [friend] |
friend class LinearRelax [friend] |
friend class LinearRelaxSolverGeneral [friend] |
friend class LinearRelaxSolverMIP [friend] |
friend class RelaxationSolver [friend] |
friend class LagHeu_SimAnnealing [friend] |
double MinlpNode::low_bound [private] |
bool MinlpNode::update_subdiv_bound_called [private] |
dvector MinlpNode::lower [private] |
dvector MinlpNode::upper [private] |
set<int> MinlpNode::fix_branch_var [private] |
vector<dvector> MinlpNode::lagprob_solutions [private] |
dvector MinlpNode::ref_point [private] |
dvector MinlpNode::dual_point [private] |
dvector MinlpNode::yz_RMP [private] |
vector<list<list<ExtremePoint>::iterator> > MinlpNode::i_ExtremePoints [private] |
vector<list<ExtremePoint>::iterator> MinlpNode::i_ExtremePoints_limit [private] |