|
Cbc
2.10.5
|
Include dependency graph for CglTwomir.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | DGG_constraint_t |
| struct | DGG_list_t |
| struct | cutParams |
| struct | DGG_data_t |
| class | CglTwomir |
| Twostep MIR Cut Generator Class. More... | |
Macros | |
| #define | DGG_isBasic(data, idx) ((data->info[idx])&1) |
| #define | DGG_isInteger(data, idx) ((data->info[idx] >> 1)&1) |
| #define | DGG_isStructural(data, idx) ((data->info[idx] >> 2)&1) |
| #define | DGG_isEqualityConstraint(data, idx) ((data->info[idx] >> 3)&1) |
| #define | DGG_isNonBasicAtUB(data, idx) ((data->info[idx] >> 4)&1) |
| #define | DGG_isNonBasicAtLB(data, idx) ((data->info[idx] >> 5)&1) |
| #define | DGG_isConstraintBoundedAbove(data, idx) ((data->info[idx] >> 6)&1) |
| #define | DGG_isConstraintBoundedBelow(data, idx) ((data->info[idx] >> 7)&1) |
| #define | DGG_setIsBasic(data, idx) ((data->info[idx]) |= 1) |
| #define | DGG_setIsInteger(data, idx) ((data->info[idx]) |= (1<<1)) |
| #define | DGG_setIsStructural(data, idx) ((data->info[idx]) |= (1<<2)) |
| #define | DGG_setEqualityConstraint(data, idx) ((data->info[idx]) |= (1<<3)) |
| #define | DGG_setIsNonBasicAtUB(data, idx) ((data->info[idx]) |= (1<<4)) |
| #define | DGG_setIsNonBasicAtLB(data, idx) ((data->info[idx]) |= (1<<5)) |
| #define | DGG_setIsConstraintBoundedAbove(data, idx) ((data->info[idx]) |= (1<<6)) |
| #define | DGG_setIsConstraintBoundedBelow(data, idx) ((data->info[idx]) |= (1<<7)) |
| #define | DGG_DEBUG_DGG 1 |
| #define | DGG_TRACE_ERRORS 0 |
| #define | DGG_DISPLAY 0 |
| #define | DGG_AUTO_CHECK_CUT_OFF_OPTIMAL 1 |
| #define | DGG_DEFAULT_METHOD 2 |
| #define | DGG_DEFAULT_TMIN 1 |
| #define | DGG_DEFAULT_TMAX 1 |
| #define | DGG_DEFAULT_TAUMIN 2 |
| #define | DGG_DEFAULT_TAUMAX 6 |
| #define | DGG_DEFAULT_MAX_CUTS 500 |
| #define | DGG_DEFAULT_IMPROVEMENT_THRESH 0.001 |
| #define | DGG_DEFAULT_NBELOW_THRESH INT_MAX |
| #define | DGG_DEFAULT_NROOT_ROUNDS 2 |
| #define | DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS 0 |
| #define | DGG_DEFAULT_ALPHA_RULE 0 |
| #define | DGG_DEFAULT_CUT_INC 250 |
| #define | DGG_DEFAULT_CUT_FORM 0 |
| #define | DGG_DEFAULT_NICEFY 0 |
| #define | DGG_DEFAULT_ONLY_DELAYED 0 |
| #define | DGG_DEFAULT_DELAYED_FREQ 9999999 |
| #define | DGG_DEFAULT_LPROWS_FREQ 9999999 |
| #define | DGG_DEFAULT_WHICH_FORMULATION_CUTS 2 |
| #define | DGG_OSI 0 |
| #define | DGG_CPX 1 |
| #define | DGG_QSO 2 |
| #define | DGG_SOLVER DGG_OSI |
| #define | DGG_DEBUG_SOLVER 0 |
| #define | DGG_SOLVER_SCREEN_FLAG 0 |
| #define | DGG_TMIR_CUT 1 |
| #define | DGG_2STEP_CUT 2 |
| #define | DGG_ALPHA_MIN_SUM 0 |
| #define | DGG_ALPHA_RANDOM_01 1 |
| #define | DGG_ALPHA_RANDOM_COEFF 2 |
| #define | DGG_ALPHA_ALL 3 |
| #define | DGG_ALPHA_MAX_STEEP 5 |
| #define | DGG_MIN_STEEPNESS 1.0e-4 |
| #define | DGG_MAX_L2NORM 1.0e7 |
| #define | DGG_NORM_CRITERIA 1 |
| #define | DGG_GOMORY_THRESH 0.005 |
| #define | DGG_RHS_THRESH 0.005 |
| #define | DGG_BOUND_THRESH 1.0e-6 |
| #define | DGG_EQUALITY_THRESH 1.0e-5 |
| #define | DGG_SHIFT_THRESH 1.0e-6 |
| #define | DGG_INTEGRALITY_THRESH 1.0e-10 |
| #define | CBC_CHECK_CUT |
| #define | DGG_MIN_TABLEAU_COEFFICIENT 1.0e-12 |
| #define | DGG_MIN_RHO 1.0e-7 |
| #define | DGG_MIN_ALPHA 1.0e-7 |
| #define | DGG_NULL_SLACK 1.0e-5 |
| #define | DGG_NICEFY_MIN_ABSVALUE 1.0e-13 |
| #define | DGG_NICEFY_MIN_FIX 1.0e-7 |
| #define | DGG_NICEFY_MAX_PADDING 1.0e-6 |
| #define | DGG_NICEFY_MAX_RATIO 1.0e9 |
| #define | DGG_IF_EXIT(A, B, REST) {if(A) {fprintf(stdout, REST);exit(B);}} |
| #define | DGG_THROW(A, B) return(A) |
| #define | DGG_CHECKRVAL(A, B) { if(A) return(B); } |
| #define | DGG_CHECKRVAL1(A, B) { if(A) { rval = B; goto CLEANUP; } } |
| #define | DGG_TEST(A, B, REST) { if(A) return(B);} |
| #define | DGG_TEST2(A, B, REST, C) { DGG_TEST(A,B,REST) } |
| #define | DGG_TEST3(A, B, REST, C, D) { DGG_TEST(A,B,REST) } |
| #define | DGG_MIN(a, b) ( (a<b)?a:b ) |
| #define | DGG_MAX(a, b) ( (a>b)?a:b ) |
| #define | KREM(vht, alpha, tau) (DGG_MIN( ceil(vht / alpha), tau ) - 1) |
| #define | LMIN(vht, d, bht) (DGG_MIN( floor(d*bht/bht), d)) |
| #define | ABOV(v) (v - floor(v)) |
| #define | QINT(vht, bht, tau) ( (int)floor( (vht*(tau-1))/bht ) ) |
| #define | V2I(bht, tau, i) ( ((i+1)*bht / tau) ) |
| #define DGG_isBasic | ( | data, | |
| idx | |||
| ) | ((data->info[idx])&1) |
Definition at line 71 of file CglTwomir.hpp.
| #define DGG_isInteger | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 1)&1) |
Definition at line 72 of file CglTwomir.hpp.
| #define DGG_isStructural | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 2)&1) |
Definition at line 73 of file CglTwomir.hpp.
| #define DGG_isEqualityConstraint | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 3)&1) |
Definition at line 74 of file CglTwomir.hpp.
| #define DGG_isNonBasicAtUB | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 4)&1) |
Definition at line 75 of file CglTwomir.hpp.
| #define DGG_isNonBasicAtLB | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 5)&1) |
Definition at line 76 of file CglTwomir.hpp.
| #define DGG_isConstraintBoundedAbove | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 6)&1) |
Definition at line 77 of file CglTwomir.hpp.
| #define DGG_isConstraintBoundedBelow | ( | data, | |
| idx | |||
| ) | ((data->info[idx] >> 7)&1) |
Definition at line 78 of file CglTwomir.hpp.
| #define DGG_setIsBasic | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= 1) |
Definition at line 80 of file CglTwomir.hpp.
| #define DGG_setIsInteger | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<1)) |
Definition at line 81 of file CglTwomir.hpp.
| #define DGG_setIsStructural | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<2)) |
Definition at line 82 of file CglTwomir.hpp.
| #define DGG_setEqualityConstraint | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<3)) |
Definition at line 83 of file CglTwomir.hpp.
| #define DGG_setIsNonBasicAtUB | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<4)) |
Definition at line 84 of file CglTwomir.hpp.
| #define DGG_setIsNonBasicAtLB | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<5)) |
Definition at line 85 of file CglTwomir.hpp.
| #define DGG_setIsConstraintBoundedAbove | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<6)) |
Definition at line 86 of file CglTwomir.hpp.
| #define DGG_setIsConstraintBoundedBelow | ( | data, | |
| idx | |||
| ) | ((data->info[idx]) |= (1<<7)) |
Definition at line 87 of file CglTwomir.hpp.
| #define DGG_DEBUG_DGG 1 |
Definition at line 236 of file CglTwomir.hpp.
| #define DGG_TRACE_ERRORS 0 |
Definition at line 237 of file CglTwomir.hpp.
| #define DGG_DISPLAY 0 |
Definition at line 238 of file CglTwomir.hpp.
| #define DGG_AUTO_CHECK_CUT_OFF_OPTIMAL 1 |
Definition at line 239 of file CglTwomir.hpp.
| #define DGG_DEFAULT_METHOD 2 |
Definition at line 243 of file CglTwomir.hpp.
| #define DGG_DEFAULT_TMIN 1 |
Definition at line 244 of file CglTwomir.hpp.
| #define DGG_DEFAULT_TMAX 1 |
Definition at line 245 of file CglTwomir.hpp.
| #define DGG_DEFAULT_TAUMIN 2 |
Definition at line 246 of file CglTwomir.hpp.
| #define DGG_DEFAULT_TAUMAX 6 |
Definition at line 247 of file CglTwomir.hpp.
| #define DGG_DEFAULT_MAX_CUTS 500 |
Definition at line 248 of file CglTwomir.hpp.
| #define DGG_DEFAULT_IMPROVEMENT_THRESH 0.001 |
Definition at line 249 of file CglTwomir.hpp.
| #define DGG_DEFAULT_NBELOW_THRESH INT_MAX |
Definition at line 250 of file CglTwomir.hpp.
| #define DGG_DEFAULT_NROOT_ROUNDS 2 |
Definition at line 251 of file CglTwomir.hpp.
| #define DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS 0 |
Definition at line 252 of file CglTwomir.hpp.
| #define DGG_DEFAULT_ALPHA_RULE 0 |
Definition at line 253 of file CglTwomir.hpp.
| #define DGG_DEFAULT_CUT_INC 250 |
Definition at line 254 of file CglTwomir.hpp.
| #define DGG_DEFAULT_CUT_FORM 0 |
Definition at line 255 of file CglTwomir.hpp.
| #define DGG_DEFAULT_NICEFY 0 |
Definition at line 256 of file CglTwomir.hpp.
| #define DGG_DEFAULT_ONLY_DELAYED 0 |
Definition at line 257 of file CglTwomir.hpp.
| #define DGG_DEFAULT_DELAYED_FREQ 9999999 |
Definition at line 258 of file CglTwomir.hpp.
| #define DGG_DEFAULT_LPROWS_FREQ 9999999 |
Definition at line 259 of file CglTwomir.hpp.
| #define DGG_DEFAULT_WHICH_FORMULATION_CUTS 2 |
Definition at line 260 of file CglTwomir.hpp.
| #define DGG_OSI 0 |
Definition at line 264 of file CglTwomir.hpp.
| #define DGG_CPX 1 |
Definition at line 265 of file CglTwomir.hpp.
| #define DGG_QSO 2 |
Definition at line 266 of file CglTwomir.hpp.
| #define DGG_SOLVER DGG_OSI |
Definition at line 269 of file CglTwomir.hpp.
| #define DGG_DEBUG_SOLVER 0 |
Definition at line 272 of file CglTwomir.hpp.
| #define DGG_SOLVER_SCREEN_FLAG 0 |
Definition at line 275 of file CglTwomir.hpp.
| #define DGG_TMIR_CUT 1 |
Definition at line 280 of file CglTwomir.hpp.
| #define DGG_2STEP_CUT 2 |
Definition at line 281 of file CglTwomir.hpp.
| #define DGG_ALPHA_MIN_SUM 0 |
Definition at line 284 of file CglTwomir.hpp.
| #define DGG_ALPHA_RANDOM_01 1 |
Definition at line 285 of file CglTwomir.hpp.
| #define DGG_ALPHA_RANDOM_COEFF 2 |
Definition at line 286 of file CglTwomir.hpp.
| #define DGG_ALPHA_ALL 3 |
Definition at line 287 of file CglTwomir.hpp.
| #define DGG_ALPHA_MAX_STEEP 5 |
Definition at line 288 of file CglTwomir.hpp.
| #define DGG_MIN_STEEPNESS 1.0e-4 |
Definition at line 293 of file CglTwomir.hpp.
| #define DGG_MAX_L2NORM 1.0e7 |
Definition at line 294 of file CglTwomir.hpp.
| #define DGG_NORM_CRITERIA 1 |
Definition at line 297 of file CglTwomir.hpp.
| #define DGG_GOMORY_THRESH 0.005 |
Definition at line 302 of file CglTwomir.hpp.
| #define DGG_RHS_THRESH 0.005 |
Definition at line 304 of file CglTwomir.hpp.
| #define DGG_BOUND_THRESH 1.0e-6 |
Definition at line 310 of file CglTwomir.hpp.
| #define DGG_EQUALITY_THRESH 1.0e-5 |
Definition at line 314 of file CglTwomir.hpp.
| #define DGG_SHIFT_THRESH 1.0e-6 |
Definition at line 318 of file CglTwomir.hpp.
| #define DGG_INTEGRALITY_THRESH 1.0e-10 |
Definition at line 323 of file CglTwomir.hpp.
| #define CBC_CHECK_CUT |
Definition at line 327 of file CglTwomir.hpp.
| #define DGG_MIN_TABLEAU_COEFFICIENT 1.0e-12 |
Definition at line 331 of file CglTwomir.hpp.
| #define DGG_MIN_RHO 1.0e-7 |
Definition at line 336 of file CglTwomir.hpp.
| #define DGG_MIN_ALPHA 1.0e-7 |
Definition at line 337 of file CglTwomir.hpp.
| #define DGG_NULL_SLACK 1.0e-5 |
Definition at line 340 of file CglTwomir.hpp.
| #define DGG_NICEFY_MIN_ABSVALUE 1.0e-13 |
Definition at line 343 of file CglTwomir.hpp.
| #define DGG_NICEFY_MIN_FIX 1.0e-7 |
Definition at line 344 of file CglTwomir.hpp.
| #define DGG_NICEFY_MAX_PADDING 1.0e-6 |
Definition at line 345 of file CglTwomir.hpp.
| #define DGG_NICEFY_MAX_RATIO 1.0e9 |
Definition at line 346 of file CglTwomir.hpp.
| #define DGG_IF_EXIT | ( | A, | |
| B, | |||
| REST | |||
| ) | {if(A) {fprintf(stdout, REST);exit(B);}} |
Definition at line 389 of file CglTwomir.hpp.
| #define DGG_THROW | ( | A, | |
| B | |||
| ) | return(A) |
Definition at line 391 of file CglTwomir.hpp.
| #define DGG_CHECKRVAL | ( | A, | |
| B | |||
| ) | { if(A) return(B); } |
Definition at line 393 of file CglTwomir.hpp.
| #define DGG_CHECKRVAL1 | ( | A, | |
| B | |||
| ) | { if(A) { rval = B; goto CLEANUP; } } |
Definition at line 394 of file CglTwomir.hpp.
| #define DGG_TEST | ( | A, | |
| B, | |||
| REST | |||
| ) | { if(A) return(B);} |
Definition at line 396 of file CglTwomir.hpp.
| #define DGG_TEST2 | ( | A, | |
| B, | |||
| REST, | |||
| C | |||
| ) | { DGG_TEST(A,B,REST) } |
Definition at line 397 of file CglTwomir.hpp.
| #define DGG_TEST3 | ( | A, | |
| B, | |||
| REST, | |||
| C, | |||
| D | |||
| ) | { DGG_TEST(A,B,REST) } |
Definition at line 398 of file CglTwomir.hpp.
| #define DGG_MIN | ( | a, | |
| b | |||
| ) | ( (a<b)?a:b ) |
Definition at line 404 of file CglTwomir.hpp.
| #define DGG_MAX | ( | a, | |
| b | |||
| ) | ( (a>b)?a:b ) |
Definition at line 405 of file CglTwomir.hpp.
| #define KREM | ( | vht, | |
| alpha, | |||
| tau | |||
| ) | (DGG_MIN( ceil(vht / alpha), tau ) - 1) |
Definition at line 406 of file CglTwomir.hpp.
| #define LMIN | ( | vht, | |
| d, | |||
| bht | |||
| ) | (DGG_MIN( floor(d*bht/bht), d)) |
Definition at line 407 of file CglTwomir.hpp.
| #define ABOV | ( | v | ) | (v - floor(v)) |
Definition at line 408 of file CglTwomir.hpp.
| #define QINT | ( | vht, | |
| bht, | |||
| tau | |||
| ) | ( (int)floor( (vht*(tau-1))/bht ) ) |
Definition at line 409 of file CglTwomir.hpp.
| #define V2I | ( | bht, | |
| tau, | |||
| i | |||
| ) | ( ((i+1)*bht / tau) ) |
Definition at line 410 of file CglTwomir.hpp.
| int DGG_is_even | ( | double | vht, |
| double | bht, | ||
| int | tau, | ||
| int | q | ||
| ) |
| double frac_part | ( | double | value | ) |
| int DGG_is_a_multiple_of_b | ( | double | a, |
| double | b | ||
| ) |
| int DGG_freeData | ( | DGG_data_t * | data | ) |
| DGG_constraint_t* DGG_newConstraint | ( | int | max_arrays | ) |
| void DGG_freeConstraint | ( | DGG_constraint_t * | c | ) |
| DGG_constraint_t* DGG_copyConstraint | ( | DGG_constraint_t * | c | ) |
| void DGG_scaleConstraint | ( | DGG_constraint_t * | c, |
| int | t | ||
| ) |
| void DGG_list_init | ( | DGG_list_t * | l | ) |
| int DGG_list_addcut | ( | DGG_list_t * | l, |
| DGG_constraint_t * | cut, | ||
| int | ctype, | ||
| double | alpha | ||
| ) |
| void DGG_list_delcut | ( | DGG_list_t * | l, |
| int | i | ||
| ) |
| void DGG_list_free | ( | DGG_list_t * | l | ) |
| DGG_data_t* DGG_getData | ( | const void * | solver_ptr | ) |
| int DGG_transformConstraint | ( | DGG_data_t * | data, |
| double ** | x_out, | ||
| double ** | rc_out, | ||
| char ** | isint_out, | ||
| DGG_constraint_t * | constraint | ||
| ) |
| int DGG_unTransformConstraint | ( | DGG_data_t * | data, |
| DGG_constraint_t * | constraint | ||
| ) |
| int DGG_substituteSlacks | ( | const void * | solver_ptr, |
| DGG_data_t * | data, | ||
| DGG_constraint_t * | cut | ||
| ) |
| int DGG_nicefyConstraint | ( | const void * | solver_ptr, |
| DGG_data_t * | data, | ||
| DGG_constraint_t * | cut | ||
| ) |
| int DGG_getFormulaConstraint | ( | int | row_idx, |
| const void * | solver_ptr, | ||
| DGG_data_t * | data, | ||
| DGG_constraint_t * | row | ||
| ) |
| int DGG_getTableauConstraint | ( | int | index, |
| const void * | solver_ptr, | ||
| DGG_data_t * | data, | ||
| DGG_constraint_t * | tabrow, | ||
| const int * | colIsBasic, | ||
| const int * | rowIsBasic, | ||
| CoinFactorization & | factorization, | ||
| int | mode | ||
| ) |
| DGG_constraint_t* DGG_getSlackExpression | ( | const void * | solver_ptr, |
| DGG_data_t * | data, | ||
| int | row_index | ||
| ) |
| int DGG_generateTabRowCuts | ( | DGG_list_t * | list, |
| DGG_data_t * | data, | ||
| const void * | solver_ptr | ||
| ) |
| int DGG_generateFormulationCuts | ( | DGG_list_t * | list, |
| DGG_data_t * | data, | ||
| const void * | solver_ptr, | ||
| int | nrows, | ||
| CoinThreadRandom & | generator | ||
| ) |
| int DGG_generateFormulationCutsFromBase | ( | DGG_constraint_t * | base, |
| double | slack, | ||
| DGG_list_t * | list, | ||
| DGG_data_t * | data, | ||
| const void * | solver_ptr, | ||
| CoinThreadRandom & | generator | ||
| ) |
| int DGG_generateCutsFromBase | ( | DGG_constraint_t * | base, |
| DGG_list_t * | list, | ||
| DGG_data_t * | data, | ||
| const void * | solver_ptr | ||
| ) |
| int DGG_buildMir | ( | char * | isint, |
| DGG_constraint_t * | base, | ||
| DGG_constraint_t ** | cut_out | ||
| ) |
| int DGG_build2step | ( | double | alpha, |
| char * | isint, | ||
| DGG_constraint_t * | base, | ||
| DGG_constraint_t ** | cut_out | ||
| ) |
| int DGG_addMirToList | ( | DGG_constraint_t * | base, |
| char * | isint, | ||
| double * | x, | ||
| DGG_list_t * | list, | ||
| DGG_data_t * | data, | ||
| DGG_constraint_t * | orig_base | ||
| ) |
| int DGG_add2stepToList | ( | DGG_constraint_t * | base, |
| char * | isint, | ||
| double * | x, | ||
| double * | rc, | ||
| DGG_list_t * | list, | ||
| DGG_data_t * | data, | ||
| DGG_constraint_t * | orig_base | ||
| ) |
| double DGG_cutLHS | ( | DGG_constraint_t * | c, |
| double * | x | ||
| ) |
| int DGG_isCutDesirable | ( | DGG_constraint_t * | c, |
| DGG_data_t * | d | ||
| ) |
| int DGG_isConstraintViolated | ( | DGG_data_t * | d, |
| DGG_constraint_t * | c | ||
| ) |
| int DGG_isBaseTrivial | ( | DGG_data_t * | d, |
| DGG_constraint_t * | c | ||
| ) |
| int DGG_is2stepValid | ( | double | alpha, |
| double | bht | ||
| ) |
| int DGG_cutsOffPoint | ( | double * | x, |
| DGG_constraint_t * | cut | ||
| ) |
| void CglTwomirUnitTest | ( | const OsiSolverInterface * | siP, |
| const std::string | mpdDir | ||
| ) |
A function that tests the methods in the CglTwomir class.
The only reason for it not to be a member method is that this way it doesn't have to be compiled into the library. And that's a gain, because the library should be compiled with optimization on, but this method should be compiled with debugging.
1.8.5