ColumnGenerator Class Reference

Class for generating and solving a restricted master problem. More...

#include <column.h>

Collaboration diagram for ColumnGenerator:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ColumnGenerator (Pointer< MinlpNode > node_, MinlpBCP &bcp_)
int init_RMP ()
 Solves the relaxed RMP and tries to find new RMP points, if y is not 0.
int solve_RMP ()
void clear_RMP ()
void solve_lag_problem (MinlpBCP::LagSolveStatus &status, int k, Pointer< SepQcFunc > temp_cut=NULL)
void update_ExtremePoints ()
 Update the RMP points after subdivision, and adds the columns to the RMP, if the RMP was built before.
void mult_W (UserVector< double > &x, const dvector &z, int k)
 Computes Wz=sum_l z_{k,l} * w_{k,l} for a fixed k.
int generate_RMP ()
 Generates the RMP by column generation.
double subprobl_key (double rc, int k)
 A key for sorting Lagrangian subproblems.
void print (ostream &out) const

Private Member Functions

void add_cut (Pointer< SepQcFunc > cut, int k)
int get_search_dir2 (dvector &a, double &c, int k)

Private Attributes

Pointer< MinlpNodenode
 A reference to MinlpNode, where the sub-problem is defined.
MinlpBCPbcp
Pointer< Paramparam
Pointer< RMPManagerRMP
 The restricted master problem.
int max_major_iter
int max_minor_iter
int max_initRMP_iter
double rc_tol

Detailed Description

Class for generating and solving a restricted master problem.

Parameters:
ColumnGenerator max major iter options integer $ 0$ default 5 How often $$ is maximally updated during one generate run.
ColumnGenerator max minor iter options integer $ 0$ default 0 For how many blocks the lagrangian subproblem is solved. Only iterations, where the gap could be significantly reduced, are counted. If 0, the number is computed as $(5, 1.39{n}{p}-.05({n}{p})^2+0.15p)$
ColumnGenerator max init RMP iter options integer $ 0$ default 0 level 0 Iteration limit to make RMP feasible. If 0, the number is computed as 2*(maxblocksize+1).

Definition at line 39 of file column.h.


Constructor & Destructor Documentation

ColumnGenerator::ColumnGenerator ( Pointer< MinlpNode node_,
MinlpBCP bcp_ 
)


Member Function Documentation

void ColumnGenerator::add_cut ( Pointer< SepQcFunc cut,
int  k 
) [private]

int ColumnGenerator::get_search_dir2 ( dvector a,
double &  c,
int  k 
) [private]

int ColumnGenerator::init_RMP (  ) 

Solves the relaxed RMP and tries to find new RMP points, if y is not 0.

Returns:
0, if we could make the RMP feasible. 1, if (R[U]) is feasible, but the (RMP) not. 2, if the (R[U]) is feasible, but its solution exceeds the upper bound. 3, if (R[U]) is infeasible.

int ColumnGenerator::solve_RMP (  ) 

void ColumnGenerator::clear_RMP (  )  [inline]

Definition at line 71 of file column.h.

References RMP.

void ColumnGenerator::solve_lag_problem ( MinlpBCP::LagSolveStatus status,
int  k,
Pointer< SepQcFunc temp_cut = NULL 
)

void ColumnGenerator::update_ExtremePoints (  ) 

Update the RMP points after subdivision, and adds the columns to the RMP, if the RMP was built before.

void ColumnGenerator::mult_W ( UserVector< double > &  x,
const dvector z,
int  k 
)

Computes Wz=sum_l z_{k,l} * w_{k,l} for a fixed k.

Parameters:
x The vector to store the result in. Must have (R).block[k].size().
z The vector which is multiplicated by W. Must have (RMP).block[k].size()==node.i_RMP_points[k].size().

int ColumnGenerator::generate_RMP (  ) 

Generates the RMP by column generation.

double ColumnGenerator::subprobl_key ( double  rc,
int  k 
)

A key for sorting Lagrangian subproblems.

Parameters:
k The number of the subproblem

void ColumnGenerator::print ( ostream &  out  )  const


Member Data Documentation

Pointer<MinlpNode> ColumnGenerator::node [private]

A reference to MinlpNode, where the sub-problem is defined.

Definition at line 43 of file column.h.

MinlpBCP& ColumnGenerator::bcp [private]

Definition at line 45 of file column.h.

Pointer<Param> ColumnGenerator::param [private]

Definition at line 47 of file column.h.

Pointer<RMPManager> ColumnGenerator::RMP [private]

The restricted master problem.

Definition at line 50 of file column.h.

Referenced by clear_RMP().

int ColumnGenerator::max_major_iter [private]

Definition at line 52 of file column.h.

int ColumnGenerator::max_minor_iter [private]

Definition at line 53 of file column.h.

int ColumnGenerator::max_initRMP_iter [private]

Definition at line 54 of file column.h.

double ColumnGenerator::rc_tol [private]

Definition at line 56 of file column.h.


The documentation for this class was generated from the following file:
Generated on Tue Oct 21 03:12:22 2008 for LaGO by  doxygen 1.4.7