#include <cuts.h>
Collaboration diagram for LinearizedConCutGenerator:
Public Member Functions | |
LinearizedConCutGenerator (Pointer< MinlpProblem > prob_, Pointer< MINLPData > minlpdata_=NULL, Pointer< Reformulation > reform_=NULL) | |
LinearizationCut | get_cut (const dvector &x, int c, int block_nr, double val=INFINITY) |
Returns a linearization of a constraint, which is defined over one block only. | |
int | get_cuts (list< pair< LinearizationCut, pair< int, bool > > > &cuts, const MINLPData::ObjCon &objcon, int objcon_nr, const dvector &x, const dvector &lower, const dvector &upper, bool violated_polyest_only=false) |
int | get_cuts (list< pair< LinearizationCut, pair< int, bool > > > &cuts, const MINLPData::Constraint &objcon, int objcon_nr, const dvector &x, const dvector &lower, const dvector &upper, bool violated_polyest_only=false) |
int | get_cuts (list< pair< LinearizationCut, pair< int, bool > > > &cuts, const dvector &x, const dvector &lower, const dvector &upper, bool violated_polyest_only=false) |
Computes linearization cuts by linearization of the convex relaxation in a given point. | |
Pointer< LinearizationCut > | update_cut (LinearizationCut &cut, unsigned int block_nr, const dvector &lower, const dvector &upper) |
Updates a cut, using a current box. | |
void | set_problem (Pointer< MinlpProblem > prob_) |
void | set_reform (Pointer< Reformulation > reform_) |
void | set_MINLPData (Pointer< MINLPData > minlpdata_) |
Public Attributes | |
int | max_cuts |
The maximal number of cuts generated in one round. | |
double | min_violation |
The minimal violation of a cut to be kept. | |
double | max_violation |
The maximum violation of a quadratic underestimator in a reference point. | |
Private Attributes | |
Pointer< MinlpProblem > | prob |
Pointer< MINLPData > | minlpdata |
Pointer< Reformulation > | reform |
Static Private Attributes | |
static const double | tol |
Definition at line 395 of file cuts.h.
LinearizedConCutGenerator::LinearizedConCutGenerator | ( | Pointer< MinlpProblem > | prob_, | |
Pointer< MINLPData > | minlpdata_ = NULL , |
|||
Pointer< Reformulation > | reform_ = NULL | |||
) |
LinearizationCut LinearizedConCutGenerator::get_cut | ( | const dvector & | x, | |
int | c, | |||
int | block_nr, | |||
double | val = INFINITY | |||
) |
Returns a linearization of a constraint, which is defined over one block only.
x | The point, in which we linearize the constraint. block[block_nr].size() | |
c | The constraint number. | |
block_nr | The number of the block, for which the constraint is defined. | |
val | The value of the constraint in x, if available. INFINITY else. |
int LinearizedConCutGenerator::get_cuts | ( | list< pair< LinearizationCut, pair< int, bool > > > & | cuts, | |
const MINLPData::ObjCon & | objcon, | |||
int | objcon_nr, | |||
const dvector & | x, | |||
const dvector & | lower, | |||
const dvector & | upper, | |||
bool | violated_polyest_only = false | |||
) |
int LinearizedConCutGenerator::get_cuts | ( | list< pair< LinearizationCut, pair< int, bool > > > & | cuts, | |
const MINLPData::Constraint & | objcon, | |||
int | objcon_nr, | |||
const dvector & | x, | |||
const dvector & | lower, | |||
const dvector & | upper, | |||
bool | violated_polyest_only = false | |||
) |
int LinearizedConCutGenerator::get_cuts | ( | list< pair< LinearizationCut, pair< int, bool > > > & | cuts, | |
const dvector & | x, | |||
const dvector & | lower, | |||
const dvector & | upper, | |||
bool | violated_polyest_only = false | |||
) |
Computes linearization cuts by linearization of the convex relaxation in a given point.
cuts | A list of type { cut , { blocknr, is the function where the cut was derived from convex? } } to store the cuts. | |
x | The point where to compute the cut. | |
lower | The current lower bound on the variables. | |
upper | The current upper bound on the variables. | |
violated_polyest_only | If true, cuts are only generated for functions where x violates the polynomial under/over estimator. Useful if cut is ment to cuf off a solution of the relaxation. |
Pointer<LinearizationCut> LinearizedConCutGenerator::update_cut | ( | LinearizationCut & | cut, | |
unsigned int | block_nr, | |||
const dvector & | lower, | |||
const dvector & | upper | |||
) |
Updates a cut, using a current box.
lower | The lower bounds on the variables, here only the lower bounds for the considered block. | |
upper | The upper boudns on the variables, here only the upper bounds for the considered block. |
void LinearizedConCutGenerator::set_problem | ( | Pointer< MinlpProblem > | prob_ | ) | [inline] |
void LinearizedConCutGenerator::set_reform | ( | Pointer< Reformulation > | reform_ | ) |
Pointer<MinlpProblem> LinearizedConCutGenerator::prob [private] |
Pointer<MINLPData> LinearizedConCutGenerator::minlpdata [private] |
const double LinearizedConCutGenerator::tol [static, private] |