Scippy

    SCIP

    Solving Constraint Integer Programs

    primal.h File Reference

    Detailed Description

    internal methods for collecting primal CIP solutions and primal informations

    Author
    Tobias Achterberg

    Definition in file primal.h.

    #include "scip/def.h"
    #include "blockmemshell/memory.h"
    #include "scip/type_retcode.h"
    #include "scip/type_set.h"
    #include "scip/type_event.h"
    #include "scip/type_lp.h"
    #include "scip/type_lpexact.h"
    #include "scip/type_var.h"
    #include "scip/type_prob.h"
    #include "scip/type_sol.h"
    #include "scip/type_primal.h"
    #include "scip/type_tree.h"
    #include "scip/type_reopt.h"
    #include "scip/type_heur.h"
    #include "scip/struct_primal.h"

    Go to the source code of this file.

    Functions

    SCIP_RETCODE SCIPprimalCreate (SCIP_PRIMAL **primal)
     
    SCIP_RETCODE SCIPprimalFree (SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
     
    SCIP_RETCODE SCIPprimalClear (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem)
     
    SCIP_RETCODE SCIPprimalSetCutoffbound (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
     
    SCIP_RETCODE SCIPprimalSetUpperbound (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
     
    SCIP_RETCODE SCIPprimalUpdateObjlimit (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPprimalUpdateObjoffset (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPprimalUpdateObjoffsetExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    void SCIPprimalAddOrigObjoffset (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
     
    void SCIPprimalAddOrigObjoffsetExact (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_RATIONAL *addval)
     
    SCIP_Bool SCIPprimalUpperboundIsSol (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
     
    SCIP_SOLSCIPprimalGetRay (SCIP_PRIMAL *primal)
     
    SCIP_RETCODE SCIPprimalUpdateRay (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
     
    SCIP_RETCODE SCIPprimalAddSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddSolFree (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddOrigSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddOrigSolFree (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL **sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddCurrentSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalTrySol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalTrySolFree (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalTryCurrentSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalSolCreated (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
     
    void SCIPprimalSolFreed (SCIP_PRIMAL *primal, SCIP_SOL *sol)
     
    void SCIPprimalUpdateVarObj (SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
     
    SCIP_RETCODE SCIPprimalRetransformSolutions (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPprimalTransformSol (SCIP_PRIMAL *primal, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Real *solvals, SCIP_Bool *solvalset, int solvalssize, SCIP_Bool *added)
     
    SCIP_Bool SCIPprimalUpdateViolations (SCIP_PRIMAL *primal)
     
    void SCIPprimalSetUpdateViolations (SCIP_PRIMAL *primal, SCIP_Bool updateviolations)
     
    SCIP_RETCODE SCIPprimalTrySolFreeExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddSolFreeExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
     

    Function Documentation

    ◆ SCIPprimalCreate()

    SCIP_RETCODE SCIPprimalCreate ( SCIP_PRIMAL **  primal)

    creates primal data

    Parameters
    primalpointer to primal data

    Definition at line 133 of file primal.c.

    References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, and TRUE.

    Referenced by copyProb(), SCIPcreateProb(), and SCIPtransformProb().

    ◆ SCIPprimalFree()

    SCIP_RETCODE SCIPprimalFree ( SCIP_PRIMAL **  primal,
    BMS_BLKMEM blkmem 
    )

    frees primal data

    Parameters
    primalpointer to primal data
    blkmemblock memory

    Definition at line 165 of file primal.c.

    References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPprimalClear(), and SCIPrationalFreeBlock().

    Referenced by freeTransform(), freeTransforming(), and SCIPfreeProb().

    ◆ SCIPprimalClear()

    ◆ SCIPprimalSetCutoffbound()

    SCIP_RETCODE SCIPprimalSetCutoffbound ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_Real  cutoffbound,
    SCIP_Bool  useforobjlimit 
    )

    sets the cutoff bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    cutoffboundnew cutoff bound
    useforobjlimitshould the cutoff bound be used to update the objective limit, if better?

    Definition at line 348 of file primal.c.

    References SCIP_Primal::cutoffbound, NULL, primalSetCutoffbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobSetObjlim(), SCIPsetDebugMsg, and SCIPsetInfinity().

    Referenced by initSolve(), and SCIPupdateCutoffbound().

    ◆ SCIPprimalSetUpperbound()

    SCIP_RETCODE SCIPprimalSetUpperbound ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB prob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_Real  upperbound 
    )

    sets upper bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    probtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    upperboundnew upper bound

    Definition at line 518 of file primal.c.

    References NULL, primalSetUpperbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetInfinity(), and SCIP_Primal::upperbound.

    Referenced by primalAddSol(), and SCIPprimalRetransformSolutions().

    ◆ SCIPprimalUpdateObjlimit()

    SCIP_RETCODE SCIPprimalUpdateObjlimit ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 550 of file primal.c.

    References MIN, NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPprobGetObjlim(), SCIPprobInternObjval(), and SCIPsetInfinity().

    Referenced by initSolve(), presolve(), SCIPsetObjlimit(), and SCIPtransformProb().

    ◆ SCIPprimalUpdateObjoffset()

    SCIP_RETCODE SCIPprimalUpdateObjoffset ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtranformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 590 of file primal.c.

    References MIN, SCIP_Primal::nsols, NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPsetGetStage(), SCIPsetInfinity(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().

    Referenced by probCheckObjIntegralExact(), SCIPaddObjoffset(), SCIPprobCheckObjIntegral(), SCIPprobScaleObj(), and SCIPvarAddObj().

    ◆ SCIPprimalUpdateObjoffsetExact()

    SCIP_RETCODE SCIPprimalUpdateObjoffsetExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtranformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 646 of file primal.c.

    References SCIP_Primal::nsols, NULL, primalSetCutoffboundExact(), primalSetUpperboundExact(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjvalExact(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalMin(), SCIPrationalSetInfinity(), SCIPrationalSetReal(), SCIPsetGetStage(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolIsExact(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().

    Referenced by probScaleObjExact(), and SCIPvarAddObjExact().

    ◆ SCIPprimalAddOrigObjoffset()

    void SCIPprimalAddOrigObjoffset ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_Real  addval 
    )

    adds additional objective offset in origanal space to all existing solution (in original space)

    adds additional objective offset in original space to all existing solution (in original space)

    Parameters
    primalprimal data
    setglobal SCIP settings
    addvaladditional objective offset in original space

    Definition at line 719 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjval(), and SCIP_Primal::sols.

    Referenced by SCIPaddOrigObjoffset().

    ◆ SCIPprimalAddOrigObjoffsetExact()

    void SCIPprimalAddOrigObjoffsetExact ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_RATIONAL addval 
    )

    adds additional objective offset in original space to all existing solution (in original space)

    Parameters
    primalprimal data
    setglobal SCIP settings
    addvaladditional objective offset in original space

    Definition at line 752 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjvalExact(), and SCIP_Primal::sols.

    Referenced by SCIPaddOrigObjoffsetExact().

    ◆ SCIPprimalUpperboundIsSol()

    SCIP_Bool SCIPprimalUpperboundIsSol ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_PROB transprob,
    SCIP_PROB origprob 
    )

    returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound was set from the user as objective limit

    Parameters
    primalprimal data
    setglobal SCIP settings
    transprobtranformed problem data
    origproboriginal problem data

    Definition at line 787 of file primal.c.

    References SCIP_Primal::nsols, NULL, SCIPsetIsEQ(), SCIPsolGetObj(), SCIP_Primal::sols, and SCIP_Primal::upperbound.

    Referenced by SCIPisPrimalboundSol().

    ◆ SCIPprimalGetRay()

    SCIP_SOL * SCIPprimalGetRay ( SCIP_PRIMAL primal)

    returns the primal ray thats proves unboundedness

    Parameters
    primalprimal data

    Definition at line 800 of file primal.c.

    References NULL, and SCIP_Primal::primalray.

    ◆ SCIPprimalUpdateRay()

    SCIP_RETCODE SCIPprimalUpdateRay ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_SOL primalray,
    BMS_BLKMEM blkmem 
    )

    update the primal ray thats proves unboundedness

    Parameters
    primalprimal data
    setglobal SCIP settings
    statdynamic SCIP statistics
    primalraythe new primal ray
    blkmemblock memory

    Definition at line 810 of file primal.c.

    References NULL, SCIP_Primal::primalray, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), and SCIPsolFree().

    Referenced by SCIPupdatePrimalRay().

    ◆ SCIPprimalAddSol()

    SCIP_RETCODE SCIPprimalAddSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution storage by copying it

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solprimal CIP solution
    storedstores whether given solution was good enough to keep

    Definition at line 1523 of file primal.c.

    References FALSE, SCIP_Lp::lpexact, SCIP_Primal::nsols, NULL, primalAddSol(), primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsetIsLE(), SCIPsolCopy(), SCIPsolGetObj(), SCIPsolIsExact(), SCIPsolIsPartial(), solOfInterest(), SCIP_Primal::sols, and TRUE.

    Referenced by SCIPaddSol(), SCIPprimalAddCurrentSol(), SCIPtransformProb(), and SCIPtrySol().

    ◆ SCIPprimalAddSolFree()

    SCIP_RETCODE SCIPprimalAddSolFree ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution storage, frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solpointer to primal CIP solution; is cleared in function call
    storedstores whether given solution was good enough to keep

    Definition at line 1599 of file primal.c.

    References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), solOfInterest(), and TRUE.

    Referenced by addCurrentSolution(), primalAddSolExact(), SCIPaddSolFree(), and SCIPtrySolFree().

    ◆ SCIPprimalAddOrigSol()

    SCIP_RETCODE SCIPprimalAddOrigSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_SOL sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution candidate storage of original problem space

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    proboriginal problem data
    solprimal CIP solution; is cleared in function call
    storedstores whether given solution was good enough to keep

    Definition at line 1654 of file primal.c.

    References FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), SCIPsolIsOriginal(), SCIPsolIsPartial(), and TRUE.

    Referenced by freeTransform(), and SCIPaddSol().

    ◆ SCIPprimalAddOrigSolFree()

    SCIP_RETCODE SCIPprimalAddOrigSolFree ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_SOL **  sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution candidate storage of original problem space, frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    proboriginal problem data
    solpointer to primal CIP solution; is cleared in function call
    storedstores whether given solution was good enough to keep

    Definition at line 1709 of file primal.c.

    References FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsOriginal(), SCIPsolIsPartial(), and TRUE.

    Referenced by SCIPaddSolFree().

    ◆ SCIPprimalAddCurrentSol()

    SCIP_RETCODE SCIPprimalAddCurrentSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_HEUR heur,
    SCIP_Bool stored 
    )

    adds current LP/pseudo solution to solution storage

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    heurheuristic that found the solution (or NULL if it's from the tree)
    storedstores whether given solution was good enough to keep

    Definition at line 1793 of file primal.c.

    References SCIP_Primal::currentsol, NULL, primalLinkCurrentSol(), SCIP_CALL, SCIP_OKAY, and SCIPprimalAddSol().

    Referenced by SCIPaddCurrentSol().

    ◆ SCIPprimalTrySol()

    SCIP_RETCODE SCIPprimalTrySol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL sol,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkbounds,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    checks primal solution; if feasible, adds it to storage by copying it

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solprimal CIP solution
    printreasonShould all reasons of violations be printed?
    completelyShould all violations be checked?
    checkboundsShould the bounds of the variables be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether given solution was feasible and good enough to keep

    Definition at line 1823 of file primal.c.

    References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolCopy(), solOfInterest(), and TRUE.

    Referenced by SCIPprimalTryCurrentSol(), SCIPtrySol(), solveNode(), and solveNodeLP().

    ◆ SCIPprimalTrySolFree()

    SCIP_RETCODE SCIPprimalTrySolFree ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkbounds,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    checks primal solution; if feasible, adds it to storage; solution is freed afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solpointer to primal CIP solution; is cleared in function call
    printreasonShould all the reasons of violations be printed?
    completelyShould all violations be checked?
    checkboundsShould the bounds of the variables be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether solution was feasible and good enough to keep

    Definition at line 1893 of file primal.c.

    References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), solOfInterest(), and TRUE.

    Referenced by addCurrentSolution(), SCIPprimalTransformSol(), SCIPtrySolFree(), solveNode(), and solveNodeLP().

    ◆ SCIPprimalTryCurrentSol()

    SCIP_RETCODE SCIPprimalTryCurrentSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_HEUR heur,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    checks current LP/pseudo solution; if feasible, adds it to storage

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    heurheuristic that found the solution (or NULL if it's from the tree)
    printreasonShould all reasons of violations be printed?
    completelyShould all violations be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether given solution was good enough to keep

    Definition at line 1967 of file primal.c.

    References SCIP_Primal::currentsol, FALSE, NULL, primalLinkCurrentSol(), SCIP_CALL, SCIP_OKAY, and SCIPprimalTrySol().

    Referenced by SCIPtryCurrentSol().

    ◆ SCIPprimalSolCreated()

    SCIP_RETCODE SCIPprimalSolCreated ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_SOL sol 
    )

    inserts solution into the global array of all existing primal solutions

    Parameters
    primalprimal data
    setglobal SCIP settings
    solprimal CIP solution

    Definition at line 2002 of file primal.c.

    References ensureExistingsolsSize(), SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIP_CALL, SCIP_OKAY, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().

    Referenced by SCIPsolCopy(), SCIPsolCreate(), SCIPsolCreateOriginal(), SCIPsolCreatePartial(), and SCIPsolCreateUnknown().

    ◆ SCIPprimalSolFreed()

    void SCIPprimalSolFreed ( SCIP_PRIMAL primal,
    SCIP_SOL sol 
    )

    removes solution from the global array of all existing primal solutions

    Parameters
    primalprimal data
    solprimal CIP solution

    Definition at line 2024 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().

    Referenced by SCIPsolFree().

    ◆ SCIPprimalUpdateVarObj()

    void SCIPprimalUpdateVarObj ( SCIP_PRIMAL primal,
    SCIP_VAR var,
    SCIP_Real  oldobj,
    SCIP_Real  newobj 
    )

    updates all existing primal solutions after a change in a variable's objective value

    Parameters
    primalprimal data
    varproblem variable
    oldobjold objective value
    newobjnew objective value

    Definition at line 2054 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolIsOriginal(), and SCIPsolUpdateVarObj().

    Referenced by SCIPeventProcess().

    ◆ SCIPprimalRetransformSolutions()

    SCIP_RETCODE SCIPprimalRetransformSolutions ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    retransforms all existing solutions to original problem space

    Note
    as a side effect, the objective value of the solutions can change (numerical errors) so we update the objective cutoff value and upper bound accordingly
    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    origproboriginal problem
    transprobtransformed problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 2077 of file primal.c.

    References SCIP_Primal::nsols, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ZERO, SCIPprimalSetUpperbound(), SCIPsolGetObj(), SCIPsolGetOrigin(), SCIPsolRetransform(), SCIP_Primal::sols, and sortPrimalSols().

    Referenced by initPresolve().

    ◆ SCIPprimalTransformSol()

    SCIP_RETCODE SCIPprimalTransformSol ( SCIP_PRIMAL primal,
    SCIP_SOL sol,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_Real solvals,
    SCIP_Bool solvalset,
    int  solvalssize,
    SCIP_Bool added 
    )

    tries to transform original solution to the transformed problem space

    Parameters
    primalprimal data
    solprimal solution
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solvalsarray for internal use to store solution values, or NULL; if the method is called multiple times in a row, an array with size >= number of active variables should be given for performance reasons
    solvalsetarray for internal use to store which solution values were set, or NULL; if the method is called multiple times in a row, an array with size >= number of active variables should be given for performance reasons
    solvalssizesize of solvals and solvalset arrays, should be >= number of active variables
    addedpointer to store whether the solution was added

    Definition at line 2126 of file primal.c.

    References BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPprimalTrySolFree(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsolCreate(), SCIPsolGetHeur(), SCIPsolGetOrigObj(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPsolSetVal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE.

    Referenced by primalAddSol(), and transformSols().

    ◆ SCIPprimalUpdateViolations()

    SCIP_Bool SCIPprimalUpdateViolations ( SCIP_PRIMAL primal)

    is the updating of violations enabled for this problem?

    Parameters
    primalproblem data

    Definition at line 2301 of file primal.c.

    References NULL, and SCIP_Primal::updateviolations.

    Referenced by SCIPsolCheckOrig(), SCIPupdateSolBoundViolation(), SCIPupdateSolConsViolation(), SCIPupdateSolIntegralityViolation(), SCIPupdateSolLPConsViolation(), and SCIPupdateSolLPRowViolation().

    ◆ SCIPprimalSetUpdateViolations()

    void SCIPprimalSetUpdateViolations ( SCIP_PRIMAL primal,
    SCIP_Bool  updateviolations 
    )

    set whether the updating of violations is turned on

    Parameters
    primalproblem data
    updateviolationsmarks whether the updating of violations is turned on

    Definition at line 2311 of file primal.c.

    References NULL, and SCIP_Primal::updateviolations.

    Referenced by SCIPactivateSolViolationUpdates(), and SCIPdeactivateSolViolationUpdates().

    ◆ SCIPprimalTrySolFreeExact()

    SCIP_RETCODE SCIPprimalTrySolFreeExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkbounds,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    adds exact primal solution to solution storage, frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent LP data
    eventqueueevent queue
    eventfilterevent filter for global (not variable dependent) events
    solpointer to primal CIP solution; is cleared in function call
    printreasonShould all the reasons of violations be printed?
    completelyShould all violations be checked?
    checkboundsShould the bounds of the variables be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether given solution was good enough to keep

    Definition at line 2382 of file primal.c.

    References FALSE, NULL, primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), solOfInterest(), and TRUE.

    Referenced by addCurrentSolution(), SCIPtrySolFreeExact(), and solveNodeLP().

    ◆ SCIPprimalAddSolFreeExact()

    SCIP_RETCODE SCIPprimalAddSolFreeExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool stored 
    )

    adds exact primal solution to solution storage by copying it and frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent exact LP data
    eventqueueevent queue
    eventfilterevent filter for global (not variable dependent) events
    solprimal CIP solution
    storedstores whether given solution was good enough to keep

    Definition at line 2449 of file primal.c.

    References FALSE, NULL, primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsPartial(), solOfInterest(), and TRUE.

    Referenced by SCIPtrySolFreeExact().