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