#include <column.h>
Collaboration diagram for ColumnGenerator:

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 |
| 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.
| 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.
| int ColumnGenerator::solve_RMP | ( | ) |
| void ColumnGenerator::clear_RMP | ( | ) | [inline] |
| 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.
| 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.
| k | The number of the subproblem |
| void ColumnGenerator::print | ( | ostream & | out | ) | const |
Pointer<MinlpNode> ColumnGenerator::node [private] |
MinlpBCP& ColumnGenerator::bcp [private] |
Pointer<Param> ColumnGenerator::param [private] |
Pointer<RMPManager> ColumnGenerator::RMP [private] |
int ColumnGenerator::max_major_iter [private] |
int ColumnGenerator::max_minor_iter [private] |
int ColumnGenerator::max_initRMP_iter [private] |
double ColumnGenerator::rc_tol [private] |
1.4.7