ColumnGenerator Class Reference
Class for generating and solving a restricted master problem.
More...
#include <column.h>
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< MinlpNode > | node |
| A reference to MinlpNode, where the sub-problem is defined.
|
MinlpBCP & | bcp |
Pointer< Param > | param |
Pointer< RMPManager > | RMP |
| 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
Member Function Documentation
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] |
void ColumnGenerator::update_ExtremePoints |
( |
|
) |
|
Update the RMP points after subdivision, and adds the columns to the RMP, if the RMP was built before.
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.
The restricted master problem.
Definition at line 50 of file column.h.
The documentation for this class was generated from the following file: