Detailed Description
Problem data for stp problem.
This file implements the problem data for Steiner problems. For more details see Main problem data page.
Definition in file probdata_stp.h.
Go to the source code of this file.
Function Documentation
◆ 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 1917 of file probdata_stp.c.
References CENTER_DEG, central_terminal(), CONS_ALWAYS, CONS_SPECIFIC, createConstraints(), createDegreeConstraints(), createHopConstraint(), createPrizeConstraints(), createVariables(), CUT_MAXNEDGES, CUT_MAXNTERMINALS, CUT_MAXTOTNEDGES, CYC_CONS_LIMIT, GRAPH::edges, FALSE, presolve_info::fixed, graph_copy(), graph_load(), graph_mincut_init(), graph_pack(), graph_path_init(), Is_term, GRAPH::knots, GRAPH::layers, MODE_CUT, MODE_FLOW, MODE_PRICE, nnodes, NULL, GRAPH::orgsource, polyscip::global::print(), probdataCreate(), probdataPrintGraph(), reduce(), SCIP_Bool, SCIP_CALL, SCIP_FILECREATEERROR, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPallocMemoryArray, SCIPcreateConsStp(), SCIPcreateProbBasic(), SCIPdebugMessage, SCIPerrorMessage, SCIPgetBoolParam(), SCIPgetCharParam(), SCIPgetIntParam(), SCIPgetRealParam(), SCIPgetStringParam(), SCIPprintSysError(), SCIPprobdataWriteLogLine(), SCIPreleaseCons(), SCIPsetIntParam(), SCIPsetObjsense(), SCIPsetProbCopy(), SCIPsetProbData(), SCIPsetProbDelorig(), SCIPsetProbDeltrans(), SCIPsetProbExitsol(), SCIPsetProbInitsol(), SCIPsetProbTrans(), SCIPsetRealParam(), SCIPsnprintf(), SCIPsplitFilename(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), SCIPwriteOrigProblem(), GRAPH::source, STP_DCSTP, STP_DHCSTP, STP_GSTP, STP_MWCSP, STP_NWSPG, STP_OARSMT, STP_PCSPG, STP_RMWCSP, STP_RPCSPG, STP_RSMT, STP_SAP, STP_SPG, GRAPH::stp_type, SYM_CONS_LIMIT, GRAPH::term, GRAPH::terms, TRUE, and VERSION_SCIPJACK.
◆ SCIPprobdataSetGraph()
void SCIPprobdataSetGraph | ( | SCIP_PROBDATA * | probdata, |
GRAPH * | graph | ||
) |
sets the probdata graph
- Parameters
-
probdata problem data graph graph data structure
Definition at line 2347 of file probdata_stp.c.
References NULL.
◆ SCIPprobdataGetGraph()
GRAPH* SCIPprobdataGetGraph | ( | SCIP_PROBDATA * | probdata | ) |
returns the graph
- Parameters
-
probdata problem data
Definition at line 2359 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 2369 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSINITSOL(), SCIPStpConshdlrSetGraph(), and selectBranchingVertexBySol().
◆ SCIPprobdataSetOffset()
void SCIPprobdataSetOffset | ( | SCIP_PROBDATA * | probdata, |
SCIP_Real | offset | ||
) |
sets the offset
- Parameters
-
probdata problem data offset the offset value
Definition at line 2384 of file probdata_stp.c.
References NULL.
◆ SCIPprobdataGetVars()
returns the array with all variables
- Parameters
-
scip SCIP data structure
Definition at line 2411 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by consdataCheck(), cut_add(), reduce_boundHopRc(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPROP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PROPEXEC(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), SCIPStpHeurTMRunLP(), sep_2cut(), and sep_flow().
◆ SCIPprobdataGetEdgeVars()
returns the array with all edge variables
- Parameters
-
scip SCIP data structure
Definition at line 2625 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by branchOnVertex(), buildsolgraph(), selectBranchingVertexByLp(), and selectBranchingVertexByLp2Flow().
◆ SCIPprobdataGetRTerms()
int* SCIPprobdataGetRTerms | ( | SCIP * | scip | ) |
returns the array with all terminals (without the root)
returns the array with all variables
- Parameters
-
scip SCIP data structure
Definition at line 2610 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataGetNLayers()
int SCIPprobdataGetNLayers | ( | SCIP * | scip | ) |
returns the number of layers
- Parameters
-
scip SCIP data structure
Definition at line 2426 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataGetNVars()
int SCIPprobdataGetNVars | ( | SCIP * | scip | ) |
returns the number of vars
returns the number of variables
- Parameters
-
scip SCIP data structure
Definition at line 2396 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(), SCIPStpHeurAscendPruneRun(), and selectBranchingVertexBySol().
◆ SCIPprobdataGetNTerms()
int SCIPprobdataGetNTerms | ( | SCIP * | scip | ) |
returns the number of terminals
- Parameters
-
scip SCIP data structure
Definition at line 2456 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataGetRNTerms()
int SCIPprobdataGetRNTerms | ( | SCIP * | scip | ) |
returns the number of terminals without the root node
- Parameters
-
scip SCIP data structure
Definition at line 2471 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 2486 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 2505 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIPintListNodeAppendCopy().
◆ SCIPprobdataGetNEdges()
int SCIPprobdataGetNEdges | ( | SCIP * | scip | ) |
returns the number of edges
- Parameters
-
scip SCIP data structure
Definition at line 2441 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT(), and SCIP_DECL_PRICERINITSOL().
◆ SCIPprobdataGetOffset()
returns the offset
returns offset of the problem
- Parameters
-
scip SCIP data structure
Definition at line 2520 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by reduce_daSlackPruneMw(), SCIP_DECL_HEUREXEC(), SCIP_DECL_READERWRITE(), SCIPStpDualAscentPcMw(), SCIPStpHeurSlackPruneRun(), and SCIPStpHeurSlackPruneRunPcMw().
◆ SCIPprobdataGetedgeVarByIndex()
returns the edge variable for a given index
returns the variable for a given index
- Parameters
-
scip SCIP data structure idx index of the edge
Definition at line 2536 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 2553 of file probdata_stp.c.
References NULL, SCIP_CALL_ABORT, SCIP_Real, SCIPgetProbData(), and SCIPgetSolVals().
Referenced by SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_HEUREXEC(), SCIPStpHeurTMRunLP(), sep_2cut(), and sep_flow().
◆ SCIPprobdataGetEdgeConstraints()
returns all edge constraints
- Parameters
-
scip SCIP data structure
Definition at line 2581 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 2595 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataPrintGraph()
SCIP_RETCODE SCIPprobdataPrintGraph | ( | SCIP * | scip, |
const char * | filename, | ||
SCIP_SOL * | sol, | ||
SCIP_Bool | printsol | ||
) |
print (undirected) graph
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 2655 of file probdata_stp.c.
References FALSE, NULL, probdataPrintGraph(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetProbData(), SCIPgetSolVal(), SCIPisZero(), and TRUE.
Referenced by pricing().
◆ SCIPprobdataPrintGraph2()
SCIP_RETCODE SCIPprobdataPrintGraph2 | ( | const GRAPH * | graph, |
const char * | filename, | ||
SCIP_Bool * | edgemark | ||
) |
print graph (in undirected form) in GML format with given edges highlighted
- Parameters
-
graph Graph to be printed filename Name of the output file edgemark Array of (undirected) edges to highlight
Definition at line 3431 of file probdata_stp.c.
References GRAPH::cost, EAT_FREE, GRAPH::edges, FALSE, GRAPH::head, GRAPH::knots, GRAPH::mark, NULL, GRAPH::oeat, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPgmlWriteClosing(), SCIPgmlWriteEdge(), SCIPgmlWriteNode(), SCIPgmlWriteOpening(), SCIPsnprintf(), GRAPH::source, GRAPH::tail, GRAPH::term, and TRUE.
◆ SCIPprobdataIsBigt()
returns if 'T' model is being used
- Parameters
-
scip SCIP data structure
Definition at line 2640 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
Referenced by SCIP_DECL_PRICERINIT().
◆ SCIPprobdataWriteIntermediateSolution()
SCIP_RETCODE SCIPprobdataWriteIntermediateSolution | ( | SCIP * | scip | ) |
writes the best solution to the intermediate solution file
- Parameters
-
scip SCIP data structure
Definition at line 2699 of file probdata_stp.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPgetProbData(), and SCIPprobdataWriteSolution().
Referenced by SCIP_DECL_EVENTEXEC().
◆ SCIPprobdataWriteStp()
writes SPG (no variant!) to a file
- Parameters
-
scip SCIP data structure graph graph data structure filename file name
Definition at line 2715 of file probdata_stp.c.
References GRAPH::cost, GRAPH::edges, GRAPH::head, Is_term, GRAPH::knots, NULL, GRAPH::tail, GRAPH::term, and GRAPH::terms.
◆ 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 2755 of file probdata_stp.c.
References GRAPH::ancestors, EAT_LAST, GRAPH::edges, FALSE, GRAPH::fixedges, flipedge, graph_edge_add(), graph_free(), graph_grid_coordinates(), graph_init(), graph_knot_add(), graph_sol_markPcancestors(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::head, Int_List_Node::index, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::norgmodelknots, NULL, GRAPH::oeat, GRAPH::orgedges, GRAPH::orghead, GRAPH::orgknots, GRAPH::orgsource, GRAPH::orgtail, GRAPH::outbeg, Int_List_Node::parent, GRAPH::pcancestors, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetBestSol(), SCIPgetProbData(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisZero(), SCIPprobdataWriteLogLine(), SCIPqueueCreate(), SCIPqueueFree(), SCIPqueueInsert(), SCIPqueueIsEmpty(), SCIPqueueRemove(), GRAPH::source, STP_DCSTP, STP_DHCSTP, STP_GSTP, STP_MWCSP, STP_NWSPG, STP_PCSPG, STP_RMWCSP, STP_RPCSPG, STP_RSMT, STP_SAP, STP_SPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and updateorgsol().
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 3126 of file probdata_stp.c.
References SCIP_Messagehdlr::logfile, NULL, SCIPgetMessagehdlr(), SCIPgetProbData(), and SCIPmessageVFPrintInfo().
Referenced by SCIP_DECL_EVENTEXEC(), SCIP_DECL_PROBEXITSOL(), SCIPprobdataCreate(), SCIPprobdataWriteLogfileEnd(), and SCIPprobdataWriteSolution().
◆ SCIPprobdataAddNewSol()
SCIP_RETCODE SCIPprobdataAddNewSol | ( | SCIP * | scip, |
SCIP_Real * | nval, | ||
SCIP_SOL * | sol, | ||
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 sol the new solution heur heuristic data success denotes whether the new solution has been successfully added
Definition at line 3155 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, MODE_CUT, MODE_FLOW, MODE_PRICE, 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_MWCSP, STP_PCSPG, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and TRUE.
Referenced by SCIP_DECL_HEUREXEC(), SCIPStpHeurAscendPruneRun(), SCIPStpHeurRecRun(), and selectBranchingVertexBySol().
◆ SCIPprobdataSetDualBound()
set dual bound by ug
writes end of log file
- Parameters
-
scip SCIP data structure dual dual bound
Definition at line 3577 of file probdata_stp.c.
References NULL, SCIPgetProbData(), and TRUE.
◆ SCIPprobdataSetNSolvers()
void SCIPprobdataSetNSolvers | ( | SCIP * | scip, |
int | nSolvers | ||
) |
set the number of solvers
writes end of log file
- Parameters
-
scip SCIP data structure nSolvers the number of solvers
Definition at line 3592 of file probdata_stp.c.
References NULL, and SCIPgetProbData().
◆ SCIPprobdataGetType()
int SCIPprobdataGetType | ( | SCIP * | scip | ) |
returns problem type
- Parameters
-
scip SCIP data structure
Definition at line 3501 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 3516 of file probdata_stp.c.
References NULL, SCIP_CALL, SCIP_FILECREATEERROR, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPgetDualbound(), SCIPgetNSols(), SCIPgetPrimalbound(), SCIPgetProbData(), SCIPgetTotalTime(), SCIPprobdataWriteLogLine(), SCIPprobdataWriteSolution(), STP_MWCSP, and STP_RMWCSP.
Referenced by SCIP_DECL_DIALOGEXEC().
◆ 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 3606 of file probdata_stp.c.
References BLOCKED, BRANCH_STP_VERTEX_KILLED, BRANCH_STP_VERTEX_TERM, GRAPH::cost, EAT_LAST, FALSE, flipedge, graph_copy(), graph_free(), graph_init_history(), graph_knot_chg(), graph_mincut_exit(), graph_mincut_init(), graph_path_exit(), graph_path_init(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, MODE_CUT, nnodes, NULL, SCIP_CALL_ABORT, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetProbData(), SCIPprobdataGetGraph(), SCIPStpBranchruleInitNodeState(), STPStpBranchruleParseConsname(), GRAPH::term, and TRUE.