Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

CglTwomir.hpp File Reference

#include <string>
#include "CglCutGenerator.hpp"
#include "CoinFactorization.hpp"

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...

Defines

#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 UB_MAX   DBL_MAX
#define LB_MIN   DBL_MIN
#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 DGG_MIN_TABLEAU_COEFFICIENT   1.0e-8
#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) )

Functions

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_tDGG_newConstraint (int max_arrays)
void DGG_freeConstraint (DGG_constraint_t *c)
DGG_constraint_tDGG_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_tDGG_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_tDGG_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)
int DGG_generateFormulationCutsFromBase (DGG_constraint_t *base, double slack, DGG_list_t *list, DGG_data_t *data, const void *solver_ptr)
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)


Define Documentation

#define DGG_isBasic data,
idx   )     ((data->info[idx])&1)
 

Definition at line 68 of file CglTwomir.hpp.

#define DGG_isInteger data,
idx   )     ((data->info[idx] >> 1)&1)
 

Definition at line 69 of file CglTwomir.hpp.

#define DGG_isStructural data,
idx   )     ((data->info[idx] >> 2)&1)
 

Definition at line 70 of file CglTwomir.hpp.

#define DGG_isEqualityConstraint data,
idx   )     ((data->info[idx] >> 3)&1)
 

Definition at line 71 of file CglTwomir.hpp.

#define DGG_isNonBasicAtUB data,
idx   )     ((data->info[idx] >> 4)&1)
 

Definition at line 72 of file CglTwomir.hpp.

#define DGG_isNonBasicAtLB data,
idx   )     ((data->info[idx] >> 5)&1)
 

Definition at line 73 of file CglTwomir.hpp.

#define DGG_isConstraintBoundedAbove data,
idx   )     ((data->info[idx] >> 6)&1)
 

Definition at line 74 of file CglTwomir.hpp.

#define DGG_isConstraintBoundedBelow data,
idx   )     ((data->info[idx] >> 7)&1)
 

Definition at line 75 of file CglTwomir.hpp.

#define DGG_setIsBasic data,
idx   )     ((data->info[idx]) |= 1)
 

Definition at line 77 of file CglTwomir.hpp.

#define DGG_setIsInteger data,
idx   )     ((data->info[idx]) |= (1<<1))
 

Definition at line 78 of file CglTwomir.hpp.

#define DGG_setIsStructural data,
idx   )     ((data->info[idx]) |= (1<<2))
 

Definition at line 79 of file CglTwomir.hpp.

#define DGG_setEqualityConstraint data,
idx   )     ((data->info[idx]) |= (1<<3))
 

Definition at line 80 of file CglTwomir.hpp.

#define DGG_setIsNonBasicAtUB data,
idx   )     ((data->info[idx]) |= (1<<4))
 

Definition at line 81 of file CglTwomir.hpp.

#define DGG_setIsNonBasicAtLB data,
idx   )     ((data->info[idx]) |= (1<<5))
 

Definition at line 82 of file CglTwomir.hpp.

#define DGG_setIsConstraintBoundedAbove data,
idx   )     ((data->info[idx]) |= (1<<6))
 

Definition at line 83 of file CglTwomir.hpp.

#define DGG_setIsConstraintBoundedBelow data,
idx   )     ((data->info[idx]) |= (1<<7))
 

Definition at line 84 of file CglTwomir.hpp.

#define DGG_DEBUG_DGG   1
 

Definition at line 181 of file CglTwomir.hpp.

#define DGG_TRACE_ERRORS   0
 

Definition at line 182 of file CglTwomir.hpp.

#define DGG_DISPLAY   0
 

Definition at line 183 of file CglTwomir.hpp.

#define DGG_AUTO_CHECK_CUT_OFF_OPTIMAL   1
 

Definition at line 184 of file CglTwomir.hpp.

#define DGG_DEFAULT_METHOD   2
 

Definition at line 188 of file CglTwomir.hpp.

#define DGG_DEFAULT_TMIN   1
 

Definition at line 189 of file CglTwomir.hpp.

#define DGG_DEFAULT_TMAX   1
 

Definition at line 190 of file CglTwomir.hpp.

#define DGG_DEFAULT_TAUMIN   2
 

Definition at line 191 of file CglTwomir.hpp.

#define DGG_DEFAULT_TAUMAX   6
 

Definition at line 192 of file CglTwomir.hpp.

#define DGG_DEFAULT_MAX_CUTS   500
 

Definition at line 193 of file CglTwomir.hpp.

#define DGG_DEFAULT_IMPROVEMENT_THRESH   0.001
 

Definition at line 194 of file CglTwomir.hpp.

#define DGG_DEFAULT_NBELOW_THRESH   INT_MAX
 

Definition at line 195 of file CglTwomir.hpp.

#define DGG_DEFAULT_NROOT_ROUNDS   2
 

Definition at line 196 of file CglTwomir.hpp.

#define DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS   0
 

Definition at line 197 of file CglTwomir.hpp.

#define DGG_DEFAULT_ALPHA_RULE   0
 

Definition at line 198 of file CglTwomir.hpp.

#define DGG_DEFAULT_CUT_INC   250
 

Definition at line 199 of file CglTwomir.hpp.

#define DGG_DEFAULT_CUT_FORM   0
 

Definition at line 200 of file CglTwomir.hpp.

#define DGG_DEFAULT_NICEFY   0
 

Definition at line 201 of file CglTwomir.hpp.

#define DGG_DEFAULT_ONLY_DELAYED   0
 

Definition at line 202 of file CglTwomir.hpp.

#define DGG_DEFAULT_DELAYED_FREQ   9999999
 

Definition at line 203 of file CglTwomir.hpp.

#define DGG_DEFAULT_LPROWS_FREQ   9999999
 

Definition at line 204 of file CglTwomir.hpp.

#define DGG_DEFAULT_WHICH_FORMULATION_CUTS   2
 

Definition at line 205 of file CglTwomir.hpp.

#define DGG_OSI   0
 

Definition at line 209 of file CglTwomir.hpp.

#define DGG_CPX   1
 

Definition at line 210 of file CglTwomir.hpp.

#define DGG_QSO   2
 

Definition at line 211 of file CglTwomir.hpp.

#define DGG_SOLVER   DGG_OSI
 

Definition at line 214 of file CglTwomir.hpp.

#define DGG_DEBUG_SOLVER   0
 

Definition at line 217 of file CglTwomir.hpp.

#define DGG_SOLVER_SCREEN_FLAG   0
 

Definition at line 220 of file CglTwomir.hpp.

#define DGG_TMIR_CUT   1
 

Definition at line 225 of file CglTwomir.hpp.

#define DGG_2STEP_CUT   2
 

Definition at line 226 of file CglTwomir.hpp.

#define DGG_ALPHA_MIN_SUM   0
 

Definition at line 229 of file CglTwomir.hpp.

#define DGG_ALPHA_RANDOM_01   1
 

Definition at line 230 of file CglTwomir.hpp.

#define DGG_ALPHA_RANDOM_COEFF   2
 

Definition at line 231 of file CglTwomir.hpp.

#define DGG_ALPHA_ALL   3
 

Definition at line 232 of file CglTwomir.hpp.

#define DGG_ALPHA_MAX_STEEP   5
 

Definition at line 233 of file CglTwomir.hpp.

#define DGG_MIN_STEEPNESS   1.0e-4
 

Definition at line 238 of file CglTwomir.hpp.

#define DGG_MAX_L2NORM   1.0e7
 

Definition at line 239 of file CglTwomir.hpp.

#define DGG_NORM_CRITERIA   1
 

Definition at line 242 of file CglTwomir.hpp.

#define UB_MAX   DBL_MAX
 

Definition at line 245 of file CglTwomir.hpp.

#define LB_MIN   DBL_MIN
 

Definition at line 246 of file CglTwomir.hpp.

#define DGG_GOMORY_THRESH   0.005
 

Definition at line 251 of file CglTwomir.hpp.

#define DGG_RHS_THRESH   0.005
 

Definition at line 253 of file CglTwomir.hpp.

#define DGG_BOUND_THRESH   1.0e-6
 

Definition at line 259 of file CglTwomir.hpp.

#define DGG_EQUALITY_THRESH   1.0e-5
 

Definition at line 263 of file CglTwomir.hpp.

#define DGG_SHIFT_THRESH   1.0e-6
 

Definition at line 267 of file CglTwomir.hpp.

#define DGG_INTEGRALITY_THRESH   1.0e-10
 

Definition at line 272 of file CglTwomir.hpp.

#define DGG_MIN_TABLEAU_COEFFICIENT   1.0e-8
 

Definition at line 276 of file CglTwomir.hpp.

#define DGG_MIN_RHO   1.0e-7
 

Definition at line 280 of file CglTwomir.hpp.

#define DGG_MIN_ALPHA   1.0e-7
 

Definition at line 281 of file CglTwomir.hpp.

#define DGG_NULL_SLACK   1.0e-5
 

Definition at line 284 of file CglTwomir.hpp.

#define DGG_NICEFY_MIN_ABSVALUE   1.0e-13
 

Definition at line 287 of file CglTwomir.hpp.

#define DGG_NICEFY_MIN_FIX   1.0e-7
 

Definition at line 288 of file CglTwomir.hpp.

#define DGG_NICEFY_MAX_PADDING   1.0e-6
 

Definition at line 289 of file CglTwomir.hpp.

#define DGG_NICEFY_MAX_RATIO   1.0e9
 

Definition at line 290 of file CglTwomir.hpp.

#define DGG_IF_EXIT A,
B,
REST   )     {if(A) {fprintf(stdout, REST);exit(B);}}
 

Definition at line 333 of file CglTwomir.hpp.

#define DGG_THROW A,
 )     return(A)
 

Definition at line 335 of file CglTwomir.hpp.

#define DGG_CHECKRVAL A,
 )     { if(A) return(B); }
 

Definition at line 337 of file CglTwomir.hpp.

#define DGG_CHECKRVAL1 A,
 )     { if(A) { rval = B; goto CLEANUP; } }
 

Definition at line 338 of file CglTwomir.hpp.

#define DGG_TEST A,
B,
REST   )     { if(A) return(B);}
 

Definition at line 340 of file CglTwomir.hpp.

#define DGG_TEST2 A,
B,
REST,
 )     { DGG_TEST(A,B,REST) }
 

Definition at line 341 of file CglTwomir.hpp.

#define DGG_TEST3 A,
B,
REST,
C,
 )     { DGG_TEST(A,B,REST) }
 

Definition at line 342 of file CglTwomir.hpp.

#define DGG_MIN a,
 )     ( (a<b)?a:b )
 

Definition at line 348 of file CglTwomir.hpp.

#define DGG_MAX a,
 )     ( (a>b)?a:b )
 

Definition at line 349 of file CglTwomir.hpp.

#define KREM vht,
alpha,
tau   )     (DGG_MIN( ceil(vht / alpha), tau ) - 1)
 

Definition at line 350 of file CglTwomir.hpp.

#define LMIN vht,
d,
bht   )     (DGG_MIN( floor(d*bht/bht), d))
 

Definition at line 351 of file CglTwomir.hpp.

#define ABOV  )     (v - floor(v))
 

Definition at line 352 of file CglTwomir.hpp.

#define QINT vht,
bht,
tau   )     ( (int)floor( (vht*(tau-1))/bht ) )
 

Definition at line 353 of file CglTwomir.hpp.

#define V2I bht,
tau,
 )     ( ((i+1)*bht / tau) )
 

Definition at line 354 of file CglTwomir.hpp.


Function Documentation

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
 

int DGG_generateFormulationCutsFromBase DGG_constraint_t base,
double  slack,
DGG_list_t list,
DGG_data_t data,
const void *  solver_ptr
 

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
 


Generated on Sun Jun 11 02:00:51 2006 by  doxygen 1.3.9.1