Scippy

SCIP

Solving Constraint Integer Programs

probdata_stp.c File Reference

Detailed Description

Problem data for Steiner problems.

Author
Gerald Gamrath
Thorsten Koch
Michael Winkler
Daniel Rehfeldt

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 "scip/scip.h"
#include "cons_stp.h"
#include "grph.h"
#include "scip/cons_linear.h"
#include "scip/cons_setppc.h"
#include "scip/misc.h"
#include "scip/struct_misc.h"
#include "branch_stp.h"

Go to the source code of this file.

Macros

#define STP_AGG_SYM
 
#define CENTER_OK   0
 
#define CENTER_DEG   1
 
#define CENTER_SUM   2
 
#define CENTER_MIN   3
 
#define CENTER_ALL   4
 
#define MODE_CUT   0
 
#define MODE_FLOW   1
 
#define MODE_PRICE   2
 
#define CONS_ALWAYS   1
 
#define CONS_SPECIFIC   2
 
#define FLOWB   FALSE
 
#define USEOFFSETVAR   TRUE
 
#define SYM_CONS_LIMIT   20000
 
#define CYC_CONS_LIMIT   15000
 
#define CUT_MAXNTERMINALS   500
 
#define CUT_MAXNEDGES   10000
 
#define CUT_MAXTOTNEDGES   50000
 

Functions

Local methods
static void updateorgsol (GRAPH *graph, IDX *curr, STP_Bool *orgnodes, STP_Bool *orgedges, int *nsolnodes, int *nsoledges)
 
static SCIP_RETCODE central_terminal (SCIP *scip, GRAPH *g, int *central_term, int centertype)
 
static SCIP_RETCODE probdataCreate (SCIP *scip, SCIP_PROBDATA **probdata, GRAPH *graph)
 
static SCIP_RETCODE probdataFree (SCIP *scip, SCIP_PROBDATA **probdata)
 
static SCIP_RETCODE probdataPrintGraph (GRAPH *graph, const char *filename, SCIP_Bool *edgemark)
 
static SCIP_RETCODE createHopConstraint (SCIP *scip, SCIP_PROBDATA *probdata)
 
static SCIP_RETCODE createDegreeConstraints (SCIP *scip, SCIP_PROBDATA *probdata)
 
static SCIP_RETCODE createPrizeConstraints (SCIP *scip, SCIP_PROBDATA *probdata)
 
static SCIP_RETCODE createConstraints (SCIP *scip, SCIP_PROBDATA *probdata)
 
static SCIP_RETCODE createVariables (SCIP *scip, SCIP_PROBDATA *probdata, SCIP_Real offset)
 
Callback methods of problem data
static SCIP_DECL_PROBCOPY (probcopyStp)
 
static SCIP_DECL_PROBDELORIG (probdelorigStp)
 
static SCIP_DECL_PROBTRANS (probtransStp)
 
static SCIP_DECL_PROBINITSOL (probinitsolStp)
 
static SCIP_DECL_PROBEXITSOL (probexitsolStp)
 
static SCIP_DECL_PROBDELTRANS (probdeltransStp)
 
Interface methods
SCIP_RETCODE SCIPprobdataCreate (SCIP *scip, const char *filename)
 
void SCIPprobdataSetGraph (SCIP_PROBDATA *probdata, GRAPH *graph)
 
GRAPHSCIPprobdataGetGraph (SCIP_PROBDATA *probdata)
 
GRAPHSCIPprobdataGetGraph2 (SCIP *scip)
 
void SCIPprobdataSetOffset (SCIP_PROBDATA *probdata, SCIP_Real offset)
 
int SCIPprobdataGetNVars (SCIP *scip)
 
SCIP_VAR ** SCIPprobdataGetVars (SCIP *scip)
 
int SCIPprobdataGetNLayers (SCIP *scip)
 
int SCIPprobdataGetNEdges (SCIP *scip)
 
int SCIPprobdataGetNTerms (SCIP *scip)
 
int SCIPprobdataGetRNTerms (SCIP *scip)
 
int SCIPprobdataGetRoot (SCIP *scip)
 
int SCIPprobdataGetNorgEdges (SCIP *scip)
 
SCIP_Real SCIPprobdataGetOffset (SCIP *scip)
 
SCIP_VARSCIPprobdataGetedgeVarByIndex (SCIP *scip, int idx)
 
SCIP_RealSCIPprobdataGetXval (SCIP *scip, SCIP_SOL *sol)
 
SCIP_CONS ** SCIPprobdataGetEdgeConstraints (SCIP *scip)
 
SCIP_CONS ** SCIPprobdataGetPathConstraints (SCIP *scip)
 
int * SCIPprobdataGetRTerms (SCIP *scip)
 
SCIP_VAR ** SCIPprobdataGetEdgeVars (SCIP *scip)
 
SCIP_Bool SCIPprobdataIsBigt (SCIP *scip)
 
SCIP_RETCODE SCIPprobdataPrintGraph (SCIP *scip, const char *filename, SCIP_SOL *sol, SCIP_Bool printsol)
 
SCIP_RETCODE SCIPprobdataWriteIntermediateSolution (SCIP *scip)
 
void SCIPprobdataWriteStp (SCIP *scip, const GRAPH *graph, const char *filename)
 
SCIP_RETCODE SCIPprobdataWriteSolution (SCIP *scip, FILE *file)
 
void SCIPprobdataWriteLogLine (SCIP *scip, const char *formatstr,...)
 
SCIP_RETCODE SCIPprobdataAddNewSol (SCIP *scip, SCIP_Real *nval, SCIP_SOL *sol, SCIP_HEUR *heur, SCIP_Bool *success)
 
SCIP_RETCODE SCIPprobdataPrintGraph2 (const GRAPH *graph, const char *filename, SCIP_Bool *edgemark)
 
int SCIPprobdataGetType (SCIP *scip)
 
SCIP_RETCODE SCIPprobdataWriteLogfileEnd (SCIP *scip)
 
void SCIPprobdataSetDualBound (SCIP *scip, SCIP_Real dual)
 
void SCIPprobdataSetNSolvers (SCIP *scip, int nSolvers)
 
void initReceivedSubproblem (SCIP *scip, const int lLinearConsNames, const char *linearConsNames, const int lSetppcConsNames, const char *setppcConsNames)
 

Macro Definition Documentation

◆ STP_AGG_SYM

#define STP_AGG_SYM

Definition at line 53 of file probdata_stp.c.

◆ CENTER_OK

#define CENTER_OK   0

do nothing

Definition at line 54 of file probdata_stp.c.

Referenced by central_terminal().

◆ CENTER_DEG

#define CENTER_DEG   1

find maximum degree

Definition at line 55 of file probdata_stp.c.

Referenced by central_terminal(), and SCIPprobdataCreate().

◆ CENTER_SUM

#define CENTER_SUM   2

find the minimum distance sum

Definition at line 56 of file probdata_stp.c.

Referenced by central_terminal().

◆ CENTER_MIN

#define CENTER_MIN   3

find the minimum largest distance

Definition at line 57 of file probdata_stp.c.

Referenced by central_terminal().

◆ CENTER_ALL

#define CENTER_ALL   4

find the minimum distance sum to all knots

Definition at line 58 of file probdata_stp.c.

Referenced by central_terminal().

◆ MODE_CUT

◆ MODE_FLOW

#define MODE_FLOW   1

◆ MODE_PRICE

#define MODE_PRICE   2

◆ CONS_ALWAYS

#define CONS_ALWAYS   1

always use (respective) constraints

Definition at line 64 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

◆ CONS_SPECIFIC

#define CONS_SPECIFIC   2

use (respective) constraints depending on the problem instance

Definition at line 65 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

◆ FLOWB

#define FLOWB   FALSE

Definition at line 67 of file probdata_stp.c.

◆ USEOFFSETVAR

#define USEOFFSETVAR   TRUE

Definition at line 68 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 70 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

◆ CYC_CONS_LIMIT

#define CYC_CONS_LIMIT   15000

maximum number of symmetry inequalities for PCSPG

Definition at line 71 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

◆ CUT_MAXNTERMINALS

#define CUT_MAXNTERMINALS   500

Definition at line 73 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

◆ CUT_MAXNEDGES

#define CUT_MAXNEDGES   10000

Definition at line 74 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

◆ CUT_MAXTOTNEDGES

#define CUT_MAXTOTNEDGES   50000

Definition at line 75 of file probdata_stp.c.

Referenced by SCIPprobdataCreate().

Function Documentation

◆ updateorgsol()

static void updateorgsol ( GRAPH graph,
IDX curr,
STP_Bool orgnodes,
STP_Bool orgedges,
int *  nsolnodes,
int *  nsoledges 
)
static
Parameters
graphgraph data structure
currhead of solution edge list
orgnodesarray to mark whether a node is part of the original solution
orgedgesarray to mark whether an edge is part of the original solution
nsolnodespointer to store the number of nodes in the original solution
nsoledgespointer to store the number of edges in the original solution

Definition at line 153 of file probdata_stp.c.

References FALSE, Int_List_Node::index, NULL, GRAPH::orghead, GRAPH::orgtail, Int_List_Node::parent, and TRUE.

Referenced by SCIPprobdataWriteSolution().

◆ central_terminal()

static SCIP_RETCODE central_terminal ( SCIP scip,
GRAPH g,
int *  central_term,
int  centertype 
)
static
Parameters
scipSCIP data structure
ggraph data structure
central_termpointer to store the selected (terminal) vertex
centertypetype of root selection

Definition at line 204 of file probdata_stp.c.

References CENTER_ALL, CENTER_DEG, CENTER_MIN, CENTER_OK, CENTER_SUM, shortest_path::dist, GRAPH::edges, FARAWAY, FSP_MODE, GRAPH::grad, graph_path_exec(), Is_term, GRAPH::knots, GRAPH::layers, GRAPH::mark, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), SCIPisLT(), SCIPverbMessage(), GRAPH::source, GRAPH::term, and TRUE.

Referenced by SCIPprobdataCreate().

◆ probdataCreate()

static SCIP_RETCODE probdataCreate ( SCIP scip,
SCIP_PROBDATA **  probdata,
GRAPH graph 
)
static

creates problem data

Parameters
scipSCIP data structure
probdatapointer to problem data
graphgraph data structure

Definition at line 336 of file probdata_stp.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, STP_SPG, and GRAPH::stp_type.

Referenced by SCIP_DECL_PROBCOPY(), SCIP_DECL_PROBTRANS(), and SCIPprobdataCreate().

◆ probdataFree()

static SCIP_RETCODE probdataFree ( SCIP scip,
SCIP_PROBDATA **  probdata 
)
static

frees the memory of the given problem data

Parameters
scipSCIP data structure
probdatapointer to problem data

Definition at line 370 of file probdata_stp.c.

References MODE_CUT, MODE_FLOW, MODE_PRICE, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPfreeMemory, SCIPfreeMemoryArrayNull, SCIPreleaseCons(), SCIPreleaseVar(), STP_DCSTP, STP_MWCSP, STP_PCSPG, and STP_RPCSPG.

Referenced by SCIP_DECL_PROBDELORIG(), and SCIP_DECL_PROBDELTRANS().

◆ probdataPrintGraph()

static SCIP_RETCODE probdataPrintGraph ( GRAPH graph,
const char *  filename,
SCIP_Bool edgemark 
)
static

print graph (in undirected form) in GML format

Parameters
graphGraph to be printed
filenameName of the output file
edgemarkArray of (undirected) edges to highlight

Definition at line 501 of file probdata_stp.c.

References GRAPH::cost, GRAPH::edges, FALSE, GRAPH::head, GRAPH::knots, NULL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPgmlWriteClosing(), SCIPgmlWriteEdge(), SCIPgmlWriteNode(), SCIPgmlWriteOpening(), SCIPsnprintf(), GRAPH::source, GRAPH::tail, and GRAPH::term.

Referenced by SCIPprobdataCreate(), and SCIPprobdataPrintGraph().

◆ createHopConstraint()

static SCIP_RETCODE createHopConstraint ( SCIP scip,
SCIP_PROBDATA probdata 
)
static

create (edge-) HOP constraint (cut mode only)

Parameters
scipSCIP data structure
probdataproblem data

Definition at line 572 of file probdata_stp.c.

References FALSE, GRAPH::hoplimit, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPcreateConsLinear(), SCIPdebugMessage, SCIPinfinity(), and TRUE.

Referenced by SCIPprobdataCreate().

◆ createDegreeConstraints()

static SCIP_RETCODE createDegreeConstraints ( SCIP scip,
SCIP_PROBDATA probdata 
)
static

create (node-) degree constraints (cut mode only)

Parameters
scipSCIP data structure
probdataproblem data

Definition at line 600 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 SCIPprobdataCreate().

◆ createPrizeConstraints()

static SCIP_RETCODE createPrizeConstraints ( SCIP scip,
SCIP_PROBDATA probdata 
)
static

create Prize constraints (cut mode only)

Parameters
scipSCIP data structure
probdataproblem data

Definition at line 635 of file probdata_stp.c.

References GRAPH::edges, FALSE, GRAPH::head, GRAPH::knots, NULL, r, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPallocMemoryArray, SCIPcreateConsLinear(), SCIPcreateConsSetpack(), SCIPdebugMessage, SCIPinfinity(), SCIPsnprintf(), GRAPH::source, STP_PCSPG, STP_RPCSPG, GRAPH::stp_type, GRAPH::terms, and TRUE.

Referenced by SCIPprobdataCreate().

◆ createConstraints()

static SCIP_RETCODE createConstraints ( SCIP scip,
SCIP_PROBDATA probdata 
)
static

create constraints (in Flow or Price Mode)

Parameters
scipSCIP data structure
probdataproblem data

Definition at line 761 of file probdata_stp.c.

References FALSE, MODE_CUT, MODE_FLOW, MODE_PRICE, nnodes, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPallocMemoryArray, SCIPcreateConsLinear(), SCIPdebugMessage, SCIPinfinity(), SCIPsnprintf(), GRAPH::source, GRAPH::term, and TRUE.

Referenced by SCIPprobdataCreate().

◆ createVariables()

◆ SCIP_DECL_PROBCOPY()

◆ SCIP_DECL_PROBDELORIG()

static SCIP_DECL_PROBDELORIG ( probdelorigStp  )
static

frees user data of original problem (called when the original problem is freed)

Definition at line 1630 of file probdata_stp.c.

References graph_free(), graph_mincut_exit(), graph_path_exit(), MODE_CUT, NULL, probdataFree(), SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and TRUE.

◆ SCIP_DECL_PROBTRANS()

static SCIP_DECL_PROBTRANS ( probtransStp  )
static

creates user data of transformed problem by transforming the original user problem data (called after problem was transformed)

Definition at line 1661 of file probdata_stp.c.

References MAX, MODE_CUT, MODE_FLOW, MODE_PRICE, NULL, probdataCreate(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemoryArray, SCIPdebugMessage, SCIPgetBoolParam(), SCIPgetReadingTime(), SCIPgetRealParam(), SCIPsetRealParam(), SCIPtransformCons(), SCIPtransformConss(), SCIPtransformVar(), SCIPtransformVars(), STP_DCSTP, STP_MWCSP, and STP_PCSPG.

◆ SCIP_DECL_PROBINITSOL()

static SCIP_DECL_PROBINITSOL ( probinitsolStp  )
static

Definition at line 1821 of file probdata_stp.c.

References NULL, and SCIP_OKAY.

◆ SCIP_DECL_PROBEXITSOL()

◆ SCIP_DECL_PROBDELTRANS()

static SCIP_DECL_PROBDELTRANS ( probdeltransStp  )
static

frees user data of transformed problem (called when the transformed problem is freed)

Definition at line 1899 of file probdata_stp.c.

References probdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.

◆ SCIPprobdataCreate()

SCIP_RETCODE SCIPprobdataCreate ( SCIP scip,
const char *  filename 
)

sets up the problem data

Parameters
scipSCIP data structure
filenamefile 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
probdataproblem data
graphgraph data structure

Definition at line 2347 of file probdata_stp.c.

References NULL.

◆ SCIPprobdataGetGraph()

◆ SCIPprobdataGetGraph2()

GRAPH* SCIPprobdataGetGraph2 ( SCIP scip)

returns the graph

Parameters
scipproblem 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
probdataproblem data
offsetthe offset value

Definition at line 2384 of file probdata_stp.c.

References NULL.

◆ SCIPprobdataGetNVars()

int SCIPprobdataGetNVars ( SCIP scip)

returns the number of variables

Parameters
scipSCIP 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().

◆ SCIPprobdataGetVars()

SCIP_VAR** SCIPprobdataGetVars ( SCIP scip)

returns the array with all variables

Parameters
scipSCIP 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().

◆ SCIPprobdataGetNLayers()

int SCIPprobdataGetNLayers ( SCIP scip)

returns the number of layers

Parameters
scipSCIP data structure

Definition at line 2426 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

◆ SCIPprobdataGetNEdges()

int SCIPprobdataGetNEdges ( SCIP scip)

returns the number of edges

Parameters
scipSCIP data structure

Definition at line 2441 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

Referenced by SCIP_DECL_PRICERINIT(), and SCIP_DECL_PRICERINITSOL().

◆ SCIPprobdataGetNTerms()

int SCIPprobdataGetNTerms ( SCIP scip)

returns the number of terminals

Parameters
scipSCIP 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
scipSCIP 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
scipSCIP 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
scipSCIP data structure

Definition at line 2505 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

Referenced by SCIPintListNodeAppendCopy().

◆ SCIPprobdataGetOffset()

SCIP_Real SCIPprobdataGetOffset ( SCIP scip)

returns offset of the problem

Parameters
scipSCIP 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()

SCIP_VAR* SCIPprobdataGetedgeVarByIndex ( SCIP scip,
int  idx 
)

returns the variable for a given index

Parameters
scipSCIP data structure
idxindex of the edge

Definition at line 2536 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

◆ SCIPprobdataGetXval()

SCIP_Real* SCIPprobdataGetXval ( SCIP scip,
SCIP_SOL sol 
)

returns the LP solution values

Parameters
scipSCIP data structure
solsolution 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()

SCIP_CONS** SCIPprobdataGetEdgeConstraints ( SCIP scip)

returns all edge constraints

Parameters
scipSCIP data structure

Definition at line 2581 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

Referenced by SCIP_DECL_PRICERINIT().

◆ SCIPprobdataGetPathConstraints()

SCIP_CONS** SCIPprobdataGetPathConstraints ( SCIP scip)

returns all path constraints

Parameters
scipSCIP data structure

Definition at line 2595 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
scipSCIP data structure

Definition at line 2610 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

Referenced by SCIP_DECL_PRICERINIT().

◆ SCIPprobdataGetEdgeVars()

SCIP_VAR** SCIPprobdataGetEdgeVars ( SCIP scip)

returns the array with all edge variables

Parameters
scipSCIP data structure

Definition at line 2625 of file probdata_stp.c.

References NULL, and SCIPgetProbData().

Referenced by branchOnVertex(), buildsolgraph(), selectBranchingVertexByLp(), and selectBranchingVertexByLp2Flow().

◆ SCIPprobdataIsBigt()

SCIP_Bool SCIPprobdataIsBigt ( SCIP scip)

returns if 'T' model is being used

Parameters
scipSCIP data structure

Definition at line 2640 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 in GML format

Parameters
scipSCIP data structure
filenamename of the output file
solsolution to be printed; or NULL for LP solution
printsolshould 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().

◆ SCIPprobdataWriteIntermediateSolution()

SCIP_RETCODE SCIPprobdataWriteIntermediateSolution ( SCIP scip)

writes the best solution to the intermediate solution file

Parameters
scipSCIP 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()

void SCIPprobdataWriteStp ( SCIP scip,
const GRAPH graph,
const char *  filename 
)

writes SPG (no variant!) to a file

Parameters
scipSCIP data structure
graphgraph data structure
filenamefile 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()

◆ SCIPprobdataWriteLogLine()

void SCIPprobdataWriteLogLine ( SCIP scip,
const char *  formatstr,
  ... 
)

writes a line to the log file

Parameters
scipSCIP data structure
formatstrformat 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()

◆ 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
graphGraph to be printed
filenameName of the output file
edgemarkArray 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.

◆ SCIPprobdataGetType()

int SCIPprobdataGetType ( SCIP scip)

returns problem type

Parameters
scipSCIP 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)

◆ SCIPprobdataSetDualBound()

void SCIPprobdataSetDualBound ( SCIP scip,
SCIP_Real  dual 
)

writes end of log file

Parameters
scipSCIP data structure
dualdual bound

Definition at line 3577 of file probdata_stp.c.

References NULL, SCIPgetProbData(), and TRUE.

◆ SCIPprobdataSetNSolvers()

void SCIPprobdataSetNSolvers ( SCIP scip,
int  nSolvers 
)

writes end of log file

Parameters
scipSCIP data structure
nSolversthe number of solvers

Definition at line 3592 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
scipSCIP data structure
lLinearConsNamesnumber of linear constraints
linearConsNameslinear constraints string
lSetppcConsNamesnumber of setppc constraints
setppcConsNamesnumber 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.