Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    lpface primal heuristic that searches the optimal LP face inside a sub-MIP

    Author
    Gregor Hendel

    Definition in file heur_lpface.c.

    #include "blockmemshell/memory.h"
    #include "scip/cons_linear.h"
    #include "scip/scipdefplugins.h"
    #include "scip/heur_lpface.h"
    #include "scip/pub_event.h"
    #include "scip/pub_heur.h"
    #include "scip/pub_lp.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"
    #include "scip/pub_sol.h"
    #include "scip/pub_tree.h"
    #include "scip/pub_var.h"
    #include "scip/scip_branch.h"
    #include "scip/scip_cons.h"
    #include "scip/scip_copy.h"
    #include "scip/scip_event.h"
    #include "scip/scip_exact.h"
    #include "scip/scip_general.h"
    #include "scip/scip_heur.h"
    #include "scip/scip_lp.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_message.h"
    #include "scip/scip_nodesel.h"
    #include "scip/scip_numerics.h"
    #include "scip/scip_param.h"
    #include "scip/scip_prob.h"
    #include "scip/scip_sol.h"
    #include "scip/scip_solve.h"
    #include "scip/scip_solvingstats.h"
    #include "scip/scip_timing.h"
    #include "scip/scip_tree.h"
    #include "scip/scip_var.h"
    #include <string.h>

    Go to the source code of this file.

    Data Structures

    struct  SubscipData
     

    Macros

    #define HEUR_NAME   "lpface"
     
    #define HEUR_DESC   "LNS heuristic that searches the optimal LP face inside a sub-MIP"
     
    #define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_LNS
     
    #define HEUR_PRIORITY   -1104010
     
    #define HEUR_FREQ   15
     
    #define HEUR_FREQOFS   0
     
    #define HEUR_MAXDEPTH   -1
     
    #define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPNODE
     
    #define HEUR_USESSUBSCIP   TRUE
     
    #define DEFAULT_MAXNODES   5000LL
     
    #define DEFAULT_MINNODES   50LL
     
    #define DEFAULT_MINFIXINGRATE   0.1
     
    #define DEFAULT_NODESOFS   200LL
     
    #define DEFAULT_NODESQUOT   0.1
     
    #define DEFAULT_LPLIMFAC   2.0
     
    #define DEFAULT_USELPROWS   TRUE
     
    #define DEFAULT_COPYCUTS   TRUE
     
    #define DEFAULT_DUALBASISEQUATIONS   FALSE
     
    #define DEFAULT_KEEPSUBSCIP   FALSE
     
    #define DEFAULT_MINPATHLEN   5
     
    #define EVENTHDLR_NAME   "Lpface"
     
    #define EVENTHDLR_DESC   "LP event handler for " HEUR_NAME " heuristic"
     
    #define heurExitLpface   NULL
     

    Typedefs

    typedef struct SubscipData SUBSCIPDATA
     

    Functions

    static SCIP_RETCODE determineVariableFixings (SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_VAR **fixvars, SCIP_Real *fixvals, int *nfixvars, SCIP_Bool *success)
     
    static SCIP_RETCODE createRows (SCIP *scip, SCIP *subscip, SCIP_VAR **subvars, SCIP_Bool dualbasisequations)
     
    static SCIP_RETCODE setupSubproblem (SCIP *scip, SCIP *subscip, SCIP_VAR **subvars, SCIP_HEURDATA *heurdata)
     
    static void updateFailureStatistic (SCIP *scip, SCIP_HEURDATA *heurdata)
     
    static SCIP_Longint calcNodeLimit (SCIP *scip, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata)
     
    static SCIP_RETCODE setSubscipLimits (SCIP *scip, SCIP *subscip, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, SCIP_Bool *success)
     
    static SCIP_RETCODE setSubscipParameters (SCIP *subscip)
     
    static void subscipdataReset (SUBSCIPDATA *subscipdata)
     
    static SCIP_RETCODE subscipdataFreeSubscip (SCIP *scip, SUBSCIPDATA *subscipdata)
     
    static SCIP_RETCODE subscipdataCopySubscip (SCIP *scip, SUBSCIPDATA *subscipdata, SCIP *subscip, SCIP_VAR **subvars, int nvars)
     
    static SCIP_RETCODE changeSubvariableObjective (SCIP *scip, SCIP *subscip, SCIP_VAR *var, SCIP_VAR *subvar, SCIP_HEURDATA *heurdata)
     
    static SCIP_DECL_EVENTEXEC (eventExecLpface)
     
    static SCIP_RETCODE setupSubscipLpface (SCIP *scip, SCIP *subscip, SCIP_HEURDATA *heurdata, SCIP_VAR **subvars, SCIP_VAR **vars, SCIP_VAR **fixvars, SCIP_Real *fixvals, int nfixvars, int nvars)
     
    static SCIP_RETCODE solveSubscipLpface (SCIP *scip, SCIP *subscip, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, SCIP_VAR **subvars, SCIP_RESULT *result, SCIP_Real focusnodelb, SCIP_Bool *keepthisscip)
     
    static SCIP_DECL_HEURCOPY (heurCopyLpface)
     
    static SCIP_DECL_HEURFREE (heurFreeLpface)
     
    static SCIP_DECL_HEURINIT (heurInitLpface)
     
    static SCIP_DECL_HEURINITSOL (heurInitsolLpface)
     
    static SCIP_DECL_HEUREXITSOL (heurExitsolLpface)
     
    static SCIP_DECL_HEUREXEC (heurExecLpface)
     
    SCIP_RETCODE SCIPincludeHeurLpface (SCIP *scip)
     

    Macro Definition Documentation

    ◆ HEUR_NAME

    #define HEUR_NAME   "lpface"

    Definition at line 67 of file heur_lpface.c.

    ◆ HEUR_DESC

    #define HEUR_DESC   "LNS heuristic that searches the optimal LP face inside a sub-MIP"

    Definition at line 68 of file heur_lpface.c.

    ◆ HEUR_DISPCHAR

    #define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_LNS

    Definition at line 69 of file heur_lpface.c.

    ◆ HEUR_PRIORITY

    #define HEUR_PRIORITY   -1104010

    Definition at line 70 of file heur_lpface.c.

    ◆ HEUR_FREQ

    #define HEUR_FREQ   15

    Definition at line 71 of file heur_lpface.c.

    ◆ HEUR_FREQOFS

    #define HEUR_FREQOFS   0

    Definition at line 72 of file heur_lpface.c.

    ◆ HEUR_MAXDEPTH

    #define HEUR_MAXDEPTH   -1

    Definition at line 73 of file heur_lpface.c.

    ◆ HEUR_TIMING

    #define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPNODE

    Definition at line 74 of file heur_lpface.c.

    ◆ HEUR_USESSUBSCIP

    #define HEUR_USESSUBSCIP   TRUE

    does the heuristic use a secondary SCIP instance?

    Definition at line 75 of file heur_lpface.c.

    ◆ DEFAULT_MAXNODES

    #define DEFAULT_MAXNODES   5000LL

    maximum number of nodes to regard in the subproblem

    Definition at line 77 of file heur_lpface.c.

    ◆ DEFAULT_MINNODES

    #define DEFAULT_MINNODES   50LL

    minimum number of nodes to regard in the subproblem

    Definition at line 78 of file heur_lpface.c.

    ◆ DEFAULT_MINFIXINGRATE

    #define DEFAULT_MINFIXINGRATE   0.1

    required percentage of fixed integer variables in sub-MIP to run

    Definition at line 79 of file heur_lpface.c.

    ◆ DEFAULT_NODESOFS

    #define DEFAULT_NODESOFS   200LL

    number of nodes added to the contingent of the total nodes

    Definition at line 80 of file heur_lpface.c.

    ◆ DEFAULT_NODESQUOT

    #define DEFAULT_NODESQUOT   0.1

    subproblem nodes in relation to nodes of the original problem

    Definition at line 81 of file heur_lpface.c.

    ◆ DEFAULT_LPLIMFAC

    #define DEFAULT_LPLIMFAC   2.0

    factor by which the limit on the number of LP depends on the node limit

    Definition at line 82 of file heur_lpface.c.

    ◆ DEFAULT_USELPROWS

    #define DEFAULT_USELPROWS   TRUE

    should subproblem be created out of the rows in the LP rows, otherwise, the copy constructors of the constraints handlers are used

    Definition at line 84 of file heur_lpface.c.

    ◆ DEFAULT_COPYCUTS

    #define DEFAULT_COPYCUTS   TRUE

    if uselprows == FALSE, should all active cuts from cutpool be copied to constraints in subproblem?

    Definition at line 86 of file heur_lpface.c.

    ◆ DEFAULT_DUALBASISEQUATIONS

    #define DEFAULT_DUALBASISEQUATIONS   FALSE

    should the dually nonbasic rows be turned into equations?

    Definition at line 87 of file heur_lpface.c.

    ◆ DEFAULT_KEEPSUBSCIP

    #define DEFAULT_KEEPSUBSCIP   FALSE

    should the heuristic continue solving the same sub-SCIP?

    Definition at line 88 of file heur_lpface.c.

    ◆ DEFAULT_MINPATHLEN

    #define DEFAULT_MINPATHLEN   5

    the minimum active search tree path length along which the lower bound hasn't changed before heuristic becomes active

    Definition at line 90 of file heur_lpface.c.

    ◆ EVENTHDLR_NAME

    #define EVENTHDLR_NAME   "Lpface"

    Definition at line 92 of file heur_lpface.c.

    ◆ EVENTHDLR_DESC

    #define EVENTHDLR_DESC   "LP event handler for " HEUR_NAME " heuristic"

    Definition at line 93 of file heur_lpface.c.

    ◆ heurExitLpface

    #define heurExitLpface   NULL

    Definition at line 1076 of file heur_lpface.c.

    Typedef Documentation

    ◆ SUBSCIPDATA

    typedef struct SubscipData SUBSCIPDATA

    Definition at line 107 of file heur_lpface.c.

    Function Documentation

    ◆ determineVariableFixings()

    static SCIP_RETCODE determineVariableFixings ( SCIP scip,
    SCIP_HEURDATA heurdata,
    SCIP_VAR **  fixvars,
    SCIP_Real fixvals,
    int *  nfixvars,
    SCIP_Bool success 
    )
    static

    determine variable fixings for sub-SCIP based on reduced costs

    Parameters
    scipSCIP data structure
    heurdataprimal heuristic data
    fixvarsbuffer to store variables that should be fixed
    fixvalsbuffer to store corresponding fixing values
    nfixvarspointer to store number of variables that should be fixed
    successpointer to store whether enough integer variables were fixed

    Definition at line 147 of file heur_lpface.c.

    References MAX, NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPdebugMsg, SCIPgetColRedcost(), SCIPgetSolVal(), SCIPgetVarsData(), SCIPisDualfeasZero(), SCIPisFeasEQ(), SCIPisInfinity(), SCIPvarGetCol(), SCIPvarGetLbGlobal(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsIntegral(), and SCIPvarIsRelaxationOnly().

    Referenced by SCIP_DECL_HEUREXEC().

    ◆ createRows()

    static SCIP_RETCODE createRows ( SCIP scip,
    SCIP subscip,
    SCIP_VAR **  subvars,
    SCIP_Bool  dualbasisequations 
    )
    static

    creates the rows of the subproblem

    Parameters
    sciporiginal SCIP data structure
    subscipSCIP data structure for the subproblem
    subvarsthe variables of the subproblem
    dualbasisequationsshould the dually nonbasic rows be turned into equations?

    Definition at line 237 of file heur_lpface.c.

    References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPallocBufferArray, SCIPcolGetVar(), SCIPcreateConsLinear(), SCIPfreeBufferArray, SCIPgetLPRowsData(), SCIPgetRowActivity(), SCIPisDualfeasZero(), SCIPisFeasEQ(), SCIPisInfinity(), SCIPreleaseCons(), SCIProwGetCols(), SCIProwGetConstant(), SCIProwGetDualsol(), SCIProwGetLhs(), SCIProwGetName(), SCIProwGetNNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIProwIsLocal(), SCIPvarGetProbindex(), and TRUE.

    Referenced by setupSubproblem().

    ◆ setupSubproblem()

    static SCIP_RETCODE setupSubproblem ( SCIP scip,
    SCIP subscip,
    SCIP_VAR **  subvars,
    SCIP_HEURDATA heurdata 
    )
    static

    create the LP face subproblem constraints

    Parameters
    sciporiginal SCIP data structure
    subscipSCIP data structure for the subproblem
    subvarsthe variables of the subproblem
    heurdataprimal heuristic data

    Definition at line 332 of file heur_lpface.c.

    References createRows(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCoefLinear(), SCIPaddCons(), SCIPcreateConsLinear(), SCIPgetLowerbound(), SCIPgetNObjVars(), SCIPgetNVars(), SCIPgetVars(), SCIPisZero(), SCIPreleaseCons(), SCIPvarGetObj(), and TRUE.

    Referenced by setupSubscipLpface().

    ◆ updateFailureStatistic()

    static void updateFailureStatistic ( SCIP scip,
    SCIP_HEURDATA heurdata 
    )
    static

    updates heurdata after an unsuccessful run of lpface

    Parameters
    sciporiginal SCIP data structure
    heurdataprimal heuristic data

    Definition at line 381 of file heur_lpface.c.

    References SCIP_LONGINT_MAX, and SCIPgetNNodes().

    Referenced by solveSubscipLpface().

    ◆ calcNodeLimit()

    static SCIP_Longint calcNodeLimit ( SCIP scip,
    SCIP_HEUR heur,
    SCIP_HEURDATA heurdata 
    )
    static

    calculate a node limit based on node limiting parameters of the heuristic

    Parameters
    scip(original) SCIP data structure
    heurLP face heuristic
    heurdataprimal heuristic data

    Definition at line 395 of file heur_lpface.c.

    References MIN, NULL, SCIP_Longint, SCIPgetNNodes(), and SCIPheurGetNCalls().

    Referenced by SCIP_DECL_HEUREXEC(), and setSubscipLimits().

    ◆ setSubscipLimits()

    static SCIP_RETCODE setSubscipLimits ( SCIP scip,
    SCIP subscip,
    SCIP_HEUR heur,
    SCIP_HEURDATA heurdata,
    SCIP_Bool success 
    )
    static

    sets node, time, and memory limit according to the parameter settings of the heuristic

    Parameters
    sciporiginal SCIP data structure
    subscipdata structure of the sub-problem
    heurLP face heuristic
    heurdataheuristic data structure
    successdid we successfully set all parameters up?

    Definition at line 427 of file heur_lpface.c.

    References calcNodeLimit(), FALSE, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPgetBoolParam(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNNodes(), SCIPgetRealParam(), SCIPgetSolvingTime(), SCIPisInfinity(), SCIPsetLongintParam(), SCIPsetRealParam(), and TRUE.

    Referenced by solveSubscipLpface().

    ◆ setSubscipParameters()

    static SCIP_RETCODE setSubscipParameters ( SCIP subscip)
    static

    sets all one-time parameter settings like search strategy, but no limits

    Parameters
    subscipdata structure of the sub-problem

    Definition at line 489 of file heur_lpface.c.

    References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIPfindBranchrule(), SCIPfindNodesel(), SCIPisParamFixed(), SCIPsetBoolParam(), SCIPsetCharParam(), SCIPsetIntParam(), SCIPsetPresolving(), SCIPsetSeparating(), SCIPsetSubscipsOff(), and TRUE.

    Referenced by setupSubscipLpface().

    ◆ subscipdataReset()

    static void subscipdataReset ( SUBSCIPDATA subscipdata)
    static

    reset the sub-SCIP data to its default values

    Parameters
    subscipdatadata structure of the sub-problem

    Definition at line 545 of file heur_lpface.c.

    References SubscipData::nsubvars, NULL, SubscipData::objbound, SCIP_INVALID, SubscipData::subscip, and SubscipData::subvars.

    Referenced by SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINITSOL(), and subscipdataFreeSubscip().

    ◆ subscipdataFreeSubscip()

    static SCIP_RETCODE subscipdataFreeSubscip ( SCIP scip,
    SUBSCIPDATA subscipdata 
    )
    static

    free the stored sub-SCIP information

    Parameters
    sciporiginal SCIP data structure
    subscipdatadata structure of the sub-problem

    Definition at line 557 of file heur_lpface.c.

    References SubscipData::nsubvars, NULL, SCIP_CALL, SCIP_OKAY, SCIPfree(), SCIPfreeBlockMemoryArray, SubscipData::subscip, subscipdataReset(), and SubscipData::subvars.

    Referenced by SCIP_DECL_HEUREXEC(), and SCIP_DECL_HEUREXITSOL().

    ◆ subscipdataCopySubscip()

    static SCIP_RETCODE subscipdataCopySubscip ( SCIP scip,
    SUBSCIPDATA subscipdata,
    SCIP subscip,
    SCIP_VAR **  subvars,
    int  nvars 
    )
    static

    store the sub-SCIP to the data structure

    Parameters
    sciporiginal SCIP data structure
    subscipdatadata structure of the sub-problem
    subscipsub scip data structure to keep
    subvarssub scip variable array in the order of the main SCIP variables
    nvarsnumber of sub SCIP variables

    Definition at line 586 of file heur_lpface.c.

    References SubscipData::nsubvars, NULL, SubscipData::objbound, SCIP_CALL, SCIP_OKAY, SCIPduplicateBlockMemoryArray, SCIPgetCurrentNode(), SCIPgetNodeLowerbound(), SCIPgetNVars(), SubscipData::subscip, and SubscipData::subvars.

    Referenced by SCIP_DECL_HEUREXEC().

    ◆ changeSubvariableObjective()

    static SCIP_RETCODE changeSubvariableObjective ( SCIP scip,
    SCIP subscip,
    SCIP_VAR var,
    SCIP_VAR subvar,
    SCIP_HEURDATA heurdata 
    )
    static

    create the objective function based on the user selection

    Parameters
    scipSCIP data structure
    subscipsub-SCIP data structure
    varSCIP variable
    subvarsub-SCIP variable whose objective coefficient is changed
    heurdataheuristic data structure to control how the objective is changed

    Definition at line 644 of file heur_lpface.c.

    References SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPchgVarObj(), SCIPfrac(), SCIPgetVarAvgInferences(), SCIPvarGetLPSol(), SCIPvarGetObj(), and SCIPvarGetRootSol().

    Referenced by setupSubscipLpface().

    ◆ SCIP_DECL_EVENTEXEC()

    static SCIP_DECL_EVENTEXEC ( eventExecLpface  )
    static

    execution callback of the event handler for Lpface sub-SCIP

    we interrupt the solution process if we hit the LP iteration limit per node

    Definition at line 709 of file heur_lpface.c.

    References EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_LPSOLVED, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIPdebugMsg, SCIPeventGetType(), SCIPeventhdlrGetName(), SCIPgetNLPs(), and SCIPinterruptSolve().

    ◆ setupSubscipLpface()

    static SCIP_RETCODE setupSubscipLpface ( SCIP scip,
    SCIP subscip,
    SCIP_HEURDATA heurdata,
    SCIP_VAR **  subvars,
    SCIP_VAR **  vars,
    SCIP_VAR **  fixvars,
    SCIP_Real fixvals,
    int  nfixvars,
    int  nvars 
    )
    static

    setup and solve the subproblem and catch the return code

    Parameters
    scipSCIP data structure
    subscipsub-SCIP data structure
    heurdataheuristics data
    subvarssubproblem's variables
    varsoriginal problem's variables
    fixvarsvariables that should be fixed
    fixvalscorresponding fixing values
    nfixvarsnumber of variables that should be fixed
    nvarsnumber of original problem's variables

    Definition at line 734 of file heur_lpface.c.

    References changeSubvariableObjective(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPblkmem(), SCIPcopyConsCompression(), SCIPcopyCuts(), SCIPcopyParamSettings(), SCIPcopyPlugins(), SCIPcopyVars(), SCIPcreateProbBasic(), SCIPenableExactSolving(), SCIPgetProbName(), SCIPgetSubscipDepth(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPisExact(), SCIPsetIntParam(), SCIPsetSubscipDepth(), SCIPsnprintf(), setSubscipParameters(), setupSubproblem(), and TRUE.

    Referenced by SCIP_DECL_HEUREXEC().

    ◆ solveSubscipLpface()

    static SCIP_RETCODE solveSubscipLpface ( SCIP scip,
    SCIP subscip,
    SCIP_HEUR heur,
    SCIP_HEURDATA heurdata,
    SCIP_VAR **  subvars,
    SCIP_RESULT result,
    SCIP_Real  focusnodelb,
    SCIP_Bool keepthisscip 
    )
    static

    setup and solve the subproblem and catch the return code

    Parameters
    scipSCIP data structure
    subscipsub-SCIP data structure
    heurmutation heuristic
    heurdataheuristics data
    subvarssubproblem's variables
    resultpointer to store the result
    focusnodelblower bound of the focus node
    keepthisscipshould the subscip be kept or deleted?

    Definition at line 825 of file heur_lpface.c.

    References EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, HEUR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_CALL_ABORT, SCIP_EVENTTYPE_LPSOLVED, SCIP_FOUNDSOL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_STATUS_INFEASIBLE, SCIPcatchEvent(), SCIPdebug, SCIPdebugMsg, SCIPerrorMessage, SCIPgetBestSol(), SCIPgetNLPIterations(), SCIPgetNNodes(), SCIPgetNSols(), SCIPgetPresolvingTime(), SCIPgetStatus(), SCIPincludeEventhdlrBasic(), SCIPinfoMessage(), SCIPprintStatistics(), SCIPsolGetIndex(), SCIPsolve(), SCIPtransformProb(), SCIPtranslateSubSols(), SCIPwriteOrigProblem(), SCIPwriteParams(), setSubscipLimits(), TRUE, and updateFailureStatistic().

    Referenced by SCIP_DECL_HEUREXEC().

    ◆ SCIP_DECL_HEURCOPY()

    static SCIP_DECL_HEURCOPY ( heurCopyLpface  )
    static

    copy method for primal heuristic plugins (called when SCIP copies plugins)

    Definition at line 945 of file heur_lpface.c.

    References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurLpface().

    ◆ SCIP_DECL_HEURFREE()

    static SCIP_DECL_HEURFREE ( heurFreeLpface  )
    static

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

    Definition at line 959 of file heur_lpface.c.

    References NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), and SCIPheurSetData().

    ◆ SCIP_DECL_HEURINIT()

    static SCIP_DECL_HEURINIT ( heurInitLpface  )
    static

    initialization method of primal heuristic (called after problem was transformed)

    Definition at line 979 of file heur_lpface.c.

    References NULL, SCIP_OKAY, SCIP_STATUS_UNKNOWN, and SCIPheurGetData().

    ◆ SCIP_DECL_HEURINITSOL()

    static SCIP_DECL_HEURINITSOL ( heurInitsolLpface  )
    static

    solving process initialization method of primal heuristic (called when branch and bound process is about to begin)

    Definition at line 1005 of file heur_lpface.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPheurGetData(), SCIPinfinity(), and subscipdataReset().

    ◆ SCIP_DECL_HEUREXITSOL()

    static SCIP_DECL_HEUREXITSOL ( heurExitsolLpface  )
    static

    solving process deinitialization method of primal heuristic (called before branch and bound process is exiting)

    Definition at line 1030 of file heur_lpface.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), and subscipdataFreeSubscip().

    ◆ SCIP_DECL_HEUREXEC()