Scippy

SCIP

Solving Constraint Integer Programs

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 51 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_PRIORITY

#define SEPA_PRIORITY   -2000

Definition at line 52 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_FREQ

#define SEPA_FREQ   10

Definition at line 53 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ SEPA_MAXBOUNDDIST

#define SEPA_MAXBOUNDDIST   1.0

Definition at line 54 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 55 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 56 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 58 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 59 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 60 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 61 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 62 of file sepa_strongcg.c.

Referenced by SCIPincludeSepaStrongcg().

◆ DEFAULT_RANDSEED

#define DEFAULT_RANDSEED   54

initial random seed

Definition at line 63 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAINIT().

◆ SEPARATEROWS

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

Definition at line 65 of file sepa_strongcg.c.

◆ BOUNDSWITCH

#define BOUNDSWITCH   0.9999

Definition at line 67 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ POSTPROCESS

#define POSTPROCESS   TRUE

Definition at line 68 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ USEVBDS

#define USEVBDS   TRUE

Definition at line 69 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ MINFRAC

#define MINFRAC   0.05

Definition at line 70 of file sepa_strongcg.c.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ MAXFRAC

#define MAXFRAC   0.95

Definition at line 71 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 73 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 94 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 108 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 127 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 142 of file sepa_strongcg.c.

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

◆ SCIP_DECL_SEPAEXECLP()

static SCIP_DECL_SEPAEXECLP ( sepaExeclpStrongcg  )
static