6.5 ABA_SUB Class Reference

class implements an abstract base class for a subproblem of the enumeration, i.e., a node of the \ tree.

#include <sub.h>

Inheritance diagram for ABA_SUB::


PIC


Public Types

Public Member Functions

Protected Member Functions

Protected Attributes

Private Member Functions

Private Attributes

Friends

6.5.1 Detailed Description

class implements an abstract base class for a subproblem of the enumeration, i.e., a node of the \ tree.

Definition at line 75 of file sub.h.

6.5.2 Member Enumeration Documentation

6.5.2.1 enum ABA_SUB::STATUS

A subproblem can have different statuses:

Parameters:

Unprocessed
The status after generation, but before optimization of the subproblem.
Active
The subproblem is currently processed.
Dormant
The subproblem is partially processed and waiting in the set of open subproblems for further optimization.
Processed
The subproblem is completely processed but could not be fathomed.
Fathomed
The subproblem is fathomed.

Enumerator:

Unprocessed
Active
Dormant
Processed
Fathomed

Definition at line 98 of file sub.h.

6.5.2.2 enum ABA_SUB::PHASE

The optimization of the subproblem can be in one of the following phases:.

Parameters:

Done
The optimization is done.
Cutting
The iterative solution of the LP-relaxation and the generation of cutting planes and/or variables is currently performed.
Branching
We try to generate further subproblems as sons of this subproblem.
Fathoming
The subproblem is currently being fathomed.

Enumerator:

Done
Cutting
Branching
Fathoming

Definition at line 111 of file sub.h.

6.5.3 Constructor & Destructor Documentation

6.5.3.1 ABA_SUB::ABA_SUB (ABA_MASTER * master, double conRes, double varRes, double nnzRes, bool relativeRes = true, ABA_BUFFER< ABA_POOLSLOT< ABA_CONSTRAINT, ABA_VARIABLE > * > * constraints = 0, ABA_BUFFER< ABA_POOLSLOT< ABA_VARIABLE, ABA_CONSTRAINT > * > * variables = 0)

The constructor for the root node of the enumeration tree.

Parameters:

master
A pointer to the corresponding master of the optimization.
conRes
The additional memory allocated for constraints.
varRes
The additional memory allocated for variables.
nnzRes
The additional memory allocated for nonzero elements of the constraint matrix.
relativeRes
If this argument is true, then reserve space for variables, constraints, and nonzeros given by the previous three arguments, is given in percent of the original numbers. Otherwise, the numbers are interpreted as absolute values (casted to integer). The default value is true.
constraints
The pool slots of the initial constraints. If the value is 0, then the constraints of the default constraint pool are taken. The default value is 0.
variables
The pool slots of the initial variables. If the value is 0, then the variables of the default variable pool are taken. The default value is 0.

6.5.3.2 ABA_SUB::ABA_SUB (ABA_MASTER * master, ABA_SUB * father, ABA_BRANCHRULE * branchRule)

The constructor for non-root nodes of the enumeration tree.

Parameters:

master
A pointer to the corresponding master of the optimization.
father
A pointer to the father in the enumeration tree.
branchRule
The rule defining the subspace of the solution space associated with this subproblem.

6.5.3.3 virtual ABA_SUB::~ABA_SUB () [virtual]

The destructor only deletes the sons of the node.

The deletion of allocated memory is already performed when the node is fathomed. We recursively call the destructors of all subproblems contained in the enumeration tree below this subproblem itself.

If a subproblem has no sons and its status is either Unprocessed or Dormant, then it is still contained in the set of open subproblems, where it is removed from.

6.5.3.4 ABA_SUB::ABA_SUB (const ABA_SUB & rhs) [private]

6.5.4 Member Function Documentation

6.5.4.1 bool ABA_SUB::forceExactSolver () const [inline]

Returns:

Whether using the exact solver is forced.

Definition at line 2207 of file sub.h.

6.5.4.2 int ABA_SUB::level () const [inline]

Returns:

The level of the subproblem in the \ tree.

Definition at line 2212 of file sub.h.

6.5.4.3 int ABA_SUB::id () const [inline]

Returns:

The identity number of the subproblem.

Definition at line 2217 of file sub.h.

6.5.4.4 ABA_SUB::STATUS ABA_SUB::status () const [inline]

Returns:

The status of the subproblem optimization.

Definition at line 2244 of file sub.h.

6.5.4.5 int ABA_SUB::nVar () const [inline]

Returns:

The number of active variables.

Definition at line 2259 of file sub.h.

6.5.4.6 int ABA_SUB::maxVar () const [inline]

Returns:

The maximum number of variables which can be handled without reallocation.

Definition at line 2269 of file sub.h.

6.5.4.7 int ABA_SUB::nCon () const [inline]

Returns:

The number of active constraints.

Definition at line 2264 of file sub.h.

6.5.4.8 int ABA_SUB::maxCon () const [inline]

Returns:

The maximum number of constraints which can be handled without reallocation.

Definition at line 2274 of file sub.h.

6.5.4.9 double ABA_SUB::lowerBound () const

Returns:

A lower bound on the optimal solution of the subproblem.

6.5.4.10 double ABA_SUB::upperBound () const

Returns:

An upper bound on the optimal solution of the subproblem.

6.5.4.11 double ABA_SUB::dualBound () const [inline]

Returns:

A bound which is better than the optimal solution of the subproblem in respect to the sense of the optimization, i.e., an upper for a maximization problem or a lower bound for a minimization problem, respectively.

Definition at line 2229 of file sub.h.

6.5.4.12 void ABA_SUB::dualBound (double x)

Sets the dual bound of the subproblem, and if the subproblem is the root node of the enumeration tree and the new value is better than its dual bound, also the global dual bound is updated. It is an error if the dual bound gets worse.

In normal applications it is not required to call this function explicitly. This is already done by \ during the subproblem optimization.

Parameters:

x
The new value of the dual bound.

6.5.4.13 const ABA_SUB * ABA_SUB::father () const [inline]

Returns:

A pointer to the father of the subproblem in the \ tree.

Definition at line 2234 of file sub.h.

6.5.4.14 ABA_LPSUB * ABA_SUB::lp () const [inline]

Returns:

A pointer to the linear program of the subproblem.

Definition at line 2239 of file sub.h.

6.5.4.15 void ABA_SUB::maxIterations (int max)

Sets the maximal number of iterations in the cutting plane phase.

Setting this value to 1 implies that no cuts are generated in the optimization process of the subproblem.

Parameters:

max
The maximal number of iterations.

6.5.4.16 ABA_ACTIVE< ABA_CONSTRAINT, ABA_VARIABLE > * ABA_SUB::actCon () const [inline]

Returns:

A pointer to the currently active constraints.

Definition at line 2249 of file sub.h.

6.5.4.17 ABA_ACTIVE< ABA_VARIABLE, ABA_CONSTRAINT > * ABA_SUB::actVar () const [inline]

Returns:

A pointer to the currently active variables.

Definition at line 2254 of file sub.h.

6.5.4.18 ABA_CONSTRAINT* ABA_SUB::constraint (int i) const

Returns:

A pointer to the i-th active constraint.

Parameters:

i
The constraint being accessed.

6.5.4.19 ABA_SLACKSTAT * ABA_SUB::slackStat (int i) const [inline]

Returns:

A pointer to the status of the slack variable i in the last solved linear program.

Parameters:

i
The number of the slack variable.

Definition at line 2202 of file sub.h.

6.5.4.20 ABA_VARIABLE* ABA_SUB::variable (int i) const

Returns:

A pointer to the i-th active variable.

Parameters:

i
The number of the variable being accessed.

6.5.4.21 double ABA_SUB::lBound (int i) const [inline]

Can be used to access the lower of an active variable of the subproblem.

Warning:

This is the lower bound of the variable within the current subproblem which can differ from its global lower bound.

Returns:

The lower bound of the i-th variable.

Parameters:

i
The number of the variable.

Definition at line 2168 of file sub.h.

6.5.4.22 void ABA_SUB::lBound (int i, double l) [inline]