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.

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

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

Definition at line 43 of file column.h.

Definition at line 45 of file column.h.

Definition at line 47 of file column.h.

The restricted master problem.

Definition at line 50 of file column.h.

Definition at line 52 of file column.h.

Definition at line 53 of file column.h.

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 10 Mar 2013 for LaGO by  doxygen 1.6.1