All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 varRemoveImplicsVbs().
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 varRemoveImplicsVbs().
gets number of variable bounds contained in given variable bounds data structure
Definition at line 2273 of file implics.c. References SCIP_VBounds::len, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), varAddTransitiveImplic(), and varRemoveImplicsVbs().
gets array of variables contained in given variable bounds data structure
Definition at line 2281 of file implics.c. References NULL, and SCIP_VBounds::vars. Referenced by SCIPvarAggregate(), SCIPvarGetVlbVars(), SCIPvarGetVubVars(), varAddTransitiveImplic(), and varRemoveImplicsVbs().
gets array of coefficients contained in given variable bounds data structure
Definition at line 2289 of file implics.c. References SCIP_VBounds::coefs, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetVlbCoefs(), SCIPvarGetVubCoefs(), varAddTransitiveImplic(), and varRemoveImplicsVbs().
gets array of constants contained in given variable bounds data structure
Definition at line 2297 of file implics.c. References SCIP_VBounds::constants, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetVlbConstants(), SCIPvarGetVubConstants(), varAddTransitiveImplic(), and varRemoveImplicsVbs().
frees an implications data structure
Definition at line 518 of file implics.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, and NULL. Referenced by SCIPimplicsDel(), SCIPvarAggregate(), SCIPvarRemove(), varFree(), and varRemoveImplicsVbs().
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 728 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, SCIP_VARTYPE_BINARY, SCIPdebugMessage, SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetType(), 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 939 of file implics.c. References BMSmoveMemoryArray, checkImplics(), implicsSearchImplic(), NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPdebugMessage, SCIPimplicsFree(), SCIPvarGetName(), and SCIPvarGetType(). Referenced by varAddImplic(), and varRemoveImplicsVbs().
returns which implications on given variable y are contained in implications for x == 0 or x == 1
Definition at line 1004 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 1026 of file implics.c. References implicsSearchImplic(). Referenced by SCIPvarHasImplic().
gets number of implications for a given binary variable fixing
Definition at line 2305 of file implics.c. References SCIP_Implics::nimpls, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetNImpls(), varAddTransitiveBinaryClosureImplic(), and varRemoveImplicsVbs().
gets number of implications on binary variables for a given binary variable fixing
Definition at line 2314 of file implics.c. References SCIP_Implics::nbinimpls, and NULL. Referenced by SCIPvarGetImplRedcost(), SCIPvarGetNBinImpls(), and varRemoveImplicsVbs().
gets array with implied variables for a given binary variable fixing
Definition at line 2323 of file implics.c. References NULL, and SCIP_Implics::vars. Referenced by SCIPvarAggregate(), SCIPvarGetImplRedcost(), SCIPvarGetImplVars(), varAddTransitiveBinaryClosureImplic(), and varRemoveImplicsVbs().
gets array with implication types for a given binary variable fixing
Definition at line 2332 of file implics.c. References NULL, and SCIP_Implics::types. Referenced by SCIPvarAggregate(), SCIPvarGetImplRedcost(), SCIPvarGetImplTypes(), varAddTransitiveBinaryClosureImplic(), and varRemoveImplicsVbs().
gets array with implication bounds for a given binary variable fixing
Definition at line 2341 of file implics.c. References SCIP_Implics::bounds, and NULL. Referenced by SCIPvarAggregate(), SCIPvarGetImplBounds(), varAddTransitiveBinaryClosureImplic(), and varRemoveImplicsVbs().
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 2353 of file implics.c. References SCIP_Implics::ids, and NULL. Referenced by SCIPvarGetImplIds().
adds a single variable to the given clique
Definition at line 1224 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 1358 of file implics.c. References SCIP_Clique::id, NULL, SCIP_Clique::nvars, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPcliqueSearchVar(), SCIPdebugMessage, SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsBinary(), SCIP_Clique::values, and SCIP_Clique::vars. Referenced by SCIPvarDelClique().
frees a clique list data structure
Definition at line 1480 of file implics.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, and NULL. Referenced by SCIPcliquelistDel(), SCIPvarAggregate(), SCIPvarFix(), SCIPvarMultiaggregate(), and varFree().
adds a clique to the clique list
Definition at line 1521 of file implics.c. References cliquelistCreate(), cliquelistEnsureSize(), SCIP_Clique::id, SCIP_CliqueList::ncliques, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPvarAddClique(), and SCIPvarsAddClique().
removes a clique from the clique list
Definition at line 1557 of file implics.c. References BMSmoveMemoryArray, cliquesSearchClique(), SCIP_Clique::id, SCIP_CliqueList::ncliques, NULL, SCIP_OKAY, SCIPcliquelistFree(), and SCIPdebugMessage. 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 1594 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 1672 of file implics.c. References BMSmoveMemoryArray, cliqueCheck(), SCIP_CliqueList::cliques, SCIP_Clique::id, SCIP_CliqueList::ncliques, NULL, SCIP_Clique::nvars, SCIP_Bool, SCIPcliqueSearchVar(), SCIPdebugMessage, SCIPvarGetCliques(), SCIPvarGetName(), SCIPvarGetNCliques(), SCIPvarIsBinary(), SCIP_Clique::values, and SCIP_Clique::vars. Referenced by SCIPvarAggregate(), SCIPvarFix(), and SCIPvarMultiaggregate().
creates a clique table data structure
Definition at line 1724 of file implics.c. References BMSallocMemory, NULL, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPtransformProb().
frees a clique table data structure
Definition at line 1743 of file implics.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, cliqueFree(), NULL, and SCIP_OKAY. 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 1792 of file implics.c. References BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, cliqueCheck(), cliqueCreateWithData(), SCIP_CliqueTable::cliques, cliquetableEnsureSize(), FALSE, SCIP_CliqueTable::ncliques, SCIP_CliqueTable::ncreatedcliques, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPdebugCheckClique, SCIPdebugMessage, SCIPsortPtrBool(), SCIPvarAddClique(), SCIPvarFixBinary(), SCIPvarGetLbGlobal(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarsAddClique(), SCIPvarsGetProbvarBinary(), and TRUE. Referenced by SCIPaddClique().
removes all empty and single variable cliques from the clique table, and converts all two variable cliques into implications; removes double entries from the clique table
Definition at line 2108 of file implics.c. References cliqueFree(), SCIP_CliqueTable::cliques, SCIP_Clique::eventsissued, FALSE, MAX, SCIP_CliqueTable::ncleanupaggrvars, SCIP_CliqueTable::ncleanupcliques, SCIP_CliqueTable::ncleanupfixedvars, SCIP_CliqueTable::ncliques, SCIP_Stat::npresolaggrvars, SCIP_Stat::npresolfixedvars, NULL, SCIP_Clique::nvars, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_HASHSIZE_CLIQUES, SCIP_HASHSIZE_CLIQUES_SMALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPcalcHashtableSize(), SCIPeventCreateImplAdded(), SCIPeventqueueAdd(), SCIPeventqueueDelay(), SCIPeventqueueProcess(), SCIPhashtableCreate(), SCIPhashtableExists(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPvarAddImplic(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarDelCliqueFromList(), SCIPvarGetType(), SCIPvarIsBinary(), TRUE, SCIP_Clique::values, and SCIP_Clique::vars. Referenced by exitPresolve(), and presolveRound().
returns the number of cliques stored in the clique list
Definition at line 2404 of file implics.c. References SCIP_CliqueList::ncliques, and NULL. Referenced by SCIPcliquelistCheck(), SCIPvarAggregate(), and SCIPvarGetNCliques().
returns the cliques stored in the clique list, or NULL if the clique list is empty
Definition at line 2413 of file implics.c. References SCIP_CliqueList::cliques, and NULL. Referenced by SCIPcliquelistCheck(), SCIPvarAggregate(), and SCIPvarGetCliques().
checks whether variable is contained in all cliques of the cliquelist
Definition at line 2422 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 2464 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 2474 of file implics.c. References SCIP_CliqueTable::cliques, and NULL. Referenced by SCIPgetCliques(). |