Detailed Description
public methods for conflict analysis
Function Documentation
◆ SCIP_DECL_SORTPTRCOMP() [1/2]
SCIP_EXPORT SCIP_DECL_SORTPTRCOMP | ( | SCIPconflicthdlrComp | ) |
compares two conflict handlers w. r. to their priority
Definition at line 351 of file conflict.c.
◆ SCIP_DECL_SORTPTRCOMP() [2/2]
SCIP_EXPORT SCIP_DECL_SORTPTRCOMP | ( | SCIPconflicthdlrCompName | ) |
comparison method for sorting conflict handler w.r.t. to their name
Definition at line 357 of file conflict.c.
References SCIPconflicthdlrGetName().
◆ SCIPconflicthdlrGetData()
SCIP_EXPORT SCIP_CONFLICTHDLRDATA* SCIPconflicthdlrGetData | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
gets user data of conflict handler
- Parameters
-
conflicthdlr conflict handler
Definition at line 674 of file conflict.c.
References SCIP_Conflicthdlr::conflicthdlrdata, and NULL.
Referenced by SCIP_DECL_CONFLICTEXEC(), and SCIP_DECL_CONFLICTFREE().
◆ SCIPconflicthdlrSetData()
SCIP_EXPORT void SCIPconflicthdlrSetData | ( | SCIP_CONFLICTHDLR * | conflicthdlr, |
SCIP_CONFLICTHDLRDATA * | conflicthdlrdata | ||
) |
sets user data of conflict handler; user has to free old data in advance!
- Parameters
-
conflicthdlr conflict handler conflicthdlrdata new conflict handler user data
Definition at line 684 of file conflict.c.
References SCIP_Conflicthdlr::conflicthdlrdata, and NULL.
◆ SCIPconflicthdlrGetName()
SCIP_EXPORT const char* SCIPconflicthdlrGetName | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
gets name of conflict handler
- Parameters
-
conflicthdlr conflict handler
Definition at line 761 of file conflict.c.
References SCIP_Conflicthdlr::name, and NULL.
Referenced by conflictAddConflictCons(), SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_CONFLICTFREE(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SORTPTRCOMP(), SCIPconflicthdlrCopyInclude(), SCIPincludeDialogDefaultFix(), SCIPincludeDialogDefaultSet(), and SCIPsetReinsertConshdlrSepaPrio().
◆ SCIPconflicthdlrGetDesc()
SCIP_EXPORT const char* SCIPconflicthdlrGetDesc | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
gets description of conflict handler
- Parameters
-
conflicthdlr conflict handler
Definition at line 771 of file conflict.c.
References SCIP_Conflicthdlr::desc, and NULL.
Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().
◆ SCIPconflicthdlrGetPriority()
SCIP_EXPORT int SCIPconflicthdlrGetPriority | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
gets priority of conflict handler
- Parameters
-
conflicthdlr conflict handler
Definition at line 781 of file conflict.c.
References NULL, and SCIP_Conflicthdlr::priority.
Referenced by conflictAddConflictCons(), and SCIP_DECL_DIALOGEXEC().
◆ SCIPconflicthdlrIsInitialized()
SCIP_EXPORT SCIP_Bool SCIPconflicthdlrIsInitialized | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
is conflict handler initialized?
- Parameters
-
conflicthdlr conflict handler
Definition at line 805 of file conflict.c.
References SCIP_Conflicthdlr::initialized, and NULL.
Referenced by SCIPsetReinsertConshdlrSepaPrio().
◆ SCIPconflicthdlrGetSetupTime()
SCIP_EXPORT SCIP_Real SCIPconflicthdlrGetSetupTime | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
gets time in seconds used in this conflict handler for setting up for next stages
- Parameters
-
conflicthdlr conflict handler
Definition at line 827 of file conflict.c.
References NULL, SCIPclockGetTime(), and SCIP_Conflicthdlr::setuptime.
◆ SCIPconflicthdlrGetTime()
SCIP_EXPORT SCIP_Real SCIPconflicthdlrGetTime | ( | SCIP_CONFLICTHDLR * | conflicthdlr | ) |
gets time in seconds used in this conflict handler
- Parameters
-
conflicthdlr conflict handler
Definition at line 837 of file conflict.c.
References SCIP_Conflicthdlr::conflicttime, NULL, and SCIPclockGetTime().
◆ SCIPisConflictAnalysisApplicable()
SCIP_EXPORT SCIP_Bool SCIPisConflictAnalysisApplicable | ( | SCIP * | scip | ) |
return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the conflict analysis since it will not be applied
- Returns
- return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the conflict analysis since it will not be applied
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure
Definition at line 291 of file scip_conflict.c.
References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPconflictApplicable(), SCIPgetDepth(), Scip::set, and TRUE.
Referenced by analyseInfeasibelCoreInsertion(), analyzeConflict(), analyzeConflictLowerbound(), analyzeConflictOne(), analyzeConflictOverload(), analyzeConflictUpperbound(), analyzeConflictZero(), analyzeGenVBoundConflict(), inferboundsEdgeFinding(), processBinvarFixings(), propagateCons(), propagateCutoffboundBinvar(), propagateFullOrbitope(), propagateLbTTEF(), propagatePackingPartitioningCons(), propagateTTEF(), propagateUbTTEF(), propIndicator(), propVariables(), SCIPaddRow(), tightenedIntvar(), tightenLbTTEF(), and tightenUbTTEF().
◆ SCIPinitConflictAnalysis()
SCIP_EXPORT SCIP_RETCODE SCIPinitConflictAnalysis | ( | SCIP * | scip, |
SCIP_CONFTYPE | conftype, | ||
SCIP_Bool | iscutoffinvolved | ||
) |
initializes the conflict analysis by clearing the conflict candidate queue; this method must be called before you enter the conflict variables by calling SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure conftype type of conflict iscutoffinvolved is the current cutoff bound involved?
Definition at line 313 of file scip_conflict.c.
References Scip::conflict, FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictInit(), Scip::set, Scip::stat, Scip::transprob, and TRUE.
Referenced by analyseInfeasibelCoreInsertion(), analyzeConflict(), analyzeConflictLowerbound(), analyzeConflictOne(), analyzeConflictOverload(), analyzeConflictUpperbound(), analyzeConflictZero(), analyzeGenVBoundConflict(), applyOptcumulative(), inferboundsEdgeFinding(), processBinvarFixings(), propagateCons(), propagateCutoffboundBinvar(), propagateFullOrbitope(), propagateLbTTEF(), propagatePackingPartitioningCons(), propagateTTEF(), propagateUbTTEF(), propIndicator(), propVariables(), SCIP_DECL_CONSPROP(), SCIPaddRow(), solveSubproblem(), tightenedIntvar(), tightenLbTTEF(), and tightenUbTTEF().
◆ SCIPaddConflictLb()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictLb | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BDCHGIDX * | bdchgidx | ||
) |
adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictLb() should be called for each lower bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictLb() should be called for each lower bound, whose current assignment led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose lower bound should be added to conflict candidate queue bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound
Definition at line 342 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddBound(), Scip::set, Scip::stat, and TRUE.
Referenced by addConflictBinvar(), addConflictBounds(), addConflictReasonVars(), analyseInfeasibelCoreInsertion(), analyzeConflict(), analyzeConflictOverload(), analyzeConflictUpperbound(), analyzeEnergyRequirement(), applyOptcumulative(), inferboundsEdgeFinding(), propagateTTEF(), propIndicator(), resolvePropagation(), resolvePropagationCoretimes(), resolvePropagationFullOrbitopes(), respropCumulativeCondition(), SCIP_DECL_CONSRESPROP(), SCIPaddRow(), solveSubproblem(), tightenedIntvar(), and tightenUbTTEF().
◆ SCIPaddConflictRelaxedLb()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictRelaxedLb | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BDCHGIDX * | bdchgidx, | ||
SCIP_Real | relaxedlb | ||
) |
adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage with the additional information of a relaxed lower bound; this relaxed lower bound is the one which would be enough to explain a certain bound change; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedLb() should be called for each (relaxed) lower bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelexedLb() should be called for each (relaxed) lower bound, whose current assignment led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose lower bound should be added to conflict candidate queue bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound relaxedlb the relaxed lower bound
Definition at line 376 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddRelaxedBound(), Scip::set, Scip::stat, and TRUE.
Referenced by analyseInfeasibelCoreInsertion(), analyzeConflict(), analyzeConflictOverload(), analyzeConflictUpperbound(), analyzeEnergyRequirement(), analyzeGenVBoundConflict(), relaxVbdvar(), resolveGenVBoundPropagation(), resolvePropagation(), resolvePropagationCoretimes(), and respropCumulativeCondition().
◆ SCIPaddConflictUb()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictUb | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BDCHGIDX * | bdchgidx | ||
) |
adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictUb() should be called for each upper bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictUb() should be called for each upper bound, whose current assignment led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose upper bound should be added to conflict candidate queue bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound
Definition at line 409 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddBound(), Scip::set, Scip::stat, and TRUE.
Referenced by addConflictBinvar(), addConflictBounds(), addConflictReasonVars(), analyseInfeasibelCoreInsertion(), analyzeConflict(), analyzeConflictLowerbound(), analyzeConflictOverload(), analyzeEnergyRequirement(), applyOptcumulative(), inferboundsEdgeFinding(), propagateLbTTEF(), propagateUbTTEF(), resolvePropagation(), resolvePropagationCoretimes(), resolvePropagationFullOrbitopes(), respropCumulativeCondition(), SCIP_DECL_CONSRESPROP(), SCIPaddRow(), solveSubproblem(), tightenedIntvar(), and tightenLbTTEF().
◆ SCIPaddConflictRelaxedUb()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictRelaxedUb | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BDCHGIDX * | bdchgidx, | ||
SCIP_Real | relaxedub | ||
) |
adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage with the additional information of a relaxed upper bound; this relaxed upper bound is the one which would be enough to explain a certain bound change; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedUb() should be called for each (relaxed) upper bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedUb() should be called for each (relaxed) upper bound, whose current assignment led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose upper bound should be added to conflict candidate queue bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound relaxedub the relaxed upper bound
Definition at line 444 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddRelaxedBound(), Scip::set, Scip::stat, and TRUE.
Referenced by analyseInfeasibelCoreInsertion(), analyzeConflict(), analyzeConflictLowerbound(), analyzeConflictOverload(), analyzeEnergyRequirement(), analyzeGenVBoundConflict(), relaxVbdvar(), resolveGenVBoundPropagation(), resolvePropagation(), resolvePropagationCoretimes(), and respropCumulativeCondition().
◆ SCIPaddConflictBd()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictBd | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BOUNDTYPE | boundtype, | ||
SCIP_BDCHGIDX * | bdchgidx | ||
) |
adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBd() should be called for each bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBd() should be called for each bound, whose current assignment led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose upper bound should be added to conflict candidate queue boundtype the type of the conflicting bound (lower or upper bound) bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound
Definition at line 477 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddBound(), Scip::set, Scip::stat, and TRUE.
Referenced by analyzeConflict(), and SCIP_DECL_CONSRESPROP().
◆ SCIPaddConflictRelaxedBd()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictRelaxedBd | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BOUNDTYPE | boundtype, | ||
SCIP_BDCHGIDX * | bdchgidx, | ||
SCIP_Real | relaxedbd | ||
) |
adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage; with the additional information of a relaxed upper bound; this relaxed upper bound is the one which would be enough to explain a certain bound change; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedBd() should be called for each (relaxed) bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedBd() should be called for each (relaxed) bound, whose current assignment led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose upper bound should be added to conflict candidate queue boundtype the type of the conflicting bound (lower or upper bound) bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound relaxedbd the relaxed bound
Definition at line 512 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddRelaxedBound(), Scip::set, Scip::stat, and TRUE.
◆ SCIPaddConflictBinvar()
SCIP_EXPORT SCIP_RETCODE SCIPaddConflictBinvar | ( | SCIP * | scip, |
SCIP_VAR * | var | ||
) |
adds changed bound of fixed binary variable to the conflict analysis' candidate storage; this method should be called in one of the following two cases:
- Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBinvar() should be called for each fixed binary variable that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
- In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBinvar() should be called for each binary variable, whose current fixing led to the deduction of the given conflict bound.
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var binary variable whose changed bound should be added to conflict queue
Definition at line 546 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_Var::scip, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAddBound(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), Scip::set, Scip::stat, and TRUE.
Referenced by addConflictBounds(), analyzeConflict(), analyzeConflictOne(), analyzeConflictZero(), applyOptcumulative(), processBinvarFixings(), propagateCons(), propagateFullOrbitope(), propagatePackingPartitioningCons(), propIndicator(), propVariables(), resolvePropagation(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSRESPROP(), solveSubproblem(), and tightenedIntvar().
◆ SCIPisConflictVarUsed()
SCIP_EXPORT SCIP_RETCODE SCIPisConflictVarUsed | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_BOUNDTYPE | boundtype, | ||
SCIP_BDCHGIDX * | bdchgidx, | ||
SCIP_Bool * | used | ||
) |
checks if the given variable is already part of the current conflict set or queued for resolving with the same or even stronger bound
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var variable whose upper bound should be added to conflict candidate queue boundtype the type of the conflicting bound (lower or upper bound) bdchgidx bound change index representing time on path to current node, when the conflicting bound was valid, NULL for current local bound used pointer to store if the variable is already used
Definition at line 580 of file scip_conflict.c.
References Scip::conflict, FALSE, SCIP_Var::scip, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPconflictIsVarUsed(), Scip::set, and TRUE.
◆ SCIPgetConflictVarLb()
SCIP_EXPORT SCIP_Real SCIPgetConflictVarLb | ( | SCIP * | scip, |
SCIP_VAR * | var | ||
) |
returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower bound
- Returns
- returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower bound
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var problem variable
Definition at line 608 of file scip_conflict.c.
References Scip::conflict, FALSE, SCIP_Var::scip, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPconflictGetVarLb(), and TRUE.
Referenced by analyzeConflict(), analyzeConflictUpperbound(), analyzeEnergyRequirement(), analyzeGenVBoundConflict(), getGenVBoundsMinActivityConflict(), resolveGenVBoundPropagation(), and resolvePropagationCoretimes().
◆ SCIPgetConflictVarUb()
SCIP_EXPORT SCIP_Real SCIPgetConflictVarUb | ( | SCIP * | scip, |
SCIP_VAR * | var | ||
) |
returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global upper bound
- Returns
- returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global upper bound
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure var problem variable
Definition at line 632 of file scip_conflict.c.
References Scip::conflict, FALSE, SCIP_Var::scip, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPconflictGetVarUb(), and TRUE.
Referenced by analyzeConflict(), analyzeConflictLowerbound(), analyzeEnergyRequirement(), analyzeGenVBoundConflict(), getGenVBoundsMinActivityConflict(), resolveGenVBoundPropagation(), and resolvePropagationCoretimes().
◆ SCIPanalyzeConflict()
SCIP_EXPORT SCIP_RETCODE SCIPanalyzeConflict | ( | SCIP * | scip, |
int | validdepth, | ||
SCIP_Bool * | success | ||
) |
analyzes conflict bounds that were added after a call to SCIPinitConflictAnalysis() with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); on success, calls the conflict handlers to create a conflict constraint out of the resulting conflict set; the given valid depth must be a depth level, at which the conflict set defined by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and SCIPaddConflictBinvar() is valid for the whole subtree; if the conflict was found by a violated constraint, use SCIPanalyzeConflictCons() instead of SCIPanalyzeConflict() to make sure, that the correct valid depth is used
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure validdepth minimal depth level at which the initial conflict set is valid success pointer to store whether a conflict constraint was created, or NULL
Definition at line 662 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAnalyze(), Scip::set, Scip::stat, Scip::transprob, Scip::tree, and TRUE.
Referenced by analyzeConflictLowerbound(), analyzeConflictUpperbound(), analyzeGenVBoundConflict(), applyOptcumulative(), propagateCutoffboundBinvar(), and SCIPaddRow().
◆ SCIPanalyzeConflictCons()
SCIP_EXPORT SCIP_RETCODE SCIPanalyzeConflictCons | ( | SCIP * | scip, |
SCIP_CONS * | cons, | ||
SCIP_Bool * | success | ||
) |
analyzes conflict bounds that were added with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); on success, calls the conflict handlers to create a conflict constraint out of the resulting conflict set; the given constraint must be the constraint that detected the conflict, i.e. the constraint that is infeasible in the local bounds of the initial conflict set (defined by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and SCIPaddConflictBinvar())
- Returns
- SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
- Precondition
- This method can be called if SCIP is in one of the following stages:
- Note
- SCIP stage does not get changed
- Parameters
-
scip SCIP data structure cons constraint that detected the conflict success pointer to store whether a conflict constraint was created, or NULL
Definition at line 693 of file scip_conflict.c.
References Scip::conflict, FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAnalyze(), SCIPconsGetValidDepth(), SCIPconsIsActive(), SCIPconsIsGlobal(), Scip::set, Scip::stat, Scip::transprob, Scip::tree, and TRUE.
Referenced by analyzeConflict(), analyzeConflictOne(), analyzeConflictZero(), processBinvarFixings(), propagateCons(), propagateFullOrbitope(), propagatePackingPartitioningCons(), propIndicator(), propVariables(), SCIP_DECL_CONSPROP(), solveSubproblem(), and tightenedIntvar().