implics.h File Reference Detailed Descriptionmethods for implications, variable bounds, and cliques Definition in file implics.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_branch.h" #include "scip/pub_implics.h" Go to the source code of this file. Function Documentation
frees a variable bounds data structure
Definition at line 66 of file implics.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, and NULL. Referenced by SCIPvarAggregate(), SCIPvarRemove(), SCIPvboundsDel(), SCIPvboundsShrink(), and varFree().
adds a variable bound to the variable bounds data structure
Definition at line 199 of file implics.c. References FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARTYPE_CONTINUOUS, SCIPsetIsZero(), SCIPvarGetStatus(), SCIPvarGetType(), TRUE, vboundsEnsureSize(), and vboundsSearchPos(). Referenced by varAddVbound().
removes from variable x a variable bound x >=/<= b*z + d with binary or integer z
Definition at line 281 of file implics.c. References NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPvboundsFree(), and vboundsSearchPos(). Referenced by SCIPvarRemoveCliquesImplicsVbs().
reduces the number of variable bounds stored in the given variable bounds data structure
Definition at line 326 of file implics.c. References NULL, and SCIPvboundsFree(). Referenced by SCIPvarRemoveCliquesImplicsVbs().
gets number of variable bounds contained in given variable bounds data structure
Definition at line 3021 of file implics.c. References SCIP_VBounds::len, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveImplic().
gets array of variables contained in given variable bounds data structure
Definition at line 3029 of file implics.c. References NULL, and SCIP_VBounds::vars. Referenced by SCIPvarAggregate(), SCIPvarGetVlbVars(), SCIPvarGetVubVars(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveImplic().
gets array of coefficients contained in given variable bounds data structure
Definition at line 3037 of file implics.c. References SCIP_VBounds::coefs, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetVlbCoefs(), SCIPvarGetVubCoefs(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveImplic().
gets array of constants contained in given variable bounds data structure
Definition at line 3045 of file implics.c. References SCIP_VBounds::constants, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetVlbConstants(), SCIPvarGetVubConstants(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveImplic().
frees an implications data structure
Definition at line 444 of file implics.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, and NULL. Referenced by SCIPimplicsDel(), SCIPvarAggregate(), SCIPvarRemove(), SCIPvarRemoveCliquesImplicsVbs(), and varFree().
adds an implication x == 0/1 -> y <= b or y >= b to the implications data structure; the implication must be non-redundant
Definition at line 630 of file implics.c. References BMSmoveMemoryArray, checkImplics(), FALSE, implicsEnsureSize(), implicsSearchImplic(), SCIP_Stat::nimplications, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPdebugMessage, SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), and TRUE. Referenced by varAddImplic().
removes the implication x <= 0 or x >= 1 ==> y <= b or y >= b from the implications data structure
Definition at line 837 of file implics.c. References BMSmoveMemoryArray, checkImplics(), implicsSearchImplic(), NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_OKAY, SCIPdebugMessage, SCIPimplicsFree(), and SCIPvarGetName(). Referenced by SCIPvarRemoveCliquesImplicsVbs().
returns which implications on given variable y are contained in implications for x == 0 or x == 1
Definition at line 895 of file implics.c. References implicsSearchVar(), and NULL.
returns whether an implication y <= b or y >= b is contained in implications for x == 0 or x == 1
Definition at line 917 of file implics.c. References implicsSearchImplic(). Referenced by SCIPvarHasImplic().
gets number of implications for a given binary variable fixing
Definition at line 3053 of file implics.c. References SCIP_Implics::nimpls, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetImplRedcost(), SCIPvarGetNImpls(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveBinaryClosureImplic().
gets array with implied variables for a given binary variable fixing
Definition at line 3062 of file implics.c. References NULL, and SCIP_Implics::vars. Referenced by SCIPvarAggregate(), SCIPvarGetImplRedcost(), SCIPvarGetImplVars(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveBinaryClosureImplic().
gets array with implication types for a given binary variable fixing
Definition at line 3071 of file implics.c. References NULL, and SCIP_Implics::types. Referenced by SCIPvarAggregate(), SCIPvarGetImplRedcost(), SCIPvarGetImplTypes(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveBinaryClosureImplic().
gets array with implication bounds for a given binary variable fixing
Definition at line 3080 of file implics.c. References SCIP_Implics::bounds, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetImplBounds(), SCIPvarGetImplRedcost(), SCIPvarRemoveCliquesImplicsVbs(), and varAddTransitiveBinaryClosureImplic().
Gets array with unique implication identifiers for a given binary variable fixing. If an implication is a shortcut, i.e., it was added as part of the transitive closure of another implication, its id is negative, otherwise it is nonnegative.
Definition at line 3092 of file implics.c. References SCIP_Implics::ids, and NULL. Referenced by SCIPvarGetImplIds().
adds a single variable to the given clique
Definition at line 1135 of file implics.c. References BMSmoveMemoryArray, cliqueEnsureSize(), SCIP_Clique::eventsissued, FALSE, SCIP_Clique::id, NULL, SCIP_Clique::nvars, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPdebugMessage, SCIPsortedvecFindPtr(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsBinary(), TRUE, SCIP_Clique::values, and SCIP_Clique::vars. Referenced by SCIPvarAddClique().
removes a single variable from the given clique
Definition at line 1269 of file implics.c. References cliquetableMarkCliqueForCleanup(), SCIP_Clique::id, SCIP_CliqueTable::incleanup, SCIP_Clique::index, NULL, SCIPcliqueSearchVar(), SCIPdebugMessage, SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIP_Clique::startcleanup, SCIP_Clique::values, and SCIP_Clique::vars. Referenced by SCIPcliquelistRemoveFromCliques(), and SCIPvarDelClique().
frees a clique list data structure
Definition at line 1425 of file implics.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, and NULL. Referenced by SCIPcliquelistDel(), SCIPvarRemoveCliquesImplicsVbs(), and varFree().
adds a clique to the clique list
Definition at line 1466 of file implics.c. References BMSmoveMemoryArray, cliquelistCreate(), cliquelistEnsureSize(), SCIP_Clique::id, SCIP_CliqueList::ncliques, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPvarAddClique(), SCIPvarAddCliqueToList(), and SCIPvarsAddClique().
removes a clique from the clique list
Definition at line 1511 of file implics.c. References BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, BMSmoveMemoryArray, cliquesSearchClique(), SCIP_Clique::id, SCIP_CliqueList::ncliques, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_OKAY, SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPcliquelistFree(), SCIPdebugMessage, and SCIPsortPtrBool(). Referenced by SCIPvarDelClique(), and SCIPvarDelCliqueFromList().
returns whether the given clique lists have a non-empty intersection, i.e. whether there is a clique that appears in both lists
Definition at line 1589 of file implics.c. References SCIP_CliqueList::cliques, FALSE, SCIP_CliqueList::ncliques, NULL, SCIPcliqueGetId(), and TRUE. Referenced by SCIPvarsHaveCommonClique().
removes all listed entries from the cliques
Definition at line 1667 of file implics.c. References cliqueCheck(), SCIP_CliqueList::cliques, SCIP_Clique::equation, FALSE, SCIP_Clique::id, SCIP_CliqueTable::incleanup, SCIP_Clique::index, SCIP_CliqueList::ncliques, NULL, SCIP_Clique::nvars, SCIP_Bool, SCIPcliqueDelVar(), SCIPdebugMessage, SCIPvarGetCliques(), SCIPvarGetName(), SCIPvarGetNCliques(), and SCIPvarIsBinary(). Referenced by SCIPvarRemoveCliquesImplicsVbs().
creates a clique table data structure
Definition at line 1776 of file implics.c. References BMSallocMemory, FALSE, HASHTABLE_CLIQUETABLE_SIZE, MAX, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_HASHSIZE_CLIQUES, SCIP_HASHSIZE_CLIQUES_SMALL, SCIP_OKAY, SCIPcalcHashtableSize(), and SCIPhashtableCreate(). Referenced by SCIPtransformProb().
frees a clique table data structure
Definition at line 1808 of file implics.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, cliqueFree(), NULL, SCIP_OKAY, and SCIPhashtableFree(). Referenced by freeTransform().
adds a clique to the clique table, using the given values for the given variables; performs implications if the clique contains the same variable twice
Definition at line 2240 of file implics.c. References BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, cliqueCheck(), cliqueCreateWithData(), cliqueFree(), SCIP_CliqueTable::cliques, cliquetableEnsureSize(), SCIP_Clique::equation, FALSE, SCIP_CliqueTable::hashtable, SCIP_Clique::id, SCIP_Clique::index, SCIP_CliqueTable::ncliques, SCIP_CliqueTable::ncreatedcliques, SCIP_CliqueTable::nentries, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPdebugCheckClique, SCIPdebugMessage, SCIPhashtableInsert(), SCIPhashtableRetrieve(), SCIPvarFixBinary(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarIsMarkedDeleteGlobalStructures(), SCIPvarsAddClique(), SCIPvarsGetProbvarBinary(), sortAndMergeClique(), and TRUE. Referenced by SCIPaddClique(), and varAddImplic().
removes all empty and single variable cliques from the clique table; removes double entries from the clique table
removes all empty and single variable cliques from the clique table; removes double entries from the clique table
Definition at line 2780 of file implics.c. References checkNEntries, cliqueCheck(), cliqueCleanup(), cliqueFree(), SCIP_CliqueTable::cliques, cliquetableSwapCliques(), SCIP_Clique::equation, SCIP_Clique::eventsissued, FALSE, SCIP_CliqueTable::hashtable, SCIP_Clique::id, SCIP_CliqueTable::incleanup, SCIP_Clique::index, SCIP_CliqueTable::ncleanupaggrvars, SCIP_CliqueTable::ncleanupfixedvars, SCIP_CliqueTable::ncliques, SCIP_CliqueTable::ndirtycliques, SCIP_CliqueTable::nentries, SCIP_Stat::npresolaggrvars, SCIP_Stat::npresolfixedvars, NULL, SCIP_Clique::nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPcliqueIsCleanedUp(), SCIPdebugMessage, SCIPeventCreateImplAdded(), SCIPeventqueueAdd(), SCIPeventqueueDelay(), SCIPeventqueueProcess(), SCIPhashtableInsert(), SCIPhashtableRemove(), SCIPhashtableRetrieve(), SCIPsetGetStage(), SCIPvarDelCliqueFromList(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarTryAggregateVars(), TRUE, SCIP_Clique::values, and SCIP_Clique::vars. Referenced by exitPresolve(), presolveRound(), and SCIPcleanupCliques().
returns the number of cliques stored in the clique list
Definition at line 3163 of file implics.c. References SCIP_CliqueList::ncliques, and NULL. Referenced by SCIPcliquelistCheck(), and SCIPvarGetNCliques().
returns the cliques stored in the clique list, or NULL if the clique list is empty
Definition at line 3172 of file implics.c. References SCIP_CliqueList::cliques, and NULL. Referenced by SCIPcliquelistCheck(), and SCIPvarGetCliques().
checks whether variable is contained in all cliques of the cliquelist
Definition at line 3181 of file implics.c. References FALSE, NULL, SCIP_Bool, SCIPcliquelistGetCliques(), SCIPcliquelistGetNCliques(), SCIPcliqueSearchVar(), SCIPvarGetCliques(), SCIPvarGetNCliques(), TRUE, SCIP_Clique::values, and SCIP_Clique::vars. Referenced by SCIPvarAddClique(), SCIPvarDelClique(), and SCIPvarsAddClique().
gets the number of cliques stored in the clique table
Definition at line 3223 of file implics.c. References SCIP_CliqueTable::ncliques, and NULL. Referenced by presolve(), SCIPgetNCliques(), SCIPhaveVarsCommonClique(), and SCIPisPresolveFinished().
gets the array of cliques stored in the clique table
Definition at line 3233 of file implics.c. References SCIP_CliqueTable::cliques, and NULL. Referenced by SCIPgetCliques().
gets the number of entries in the whole clique table
Definition at line 3243 of file implics.c. References SCIP_CliqueTable::nentries, and NULL. |