Detailed Description
Problem data for Steiner problems.
This file implements the problem data for Steiner problems. For more details see Main problem data page.
Definition in file probdata_stp.c.
#include <string.h>
#include "probdata_stp.h"
#include <stdio.h>
#include "cons_stp.h"
#include "dualascent.h"
#include "graph.h"
#include "reduce.h"
#include "stptest.h"
#include "solstp.h"
#include "solpool.h"
#include "solhistory.h"
#include "cons_stpcomponents.h"
#include "scip/cons_linear.h"
#include "scip/cons_setppc.h"
#include "scip/misc.h"
#include "scip/struct_misc.h"
#include "heur_tm.h"
#include "heur_slackprune.h"
#include "relax_stpdp.h"
Go to the source code of this file.
Macros | |
#define | VERSION_SCIPJACK "2.0" |
#define | STP_SYM_PRIZE |
#define | STP_AGG_SYM |
#define | FLOWB FALSE |
#define | USEOFFSETVAR FALSE |
#define | SYM_CONS_LIMIT 20000 |
#define | CYC_CONS_LIMIT 10000 |
#define | CUT_MINREDUCTION_RATIO 0.95 |
#define | MINREDUCTION_RATIO_STP 0.90 |
#define | MINREDUCTION_RATIO_PCMW 0.85 |
#define | CUT_MAXNTERMINALS 500 |
#define | CUT_MAXNEDGES 10000 |
#define | CUT_MAXTOTNEDGES 50000 |
#define | CUT_MINTOTNEDGES 12000 |
Macro Definition Documentation
◆ VERSION_SCIPJACK
#define VERSION_SCIPJACK "2.0" |
Definition at line 65 of file probdata_stp.c.
Referenced by writeCommentSection().
◆ STP_SYM_PRIZE
#define STP_SYM_PRIZE |
Definition at line 67 of file probdata_stp.c.
◆ STP_AGG_SYM
#define STP_AGG_SYM |
Definition at line 68 of file probdata_stp.c.
◆ FLOWB
#define FLOWB FALSE |
Definition at line 70 of file probdata_stp.c.
◆ USEOFFSETVAR
#define USEOFFSETVAR FALSE |
Definition at line 71 of file probdata_stp.c.
◆ SYM_CONS_LIMIT
#define SYM_CONS_LIMIT 20000 |
maximum number of symmetry inequalities for MWCSP and PCSPG
Definition at line 73 of file probdata_stp.c.
Referenced by setParams().
◆ CYC_CONS_LIMIT
#define CYC_CONS_LIMIT 10000 |
maximum number of symmetry inequalities for PCSPG
Definition at line 74 of file probdata_stp.c.
Referenced by setParams().
◆ CUT_MINREDUCTION_RATIO
#define CUT_MINREDUCTION_RATIO 0.95 |
Definition at line 76 of file probdata_stp.c.
Referenced by setParamsSepaIsBad().
◆ MINREDUCTION_RATIO_STP
#define MINREDUCTION_RATIO_STP 0.90 |
Definition at line 77 of file probdata_stp.c.
Referenced by SCIPprobdataProbIsAdversarial().
◆ MINREDUCTION_RATIO_PCMW
#define MINREDUCTION_RATIO_PCMW 0.85 |
Definition at line 78 of file probdata_stp.c.
Referenced by SCIPprobdataProbIsAdversarial().
◆ CUT_MAXNTERMINALS
#define CUT_MAXNTERMINALS 500 |
Definition at line 79 of file probdata_stp.c.
Referenced by setParamsSepaIsBad().
◆ CUT_MAXNEDGES
#define CUT_MAXNEDGES 10000 |
Definition at line 80 of file probdata_stp.c.
Referenced by setParamsSepaIsBad().
◆ CUT_MAXTOTNEDGES
#define CUT_MAXTOTNEDGES 50000 |
Definition at line 81 of file probdata_stp.c.
Referenced by setParamsSepaIsBad().
◆ CUT_MINTOTNEDGES
#define CUT_MINTOTNEDGES 12000 |
Definition at line 82 of file probdata_stp.c.
Referenced by setParamsSepaIsBad().
Function Documentation
◆ writeCommentSection()
- Parameters
-
scip SCIP data structure graph graph data structure filename problem file name
Definition at line 164 of file probdata_stp.c.
References SCIPprobdataWriteLogLine(), STP_BRMWCSP, STP_DCSTP, STP_DHCSTP, STP_MWCSP, STP_NWSPG, STP_OARSMT, STP_PCSPG, STP_RMWCSP, STP_RPCSPG, STP_RSMT, STP_SAP, STP_SPG, GRAPH::stp_type, and VERSION_SCIPJACK.
Referenced by SCIPprobdataCreate().
◆ probdataCreate()
|
static |
creates problem data
- Parameters
-
scip SCIP data structure probdata pointer to problem data graph graph data structure
Definition at line 238 of file probdata_stp.c.
References FALSE, FARAWAY, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, STP_SPG, and GRAPH::stp_type.
Referenced by SCIP_DECL_PROBCOPY(), SCIP_DECL_PROBTRANS(), and SCIPprobdataCreateFromGraph().
◆ setStpSolvingMode()
|
static |
sets STP solving mode
- Parameters
-
scip SCIP data structure probdata pointer to problem data
Definition at line 280 of file probdata_stp.c.
References SCIP_CALL, SCIP_OKAY, SCIPgetCharParam(), STP_MODE_CUT, and STP_MODE_FLOW.
Referenced by SCIPprobdataCreateFromGraph().
◆ addRedsol()
|
static |
adds solution obtained during reduction...if existent
- Parameters
-
scip SCIP data structure probdata pointer to problem data redsol solution storage for r
Definition at line 304 of file probdata_stp.c.
References GRAPH::edges, FARAWAY, graph_pc_isPcMw(), graph_typeIsSpgLike(), LT, NULL, reduce_solGetEdgesol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, solpool_addSolToScip(), solstp_isValid(), STP_MODE_CUT, and GRAPH::terms.
Referenced by SCIPprobdataCreateFromGraph().
◆ presolveStp()
|
static |
presolves STP
- Parameters
-
scip SCIP data structure probdata pointer to problem data redsol solution storage for r
Definition at line 353 of file probdata_stp.c.
References GRAPH::edges, graph_pack(), graph_pc_isPcMw(), graph_writeReductionRatioStatsLive(), GRAPH::orgsource, reduce_exec(), reduce_solGetUpperBoundWithOffset(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPgetIntParam(), SCIPgetProbName(), SCIPgetRealParam(), SCIPsetRealParam(), GRAPH::source, GRAPH::stp_type, stptest_testAll(), and TRUE.
Referenced by SCIPprobdataCreateFromGraph().
◆ freeConstraintsCutModel()
|
static |
frees the constraints of CUT model
- Parameters
-
scip SCIP data structure probdata pointer to problem data
Definition at line 423 of file probdata_stp.c.
References SCIP_CALL, SCIP_OKAY, SCIPfreeMemoryArrayNull, SCIPreleaseCons(), STP_DCSTP, STP_MODE_CUT, STP_MWCSP, STP_PCSPG, and STP_RPCSPG.
Referenced by probdataFree().
◆ freeConstraintsNonCutModel()
|
static |
frees the constraints of non-CUT model
- Parameters
-
scip SCIP data structure probdata pointer to problem data
Definition at line 490 of file probdata_stp.c.
References SCIP_CALL, SCIP_OKAY, SCIPfreeMemoryArrayNull, SCIPreleaseCons(), SCIPreleaseVar(), STP_MODE_CUT, STP_MODE_FLOW, and STP_MODE_PRICE.
Referenced by probdataFree().
◆ probdataFree()
|
static |
frees the memory of the given problem data
- Parameters
-
scip SCIP data structure probdata pointer to problem data
Definition at line 542 of file probdata_stp.c.
References freeConstraintsCutModel(), freeConstraintsNonCutModel(), NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPfreeMemory, SCIPfreeMemoryArrayNull, SCIPreleaseCons(), SCIPreleaseVar(), STP_BRMWCSP, STP_DHCSTP, and STP_MODE_CUT.
Referenced by SCIP_DECL_PROBDELORIG(), and SCIP_DECL_PROBDELTRANS().
◆ createHopConstraint()
|
static |
create (edge-) HOP constraint (cut mode only)
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 590 of file probdata_stp.c.
References FALSE, GRAPH::hoplimit, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPcreateConsLinear(), SCIPdebugMessage, SCIPinfinity(), and TRUE.
Referenced by createModel().
◆ createBudgetConstraint()
|
static |
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 617 of file probdata_stp.c.
References GRAPH::budget, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPcreateConsLinear(), SCIPdebugMessage, SCIPinfinity(), and TRUE.
Referenced by createModel().
◆ createDegreeConstraints()
|
static |
create (node-) degree constraints (cut mode only)
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 641 of file probdata_stp.c.
References FALSE, GRAPH::maxdeg, nnodes, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPallocMemoryArray, SCIPcreateConsLinear(), SCIPdebugMessage, SCIPinfinity(), SCIPsnprintf(), and TRUE.
Referenced by createModel().
◆ createPrizeConstraints()
|
static |
create Prize constraints (cut mode only)
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 676 of file probdata_stp.c.
References addCut(), EAT_LAST, GRAPH::edges, FALSE, flipedge, graph_edge_isInRange(), graph_get_nEdges(), graph_get_nNodes(), graph_knot_printInfo(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_pseudoTerm, Is_term, GRAPH::knots, nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, r, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCoefLinear(), SCIPaddCons(), SCIPallocBufferArray, SCIPallocMemoryArray, SCIPcreateConsLinear(), SCIPcreateConsSetpack(), SCIPdebugMessage, SCIPfreeBuffer, SCIPinfinity(), SCIPreleaseCons(), SCIPsnprintf(), GRAPH::source, STP_PCSPG, STP_RPCSPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::terms, and TRUE.
Referenced by createModel().
◆ createConstraints()
|
static |
create constraints (in Flow or Price Mode)
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 954 of file probdata_stp.c.
References FALSE, nnodes, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPallocMemoryArray, SCIPcreateConsLinear(), SCIPdebugMessage, SCIPinfinity(), SCIPsnprintf(), GRAPH::source, STP_MODE_CUT, STP_MODE_FLOW, STP_MODE_PRICE, GRAPH::term, and TRUE.
Referenced by createModel().
◆ createVariables()
|
static |
create initial columns
- Parameters
-
scip SCIP data structure probdata problem data offset offset computed during the presolving
Definition at line 1100 of file probdata_stp.c.
References a, GRAPH::cost, GRAPH::costbudget, EAT_LAST, shortest_path::edge, GRAPH::edges, GRAPH::extended, flipedge, FSP_MODE, GRAPH::grad, graph_path_exec(), graph_pc_getRoot2PtermEdge(), graph_pc_getTwinTerm(), graph_pc_isPcMw(), graph_pc_knotIsDummyTerm(), graph_pc_knotIsFixedTerm(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_pseudoTerm, Is_term, GRAPH::knots, GRAPH::mark, nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_INTEGER, SCIPaddCoefLinear(), SCIPaddCoefSetppc(), SCIPaddOrigObjoffset(), SCIPaddVar(), SCIPallocBufferArray, SCIPallocMemoryArray, SCIPchgVarBranchPriority(), SCIPchgVarUbLazy(), SCIPcreateVarBasic(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPinfinity(), SCIPisIntegral(), SCIPisZero(), SCIPsetObjIntegral(), SCIPsnprintf(), SCIPsortRealInt(), GRAPH::source, STP_BRMWCSP, STP_DCSTP, STP_DHCSTP, STP_MODE_CUT, STP_MODE_FLOW, STP_MODE_PRICE, STP_MWCSP, STP_PCSPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and GRAPH::terms.
Referenced by createModel().
◆ createModel()
|
static |
creates the actual MIP/IP model
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 1538 of file probdata_stp.c.
References createBudgetConstraint(), createConstraints(), createDegreeConstraints(), createHopConstraint(), createPrizeConstraints(), createVariables(), graph_get_nEdges(), graph_get_nNodes(), graph_mincut_init(), graph_path_init(), Is_term, GRAPH::layers, nnodes, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPallocMemoryArray, SCIPcreateConsStp(), SCIPdebugMessage, SCIPreleaseCons(), GRAPH::source, STP_BRMWCSP, STP_DCSTP, STP_DHCSTP, STP_MODE_CUT, STP_MWCSP, STP_PCSPG, GRAPH::stp_type, GRAPH::term, and GRAPH::terms.
Referenced by SCIPprobdataCreateFromGraph().
◆ createLogfile()
|
static |
creates a log file
- Parameters
-
scip SCIP data structure probdata problem data intlogfilename user parameter logfilename user parameter filename file name probname problem name
Definition at line 1657 of file probdata_stp.c.
References NULL, SCIP_FILECREATEERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPerrorMessage, SCIPprintSysError(), and SCIPsnprintf().
Referenced by SCIPprobdataCreate().
◆ createInitialCuts()
|
static |
creates initial cuts for SCIP
- Parameters
-
scip SCIP data structure probdata problem data
Definition at line 1718 of file probdata_stp.c.
References reduce_cost_parameters::addcuts, GRAPH::cost, dualascent_exec(), dualascent_execDegCons(), dualascent_execPcMw(), GRAPH::edges, FALSE, graph_pc_isRootedPcMw(), graph_typeIsDirected(), graph_typeIsSpgLike(), NULL, pcmode_fromheurdata, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPStpHeurSlackPruneRun(), SCIPStpHeurTMRun(), solstp_addSolToProb(), GRAPH::source, STP_BRMWCSP, STP_DCSTP, STP_MODE_CUT, STP_MWCSP, STP_PCSPG, GRAPH::stp_type, GRAPH::terms, and TRUE.
Referenced by SCIPprobdataCreateFromGraph().
◆ getEdgeReductionRatio()
|
static |
ratio of remaining edges
- Parameters
-
probdata problem data graph the graph
Definition at line 1783 of file probdata_stp.c.
References GRAPH::edges, GE, graph_pc_getReductionRatios(), graph_pc_isPcMw(), GRAPH::knots, LE, and SCIP_Real.
Referenced by SCIPprobdataProbIsAdversarial(), and setParamsSepaIsBad().
◆ setParamsSepaIsBad()
|
static |
helper
- Parameters
-
probdata problem data
Definition at line 1811 of file probdata_stp.c.
References CUT_MAXNEDGES, CUT_MAXNTERMINALS, CUT_MAXTOTNEDGES, CUT_MINREDUCTION_RATIO, CUT_MINTOTNEDGES, GRAPH::edges, FALSE, getEdgeReductionRatio(), SCIP_Bool, SCIP_Real, GRAPH::terms, and TRUE.
Referenced by setParams().
◆ sepaBadGetZeroHalfMaxrounds()
|
static |
helper
- Parameters
-
g graph data structure
Definition at line 1844 of file probdata_stp.c.
References nterms, and GRAPH::terms.
Referenced by setParams().
◆ setParams()
|
static |
set parameters
- Parameters
-
scip SCIP data structure probdata problem data symcons user parameter cyclecons user parameter
Definition at line 1862 of file probdata_stp.c.
References CYC_CONS_LIMIT, GRAPH::edges, FALSE, graph_pc_isPcMw(), graph_typeIsSpgLike(), GRAPH::knots, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsetBoolParam(), SCIPsetCharParam(), SCIPsetIntParam(), SCIPsetRealParam(), sepaBadGetZeroHalfMaxrounds(), setParamsSepaIsBad(), STP_CONS_ALWAYS, STP_CONS_AUTOMATIC, STP_DHCSTP, STP_MWCSP, STP_PCSPG, GRAPH::stp_type, SYM_CONS_LIMIT, GRAPH::terms, and TRUE.
Referenced by SCIPprobdataCreateFromGraph().
◆ SCIP_DECL_PROBCOPY()
|
static |
copies user data of source SCIP for the target SCIP
Definition at line 1962 of file probdata_stp.c.
References BMScopyMemoryArray, graph_copy(), graph_copyPseudoAncestors(), graph_initPseudoAncestors(), graph_mincut_init(), graph_path_init(), GRAPH::knots, NULL, probdataCreate(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SUCCESS, SCIPallocMemoryArray, SCIPcaptureCons(), SCIPcaptureVar(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPdebugMessage, SCIPgetConsCopy(), SCIPgetVarCopy(), SCIPvarIsActive(), STP_BRMWCSP, STP_DCSTP, STP_DHCSTP, STP_MODE_CUT, STP_MODE_FLOW, STP_MODE_PRICE, STP_MWCSP, STP_PCSPG, STP_RPCSPG, and TRUE.
◆ SCIP_DECL_PROBDELORIG()
|
static |
frees user data of original problem (called when the original problem is freed)
Definition at line 2335 of file probdata_stp.c.
References graph_free(), graph_mincut_exit(), graph_path_exit(), NULL, probdataFree(), SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, STP_MODE_CUT, and TRUE.
◆ SCIP_DECL_PROBTRANS()
|
static |
creates user data of transformed problem by transforming the original user problem data (called after problem was transformed)
Definition at line 2367 of file probdata_stp.c.
References BMScopyMemoryArray, MAX, NULL, probdataCreate(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemoryArray, SCIPdebugMessage, SCIPgetBoolParam(), SCIPgetReadingTime(), SCIPgetRealParam(), SCIPsetRealParam(), SCIPtransformCons(), SCIPtransformConss(), SCIPtransformVar(), SCIPtransformVars(), STP_BRMWCSP, STP_DCSTP, STP_DHCSTP, STP_MODE_CUT, STP_MODE_FLOW, STP_MODE_PRICE, STP_MWCSP, and STP_PCSPG.
◆ SCIP_DECL_PROBINITSOL()
|
static |
Definition at line 2540 of file probdata_stp.c.
◆ SCIP_DECL_PROBEXITSOL()
|
static |
Definition at line 2549 of file probdata_stp.c.
References NULL, SCIP_CALL, SCIP_ERROR, SCIP_FILECREATEERROR, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPgetNSols(), SCIPgetPrimalbound(), SCIPgetTotalTime(), SCIPprobdataWriteLogLine(), SCIPprobdataWriteSolution(), STP_BRMWCSP, STP_MWCSP, and STP_RMWCSP.
◆ SCIP_DECL_PROBDELTRANS()
|
static |
frees user data of transformed problem (called when the transformed problem is freed)
Definition at line 2627 of file probdata_stp.c.
References probdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
◆ SCIPprobdataSetDefaultParams()
SCIP_RETCODE SCIPprobdataSetDefaultParams | ( | SCIP * | scip | ) |
sets up the problem data
- Parameters
-
scip SCIP data structure
Definition at line 2645 of file probdata_stp.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIPlpiGetSolverName(), SCIPsetBoolParam(), SCIPsetCharParam(), SCIPsetIntParam(), SCIPsetRealParam(), SCIPsetSubscipsOff(), and TRUE.
Referenced by initReceivedSubproblem(), runShell(), and subscipSetupParameters().
◆ SCIPprobdataCreate()
SCIP_RETCODE SCIPprobdataCreate | ( | SCIP * | scip, |
const char * | filename | ||
) |
sets up the problem data
- Parameters
-
scip SCIP data structure filename file name
Definition at line 2728 of file probdata_stp.c.
References createLogfile(), FALSE, presolve_info::fixed, graph_load(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, SCIPgetProbData(), SCIPgetStringParam(), SCIPprobdataCreateFromGraph(), SCIPsnprintf(), SCIPsplitFilename(), SCIPwriteOrigProblem(), GRAPH::stp_type, and writeCommentSection().
◆ SCIPprobdataCreateFromGraph()
SCIP_RETCODE SCIPprobdataCreateFromGraph | ( | SCIP * | scip, |
SCIP_Real | offset, | ||
const char * | probname, | ||
SCIP_Bool | isSubProb, | ||
GRAPH * | graph_move | ||
) |
sets up the problem data, given a graph
- Parameters
-
scip SCIP data structure offset offset probname problem name isSubProb is this a subproblem? graph_move graph; will be moved to probdata and pointer invalidated!
Definition at line 2784 of file probdata_stp.c.
References addRedsol(), createInitialCuts(), createModel(), FALSE, graph_copy(), graph_copyPseudoAncestors(), graph_findCentralTerminal(), graph_initPseudoAncestors(), graph_pc_isPcMw(), graph_typeIsSpgLike(), graph_writeGml(), GRAPH::knots, NULL, presolveStp(), probdataCreate(), reduce_solFree(), reduce_solGetOffset(), reduce_solInit(), SCIP_Bool, SCIP_CALL, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIPcreateProbBasic(), SCIPgetBoolParam(), SCIPgetIntParam(), SCIPsetObjsense(), SCIPsetProbCopy(), SCIPsetProbData(), SCIPsetProbDelorig(), SCIPsetProbDeltrans(), SCIPsetProbExitsol(), SCIPsetProbInitsol(), SCIPsetProbTrans(), SCIPStpcomponentsAllowsDecomposition(), SCIPStpcomponentsSetUp(), SCIPStpDpRelaxActivate(), SCIPStpDpRelaxIsPromising(), setParams(), setStpSolvingMode(), GRAPH::source, STP_CONS_ALWAYS, STP_CONS_AUTOMATIC, STP_CONS_NEVER, STP_MODE_CUT, STP_NWSPG, STP_REDUCTION_NONE, GRAPH::stp_type, STP_USEDP_ALWAYS, STP_USEDP_AUTOMATIC, STP_USEDP_NEVER, GRAPH::terms, and TRUE.
Referenced by SCIPprobdataCreate(), and subscipSolve().
◆ SCIPprobdataSetGraph()
void SCIPprobdataSetGraph | ( | SCIP_PROBDATA * | probdata, |
GRAPH * | graph | ||
) |
sets the probdata graph
- Parameters
-
probdata problem data graph graph data structure
Definition at line 2936 of file probdata_stp.c.
References NULL.
◆ SCIPprobdataGetGraph()
GRAPH* SCIPprobdataGetGraph | ( | SCIP_PROBDATA * | probdata | ) |
returns the graph
- Parameters
-
probdata problem data
Definition at line 2948 of file probdata_stp.c.
References NULL.
Referenced by initReceivedSubproblem(), pricing(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSPROP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINIT(), SCIP_DECL_PROPEXEC(), SCIP_DECL_READERREAD(), and SCIP_DECL_READERWRITE().
◆ SCIPprobdataGetGraph2()
returns the graph
- Parameters
-
scip problem data
Definition at line 2958 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by divideAndConquer(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSPROP(), SCIP_DECL_RELAXEXEC(), SCIPStpConshdlrSetGraph(), SCIPStpPropCheckForInfeas(), SCIPStpPropGetGraph(), selectBranchingVertexBySol(), sepaspecial_pacliquesSeparate(), sepaspecial_pcimplicationsSeparate(), sepaspecial_vtimplicationsSeparate(), subscipGetSol(), and subsolFixOrgEdges().
◆ SCIPprobdataSetOffset()
void SCIPprobdataSetOffset | ( | SCIP_PROBDATA * | probdata, |
SCIP_Real | offset | ||
) |
sets the offset
- Parameters
-
probdata problem data offset the offset value
Definition at line 2973 of file probdata_stp.c.
References NULL.
◆ SCIPprobdataGetNVars()
int SCIPprobdataGetNVars | ( | SCIP * | scip | ) |
returns the number of variables
- Parameters
-
scip SCIP data structure
Definition at line 2985 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by consdataCheck(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPROP(), SCIP_DECL_HEUREXEC(), selectBranchingVertexBySol(), and solpool_addSolToScip().
◆ SCIPprobdataGetVars()
returns the array with all variables
- Parameters
-
scip SCIP data structure
Definition at line 3000 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by computeHistory(), computeHistoryPcMw(), consdataCheck(), daExec(), dualascent_execPcMw(), getGraphStatesDirected(), lpcutAdd(), mincutInitForLp(), mincutPrepareForLp(), reduce_boundHopRc(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPROP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PROPEXEC(), SCIPStpHeurTMRunLP(), SCIPStpPropGetGraph(), sep_flow(), sepaspecial_pacliquesSeparate(), sepaspecial_pcimplicationsSeparate(), sepaspecial_vtimplicationsSeparate(), and subsolFixOrgEdges().
◆ SCIPprobdataGetNLayers()
int SCIPprobdataGetNLayers | ( | SCIP * | scip | ) |
returns the number of layers
- Parameters
-
scip SCIP data structure
Definition at line 3015 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataGetNEdges()
int SCIPprobdataGetNEdges | ( | SCIP * | scip | ) |
returns the number of edges
- Parameters
-
scip SCIP data structure
Definition at line 3030 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT(), and SCIP_DECL_PRICERINITSOL().
◆ SCIPprobdataGetNNodes()
int SCIPprobdataGetNNodes | ( | SCIP * | scip | ) |
returns the number of nodes
- Parameters
-
scip SCIP data structure
Definition at line 3045 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIPStpHeurTMBuildTreePcMw(), and solstp_pcGetSolRoot().
◆ SCIPprobdataGetNTerms()
int SCIPprobdataGetNTerms | ( | SCIP * | scip | ) |
returns the number of terminals
- Parameters
-
scip SCIP data structure
Definition at line 3060 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIPStpHeurTMBuildTreePcMw(), and solstp_pcGetSolRoot().
◆ SCIPprobdataGetRNTerms()
int SCIPprobdataGetRNTerms | ( | SCIP * | scip | ) |
returns the number of terminals without the root node
- Parameters
-
scip SCIP data structure
Definition at line 3075 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT(), and SCIP_DECL_PRICERINITSOL().
◆ SCIPprobdataGetRoot()
int SCIPprobdataGetRoot | ( | SCIP * | scip | ) |
returns root
- Parameters
-
scip SCIP data structure
Definition at line 3090 of file probdata_stp.c.
References NULL, SCIPgetProbData(), and GRAPH::source.
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataGetNorgEdges()
int SCIPprobdataGetNorgEdges | ( | SCIP * | scip | ) |
returns numer of original edges
- Parameters
-
scip SCIP data structure
Definition at line 3109 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by abortSlackPruneEarly(), and SCIPintListNodeAppendCopy().
◆ SCIPprobdataGetOffset()
returns offset of the problem
- Parameters
-
scip SCIP data structure
Definition at line 3124 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by dualascent_execPcMw(), SCIP_DECL_HEUREXEC(), SCIP_DECL_READERWRITE(), SCIP_DECL_RELAXEXEC(), SCIPStpHeurSlackPruneRun(), and solAddTry().
◆ SCIPprobdataGetPresolUpperBound()
returns upper bound from presolving NOTE: Mind to call the method in transformed stage!
- Parameters
-
scip SCIP data structure
Definition at line 3141 of file probdata_stp.c.
References GT, NULL, SCIP_Real, SCIPgetProbData(), SCIPgetTransObjoffset(), and SCIPgetTransObjscale().
Referenced by getCutoffbound().
◆ SCIPprobdataGetPresolUpperBoundWithOffset()
returns upper bound from presolving
- Parameters
-
scip SCIP data structure
Definition at line 3157 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataGetedgeVarByIndex()
returns the variable for a given index
- Parameters
-
scip SCIP data structure idx index of the edge
Definition at line 3173 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataGetXval()
returns the LP solution values
- Parameters
-
scip SCIP data structure sol solution to get values from
Definition at line 3190 of file probdata_stp.c.
References NULL, SCIP_CALL_ABORT, SCIP_Real, SCIPgetProbData(), and SCIPgetSolVals().
Referenced by mincutInitForLp(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_HEUREXEC(), SCIPStpHeurTMRunLP(), sep_flow(), sepaspecial_pacliquesSeparate(), sepaspecial_pcimplicationsSeparate(), sepaspecial_vtimplicationsSeparate(), solGetStpSol(), and solstp_getStpFromSCIPsol().
◆ SCIPprobdataGetEdgeConstraints()
returns all edge constraints
- Parameters
-
scip SCIP data structure
Definition at line 3218 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataGetPathConstraints()
returns all path constraints
- Parameters
-
scip SCIP data structure
Definition at line 3232 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataGetRTerms()
int* SCIPprobdataGetRTerms | ( | SCIP * | scip | ) |
returns the array with all variables
- Parameters
-
scip SCIP data structure
Definition at line 3247 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataGetPctermsorder()
int* SCIPprobdataGetPctermsorder | ( | SCIP * | scip | ) |
returns array
- Parameters
-
scip SCIP data structure
Definition at line 3262 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIPStpHeurTMBuildTreePcMw(), and solstp_pcGetSolRoot().
◆ SCIPprobdataGetEdgeVars()
returns the array with all edge variables
- Parameters
-
scip SCIP data structure
Definition at line 3277 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by branchOnVertex(), buildsolgraph(), selectBranchingVertexByLp(), and selectBranchingVertexByLp2Flow().
◆ SCIPprobdataIsBigt()
returns if 'T' model is being used
- Parameters
-
scip SCIP data structure
Definition at line 3292 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataObjIsIntegral()
- Parameters
-
scip SCIP data structure
Definition at line 3308 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataProbIsAdversarial()
returns whether problem seems very hard
- Parameters
-
scip SCIP data structure
Definition at line 3324 of file probdata_stp.c.
References FALSE, getEdgeReductionRatio(), graph_pc_isPcMw(), GT, MINREDUCTION_RATIO_PCMW, MINREDUCTION_RATIO_STP, SCIP_Real, SCIPgetProbData(), and TRUE.
Referenced by branchruleGetType(), initSolNumberBounds(), and SCIP_DECL_HEUREXEC().
◆ SCIPprobdataIsSubproblem()
returns if in subproblem
- Parameters
-
scip SCIP data structure
Definition at line 3359 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataPrintGraph()
SCIP_RETCODE SCIPprobdataPrintGraph | ( | SCIP * | scip, |
const char * | filename, | ||
SCIP_SOL * | sol, | ||
SCIP_Bool | printsol | ||
) |
print (undirected) graph in GML format
- Parameters
-
scip SCIP data structure filename name of the output file sol solution to be printed; or NULL for LP solution printsol should solution be printed?
Definition at line 3375 of file probdata_stp.c.
References FALSE, graph_writeGml(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetProbData(), SCIPgetSolVal(), SCIPisZero(), and TRUE.
◆ SCIPprobdataWriteIntermediateSolution()
SCIP_RETCODE SCIPprobdataWriteIntermediateSolution | ( | SCIP * | scip | ) |
writes the best solution to the intermediate solution file
- Parameters
-
scip SCIP data structure
Definition at line 3419 of file probdata_stp.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPgetProbData(), and SCIPprobdataWriteSolution().
Referenced by SCIP_DECL_EVENTEXEC().
◆ SCIPprobdataWriteSolution()
SCIP_RETCODE SCIPprobdataWriteSolution | ( | SCIP * | scip, |
FILE * | file | ||
) |
writes the best solution to a file
- Parameters
-
scip SCIP data structure file file to write best solution to; or NULL, to write to stdout
Definition at line 3435 of file probdata_stp.c.
References FALSE, graph_grid_coordinates(), graph_pc_isPcMw(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::head, solution_history::norgedges, GRAPH::norgmodelknots, solution_history::norgnodes, solution_history::nsoledges, solution_history::nsolnodes, NULL, GRAPH::orgedges, solution_history::orgedges_isInSol, GRAPH::orghead, GRAPH::orgknots, solution_history::orgnodes_isInSol, GRAPH::orgtail, GRAPH::pcancestors, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetBestSol(), SCIPgetProbData(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisZero(), SCIPprobdataWriteLogLine(), solhistory_computeHistory(), solhistory_free(), solhistory_init(), STP_DCSTP, STP_DHCSTP, STP_GSTP, STP_NWPTSPG, STP_NWSPG, STP_RPCSPG, STP_RSMT, STP_SAP, STP_SPG, GRAPH::stp_type, GRAPH::tail, and TRUE.
Referenced by SCIP_DECL_PROBEXITSOL(), SCIPprobdataWriteIntermediateSolution(), and SCIPprobdataWriteLogfileEnd().
◆ SCIPprobdataWriteLogLine()
void SCIPprobdataWriteLogLine | ( | SCIP * | scip, |
const char * | formatstr, | ||
... | |||
) |
writes a line to the log file
- Parameters
-
scip SCIP data structure formatstr format string like in printf() function
Definition at line 3659 of file probdata_stp.c.
References SCIP_Messagehdlr::logfile, NULL, SCIPgetMessagehdlr(), SCIPgetProbData(), and SCIPmessageVFPrintInfo().
Referenced by SCIP_DECL_EVENTEXEC(), SCIP_DECL_PROBEXITSOL(), SCIPprobdataWriteLogfileEnd(), SCIPprobdataWriteSolution(), and writeCommentSection().
◆ SCIPprobdataAddNewSol()
SCIP_RETCODE SCIPprobdataAddNewSol | ( | SCIP * | scip, |
SCIP_Real * | nval, | ||
SCIP_HEUR * | heur, | ||
SCIP_Bool * | success | ||
) |
add new solution
- Parameters
-
scip SCIP data structure nval array [0..nvars], nval[v] = 1 if node v is in the solution, nval[v] = 0 if not heur heuristic data success denotes whether the new solution has been successfully added
Definition at line 3693 of file probdata_stp.c.
References BMSclearMemoryArray, GRAPH::cost, EAT_LAST, shortest_path::edge, FALSE, FSP_MODE, graph_path_exec(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::mark, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCoefLinear(), SCIPaddSolFree(), SCIPaddVar(), SCIPallocMemoryArray, SCIPcheckSol(), SCIPcheckSolOrig(), SCIPcreateOrigSol(), SCIPcreateSol(), SCIPcreateVarBasic(), SCIPdebugMessage, SCIPfreeMemoryArrayNull, SCIPfreeSol(), SCIPgetNOrigVars(), SCIPgetOrigVars(), SCIPgetProbData(), SCIPgetSolVal(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisZero(), SCIPreleaseVar(), SCIPsetSolVal(), SCIPsetSolVals(), SCIPsnprintf(), SCIPsolGetHeur(), SCIPtrySolFree(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), GRAPH::source, STP_MODE_CUT, STP_MODE_FLOW, STP_MODE_PRICE, STP_MWCSP, STP_PCSPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and TRUE.
Referenced by poolAddSol(), SCIP_DECL_HEUREXEC(), selectBranchingVertexBySol(), solAddTry(), solpool_addSolToScip(), and solstp_addSolToProb().
◆ SCIPprobdataGetType()
int SCIPprobdataGetType | ( | SCIP * | scip | ) |
returns problem type
- Parameters
-
scip SCIP data structure
Definition at line 3972 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_EVENTEXEC(), and SCIPintListNodeAppendCopy().
◆ SCIPprobdataWriteLogfileEnd()
SCIP_RETCODE SCIPprobdataWriteLogfileEnd | ( | SCIP * | scip | ) |
writes end of log file
- Parameters
-
scip SCIP data structure
Definition at line 3987 of file probdata_stp.c.
References NULL, SCIP_CALL, SCIP_FILECREATEERROR, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPgetDualbound(), SCIPgetNSols(), SCIPgetPrimalbound(), SCIPgetProbData(), SCIPgetTotalTime(), SCIPprobdataWriteLogLine(), SCIPprobdataWriteSolution(), STP_BRMWCSP, STP_MWCSP, and STP_RMWCSP.
Referenced by SCIP_DECL_DIALOGEXEC().
◆ SCIPprobdataSetDualBound()
writes end of log file
- Parameters
-
scip SCIP data structure dual dual bound
Definition at line 4048 of file probdata_stp.c.
References NULL, SCIPgetProbData(), and TRUE.
◆ SCIPprobdataSetNSolvers()
void SCIPprobdataSetNSolvers | ( | SCIP * | scip, |
int | nSolvers | ||
) |
writes end of log file
- Parameters
-
scip SCIP data structure nSolvers the number of solvers
Definition at line 4063 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ initReceivedSubproblem()
void initReceivedSubproblem | ( | SCIP * | scip, |
const int | lLinearConsNames, | ||
const char * | linearConsNames, | ||
const int | lSetppcConsNames, | ||
const char * | setppcConsNames | ||
) |
branching information from UG
- Parameters
-
scip SCIP data structure lLinearConsNames number of linear constraints linearConsNames linear constraints string lSetppcConsNames number of setppc constraints setppcConsNames number of setppc constraints
Definition at line 4077 of file probdata_stp.c.
References GRAPH::ancestors, BLOCKED, BRANCH_STP_VERTEX_KILLED, BRANCH_STP_VERTEX_TERM, GRAPH::cost, EAT_LAST, FALSE, flipedge, graph_copy(), graph_free(), graph_knot_chg(), graph_mincut_exit(), graph_mincut_init(), graph_path_exit(), graph_path_init(), graph_pc_enforceNode(), graph_pc_getRoot2PtermEdge(), graph_pc_getTwinTerm(), graph_pc_isMw(), graph_pc_isPcMw(), graph_pc_isRootedPcMw(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_anyTerm, Is_pseudoTerm, Is_term, GRAPH::knots, nnodes, NULL, GRAPH::prize, SCIP_Bool, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetProbData(), SCIPisEQ(), SCIPprobdataGetGraph(), SCIPprobdataSetDefaultParams(), SCIPStpBranchruleInitNodeState(), GRAPH::source, STP_MODE_CUT, STPStpBranchruleParseConsname(), GRAPH::tail, GRAPH::term, GRAPH::term2edge, and TRUE.