branchStable Class Reference
[Stable sets and cliques]

Branch & bound implementation for stable (independent) node sets. More...

#include <branchStable.h>

Inheritance diagram for branchStable:

branchNode< TNode, TFloat > managedObject goblinRootObject

Public Member Functions

 branchStable (abstractMixedGraph &) throw ()
 branchStable (branchStable &) throw ()
 ~branchStable () throw ()
unsigned long Size () const throw ()
unsigned long Allocated () const throw ()
TNode SelectVariable () throw ()
TBranchDir DirectionConstructive (TNode i) throw (ERRange)
TBranchDir DirectionExhaustive (TNode i) throw (ERRange)
branchNode< TNode, TFloat > * Clone () throw ()
void Raise (TNode i) throw (ERRange)
void Lower (TNode i) throw (ERRange)
TFloat SolveRelaxation () throw ()
void SaveSolution () throw ()
TObjectSense ObjectSense () const throw ()
TFloat Infeasibility () const throw ()

Data Fields

abstractMixedGraphG
char * chi
TNode currentVar
TNode selected
THandle H

Detailed Description

Branch & bound implementation for stable (independent) node sets.


Constructor & Destructor Documentation

branchStable abstractMixedGraph  )  throw ()
 

branchStable branchStable  )  throw ()
 

~branchStable  )  throw ()
 


Member Function Documentation

unsigned long Allocated  )  const throw ()
 

Reimplemented from branchNode< TNode, TFloat >.

branchNode< TNode, TFloat > * Clone  )  throw () [virtual]
 

Generate a copy of this branch node.

Returns:
A pointer to the copy

Implements branchNode< TNode, TFloat >.

branchNode< TNode, TFloat >::TBranchDir DirectionConstructive TNode  v  )  throw (ERRange) [virtual]
 

Preferred search direction before feasibility has been achieved.

Implements branchNode< TNode, TFloat >.

branchNode< TNode, TFloat >::TBranchDir DirectionExhaustive TNode  v  )  throw (ERRange) [virtual]
 

Preferred search direction after feasibility has been achieved.

Implements branchNode< TNode, TFloat >.

TFloat Infeasibility  )  const throw () [virtual]
 

Symbolic value for infeasible subproblems.

Implements branchNode< TNode, TFloat >.

void Lower TNode  i  )  throw (ERRange) [virtual]
 

Lower an upper variable bound.

This operation applies after solving a relaxation and duplicating the branch node. It sets an upper variable bound to the greatest integral lower bound on the current variable value.

The operation may restrict further variables, namely, if it is obvoious that no solutions for the master problem are lost.

Parameters:
i The index of the restricted variable

Implements branchNode< TNode, TFloat >.

branchNode< TNode, TFloat >::TObjectSense ObjectSense  )  const throw () [virtual]
 

Decide between maximization and minimization problems.

Implements branchNode< TNode, TFloat >.

void Raise TNode  i  )  throw (ERRange) [virtual]
 

Raise a lower variable bound.

This operation applies after solving a relaxation and duplicating the branch node. It sets a lower variable bound to the least integral upper bound on the current variable value.

The operation may restrict further variables, namely, if it is obvoious that no solutions for the master problem are lost.

Parameters:
i The index of the variable to be restricted

Implements branchNode< TNode, TFloat >.

void SaveSolution  )  throw () [virtual]
 

Copy the current solution to the original problem instance.

Implements branchNode< TNode, TFloat >.

TNode SelectVariable  )  throw () [virtual]
 

Selection of a variable to be restricted next.

Returns:
The branch variable index

Implements branchNode< TNode, TFloat >.

unsigned long Size  )  const throw () [virtual]
 

Implements goblinRootObject.

TFloat SolveRelaxation  )  throw () [virtual]
 

Solve the relaxed subproblem according.

Returns:
The objective value of this relaxed subproblem

Implements branchNode< TNode, TFloat >.


Field Documentation

char* chi
 

TNode currentVar
 

abstractMixedGraph& G
 

THandle H
 

TNode selected