Scippy

SCIP

Solving Constraint Integer Programs

sepa_strongcg.c File Reference

Detailed Description

Strong CG Cuts (Letchford & Lodi)

Author
Kati Wolter
Tobias Achterberg

Definition in file sepa_strongcg.c.

#include "blockmemshell/memory.h"
#include "scip/cuts.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_sepa.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_cut.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_randnumgen.h"
#include "scip/scip_sepa.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/sepa_strongcg.h"
#include <string.h>

Go to the source code of this file.

Macros

#define SEPA_NAME   "strongcg"
 
#define SEPA_DESC   "Strong CG cuts separator (Letchford and Lodi)"
 
#define SEPA_PRIORITY   -2000
 
#define SEPA_FREQ   10
 
#define SEPA_MAXBOUNDDIST   1.0
 
#define SEPA_USESSUBSCIP   FALSE
 
#define SEPA_DELAY   FALSE
 
#define DEFAULT_MAXROUNDS   5
 
#define DEFAULT_MAXROUNDSROOT   20
 
#define DEFAULT_MAXSEPACUTS   20
 
#define DEFAULT_MAXSEPACUTSROOT   500
 
#define DEFAULT_DYNAMICCUTS   TRUE
 
#define DEFAULT_RANDSEED   54
 
#define SEPARATEROWS   /* separate rows with integral slack */
 
#define BOUNDSWITCH   0.9999
 
#define POSTPROCESS   TRUE
 
#define USEVBDS   TRUE
 
#define MINFRAC   0.05
 
#define MAXFRAC   0.95
 
#define MAXAGGRLEN(nvars)   (0.1*(nvars)+1000)
 

Functions

static SCIP_DECL_SEPACOPY (sepaCopyStrongcg)
 
static SCIP_DECL_SEPAFREE (sepaFreeStrongcg)
 
static SCIP_DECL_SEPAINIT (sepaInitStrongcg)
 
static SCIP_DECL_SEPAEXIT (sepaExitStrongcg)
 
static SCIP_DECL_SEPAEXECLP (sepaExeclpStrongcg)
 
SCIP_RETCODE SCIPincludeSepaStrongcg (SCIP *scip)
 

Macro Definition Documentation

◆ SEPA_NAME

#define SEPA_NAME   "strongcg"

◆ SEPA_DESC

#define SEPA_DESC   "Strong CG cuts separator (Letchford and Lodi)"

Definition at line 50 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_PRIORITY

#define SEPA_PRIORITY   -2000

Definition at line 51 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_FREQ

#define SEPA_FREQ   10

Definition at line 52 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_MAXBOUNDDIST

#define SEPA_MAXBOUNDDIST   1.0

Definition at line 53 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_USESSUBSCIP

#define SEPA_USESSUBSCIP   FALSE

does the separator use a secondary SCIP instance?

Definition at line 54 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_DELAY

#define SEPA_DELAY   FALSE

should separation method be delayed, if other separators found cuts?

Definition at line 55 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_MAXROUNDS

#define DEFAULT_MAXROUNDS   5

maximal number of strong CG separation rounds per node (-1: unlimited)

Definition at line 57 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_MAXROUNDSROOT

#define DEFAULT_MAXROUNDSROOT   20

maximal number of strong CG separation rounds in the root node (-1: unlimited)

Definition at line 58 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_MAXSEPACUTS

#define DEFAULT_MAXSEPACUTS   20

maximal number of strong CG cuts separated per separation round

Definition at line 59 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_MAXSEPACUTSROOT

#define DEFAULT_MAXSEPACUTSROOT   500

maximal number of strong CG cuts separated per separation round in root node

Definition at line 60 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_DYNAMICCUTS

#define DEFAULT_DYNAMICCUTS   TRUE

should generated cuts be removed from the LP if they are no longer tight?

Definition at line 61 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_RANDSEED

#define DEFAULT_RANDSEED   54

initial random seed

Definition at line 62 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAINIT().

◆ SEPARATEROWS

#define SEPARATEROWS   /* separate rows with integral slack */

Definition at line 64 of file sepa_strongcg.c.

◆ BOUNDSWITCH

#define BOUNDSWITCH   0.9999

Definition at line 66 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ POSTPROCESS

#define POSTPROCESS   TRUE

Definition at line 67 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ USEVBDS

#define USEVBDS   TRUE

Definition at line 68 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ MINFRAC

#define MINFRAC   0.05

Definition at line 69 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ MAXFRAC

#define MAXFRAC   0.95

Definition at line 70 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ MAXAGGRLEN

#define MAXAGGRLEN (   nvars)    (0.1*(nvars)+1000)

maximal length of base inequality

Definition at line 72 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

Function Documentation

◆ SCIP_DECL_SEPACOPY()

static SCIP_DECL_SEPACOPY ( sepaCopyStrongcg  )
static

copy method for separator plugins (called when SCIP copies plugins)

Definition at line 93 of file sepa_strongcg.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaStrongcg(), SCIPsepaGetName(), and SEPA_NAME.

◆ SCIP_DECL_SEPAFREE()

static SCIP_DECL_SEPAFREE ( sepaFreeStrongcg  )
static

destructor of separator to free user data (called when SCIP is exiting)

Definition at line 107 of file sepa_strongcg.c.

References NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaSetData(), and SEPA_NAME.

◆ SCIP_DECL_SEPAINIT()

static SCIP_DECL_SEPAINIT ( sepaInitStrongcg  )
static

initialization method of separator (called after problem was transformed)

Definition at line 126 of file sepa_strongcg.c.

References DEFAULT_RANDSEED, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateRandom(), SCIPsepaGetData(), and TRUE.

◆ SCIP_DECL_SEPAEXIT()

static SCIP_DECL_SEPAEXIT ( sepaExitStrongcg  )
static

deinitialization method of separator (called before transformed problem is freed)

Definition at line 141 of file sepa_strongcg.c.

References NULL, SCIP_OKAY, SCIPfreeRandom(), and SCIPsepaGetData().

◆ SCIP_DECL_SEPAEXECLP()

static SCIP_DECL_SEPAEXECLP ( sepaExeclpStrongcg  )
static

LP solution separation method of separator

Definition at line 155 of file sepa_strongcg.c.

References BOUNDSWITCH, FALSE, MAXAGGRLEN, MAXFRAC, MIN, MINFRAC, NULL, POSTPROCESS, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIP_VARTYPE_CONTINUOUS, SCIPaddPoolCut(), SCIPaddRow(), SCIPaddVarToRow(), SCIPaggrRowCreate(), SCIPaggrRowFree(), SCIPaggrRowSumRows(), SCIPallocBufferArray, SCIPcacheRowExtensions(), SCIPcalcStrongCG(), SCIPcolGetPrimsol(), SCIPcolGetVar(), SCIPcreateEmptyRowSepa(), SCIPdebugMsg, SCIPfeasFrac(), SCIPflushRowExtensions(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetCutEfficacy(), SCIPgetDepth(), SCIPgetLPBasisInd(), SCIPgetLPBInvRow(), SCIPgetLPColsData(), SCIPgetLPRowsData(), SCIPgetLPSolstat(), SCIPgetNCutsFound(), SCIPgetNLPBranchCands(), SCIPgetNLPs(), SCIPgetRowActivity(), SCIPgetRowLPActivity(), SCIPgetRowMaxCoef(), SCIPgetRowMinCoef(), SCIPgetVarsData(), SCIPgetVectorEfficacyNorm(), SCIPinfinity(), SCIPisCutEfficacious(), SCIPisCutNew(), SCIPisEfficacious(), SCIPisLPSolBasic(), SCIPisStopped(), SCIPrandomGetReal(), SCIPreleaseRow(), SCIProwChgRank(), SCIProwGetName(), SCIProwGetNorm(), SCIProwGetRhs(), SCIProwIsIntegral(), SCIProwIsModifiable(), SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaGetNCallsAtNode(), SCIPsepaWasLPDelayed(), SCIPsnprintf(), SCIPsortDownRealInt(), SCIPvarGetName(), SCIPvarGetType(), SEPA_NAME, and USEVBDS.