Detailed Description
master separator
Definition in file sepa_master.c.
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "scip/scip.h"
#include "scip/lp.h"
#include "sepa_master.h"
#include "gcg.h"
#include "relax_gcg.h"
#include "pricer_gcg.h"
Go to the source code of this file.
Data Structures | |
struct | SCIP_SepaData |
Macros | |
#define | SEPA_NAME "master" |
#define | SEPA_DESC "separator for separating cuts in the original problem, called in the master" |
#define | SEPA_PRIORITY 1000 |
#define | SEPA_FREQ 1 |
#define | SEPA_MAXBOUNDDIST 1.0 |
#define | SEPA_USESSUBSCIP FALSE |
#define | SEPA_DELAY FALSE |
#define | STARTMAXCUTS 50 |
#define | sepaCopyMaster NULL |
#define | sepaInitMaster NULL |
#define | sepaInitsolMaster NULL |
#define | sepaExecsolMaster NULL |
Functions | |
static SCIP_RETCODE | ensureSizeCuts (SCIP *scip, SCIP_SEPADATA *sepadata, int size) |
static | SCIP_DECL_SEPAFREE (sepaFreeMaster) |
static | SCIP_DECL_SEPAEXIT (sepaExitMaster) |
static | SCIP_DECL_SEPAEXITSOL (sepaExitsolMaster) |
static | SCIP_DECL_SEPAEXECLP (sepaExeclpMaster) |
SCIP_RETCODE | SCIPincludeSepaMaster (SCIP *scip) |
SCIP_ROW ** | GCGsepaGetOrigcuts (SCIP *scip) |
int | GCGsepaGetNCuts (SCIP *scip) |
SCIP_ROW ** | GCGsepaGetMastercuts (SCIP *scip) |
SCIP_RETCODE | GCGsepaAddMastercuts (SCIP *scip, SCIP_ROW *origcut, SCIP_ROW *mastercut) |
Macro Definition Documentation
◆ SEPA_NAME
#define SEPA_NAME "master" |
Definition at line 47 of file sepa_master.c.
◆ SEPA_DESC
#define SEPA_DESC "separator for separating cuts in the original problem, called in the master" |
Definition at line 48 of file sepa_master.c.
◆ SEPA_PRIORITY
#define SEPA_PRIORITY 1000 |
Definition at line 49 of file sepa_master.c.
◆ SEPA_FREQ
#define SEPA_FREQ 1 |
Definition at line 51 of file sepa_master.c.
◆ SEPA_MAXBOUNDDIST
#define SEPA_MAXBOUNDDIST 1.0 |
Definition at line 52 of file sepa_master.c.
◆ SEPA_USESSUBSCIP
#define SEPA_USESSUBSCIP FALSE |
Definition at line 53 of file sepa_master.c.
◆ SEPA_DELAY
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 54 of file sepa_master.c.
◆ STARTMAXCUTS
#define STARTMAXCUTS 50 |
maximal cuts used at the beginning
Definition at line 56 of file sepa_master.c.
◆ sepaCopyMaster
#define sepaCopyMaster NULL |
Definition at line 111 of file sepa_master.c.
◆ sepaInitMaster
#define sepaInitMaster NULL |
Definition at line 112 of file sepa_master.c.
◆ sepaInitsolMaster
#define sepaInitsolMaster NULL |
Definition at line 113 of file sepa_master.c.
◆ sepaExecsolMaster
#define sepaExecsolMaster NULL |
Definition at line 114 of file sepa_master.c.
Function Documentation
◆ ensureSizeCuts()
|
static |
allocates enough memory to hold more cuts
- Parameters
-
scip SCIP data structure sepadata separator data data structure size new size of cut arrays
Definition at line 82 of file sepa_master.c.
Referenced by GCGsepaAddMastercuts(), and SCIP_DECL_SEPAEXECLP().
◆ SCIP_DECL_SEPAFREE()
|
static |
destructor of separator to free user data (called when SCIP is exiting)
Definition at line 118 of file sepa_master.c.
◆ SCIP_DECL_SEPAEXIT()
|
static |
deinitialization method of separator (called before transformed problem is freed)
Definition at line 134 of file sepa_master.c.
References GCGmasterGetOrigprob().
◆ SCIP_DECL_SEPAEXITSOL()
|
static |
solving process deinitialization method of separator (called before branch and bound process data is freed)
Definition at line 158 of file sepa_master.c.
References GCGmasterGetOrigprob().
◆ SCIP_DECL_SEPAEXECLP()
|
static |
LP solution separation method of separator
Definition at line 178 of file sepa_master.c.
References ensureSizeCuts(), GCGgetNPricingprobs(), GCGgetNRelPricingprobs(), GCGmasterGetOrigprob(), GCGrelaxGetCurrentOrigSol(), GCGrelaxIsOrigSolFeasible(), GCGrelaxUpdateCurrentSol(), and GCGtransformOrigvalsToMastervals().
◆ SCIPincludeSepaMaster()
SCIP_RETCODE SCIPincludeSepaMaster | ( | SCIP * | scip | ) |
creates the master separator and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 368 of file sepa_master.c.
References GCGmasterGetOrigprob(), SEPA_DELAY, SEPA_DESC, SEPA_FREQ, SEPA_MAXBOUNDDIST, SEPA_NAME, SEPA_PRIORITY, SEPA_USESSUBSCIP, sepaCopyMaster, sepaExecsolMaster, sepaInitMaster, sepaInitsolMaster, and STARTMAXCUTS.
Referenced by GCGincludeMasterPlugins().
◆ GCGsepaGetOrigcuts()
SCIP_ROW** GCGsepaGetOrigcuts | ( | SCIP * | scip | ) |
returns the array of original cuts saved in the separator data
- Parameters
-
scip SCIP data structure
Definition at line 400 of file sepa_master.c.
References SEPA_NAME.
Referenced by ObjPricerGcg::computeColMastercuts(), ObjPricerGcg::getStabilizedDualObjectiveValue(), SCIP_DECL_SEPAEXECLP(), and ObjPricerGcg::setPricingObjs().
◆ GCGsepaGetNCuts()
int GCGsepaGetNCuts | ( | SCIP * | scip | ) |
returns the number of cuts saved in the separator data
- Parameters
-
scip SCIP data structure
Definition at line 419 of file sepa_master.c.
References SEPA_NAME.
Referenced by ObjPricerGcg::computeColMastercuts(), ObjPricerGcg::getStabilizedDualObjectiveValue(), gcg::Stabilization::rowGetDual(), SCIP_DECL_PRICERREDCOST(), SCIP_DECL_SEPAEXECLP(), ObjPricerGcg::setPricingObjs(), and gcg::Stabilization::updateStabilityCenter().
◆ GCGsepaGetMastercuts()
SCIP_ROW** GCGsepaGetMastercuts | ( | SCIP * | scip | ) |
returns the array of master cuts saved in the separator data
- Parameters
-
scip SCIP data structure
Definition at line 438 of file sepa_master.c.
References SEPA_NAME.
Referenced by ObjPricerGcg::computeColMastercuts(), GCGcolComputeDualObjPara(), ObjPricerGcg::getStabilizedDualObjectiveValue(), gcg::Stabilization::rowGetDual(), and ObjPricerGcg::setPricingObjs().
◆ GCGsepaAddMastercuts()
SCIP_RETCODE GCGsepaAddMastercuts | ( | SCIP * | scip, |
SCIP_ROW * | origcut, | ||
SCIP_ROW * | mastercut | ||
) |
adds given original and master cut to master separator data
- Parameters
-
scip SCIP data structure origcut pointer to orginal cut mastercut pointer to master cut
Definition at line 457 of file sepa_master.c.
References ensureSizeCuts(), and SEPA_NAME.
Referenced by SCIP_DECL_SEPAEXECLP().