branchMIP Class Reference
[(Mixed) integer programming]

Branch & bound implementation for mixed integer programming. More...

#include <branchMIP.h>

Inheritance diagram for branchMIP:

branchNode< TVar, TFloat > managedObject goblinRootObject

Public Member Functions

 branchMIP (mipInstance &) throw ()
 branchMIP (branchMIP &) throw ()
 ~branchMIP () throw ()
unsigned long Size () const throw ()
unsigned long Allocated () const throw ()
TVar SelectVariable () throw ()
TBranchDir DirectionConstructive (TVar i) throw (ERRange)
TBranchDir DirectionExhaustive (TVar i) throw (ERRange)
branchNode< TVar, TFloat > * Clone () throw ()
void Raise (TVar i) throw (ERRange)
void Lower (TVar i) throw (ERRange)
TFloat SolveRelaxation () throw ()
TObjectSense ObjectSense () const throw ()
TFloat Infeasibility () const throw ()
bool Feasible () throw ()
void SaveSolution () throw ()

Data Fields

mipInstanceX
mipInstanceY

Detailed Description

Branch & bound implementation for mixed integer programming.


Constructor & Destructor Documentation

branchMIP mipInstance  )  throw ()
 

branchMIP branchMIP  )  throw ()
 

~branchMIP  )  throw ()
 


Member Function Documentation

unsigned long Allocated  )  const throw ()
 

Reimplemented from branchNode< TVar, TFloat >.

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

Generate a copy of this branch node.

Returns:
A pointer to the copy

Implements branchNode< TVar, TFloat >.

branchNode< TVar, TFloat >::TBranchDir DirectionConstructive TVar  i  )  throw (ERRange) [virtual]
 

Preferred search direction before feasibility has been achieved.

Implements branchNode< TVar, TFloat >.

branchNode< TVar, TFloat >::TBranchDir DirectionExhaustive TVar  i  )  throw (ERRange) [virtual]
 

Preferred search direction after feasibility has been achieved.

Implements branchNode< TVar, TFloat >.

bool Feasible  )  throw () [virtual]
 

Reimplemented from branchNode< TVar, TFloat >.

TFloat Infeasibility  )  const throw () [virtual]
 

Symbolic value for infeasible subproblems.

Implements branchNode< TVar, TFloat >.

void Lower TVar  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< TVar, TFloat >.

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

Decide between maximization and minimization problems.

Implements branchNode< TVar, TFloat >.

void Raise TVar  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< TVar, TFloat >.

void SaveSolution  )  throw () [virtual]
 

Copy the current solution to the original problem instance.

Implements branchNode< TVar, TFloat >.

TVar SelectVariable  )  throw () [virtual]
 

Selection of a variable to be restricted next.

Returns:
The branch variable index

Implements branchNode< TVar, 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< TVar, TFloat >.


Field Documentation

mipInstance& X
 

mipInstance* Y