internal methods for storing and manipulating the main problem
Definition in file prob.h.
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_event.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_implics.h"
#include "scip/type_prob.h"
#include "scip/type_primal.h"
#include "scip/type_tree.h"
#include "scip/type_reopt.h"
#include "scip/type_branch.h"
#include "scip/type_cons.h"
#include "scip/type_conflictstore.h"
#include "scip/struct_prob.h"
Go to the source code of this file.
SCIP_RETCODE SCIPprobCopy | ( | SCIP_PROB ** | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
const char * | name, | ||
SCIP * | sourcescip, | ||
SCIP_PROB * | sourceprob, | ||
SCIP_HASHMAP * | varmap, | ||
SCIP_HASHMAP * | consmap, | ||
SCIP_Bool | global | ||
) |
creates problem data structure by copying the source problem; If the problem type requires the use of variable pricers, these pricers should be activated with calls to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
creates problem data structure by copying the source problem
If the problem type requires the use of variable pricers, these pricers should be activated with calls to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
prob | pointer to problem data structure |
blkmem | block memory |
set | global SCIP settings |
name | problem name |
sourcescip | source SCIP data structure |
sourceprob | source problem structure |
varmap | a hashmap to store the mapping of source variables corresponding target variables |
consmap | a hashmap to store the mapping of source constraints to the corresponding target constraints |
global | create a global or a local copy? |
Definition at line 186 of file prob.c.
References FALSE, SCIP_Prob::probdata, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SUCCESS, SCIPerrorMessage, and SCIPprobCreate().
Referenced by copyProb().
SCIP_RETCODE SCIPprobCreate | ( | SCIP_PROB ** | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
const char * | name, | ||
SCIP_DECL_PROBDELORIG((*probdelorig)) | , | ||
SCIP_DECL_PROBTRANS((*probtrans)) | , | ||
SCIP_DECL_PROBDELTRANS((*probdeltrans)) | , | ||
SCIP_DECL_PROBINITSOL((*probinitsol)) | , | ||
SCIP_DECL_PROBEXITSOL((*probexitsol)) | , | ||
SCIP_DECL_PROBCOPY((*probcopy)) | , | ||
SCIP_PROBDATA * | probdata, | ||
SCIP_Bool | transformed | ||
) |
creates problem data structure If the problem type requires the use of variable pricers, these pricers should be activated with calls to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
prob | pointer to problem data structure |
blkmem | block memory |
set | global SCIP settings |
name | problem name |
probdata | user problem data set by the reader |
transformed | is this the transformed problem? |
Definition at line 249 of file prob.c.
References BMSallocMemory, BMSduplicateMemoryArray, FALSE, SCIP_ALLOC, SCIP_CALL, SCIP_HASHSIZE_NAMES, SCIP_HASHSIZE_NAMES_SMALL, SCIP_INVALID, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, and SCIPhashtableCreate().
Referenced by SCIPcreateProb(), SCIPprobCopy(), and SCIPprobTransform().
void SCIPprobSetDelorig | ( | SCIP_PROB * | prob, |
SCIP_DECL_PROBDELORIG((*probdelorig)) | |||
) |
sets callback to free user data of original problem
prob | problem |
Definition at line 328 of file prob.c.
Referenced by SCIPsetProbDelorig().
void SCIPprobSetTrans | ( | SCIP_PROB * | prob, |
SCIP_DECL_PROBTRANS((*probtrans)) | |||
) |
sets callback to create user data of transformed problem by transforming original user data
prob | problem |
Definition at line 339 of file prob.c.
Referenced by SCIPsetProbTrans().
void SCIPprobSetDeltrans | ( | SCIP_PROB * | prob, |
SCIP_DECL_PROBDELTRANS((*probdeltrans)) | |||
) |
sets callback to free user data of transformed problem
prob | problem |
Definition at line 350 of file prob.c.
Referenced by SCIPsetProbDeltrans().
void SCIPprobSetInitsol | ( | SCIP_PROB * | prob, |
SCIP_DECL_PROBINITSOL((*probinitsol)) | |||
) |
sets solving process initialization callback of transformed data
prob | problem |
Definition at line 361 of file prob.c.
Referenced by SCIPsetProbInitsol().
void SCIPprobSetExitsol | ( | SCIP_PROB * | prob, |
SCIP_DECL_PROBEXITSOL((*probexitsol)) | |||
) |
sets solving process deinitialization callback of transformed data
prob | problem |
Definition at line 372 of file prob.c.
Referenced by SCIPsetProbExitsol().
void SCIPprobSetCopy | ( | SCIP_PROB * | prob, |
SCIP_DECL_PROBCOPY((*probcopy)) | |||
) |
sets callback to copy user data to copy it to a subscip, or NULL
prob | problem |
Definition at line 383 of file prob.c.
Referenced by SCIPsetProbCopy().
SCIP_RETCODE SCIPprobFree | ( | SCIP_PROB ** | prob, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp | ||
) |
frees problem data structure
prob | pointer to problem data structure |
messagehdlr | message handler |
blkmem | block memory buffer |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
lp | current LP data (or NULL, if it's the original problem) |
Definition at line 394 of file prob.c.
References BMSfreeMemory, BMSfreeMemoryArray, BMSfreeMemoryArrayNull, FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconshdlrNeedsCons(), SCIPconshdlrUnlockVars(), SCIPhashtableFree(), SCIPmessageFPrintWarning(), SCIPprobDelCons(), SCIPvarGetName(), SCIPvarGetNUses(), SCIPvarGetProbindex(), SCIPvarRelease(), SCIPvarRemove(), and TRUE.
Referenced by freeTransform(), and SCIPfreeProb().
SCIP_RETCODE SCIPprobTransform | ( | SCIP_PROB * | source, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PRIMAL * | primal, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_CONFLICTSTORE * | conflictstore, | ||
SCIP_PROB ** | target | ||
) |
transform problem data into normalized form
source | problem to transform |
blkmem | block memory buffer |
set | global SCIP settings |
stat | problem statistics |
primal | primal data |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
branchcand | branching candidate storage |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
conflictstore | conflict store |
target | pointer to target problem data structure |
Definition at line 504 of file prob.c.
References SCIP_Prob::conss, SCIP_Prob::dualbound, SCIP_Prob::name, SCIP_Prob::nlpenabled, SCIP_Prob::nvars, SCIP_Prob::objisintegral, SCIP_Prob::objlim, SCIP_Prob::objsense, SCIP_Prob::permuted, SCIP_Prob::probdata, probEnsureVarsMem(), SCIP_CALL, SCIP_INVALID, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPconflictstoreTransform(), SCIPconshdlrLockVars(), SCIPconshdlrNeedsCons(), SCIPconsRelease(), SCIPconsTransform(), SCIPprobAddCons(), SCIPprobAddVar(), SCIPprobCheckObjIntegral(), SCIPprobCreate(), SCIPprobGetNObjVars(), SCIPprobSetDualbound(), SCIPprobSetObjlim(), SCIPprobSetObjsense(), SCIPsetDebugMsg, SCIPsetIsIntegral(), SCIPsnprintf(), SCIPvarRelease(), SCIPvarTransform(), TRUE, and SCIP_Prob::vars.
Referenced by SCIPtransformProb().
SCIP_RETCODE SCIPprobResetBounds | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
resets the global and local bounds of original variables in original problem to their original values
prob | original problem data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
Definition at line 605 of file prob.c.
References SCIP_Prob::nfixedvars, SCIP_Prob::nvars, SCIP_CALL, SCIP_OKAY, SCIPvarResetBounds(), and SCIP_Prob::vars.
Referenced by freeTransform().
void SCIPprobResortVars | ( | SCIP_PROB * | prob | ) |
(Re)Sort the variables, which appear in the four categories (binary, integer, implicit, continuous) after presolve with respect to their original index (within their categories). Adjust the problem index afterwards which is supposed to reflect the position in the variable array. This additional (re)sorting is supposed to get more robust against the order presolving fixed variables. (We also reobtain a possible block structure induced by the user model)
prob | problem data |
Definition at line 631 of file prob.c.
References SCIP_Prob::nbinvars, SCIP_Prob::ncontvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Prob::nvars, SCIPdebugMessage, SCIPsortPtr(), and SCIP_Prob::vars.
Referenced by presolve().
void SCIPprobSetData | ( | SCIP_PROB * | prob, |
SCIP_PROBDATA * | probdata | ||
) |
sets user problem data
prob | problem |
probdata | user problem data to use |
Definition at line 689 of file prob.c.
References SCIP_Prob::probdata.
Referenced by SCIPsetProbData().
SCIP_RETCODE SCIPprobAddVarName | ( | SCIP_PROB * | prob, |
SCIP_VAR * | var | ||
) |
adds variable's name to the namespace
prob | problem data |
var | variable |
Definition at line 883 of file prob.c.
References SCIP_CALL, SCIP_OKAY, SCIPhashtableInsert(), SCIPvarGetProbindex(), varHasName(), and SCIP_Prob::varnames.
Referenced by SCIPchgVarName(), and SCIPprobAddVar().
SCIP_RETCODE SCIPprobRemoveVarName | ( | SCIP_PROB * | prob, |
SCIP_VAR * | var | ||
) |
removes variable's name from the namespace
prob | problem data |
var | variable |
Definition at line 899 of file prob.c.
References SCIP_CALL, SCIP_OKAY, SCIPhashtableExists(), SCIPhashtableRemove(), varHasName(), and SCIP_Prob::varnames.
Referenced by SCIPchgVarName(), and SCIPprobPerformVarDeletions().
SCIP_RETCODE SCIPprobAddVar | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_VAR * | var | ||
) |
adds variable to the problem and captures it
prob | problem data |
blkmem | block memory buffers |
set | global SCIP settings |
lp | current LP data |
branchcand | branching candidate storage |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
var | variable to add |
Definition at line 914 of file prob.c.
References SCIP_Prob::nbinvars, SCIP_Prob::ncontvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Prob::nvars, SCIP_Prob::objisintegral, probEnsureVarsMem(), probInsertVar(), SCIP_Var::scip, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_ORIGINAL, SCIPbranchcandUpdateVar(), SCIPerrorMessage, SCIPeventCreateVarAdded(), SCIPeventqueueAdd(), SCIPlpUpdateAddVar(), SCIPprobAddVarName(), SCIPprobUpdateNObjVars(), SCIPsetDebugMsg, SCIPsetGetStage(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPvarAddLocks(), SCIPvarCapture(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarIsIntegral(), and SCIP_Prob::transformed.
Referenced by SCIPaddPricedVar(), SCIPaddVar(), SCIPprobTransform(), and tryAggregateIntVars().
SCIP_RETCODE SCIPprobDelVar | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_VAR * | var, | ||
SCIP_Bool * | deleted | ||
) |
marks variable to be removed from the problem; however, the variable is NOT removed from the constraints
prob | problem data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
var | problem variable |
deleted | pointer to store whether marking variable to be deleted was successful |
Definition at line 993 of file prob.c.
References SCIP_Prob::deletedvars, FALSE, SCIP_Prob::nbinvars, SCIP_Prob::ncontvars, SCIP_Prob::ndeletedvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Prob::nvars, probEnsureDeletedvarsMem(), SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_ORIGINAL, SCIPeventCreateVarDeleted(), SCIPeventqueueAdd(), SCIPsetDebugMsg, SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarIsTransformedOrigvar(), SCIPvarMarkDeleted(), SCIP_Prob::transformed, and TRUE.
Referenced by focusnodeCleanupVars(), and SCIPdelVar().
SCIP_RETCODE SCIPprobPerformVarDeletions | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_CLIQUETABLE * | cliquetable, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand | ||
) |
actually removes the deleted variables from the problem and releases them
prob | problem data |
blkmem | block memory |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
cliquetable | clique table data structure |
lp | current LP data (may be NULL) |
branchcand | branching candidate storage |
Definition at line 1054 of file prob.c.
References SCIP_Prob::deletedvars, SCIP_Prob::ndeletedvars, probRemoveVar(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_ORIGINAL, SCIPbranchcandRemoveVar(), SCIPconshdlrDelVars(), SCIPlpUpdateDelVar(), SCIPprobRemoveVarName(), SCIPprobUpdateNObjVars(), SCIPsetDebugMsg, SCIPsetGetStage(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarLoose(), SCIPvarRelease(), and SCIP_Prob::transformed.
Referenced by exitPresolve(), focusnodeCleanupVars(), initPresolve(), presolveRound(), and SCIPdelVar().
SCIP_RETCODE SCIPprobChgVarType | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_CLIQUETABLE * | cliquetable, | ||
SCIP_VAR * | var, | ||
SCIP_VARTYPE | vartype | ||
) |
changes the type of a variable in the problem
prob | problem data |
blkmem | block memory |
set | global SCIP settings |
branchcand | branching candidate storage |
cliquetable | clique table data structure |
var | variable to add |
vartype | new type of variable |
Definition at line 1125 of file prob.c.
References probInsertVar(), probRemoveVar(), SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_ORIGINAL, SCIPbranchcandRemoveVar(), SCIPbranchcandUpdateVar(), SCIPvarChgType(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetType().
Referenced by SCIPchgVarType().
SCIP_RETCODE SCIPprobVarChangedStatus | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_CLIQUETABLE * | cliquetable, | ||
SCIP_VAR * | var | ||
) |
informs problem, that the given loose problem variable changed its status
prob | problem data |
blkmem | block memory |
set | global SCIP settings |
branchcand | branching candidate storage |
cliquetable | clique table data structure |
var | problem variable |
Definition at line 1171 of file prob.c.
References SCIP_Prob::fixedvars, SCIP_Prob::ncolvars, SCIP_Prob::nfixedvars, SCIP_Prob::nvars, probEnsureFixedvarsMem(), probRemoveVar(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIPbranchcandUpdateVar(), SCIPerrorMessage, SCIPvarGetProbindex(), and SCIPvarGetStatus().
Referenced by SCIPvarAggregate(), SCIPvarColumn(), SCIPvarFix(), SCIPvarLoose(), and SCIPvarMultiaggregate().
SCIP_RETCODE SCIPprobAddConsName | ( | SCIP_PROB * | prob, |
SCIP_CONS * | cons | ||
) |
adds constraint's name to the namespace
prob | problem data |
cons | constraint |
Definition at line 1229 of file prob.c.
References consHasName(), SCIP_Prob::consnames, SCIP_CALL, SCIP_OKAY, and SCIPhashtableInsert().
Referenced by SCIPchgConsName(), and SCIPprobAddCons().
SCIP_RETCODE SCIPprobRemoveConsName | ( | SCIP_PROB * | prob, |
SCIP_CONS * | cons | ||
) |
remove constraint's name from the namespace
prob | problem data |
cons | constraint |
Definition at line 1244 of file prob.c.
References consHasName(), SCIP_Prob::consnames, SCIP_Cons::name, SCIP_CALL, SCIP_OKAY, SCIPhashtableRemove(), and SCIPhashtableRetrieve().
Referenced by SCIPchgConsName(), and SCIPprobDelCons().
SCIP_RETCODE SCIPprobAddCons | ( | SCIP_PROB * | prob, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_CONS * | cons | ||
) |
adds constraint to the problem and captures it; a local constraint is automatically upgraded into a global constraint
prob | problem data |
set | global SCIP settings |
stat | dynamic problem statistics |
cons | constraint to add |
Definition at line 1266 of file prob.c.
References SCIP_Cons::addarraypos, SCIP_Cons::addconssetchg, SCIP_Prob::conss, SCIP_Cons::deleted, FALSE, MAX, SCIP_Prob::maxnconss, SCIP_Stat::nactiveconssadded, SCIP_Prob::nconss, SCIP_Stat::nnodes, probEnsureConssMem(), SCIP_Cons::scip, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPconsActivate(), SCIPconsAddLocks(), SCIPconsCapture(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsSetLocal(), SCIPerrorMessage, SCIPprobAddConsName(), SCIPsetDebugMsg, and SCIP_Prob::transformed.
Referenced by createAndAddProofcons(), SCIPaddCons(), SCIPaddConsNode(), SCIPconssetchgMakeGlobal(), SCIPprobTransform(), and tightenSingleVar().
SCIP_RETCODE SCIPprobDelCons | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_CONS * | cons | ||
) |
releases and removes constraint from the problem; if the user has not captured the constraint for his own use, the constraint may be invalid after the call
prob | problem data |
blkmem | block memory |
set | global SCIP settings |
stat | dynamic problem statistics |
cons | constraint to remove |
Definition at line 1334 of file prob.c.
References SCIP_Cons::active, SCIP_Cons::addarraypos, SCIP_Cons::addconssetchg, SCIP_Prob::conss, SCIP_Cons::enabled, SCIP_Prob::nconss, SCIP_CALL, SCIP_OKAY, SCIPconsAddLocks(), SCIPconsDeactivate(), SCIPconsIsChecked(), SCIPconsRelease(), SCIPprobRemoveConsName(), SCIP_Prob::transformed, and SCIP_Cons::updatedeactivate.
Referenced by SCIPconsDelete(), and SCIPprobFree().
void SCIPprobMarkNConss | ( | SCIP_PROB * | prob | ) |
remembers the current number of constraints in the problem's internal data structure
prob | problem data |
Definition at line 1394 of file prob.c.
References SCIP_Prob::maxnconss, SCIP_Prob::nconss, SCIP_Prob::nvars, SCIP_Prob::startnconss, and SCIP_Prob::startnvars.
Referenced by initSolve(), presolve(), and SCIPtransformProb().
void SCIPprobSetObjsense | ( | SCIP_PROB * | prob, |
SCIP_OBJSENSE | objsense | ||
) |
sets objective sense: minimization or maximization
prob | problem data |
objsense | new objective sense |
Definition at line 1407 of file prob.c.
References SCIP_Prob::objsense, SCIP_OBJSENSE_MAXIMIZE, and SCIP_OBJSENSE_MINIMIZE.
Referenced by SCIPprobTransform(), and SCIPsetObjsense().
adds value to objective offset
prob | problem data |
addval | value to add to objective offset |
Definition at line 1420 of file prob.c.
References SCIP_Prob::objoffset, SCIPdebugMessage, and SCIP_Prob::transformed.
Referenced by SCIPaddObjoffset(), and SCIPvarAddObj().
sets the dual bound on objective function
prob | problem data |
dualbound | external dual bound |
Definition at line 1433 of file prob.c.
References SCIP_Prob::dualbound.
Referenced by SCIPcopyConcurrentSolvingStats(), SCIPprobTransform(), and SCIPprobUpdateDualbound().
sets limit on objective function, such that only solutions better than this limit are accepted
prob | problem data |
objlim | external objective limit |
Definition at line 1444 of file prob.c.
References SCIP_Prob::objlim.
Referenced by SCIPprimalSetCutoffbound(), SCIPprobTransform(), and SCIPsetObjlimit().
void SCIPprobSetObjIntegral | ( | SCIP_PROB * | prob | ) |
informs the problem, that its objective value is always integral in every feasible solution
prob | problem data |
Definition at line 1455 of file prob.c.
References SCIP_Prob::objisintegral, and TRUE.
Referenced by SCIPsetObjIntegral().
SCIP_RETCODE SCIPprobCheckObjIntegral | ( | SCIP_PROB * | transprob, |
SCIP_PROB * | origprob, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PRIMAL * | primal, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_EVENTQUEUE * | eventqueue | ||
) |
sets integral objective value flag, if all variables with non-zero objective values are integral and have integral objective value and also updates the cutoff bound if primal solution is already known
transprob | tranformed problem data |
origprob | original problem data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
eventqueue | event queue |
Definition at line 1467 of file prob.c.
References SCIP_Prob::nvars, SCIP_Prob::objisintegral, SCIP_Prob::objoffset, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPprimalUpdateObjoffset(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPvarGetObj(), SCIPvarGetType(), TRUE, and SCIP_Prob::vars.
Referenced by exitPresolve(), prepareReoptimization(), SCIPprobTransform(), and SCIPtransformProb().
SCIP_RETCODE SCIPprobScaleObj | ( | SCIP_PROB * | transprob, |
SCIP_PROB * | origprob, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PRIMAL * | primal, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_EVENTQUEUE * | eventqueue | ||
) |
if possible, scales objective function such that it is integral with gcd = 1
transprob | tranformed problem data |
origprob | original problem data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
eventqueue | event queue |
Definition at line 1584 of file prob.c.
References SCIP_Prob::ncontvars, SCIP_Prob::nvars, SCIP_Prob::objisintegral, SCIP_Prob::objoffset, SCIP_Prob::objscale, OBJSCALE_MAXDNOM, OBJSCALE_MAXFINALSCALE, OBJSCALE_MAXSCALE, REALABS, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_OKAY, SCIP_Real, SCIPcalcGreComDiv(), SCIPcalcIntegralScalar(), SCIPprimalUpdateObjoffset(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetEpsilon(), SCIPsetFeasFloor(), SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsFeasIntegral(), SCIPsetIsZero(), SCIPvarChgObj(), SCIPvarGetName(), SCIPvarGetObj(), TRUE, and SCIP_Prob::vars.
Referenced by exitPresolve(), prepareReoptimization(), and SCIPtransformProb().
void SCIPprobStoreRootSol | ( | SCIP_PROB * | prob, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_Bool | roothaslp | ||
) |
remembers the current solution as root solution in the problem variables
prob | problem data |
set | global SCIP settings |
stat | SCIP statistics |
lp | current LP data |
roothaslp | is the root solution from LP? |
Definition at line 1715 of file prob.c.
References SCIP_Prob::nbinvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Prob::nvars, SCIPlpGetColumnObjval(), SCIPlpIsRelax(), SCIPlpSetRootLPIsRelax(), SCIPlpStoreRootObjval(), SCIPstatComputeRootLPBestEstimate(), SCIPvarStoreRootSol(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by solveNode().
remembers the best solution w.r.t. root reduced cost propagation as root solution in the problem variables
prob | problem data |
set | global SCIP settings |
stat | problem statistics |
lp | current LP data |
Definition at line 1742 of file prob.c.
References FALSE, SCIP_Lp::lpsolstat, SCIP_Prob::nvars, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_Bool, SCIP_INVALID, SCIP_LPSOLSTAT_OPTIMAL, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPcolGetBasisStatus(), SCIPcolGetPrimsol(), SCIPcolGetRedcost(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPlpIsDualReliable(), SCIPlpIsSolBasic(), SCIPprobGetNObjVars(), SCIPsetDebugMsg, SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsFeasEQ(), SCIPvarGetCol(), SCIPvarGetImplRedcost(), SCIPvarGetLbLocal(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), SCIPvarUpdateBestRootSol(), SCIP_Prob::transformed, TRUE, and SCIP_Prob::vars.
Referenced by priceAndCutLoop(), and propAndSolve().
SCIP_RETCODE SCIPprobExitPresolve | ( | SCIP_PROB * | prob, |
SCIP_SET * | set | ||
) |
informs problem, that the presolving process was finished, and updates all internal data structures
prob | problem data |
set | global SCIP settings |
Definition at line 1840 of file prob.c.
References SCIP_OKAY.
Referenced by exitPresolve().
SCIP_RETCODE SCIPprobInitSolve | ( | SCIP_PROB * | prob, |
SCIP_SET * | set | ||
) |
initializes problem for branch and bound process
initializes problem for branch and bound process and resets all constraint's ages and histories of current run
prob | problem data |
set | global SCIP settings |
Definition at line 1849 of file prob.c.
References SCIP_Prob::conss, SCIP_Prob::nconss, SCIP_Prob::nobjvars, SCIP_Prob::nvars, SCIP_Prob::probdata, SCIP_CALL, SCIP_OKAY, SCIPconsResetAge(), SCIPprobGetNObjVars(), SCIPvarInitSolve(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by initSolve().
SCIP_RETCODE SCIPprobExitSolve | ( | SCIP_PROB * | prob, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_Bool | restart | ||
) |
deinitializes problem after branch and bound process, and converts all COLUMN variables back into LOOSE variables
prob | problem data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
restart | was this exit solve call triggered by a restart? |
Definition at line 1884 of file prob.c.
References SCIP_Prob::ncolvars, SCIP_Prob::nvars, SCIP_Prob::probdata, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPvarGetStatus(), SCIPvarLoose(), SCIPvarSetBestRootSol(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by freeReoptSolve(), and freeSolve().
SCIP_RETCODE SCIPprobSetName | ( | SCIP_PROB * | prob, |
const char * | name | ||
) |
sets problem name
prob | problem data |
name | name to be set |
Definition at line 1934 of file prob.c.
References BMSduplicateMemoryArray, BMSfreeMemoryArray, SCIP_Prob::name, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPsetProbName().
int SCIPprobGetNImplBinVars | ( | SCIP_PROB * | prob | ) |
returns the number of implicit binary variables, meaning variable of vartype != SCIP_VARTYPE_BINARY and != SCIP_VARTYPE_CONTINUOUS but with global bounds [0,1]
returns the number of implicit binary variables, meaning variable of vartype != SCIP_VARTYPE_BINARY and != SCIP_VARTYPE_CONTINUOUS but with global bounds [0,1]
prob | problem data |
Definition at line 1955 of file prob.c.
References SCIP_Prob::nbinvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIPvarIsBinary(), and SCIP_Prob::vars.
Referenced by SCIPshrinkDisjunctiveVarSet().
returns the number of variables with non-zero objective coefficient
prob | problem data |
set | global SCIP settings |
Definition at line 1972 of file prob.c.
References SCIP_Prob::nobjvars, SCIP_Prob::nvars, SCIPsetIsZero(), SCIPvarGetObj(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by SCIPgetNObjVars(), SCIPprobInitSolve(), SCIPprobPrintStatistics(), SCIPprobTransform(), and SCIPprobUpdateBestRootSol().
returns the minimal absolute non-zero objective coefficient
prob | problem data |
set | global SCIP settings |
Definition at line 2019 of file prob.c.
References SCIP_Prob::nvars, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsLT(), SCIPsetIsZero(), SCIPvarGetObj(), and SCIP_Prob::vars.
Referenced by SCIPprobPrintStatistics().
returns the maximal absolute non-zero objective coefficient
prob | problem data |
set | global SCIP settings |
Definition at line 2046 of file prob.c.
References SCIP_Prob::nvars, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsGT(), SCIPsetIsZero(), SCIPvarGetObj(), and SCIP_Prob::vars.
Referenced by SCIPprobPrintStatistics().
void SCIPprobUpdateNObjVars | ( | SCIP_PROB * | prob, |
SCIP_SET * | set, | ||
SCIP_Real | oldobj, | ||
SCIP_Real | newobj | ||
) |
update the number of variables with non-zero objective coefficient
prob | problem data |
set | global SCIP settings |
oldobj | old objective value for variable |
newobj | new objective value for variable |
Definition at line 1530 of file prob.c.
References SCIP_Prob::nobjvars, SCIPsetIsZero(), and SCIP_Prob::transformed.
Referenced by SCIPprobAddVar(), SCIPprobPerformVarDeletions(), SCIPvarAddObj(), and SCIPvarChgObj().
update the dual bound if its better as the current one
prob | problem data |
newbound | new dual bound for the node (if it's tighter than the old one) |
Definition at line 1547 of file prob.c.
References SCIP_Prob::dualbound, MAX, SCIP_Prob::objsense, SCIP_INVALID, SCIP_OBJSENSE_MAXIMIZE, SCIP_OBJSENSE_MINIMIZE, SCIPABORT, SCIPerrorMessage, and SCIPprobSetDualbound().
Referenced by freeSolve(), SCIPupdateLocalDualbound(), and SCIPupdateLocalLowerbound().
void SCIPprobInvalidateDualbound | ( | SCIP_PROB * | prob | ) |
invalidates the dual bound
prob | problem data |
Definition at line 1574 of file prob.c.
References SCIP_Prob::dualbound, and SCIP_INVALID.
Referenced by freeReoptSolve().
SCIP_Real SCIPprobExternObjval | ( | SCIP_PROB * | transprob, |
SCIP_PROB * | origprob, | ||
SCIP_SET * | set, | ||
SCIP_Real | objval | ||
) |
returns the external value of the given internal objective value
transprob | tranformed problem data |
origprob | original problem data |
set | global SCIP settings |
objval | internal objective value |
Definition at line 2069 of file prob.c.
References SCIP_Prob::objoffset, SCIP_Prob::objscale, SCIP_Prob::objsense, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), and SCIP_Prob::transformed.
Referenced by applyBounding(), getDualbound(), getPrimalbound(), primalAddSol(), SCIPcopyConcurrentSolvingStats(), SCIPgetAvgDualbound(), SCIPgetConcurrentDualbound(), SCIPgetConcurrentPrimalbound(), SCIPgetDualboundRoot(), SCIPgetLocalDualbound(), SCIPgetLocalOrigEstimate(), SCIPgetNodeDualbound(), SCIPgetSolOrigObj(), SCIPprimalSetCutoffbound(), SCIPprintMIPStart(), SCIPprintSol(), SCIPretransformObj(), SCIPstatUpdatePrimalDualIntegral(), SCIPupdateLocalDualbound(), SCIPupdateLocalLowerbound(), and solveNodeInitialLP().
SCIP_Real SCIPprobInternObjval | ( | SCIP_PROB * | transprob, |
SCIP_PROB * | origprob, | ||
SCIP_SET * | set, | ||
SCIP_Real | objval | ||
) |
returns the internal value of the given external objective value
transprob | tranformed problem data |
origprob | original problem data |
set | global SCIP settings |
objval | external objective value |
Definition at line 2091 of file prob.c.
References SCIP_Prob::objoffset, SCIP_Prob::objscale, SCIP_Prob::objsense, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), and SCIP_Prob::transformed.
Referenced by exitPresolve(), getDualbound(), initSolve(), primalAddSol(), SCIPgetFirstLPLowerboundRoot(), SCIPprimalUpdateObjlimit(), SCIPprimalUpdateObjoffset(), SCIPsetObjlimit(), SCIPsolGetObj(), SCIPsolveCIP(), SCIPstatResetCurrentRun(), SCIPtransformObj(), SCIPupdateLocalDualbound(), and SCIPupdateNodeDualbound().
returns variable of the problem with given name
prob | problem data |
name | name of variable to find |
Definition at line 2113 of file prob.c.
References SCIPABORT, SCIPerrorMessage, SCIPhashtableRetrieve(), and SCIP_Prob::varnames.
Referenced by SCIPfindVar().
returns constraint of the problem with given name
prob | problem data |
name | name of variable to find |
Definition at line 2132 of file prob.c.
References SCIP_Prob::consnames, SCIPABORT, SCIPerrorMessage, and SCIPhashtableRetrieve().
Referenced by SCIPfindCons(), and SCIPfindOrigCons().
void SCIPprobPrintPseudoSol | ( | SCIP_PROB * | prob, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr | ||
) |
displays current pseudo solution
prob | problem data |
set | global SCIP settings |
messagehdlr | message handler |
Definition at line 2151 of file prob.c.
References SCIP_Prob::nvars, SCIP_Real, SCIPmessagePrintInfo(), SCIPsetIsZero(), SCIPvarGetName(), SCIPvarGetPseudoSol(), and SCIP_Prob::vars.
void SCIPprobPrintStatistics | ( | SCIP_PROB * | prob, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file | ||
) |
outputs problem statistics
prob | problem data |
set | global SCIP settings |
messagehdlr | message handler |
file | output file (or NULL for standard output) |
Definition at line 2173 of file prob.c.
References SCIP_Prob::maxnconss, SCIP_Prob::name, SCIP_Prob::nbinvars, SCIP_Prob::ncontvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Prob::nvars, SCIP_Prob::objsense, SCIP_OBJSENSE_MINIMIZE, SCIPmessageFPrintInfo(), SCIPprobGetAbsMaxObjCoef(), SCIPprobGetAbsMinObjCoef(), SCIPprobGetNObjVars(), SCIP_Prob::startnconss, and SCIP_Prob::transformed.
Referenced by SCIPprintOrigProblemStatistics(), and SCIPprintTransProblemStatistics().
is the problem permuted
Definition at line 2220 of file prob.c.
References SCIP_Prob::permuted.
Referenced by SCIPpermuteProb().
void SCIPprobMarkPermuted | ( | SCIP_PROB * | prob | ) |
mark the problem as permuted
Definition at line 2230 of file prob.c.
References SCIP_Prob::permuted, and TRUE.
Referenced by SCIPpermuteProb().
is the problem data transformed
prob | problem data |
Definition at line 2240 of file prob.c.
References SCIP_Prob::transformed.
Referenced by applyImplic(), detectImpliedBounds(), SCIPreoptInstallBounds(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarChgObj(), SCIPvarFixBinary(), SCIPvarGetImplRedcost(), and varAddImplic().
returns whether the objective value is known to be integral in every feasible solution
prob | problem data |
Definition at line 2250 of file prob.c.
References SCIP_Prob::objisintegral.
Referenced by primalSetUpperbound(), SCIPisObjIntegral(), and SCIPpresolve().
returns TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing
prob | problem data |
set | global SCIP settings |
lp | current LP data |
Definition at line 2262 of file prob.c.
References SCIP_Prob::ncolvars, SCIP_Prob::nvars, and SCIPlpGetNCols().
Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), priceAndCutLoop(), propAndSolve(), runBoundHeuristic(), SCIPaddRow(), SCIPallColsInLP(), SCIPconflictAnalyzeLP(), SCIPconflictAnalyzeStrongbranch(), SCIPgetVarsStrongbranchesFrac(), SCIPgetVarsStrongbranchesInt(), SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPlpSolveAndEval(), SCIPpriceLoop(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), solveNodeInitialLP(), and solveProbingLP().
gets limit on objective function in external space
prob | problem data |
set | global SCIP settings |
Definition at line 2274 of file prob.c.
References SCIP_Prob::objlim, SCIP_Prob::objsense, SCIP_INVALID, SCIP_Real, and SCIPsetInfinity().
Referenced by primalAddOrigSol(), primalAddSol(), SCIPgetObjlimit(), SCIPprimalSetCutoffbound(), SCIPprimalUpdateObjlimit(), SCIPprimalUpdateObjoffset(), SCIPsetObjlimit(), and SCIPsolveCIP().
SCIP_PROBDATA* SCIPprobGetData | ( | SCIP_PROB * | prob | ) |
gets user problem data
prob | problem |
Definition at line 2286 of file prob.c.
References SCIP_Prob::probdata.
Referenced by SCIPgetProbData().
const char* SCIPprobGetName | ( | SCIP_PROB * | prob | ) |
gets problem name
prob | problem data |
Definition at line 2296 of file prob.c.
References SCIP_Prob::name.
Referenced by detectImpliedBounds(), initSolve(), SCIPgetProbName(), SCIPshrinkDisjunctiveVarSet(), and SCIPtransformProb().
int SCIPprobGetNVars | ( | SCIP_PROB * | prob | ) |
gets number of problem variables
prob | problem data |
Definition at line 2305 of file prob.c.
References SCIP_Prob::nvars.
Referenced by conflictAnalyzeLP(), initConflictstore(), runBoundHeuristic(), SCIPreoptInstallBounds(), SCIPreoptSaveGlobalBounds(), SCIPshrinkDisjunctiveVarSet(), SCIPvarGetImplRedcost(), and separateAlternativeProofs().
int SCIPprobGetNBinVars | ( | SCIP_PROB * | prob | ) |
gets number of binary problem variables
prob | problem data |
Definition at line 2314 of file prob.c.
References SCIP_Prob::nbinvars.
Referenced by SCIPsolAdjustImplicitSolVals().
int SCIPprobGetNIntVars | ( | SCIP_PROB * | prob | ) |
gets number of integer problem variables
prob | problem data |
Definition at line 2323 of file prob.c.
References SCIP_Prob::nintvars.
Referenced by SCIPsolAdjustImplicitSolVals().
int SCIPprobGetNImplVars | ( | SCIP_PROB * | prob | ) |
gets number of implicit integer problem variables
prob | problem data |
Definition at line 2332 of file prob.c.
References SCIP_Prob::nimplvars.
Referenced by SCIPsolAdjustImplicitSolVals().
int SCIPprobGetNContVars | ( | SCIP_PROB * | prob | ) |
gets number of continuous problem variables
prob | problem data |
Definition at line 2341 of file prob.c.
References SCIP_Prob::ncontvars.
Referenced by SCIPvarGetImplRedcost().
gets problem variables
prob | problem data |
Definition at line 2350 of file prob.c.
References SCIP_Prob::vars.
Referenced by aggrRowGetMinActivity(), conflictFlushProofset(), createAndAddProofcons(), getMaxActivity(), getMinActivity(), proofsetFree(), propagateLongProof(), runBoundHeuristic(), SCIPreoptInstallBounds(), SCIPreoptSaveGlobalBounds(), SCIPshrinkDisjunctiveVarSet(), SCIPsolAdjustImplicitSolVals(), SCIPvarGetImplRedcost(), separateAlternativeProofs(), and tightenDualproof().
int SCIPprobGetNConss | ( | SCIP_PROB * | prob | ) |
gets number of problem constraints
prob | problem data |
Definition at line 2359 of file prob.c.
References SCIP_Prob::nconss.
Referenced by initConflictstore().
gets the objective offset
prob | problem data |
Definition at line 2368 of file prob.c.
References SCIP_Prob::objoffset.
Referenced by SCIPsolRecomputeObj().
gets the objective scalar
prob | problem data |
Definition at line 2377 of file prob.c.
References SCIP_Prob::objscale.
is constraint compression enabled for this problem?
prob | problem data |
Definition at line 2386 of file prob.c.
References SCIP_Prob::conscompression.
Referenced by SCIPisConsCompressionEnabled().
void SCIPprobEnableConsCompression | ( | SCIP_PROB * | prob | ) |
enable problem compression, i.e., constraints can reduce memory size by removing fixed variables during creation
prob | problem data |
Definition at line 2396 of file prob.c.
References SCIP_Prob::conscompression, and TRUE.
Referenced by SCIPenableConsCompression().