Detailed Descriptionclique separator Definition in file sepa_clique.c. #include <assert.h> #include <string.h> #include "scip/sepa_clique.h" #include "tclique/tclique.h" #include "scip/pub_misc.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 32 of file sepa_clique.c. Referenced by SCIP_DECL_SEPACOPY(), and SCIPincludeSepaClique().
Definition at line 33 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
Definition at line 34 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
Definition at line 35 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
Definition at line 36 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
does the separator use a secondary SCIP instance? Definition at line 37 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
should separation method be delayed, if other separators found cuts? Definition at line 38 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
factor for scaling weights Definition at line 40 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
maximal number of nodes in branch and bound tree (-1: no limit) Definition at line 41 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
frequency for premature backtracking up to tree level 1 (0: no backtracking) Definition at line 42 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
maximal number of clique cuts separated per separation round (-1: no limit) Definition at line 43 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
maximal number of zero-valued variables extending the clique (-1: no limit) Definition at line 44 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
maximal memory size of dense clique table (in kb) Definition at line 45 of file sepa_clique.c. Referenced by SCIPincludeSepaClique().
minimal density of cliques to use a dense clique table Definition at line 46 of file sepa_clique.c. Referenced by SCIPincludeSepaClique(). Function Documentation
creates an empty tclique graph data structure
Definition at line 99 of file sepa_clique.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, and SCIPgetNBinVars(). Referenced by tcliquegraphAddNode().
frees the tclique graph data structure and releases all captured variables
Definition at line 134 of file sepa_clique.c. References Scip::cliquetable, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeMemory, SCIPfreeMemoryArray, SCIPfreeMemoryArrayNull, and SCIPreleaseVar(). Referenced by loadTcliquegraph(), and SCIP_DECL_SEPAEXITSOL().
ensures that the cliqueids array can store at least num entries
Definition at line 166 of file sepa_clique.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocMemoryArray. Referenced by tcliquegraphAddNode().
adds a node to the tclique graph defined as a variable-value pair; adds all cliques to the cliqueids array the variable is contained in with the given value
Definition at line 188 of file sepa_clique.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPcaptureVar(), SCIPcliqueGetId(), SCIPgetNBinVars(), SCIPgetNegatedVar(), SCIPvarGetCliques(), SCIPvarGetNCliques(), SCIPvarGetType(), SCIPvarIsActive(), tcliquegraphCreate(), and tcliquegraphEnsureCliqueidsSize(). Referenced by tcliquegraphAddCliqueVars().
adds all variable/value pairs to the tclique graph that are contained in an existing 3-clique
Definition at line 258 of file sepa_clique.c. References NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPgetNBinVars(), SCIPgetVars(), SCIPvarGetNCliques(), and tcliquegraphAddNode(). Referenced by loadTcliquegraph().
constructs dense clique incidence matrix
Definition at line 301 of file sepa_clique.c. References BMSclearMemoryArray, Scip::cliquetable, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPallocBufferArray, SCIPallocMemoryArray, SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetCliques(), SCIPgetNCliques(), SCIPisStopped(), SCIPvarGetNegatedVar(), and SCIPvarGetType(). Referenced by loadTcliquegraph().
creates tclique data structure using the implication graph; only variables that are contained in a 3-clique are added as nodes to the clique graph
Definition at line 429 of file sepa_clique.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPisStopped(), tcliquegraphAddCliqueVars(), tcliquegraphConstructCliqueTable(), and tcliquegraphFree(). Referenced by separateCuts().
updates the weights in the tclique graph data structure
Definition at line 477 of file sepa_clique.c. References MAX, NULL, and SCIPfeasFloor(). Referenced by separateCuts().
returns whether the nodes are member of a common clique
Definition at line 526 of file sepa_clique.c. References FALSE, NULL, and TRUE. Referenced by TCLIQUE_ISEDGE(), and TCLIQUE_SELECTADJNODES().
returns, whether the edge (node1, node2) is in the graph Definition at line 588 of file sepa_clique.c. References nodesHaveCommonClique(), NULL, and TRUE.
selects all nodes from a given set of nodes which are adjacent to a given node and returns the number of selected nodes Definition at line 623 of file sepa_clique.c. References nodesHaveCommonClique(), and NULL.
basic code for new cliques (needed because of error handling)
Definition at line 671 of file sepa_clique.c. References FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCut(), SCIPaddPoolCut(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPcreateEmptyRowSepa(), SCIPflushRowExtensions(), SCIPinfinity(), SCIPreleaseRow(), SCIProwChgRank(), SCIPsnprintf(), and TRUE. Referenced by TCLIQUE_NEWSOL().
generates cuts using a clique found by algorithm for maximum weight clique and decides whether to stop generating cliques with the algorithm for maximum weight clique Definition at line 727 of file sepa_clique.c. References FALSE, MAX, newsolCliqueAddRow(), NULL, SCIP_Bool, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPisEfficacious(), and TRUE.
searches and adds clique cuts that separate the given primal solution
Definition at line 825 of file sepa_clique.c. References FALSE, loadTcliquegraph(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_SEPARATED, SCIPallocBufferArray, SCIPcleanupCliques(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetSolVals(), SCIPisStopped(), SCIPsepaGetData(), SCIPsepaGetNCalls(), tcliqueMaxClique(), TRUE, and updateTcliquegraph(). Referenced by SCIP_DECL_SEPAEXECLP(), and SCIP_DECL_SEPAEXECSOL().
copy method for separator plugins (called when SCIP copies plugins) Definition at line 941 of file sepa_clique.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaClique(), SCIPsepaGetName(), and SEPA_NAME.
destructor of separator to free user data (called when SCIP is exiting) Definition at line 956 of file sepa_clique.c. References NULL, SCIP_OKAY, SCIPfreeMemory, SCIPsepaGetData(), and SCIPsepaSetData().
solving process deinitialization method of separator (called before branch and bound process data is freed) Definition at line 973 of file sepa_clique.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPsepaGetData(), and tcliquegraphFree().
LP solution separation method of separator Definition at line 994 of file sepa_clique.c. References NULL, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPgetLPSolstat(), SCIPgetNLPBranchCands(), SCIPisStopped(), and separateCuts().
arbitrary primal solution separation method of separator Definition at line 1021 of file sepa_clique.c. References SCIP_CALL, SCIP_DIDNOTRUN, SCIP_OKAY, and separateCuts().
creates the clique separator and includes it in SCIP
Definition at line 1039 of file sepa_clique.c. References DEFAULT_BACKTRACKFREQ, DEFAULT_CLIQUEDENSITY, DEFAULT_CLIQUETABLEMEM, DEFAULT_MAXSEPACUTS, DEFAULT_MAXTREENODES, DEFAULT_MAXZEROEXTENSIONS, DEFAULT_SCALEVAL, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIPaddIntParam(), SCIPaddRealParam(), SCIPallocMemory, SCIPincludeSepaBasic(), SCIPsetSepaCopy(), SCIPsetSepaExitsol(), SCIPsetSepaFree(), SEPA_DELAY, SEPA_DESC, SEPA_FREQ, SEPA_MAXBOUNDDIST, SEPA_NAME, SEPA_PRIORITY, SEPA_USESSUBSCIP, and TRUE. Referenced by SCIP_DECL_SEPACOPY(), and SCIPincludeDefaultPlugins(). |