Scippy

SCIP

Solving Constraint Integer Programs

grph.h File Reference

Detailed Description

includes various files containing graph methods used for Steiner problems

Author
Gerald Gamrath
Thorsten Koch
Daniel Rehfeldt

Definition in file grph.h.

#include "scip/scip.h"
#include "misc_stp.h"

Go to the source code of this file.

Macros

#define EAT_FREE   -1
 
#define EAT_LAST   -2
 
#define EAT_HIDE   -3
 
#define GRAPH_HAS_COORDINATES   1
 
#define GRAPH_IS_GRIDGRAPH   2
 
#define GRAPH_IS_DIRECTED   4
 
#define STP_UNDIRECTED   0
 
#define STP_DIRECTED   1
 
#define STP_PRIZE_COLLECTING   2
 
#define STP_ROOTED_PRIZE_COLLECTING   3
 
#define STP_NODE_WEIGHTS   4
 
#define STP_DEG_CONS   5
 
#define STP_REVENUES_BUDGET_HOPCONS   6
 
#define STP_GRID   7
 
#define STP_OBSTACLES_GRID   8
 
#define STP_MAX_NODE_WEIGHT   9
 
#define STP_HOP_CONS   10
 
#define GSTP   11
 
#define PRIZE   12
 
#define flipedge(edge)   (((edge % 2) == 0) ? edge + 1 : edge - 1)
 
#define PATH_NIL   ((PATH*)0)
 
#define CONNECT   0
 
#define UNKNOWN   (-1)
 
#define FARAWAY   1e15
 
#define BLOCKED   1e10
 
#define MST_MODE   0
 
#define FSP_MODE   1
 
#define BSP_MODE   2
 
#define NO_CHANGE   -10
 
#define Is_term(a)    ((a) >= 0)
 
#define Is_pterm(a)   ((a) == -2)
 
#define Is_gterm(a)   ((a) == -2 || (a) >= 0 )
 
#define Edge_anti(a)   ((((a) % 2) > 0) ? (a) - 1 : (a) + 1)
 
#define STP_MAGIC   0x33d32945
 
#define VERSION_MAJOR   1
 
#define VERSION_MINOR   0
 

Typedefs

typedef struct presolve_info PRESOL
 
typedef struct shortest_path PATH
 

Enumerations

enum  FILETYPE { FF_BEA, FF_STP, FF_PRB, FF_GRD }
 

Functions

void graph_flags (GRAPH *, int)
 
void graph_show (const GRAPH *)
 
void graph_ident (const GRAPH *)
 
void graph_knot_add (GRAPH *, int)
 
void graph_knot_chg (GRAPH *, int, int)
 
void graph_knot_contract_dir (GRAPH *, int, int)
 
void graph_edge_add (SCIP *, GRAPH *, int, int, double, double)
 
void graph_edge_del (SCIP *, GRAPH *, int, SCIP_Bool)
 
void graph_edge_hide (GRAPH *, int)
 
void graph_uncover (GRAPH *)
 
void prize_subtract (SCIP *, GRAPH *, SCIP_Real, int)
 
void graph_trail (const GRAPH *, int)
 
void graph_free (SCIP *, GRAPH *, SCIP_Bool)
 
SCIP_RETCODE graph_init (SCIP *, GRAPH **, int, int, int, int)
 
SCIP_RETCODE pcgraphorg (SCIP *, GRAPH *)
 
SCIP_RETCODE pcgraphtrans (SCIP *, GRAPH *)
 
SCIP_RETCODE graph_init_history (SCIP *, GRAPH *)
 
SCIP_RETCODE graph_resize (SCIP *, GRAPH *, int, int, int)
 
SCIP_RETCODE graph_knot_contract (SCIP *, GRAPH *, int, int)
 
SCIP_RETCODE graph_knot_contractpc (SCIP *, GRAPH *, int, int, int)
 
SCIP_RETCODE graph_PcToSap (SCIP *, GRAPH *)
 
SCIP_RETCODE graph_PcSapCopy (SCIP *, GRAPH *, GRAPH **, SCIP_Real *)
 
SCIP_RETCODE graph_edge_reinsert (SCIP *, GRAPH *, int, int, int, SCIP_Real, IDX *, IDX *, IDX *, IDX *)
 
SCIP_RETCODE graph_MwcsToSap (SCIP *, GRAPH *, SCIP_Real *)
 
SCIP_RETCODE graph_prize_transform (SCIP *, GRAPH *)
 
SCIP_RETCODE graph_rootprize_transform (SCIP *, GRAPH *)
 
SCIP_RETCODE graph_maxweight_transform (SCIP *, GRAPH *, SCIP_Real *)
 
SCIP_RETCODE graph_grid_create (SCIP *, GRAPH **, int **, int, int, int)
 
SCIP_RETCODE graph_obstgrid_create (SCIP *, GRAPH **, int **, int **, int, int, int, int)
 
SCIP_RETCODE graph_grid_coordinates (SCIP *, int **, int **, int *, int, int)
 
SCIP_RETCODE graph_copy (SCIP *, GRAPH *, GRAPH **)
 
SCIP_RETCODE graph_pack (SCIP *, GRAPH *, GRAPH **, SCIP_Bool)
 
int graph_edge_redirect (SCIP *, GRAPH *, int, int, int, SCIP_Real)
 
int graph_valid (const GRAPH *)
 
char graph_valid2 (SCIP *, const GRAPH *, SCIP_Real *)
 
SCIP_Bool graph_sol_valid (SCIP *, const GRAPH *, int *)
 
void graph_path_exit (SCIP *, GRAPH *)
 
void graph_path_exec (SCIP *, const GRAPH *, int, int, SCIP_Real *, PATH *)
 
void graph_path_execX (SCIP *, const GRAPH *, int, SCIP_Real *, SCIP_Real *, int *)
 
void graph_path_st (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, int *, int, unsigned int *, char *)
 
void voronoi (SCIP *scip, const GRAPH *, SCIP_Real *, SCIP_Real *, char *, int *, PATH *)
 
void get2next (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, PATH *, int *, int *, int *)
 
void get3next (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, PATH *, int *, int *, int *)
 
void get4next (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, PATH *, int *, int *, int *)
 
void getnext3terms (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, PATH *, int *, int *, int *)
 
void getnext4terms (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, PATH *, int *, int *, int *)
 
void getnext4tterms (SCIP *, const GRAPH *, SCIP_Real *, SCIP_Real *, PATH *, int *, int *, int *)
 
void voronoi_terms (SCIP *, const GRAPH *, SCIP_Real *, PATH *, int *, int *, int *)
 
void voronoi_inout (const GRAPH *)
 
void voronoi_term (const GRAPH *, double *, double *, double *, PATH *, int *, int *, int *, int *, int)
 
void voronoi_hop (const GRAPH *, double *, double *, double *, PATH *, int *, int *, int *, int *, int *)
 
void heap_add (int *, int *, int *, int, PATH *)
 
void voronoi_repair (SCIP *, const GRAPH *, SCIP_Real *, int *, int *, PATH *, int *, int, UF *)
 
void voronoi_repair_mult (SCIP *, const GRAPH *, SCIP_Real *, int *, int *, int *, int *, char *, UF *, PATH *)
 
void voronoi_slrepair (SCIP *, const GRAPH *, SCIP_Real *, PATH *, int *, int *, int *, int, int)
 
void voronoiSteinerTreeExt (SCIP *, const GRAPH *, SCIP_Real *, int *, char *, PATH *)
 
void sdpaths (SCIP *, const GRAPH *, PATH *, SCIP_Real *, SCIP_Real, int *, int *, int *, int *, int, int, int)
 
void graph_path_length (const GRAPH *, const PATH *)
 
SCIP_RETCODE voronoi_extend (SCIP *, const GRAPH *, SCIP_Real *, PATH *, VLIST **, char *, int *, int *, int *, int, int, int)
 
SCIP_RETCODE voronoi_extend2 (SCIP *, const GRAPH *, SCIP_Real *, PATH *, SCIP_Real **, int **, int **, char *, int *, int *, int *, int, int, int)
 
SCIP_RETCODE graph_path_init (SCIP *, GRAPH *)
 
SCIP_RETCODE voronoi_dist (SCIP *, const GRAPH *, SCIP_Real *, double *, int *, int *, int *, int *, int *, int *, PATH *)
 
SCIP_RETCODE voronoi_radius (SCIP *scip, const GRAPH *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *)
 
void graph_mincut_exit (SCIP *, GRAPH *)
 
void graph_mincut_exec (GRAPH *, int, int, const int *, int *, int)
 
SCIP_RETCODE graph_mincut_init (SCIP *, GRAPH *)
 
SCIP_RETCODE graph_load (SCIP *, GRAPH **, const char *, PRESOL *)
 
void graph_save (const GRAPH *, const char *, FILETYPE)
 
void SCIPwriteStp (SCIP *, const GRAPH *, FILE *, SCIP_Real)
 
void graph_writefig (const GRAPH *, const char *, const double *, int)
 
void graph_bfscoord (GRAPH *g)
 
void graph_boxcoord (GRAPH *g)
 
void level0 (SCIP *, GRAPH *)
 
SCIP_RETCODE reduce (SCIP *, GRAPH **, SCIP_Real *, int, int)
 
SCIP_RETCODE sd_reduction (SCIP *, GRAPH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *, int, unsigned int *)
 
SCIP_RETCODE sdsp_reduction (SCIP *, GRAPH *, PATH *, PATH *, int *, int *, int *, int *, int *, int *, int)
 
SCIP_RETCODE sdsp_sap_reduction (SCIP *, GRAPH *, PATH *, PATH *, int *, int *, int *, int *, int *, int *, int)
 
SCIP_RETCODE sd_red (SCIP *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *, int *, int *, int *)
 
SCIP_RETCODE sdpc_reduction (SCIP *, GRAPH *, PATH *, SCIP_Real *, int *, int *, int *, int *, int *, int *)
 
SCIP_RETCODE sd2_reduction (SCIP *, GRAPH *, SCIP_Real *, int *, int *)
 
SCIP_RETCODE getSD (SCIP *, GRAPH *, PATH *, PATH *, SCIP_Real *, SCIP_Real, int *, int *, int *, int *, int *, int, int, int, SCIP_Bool, SCIP_Bool)
 
SCIP_RETCODE bd3_reduction (SCIP *, GRAPH *, PATH *, PATH *, int *, int *, int *, int *, int *, int *, int)
 
SCIP_RETCODE bdr_reduction (SCIP *, GRAPH *, GRAPH *, PATH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *, int *)
 
SCIP_RETCODE nv_reduction (SCIP *, GRAPH *, PATH *, double *, int *, int *, int *, int *, int *)
 
SCIP_RETCODE nv_reductionAdv (SCIP *, GRAPH *, PATH *, SCIP_Real *, double *, int *, int *, int *, int *, int *, int *, int *)
 
SCIP_RETCODE sl_reduction (SCIP *, GRAPH *, PATH *, double *, int *, int *, int *, int *, char *, int *)
 
SCIP_RETCODE ledge_reduction (SCIP *, GRAPH *, PATH *, int *, int *, int *, int *)
 
SCIP_RETCODE ansReduction (SCIP *, GRAPH *, SCIP_Real *, int *, int *)
 
SCIP_RETCODE ansadvReduction (SCIP *, GRAPH *, SCIP_Real *, int *, int *)
 
SCIP_RETCODE ansadv2Reduction (SCIP *, GRAPH *, SCIP_Real *, int *, int *)
 
SCIP_RETCODE cnsAdvReduction (SCIP *, GRAPH *, int *, int *)
 
SCIP_RETCODE nnpReduction (SCIP *, GRAPH *, SCIP_Real *, int *, int *, int *, int *, int, char *)
 
SCIP_RETCODE npvReduction (SCIP *, GRAPH *, PATH *, PATH *, int *, int *, int *, int *, int *, int *, int)
 
SCIP_RETCODE chain2Reduction (SCIP *, GRAPH *, PATH *, PATH *, int *, int *, int *, int *, int *, int *, int)
 
SCIP_RETCODE da_reduce (SCIP *, GRAPH *, PATH *, GNODE **, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *, int *, char *, int *)
 
SCIP_RETCODE daPc_reduce (SCIP *, GRAPH *, PATH *, GNODE **, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *, char *, int *)
 
SCIP_RETCODE bound_reduce (SCIP *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *)
 
SCIP_RETCODE hopbound_reduce (SCIP *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *)
 
SCIP_RETCODE hcrbound_reduce (SCIP *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *, int *, int *)
 
SCIP_RETCODE hcrcbound_reduce (SCIP *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, SCIP_Real, int *, int *, int *, int *, int *, SCIP_Bool)
 
SCIP_RETCODE degree_test (SCIP *, GRAPH *, SCIP_Real *, int *)
 
SCIP_RETCODE degree_test_hc (SCIP *, GRAPH *, SCIP_Real *, int *)
 
SCIP_RETCODE degree_test_mw (SCIP *, GRAPH *, SCIP_Real *, int *)
 
SCIP_RETCODE degree_test_pc (SCIP *, GRAPH *, SCIP_Real *, int *)
 
SCIP_RETCODE degree_test_sap (SCIP *, GRAPH *, SCIP_Real *, int *)
 
SCIP_RETCODE rptReduction (SCIP *, GRAPH *, SCIP_Real *, int *)
 
int deleteterm (SCIP *, GRAPH *, int)
 
SCIP_RETCODE SCIPvalidateStpSol (SCIP *, const GRAPH *, const double *, SCIP_Bool *)
 

Macro Definition Documentation

#define BLOCKED   1e10
#define BSP_MODE   2

Definition at line 154 of file grph.h.

Referenced by graph_path_st().

#define EAT_HIDE   -3

Definition at line 32 of file grph.h.

Referenced by graph_edge_del(), graph_edge_hide(), and graph_uncover().

#define EAT_LAST   -2

Definition at line 31 of file grph.h.

Referenced by ansadv2Reduction(), ansadvReduction(), ansReduction(), bd3_reduction(), bdr_reduction(), bfs(), bound_reduce(), buildsolgraph(), cnsAdvReduction(), compTMstarts(), compute_sd(), computeDegConsTree(), computeSteinerTreeVnoi(), createVariables(), da_reduce(), daPc_reduce(), degree_test(), degree_test_hc(), degree_test_mw(), degree_test_pc(), degree_test_sap(), deleteterm(), do_prizecoll_trivial(), extendSteinerTreePcMw(), get2next(), get3next(), get4next(), getnext4tterms(), getRSD(), getSD(), graph_edge_redirect(), graph_knot_add(), graph_knot_contract(), graph_knot_contractpc(), graph_load(), graph_maxweight_transform(), graph_mincut_exec(), graph_MwcsToSap(), graph_path_exec(), graph_path_execX(), graph_path_st(), graph_PcSapCopy(), graph_sol_valid(), graph_trail(), graph_valid(), graph_valid2(), hcrbound_reduce(), hcrcbound_reduce(), hopbound_reduce(), initialise(), lca(), ledge_reduction(), level0(), nnpReduction(), npvReduction(), nv_reduction(), nv_reductionAdv(), nvsl_reduction(), prize_subtract(), rptReduction(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PROPEXEC(), SCIPdualAscentPcStp(), SCIPdualAscentStp(), SCIPheurComputeSteinerTree(), SCIPheurImproveSteinerTree(), SCIPheurPruneDegConsSteinerTree(), SCIPheurPrunePCSteinerTree(), SCIPheurPruneSteinerTree(), SCIPprobdataAddNewSol(), SCIPvalidateStpSol(), SCIPwriteStp(), sd2_reduction(), sd_red(), sd_reduction(), sddeltable(), sdpaths(), sdpc_reduction(), sdsp_reduction(), sdsp_sap_reduction(), selectBranchingVertex(), sep_flow(), sl_reduction(), trail(), traverseChain(), trydg1edgepc(), voronoi(), voronoi_dist(), voronoi_extend(), voronoi_extend2(), voronoi_radius(), voronoi_repair(), voronoi_repair_mult(), voronoi_slrepair(), voronoi_terms(), and voronoiSteinerTreeExt().

#define GRAPH_HAS_COORDINATES   1

Definition at line 34 of file grph.h.

Referenced by graph_load().

#define GRAPH_IS_DIRECTED   4

Definition at line 36 of file grph.h.

#define GRAPH_IS_GRIDGRAPH   2

Definition at line 35 of file grph.h.

Referenced by graph_load().

#define GSTP   11
#define Is_gterm (   a)    ((a) == -2 || (a) >= 0 )

Definition at line 160 of file grph.h.

Referenced by buildsolgraph(), and daPc_reduce().

#define Is_term (   a)    ((a) >= 0)

Definition at line 158 of file grph.h.

Referenced by ansadv2Reduction(), ansadvReduction(), bd3_reduction(), bdr_reduction(), bea_save(), bound_reduce(), buildsolgraph(), central_terminal(), chain2Reduction(), cnsAdvReduction(), compTMstarts(), compute_sd(), computeDegConsTree(), computeSteinerTree(), computeSteinerTreeVnoi(), createVariables(), da_reduce(), daPc_reduce(), degree_test(), degree_test_hc(), degree_test_mw(), degree_test_pc(), degree_test_sap(), deleteterm(), do_prizecoll_trivial(), extendSteinerTreePcMw(), get2next(), get3next(), get4next(), getnext4tterms(), getRSD(), getSD(), graph_knot_add(), graph_knot_chg(), graph_knot_contract(), graph_knot_contractpc(), graph_load(), graph_maxweight_transform(), graph_MwcsToSap(), graph_pack(), graph_path_execX(), graph_path_st(), graph_PcSapCopy(), graph_PcToSap(), graph_prize_transform(), graph_rootprize_transform(), graph_sol_valid(), graph_valid(), graph_valid2(), hcrbound_reduce(), hcrcbound_reduce(), hopbound_reduce(), ledge_reduction(), level0(), maxprize(), npvReduction(), nv_reduction(), nv_reductionAdv(), nvsl_reduction(), pcgraphorg(), pcgraphtrans(), rptReduction(), SCIP_DECL_CONSPROP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PROPEXEC(), SCIPdualAscentAddCutsStp(), SCIPdualAscentPcStp(), SCIPdualAscentStp(), SCIPheurComputeSteinerTree(), SCIPheurImproveSteinerTree(), SCIPheurPruneDegConsSteinerTree(), SCIPheurPrunePCSteinerTree(), SCIPprobdataAddNewSol(), SCIPprobdataCreate(), SCIPprobdataWriteSolution(), SCIPwriteStp(), sd2_reduction(), sd_red(), sd_reduction(), sddeltable(), sdpaths(), sdpc_reduction(), sdsp_reduction(), selectBranchingVertex(), selectdiffsols(), sl_reduction(), stp_save(), traverseChain(), trydg1edgepc(), utdist(), voronoi_dist(), voronoi_extend2(), voronoi_radius(), voronoi_slrepair(), voronoi_terms(), and voronoiSteinerTreeExt().

#define NO_CHANGE   -10

Definition at line 156 of file grph.h.

#define PATH_NIL   ((PATH*)0)

Definition at line 145 of file grph.h.

#define PRIZE   12

Definition at line 50 of file grph.h.

#define STP_MAGIC   0x33d32945

Definition at line 163 of file grph.h.

Referenced by open_file(), SCIPwriteStp(), and stp_save().

#define STP_NODE_WEIGHTS   4
#define STP_OBSTACLES_GRID   8
#define STP_REVENUES_BUDGET_HOPCONS   6

Definition at line 44 of file grph.h.

#define VERSION_MAJOR   1

Definition at line 164 of file grph.h.

Referenced by open_file(), SCIPwriteStp(), and stp_save().

#define VERSION_MINOR   0

Definition at line 165 of file grph.h.

Referenced by open_file(), SCIPwriteStp(), and stp_save().

Typedef Documentation

typedef struct shortest_path PATH
typedef struct presolve_info PRESOL

Enumeration Type Documentation

enum FILETYPE
Enumerator
FF_BEA 
FF_STP 
FF_PRB 
FF_GRD 

Definition at line 167 of file grph.h.

Function Documentation

SCIP_RETCODE ansadv2Reduction ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  marked,
int *  count 
)

alternative advanced adjacent neighbourhood reduction for the MWCSP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
markednodes array
countpointer to number of reductions

Definition at line 4991 of file reduce_alt.c.

References CNSNN, EAT_LAST, FALSE, GRAPH::grad, graph_edge_del(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, maxprize(), GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::term, TRUE, and UNKNOWN.

Referenced by reduceMwcs().

SCIP_RETCODE ansadvReduction ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  marked,
int *  count 
)

advanced adjacent neighbourhood reduction for the MWCSP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
markednodes array
countpointer to number of reductions

Definition at line 4867 of file reduce_alt.c.

References CNSNN, EAT_LAST, FALSE, GRAPH::grad, graph_edge_del(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::term, and TRUE.

Referenced by reduceMwcs().

SCIP_RETCODE ansReduction ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  marked,
int *  count 
)

adjacent neighbourhood reduction for the MWCSP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
markednodes array
countpointer to number of reductions

Definition at line 4579 of file reduce_alt.c.

References EAT_LAST, FALSE, GRAPH::grad, graph_edge_del(), GRAPH::head, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, and TRUE.

Referenced by reduceMwcs().

SCIP_RETCODE chain2Reduction ( SCIP *  scip,
GRAPH g,
PATH pathtail,
PATH pathhead,
int *  heap,
int *  statetail,
int *  statehead,
int *  memlbltail,
int *  memlblhead,
int *  nelims,
int  limit 
)
SCIP_RETCODE cnsAdvReduction ( SCIP *  scip,
GRAPH g,
int *  marked,
int *  count 
)

advanced connected neighbourhood subset reduction test for the MWCSP

Parameters
scipSCIP data structure
ggraph data structure
markednodes array
countpointer to number of reductions

Definition at line 4675 of file reduce_alt.c.

References CNSNN, EAT_LAST, FALSE, GRAPH::grad, graph_edge_del(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::term, TRUE, and UNKNOWN.

Referenced by reduceMwcs().

SCIP_RETCODE da_reduce ( SCIP *  scip,
GRAPH graph,
PATH vnoi,
GNODE **  gnodearr,
SCIP_Real *  cost,
SCIP_Real *  costrev,
SCIP_Real *  pathdist,
int *  edgearrint,
int *  vbase,
int *  pathedge,
int *  state,
int *  heursources,
char *  nodearrchar,
int *  nelims 
)

dual ascent based reductions

Parameters
scipSCIP data structure
graphgraph data structure
vnoiVoronoi data structure
gnodearrGNODE* terminals array for internal computations or NULL
costedge costs
costrevreverse edge costs
pathdistdistance array for shortest path calculations
edgearrintint edges array for internal computations or NULL
vbasearray for Voronoi bases
pathedgearray for predecessor edge on a path
stateint 4 * nnodes array for internal computations
heursourcesarray to store starting points of TM heuristic
nodearrcharchar node array for internal computations or NULL
nelimspointer to store number of reduced edges

Definition at line 202 of file reduce_bnd.c.

References GRAPH::ancestors, BLOCKED, compTMstarts(), CONNECT, GRAPH::cost, DEFAULT_DARUNS, DEFAULT_HEURRUNS, DEFAULT_HOPFACTOR, shortest_path::dist, EAT_LAST, Edge_anti, GRAPH::edges, extendSteinerTreePcMw(), FALSE, FARAWAY, flipedge, getnext4terms(), GRAPH::grad, graph_edge_del(), graph_edge_reinsert(), graph_path_execX(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, pcgraphorg(), pcgraphtrans(), SCIPdualAscentStp(), SCIPheurComputeSteinerTree(), SCIPintListNodeAppendCopy(), SCIPintListNodeFree(), GRAPH::source, STP_HOP_CONS, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.

Referenced by reduceHc(), reducePc(), and reduceStp().

SCIP_RETCODE daPc_reduce ( SCIP *  scip,
GRAPH graph,
PATH vnoi,
GNODE **  gnodearr,
SCIP_Real *  cost,
SCIP_Real *  costrev,
SCIP_Real *  pathdist,
int *  vbase,
int *  pathedge,
int *  edgearrint,
int *  state,
char *  nodearrchar,
int *  nelims 
)

dual ascent based reductions for PCSPG and MWCSP

Parameters
scipSCIP data structure
graphgraph data structure
vnoiVoronoi data structure array
gnodearrGNODE* terminals array for internal computations or NULL
costedge costs
costrevreverse edge costs
pathdistdistance array for shortest path calculations
vbaseVoronoi base array
pathedgeshorest path incoming edge array for shortest path calculations
edgearrintint edges array for internal computations or NULL
stateint 4 * vertices array
nodearrcharchar node array for internal computations
nelimspointer to store number of reduced edges

Definition at line 577 of file reduce_bnd.c.

References CONNECT, GRAPH::cost, DEFAULT_HEURRUNS, DEFAULT_HOPFACTOR, shortest_path::dist, EAT_LAST, GRAPH::edges, extendSteinerTreePcMw(), FALSE, FARAWAY, flipedge, GRAPH::grad, graph_edge_del(), graph_free(), graph_init_history(), graph_path_execX(), graph_path_exit(), graph_path_init(), graph_PcSapCopy(), GRAPH::head, Is_gterm, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, pcgraphorg(), pcgraphtrans(), SCIPdualAscentStp(), SCIPheurComputeSteinerTree(), SCIPintListNodeFree(), GRAPH::source, GRAPH::term, GRAPH::terms, TRUE, UNKNOWN, and voronoi_terms().

Referenced by reduceMwcs(), and reducePc().

SCIP_RETCODE degree_test ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  nelims 
)

basic reduction tests for the STP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
nelimspointer to number of reductions

Definition at line 390 of file reduce_simple.c.

References GRAPH::ancestors, GRAPH::cost, EAT_LAST, Edge_anti, EQ, FALSE, FARAWAY, GRAPH::fixedges, GRAPH::grad, graph_knot_contract(), graph_valid(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::oeat, GRAPH::outbeg, SCIPintListNodeAppendCopy(), GRAPH::term, TRUE, and UNKNOWN.

Referenced by nvsl_reduction(), and reduceStp().

SCIP_RETCODE degree_test_hc ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  count 
)

basic reduction tests for the HCDSTP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
countpointer to number of reductions

Definition at line 968 of file reduce_simple.c.

References GRAPH::cost, EAT_LAST, FALSE, FARAWAY, flipedge, graph_edge_del(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::oeat, GRAPH::outbeg, GRAPH::source, STP_HOP_CONS, GRAPH::stp_type, GRAPH::term, and TRUE.

Referenced by reduceHc().

SCIP_RETCODE degree_test_mw ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  count 
)

basic reduction tests for the MWCS problem

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
countpointer to number of reductions

Definition at line 811 of file reduce_simple.c.

References GRAPH::cost, deleteterm(), EAT_LAST, Edge_anti, GRAPH::edges, FALSE, GRAPH::grad, graph_edge_del(), graph_knot_contractpc(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::mark, maxprize(), GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, GRAPH::source, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::tail, GRAPH::term, traverseChain(), TRUE, and trydg1edgepc().

Referenced by reduceMwcs().

SCIP_RETCODE degree_test_pc ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  count 
)
SCIP_RETCODE degree_test_sap ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  count 
)

basic reduction tests for the SAP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
countpointer to number of reductions

Definition at line 566 of file reduce_simple.c.

References GRAPH::ancestors, GRAPH::cost, EAT_LAST, Edge_anti, FALSE, FARAWAY, GRAPH::fixedges, flipedge, GRAPH::grad, graph_edge_del(), graph_knot_contract(), graph_valid(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, SCIPintListNodeAppendCopy(), GRAPH::source, GRAPH::tail, GRAPH::term, and TRUE.

Referenced by reduceSap().

int deleteterm ( SCIP *  scip,
GRAPH g,
int  i 
)

delete a terminal for a (rooted) prize-collecting problem

Parameters
scipSCIP data structure
ggraph data structure
iindex of the terminal

Definition at line 343 of file reduce_simple.c.

References EAT_LAST, FALSE, GRAPH::grad, graph_edge_del(), graph_knot_chg(), GRAPH::head, Is_pterm, Is_term, GRAPH::mark, GRAPH::outbeg, GRAPH::source, GRAPH::term, TRUE, and UNKNOWN.

Referenced by bound_reduce(), degree_test_mw(), degree_test_pc(), and trydg1edgepc().

void get2next ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
SCIP_Real *  costrev,
PATH path,
int *  vbase,
int *  heap,
int *  state 
)

2th next terminal to all non terminal nodes

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
costrevreversed edge costs
pathpath data struture (leading to first and second nearest terminal)
vbasefirst and second nearest terminal to each non terminal
heaparray representing a heap
statearray to mark the state of each node during calculation

Definition at line 1214 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, FSP_MODE, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::source, GRAPH::term, and UNKNOWN.

Referenced by bound_reduce(), getnext3terms(), getnext4terms(), and hopbound_reduce().

void get3next ( SCIP *  ,
const GRAPH ,
SCIP_Real *  ,
SCIP_Real *  ,
PATH ,
int *  ,
int *  ,
int *   
)
void get4next ( SCIP *  ,
const GRAPH ,
SCIP_Real *  ,
SCIP_Real *  ,
PATH ,
int *  ,
int *  ,
int *   
)
void getnext3terms ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
SCIP_Real *  costrev,
PATH path3,
int *  vbase,
int *  heap,
int *  state 
)

build a voronoi region in presolving, w.r.t. shortest paths, for all terminals

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
costrevreversed edge costs
path3path data struture (leading to first, second and third nearest terminal)
vbasefirst, second and third nearest terminal to each non terminal
heaparray representing a heap
statearray to mark the state of each node during calculation

Definition at line 1526 of file grphpath.c.

References get2next(), get3next(), GRAPH::grad, GRAPH::knots, GRAPH::mark, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, and voronoi_terms().

void getnext4terms ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
SCIP_Real *  costrev,
PATH path,
int *  vbase,
int *  heap,
int *  state 
)

build a voronoi region in presolving, w.r.t. shortest paths, for all terminals

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
costrevreversed edge costs
pathpath data struture (leading to first, second, third and fouth nearest terminal)
vbasefirst, second and third nearest terminal to each non terminal
heaparray representing a heap
statearray to mark the state of each node during calculation

Definition at line 1562 of file grphpath.c.

References get2next(), get3next(), get4next(), GRAPH::grad, GRAPH::knots, GRAPH::mark, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, and voronoi_terms().

Referenced by da_reduce(), sd_red(), and sdpc_reduction().

void getnext4tterms ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
SCIP_Real *  boundedges,
PATH path,
int *  vbase,
int *  heap,
int *  state 
)

get 4 close terminals to each terminal

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
boundedgesarray to store boundary edges
pathpath data struture (leading to first, second, third and fouth nearest terminal)
vbasefirst, second and third nearest terminal to each non terminal
heaparray representing a heap
statearray to mark the state of each node during calculation

Definition at line 1603 of file grphpath.c.

References shortest_path::dist, EAT_LAST, FARAWAY, GRAPH::grad, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, GRAPH::tail, GRAPH::term, UNKNOWN, and utdist().

Referenced by bound_reduce(), and sdpc_reduction().

SCIP_RETCODE getSD ( SCIP *  scip,
GRAPH g,
PATH pathtail,
PATH pathhead,
SCIP_Real *  sdist,
SCIP_Real  distlimit,
int *  heap,
int *  statetail,
int *  statehead,
int *  memlbltail,
int *  memlblhead,
int  i,
int  i2,
int  limit,
SCIP_Bool  pc,
SCIP_Bool  mw 
)
void graph_bfscoord ( GRAPH g)
void graph_boxcoord ( GRAPH g)
void graph_edge_add ( SCIP *  ,
GRAPH ,
int  ,
int  ,
double  ,
double   
)
void graph_edge_hide ( GRAPH g,
int  e 
)

hide edge

Parameters
gthe graph
ethe edge

Definition at line 2015 of file grphbase.c.

References EAT_FREE, EAT_HIDE, edge_remove(), GRAPH::grad, GRAPH::head, GRAPH::ieat, GRAPH::oeat, and GRAPH::tail.

int graph_edge_redirect ( SCIP *  ,
GRAPH ,
int  ,
int  ,
int  ,
SCIP_Real   
)
SCIP_RETCODE graph_edge_reinsert ( SCIP *  scip,
GRAPH g,
int  e1,
int  k1,
int  k2,
SCIP_Real  cost,
IDX ancestors0,
IDX ancestors1,
IDX revancestors0,
IDX revancestors1 
)

reinsert an edge to replace two other edges

Parameters
scipSCIP data structure
gthe graph
e1edge to reinsert
k1tail
k2head
costedgecost
ancestors0ancestors of first edge
ancestors1ancestors of second edge
revancestors0reverse ancestors of first edge
revancestors1reverse ancestors of first edge

Definition at line 1846 of file grphbase.c.

References GRAPH::ancestors, Edge_anti, graph_edge_redirect(), SCIPintListNodeAppendCopy(), and SCIPintListNodeFree().

Referenced by bd3_reduction(), bdr_reduction(), bound_reduce(), and da_reduce().

void graph_flags ( GRAPH p,
int  flags 
)

set flags

Parameters
pthe graph
flagsnew flags

Definition at line 1307 of file grphbase.c.

References GRAPH::flags.

Referenced by graph_load().

SCIP_RETCODE graph_grid_coordinates ( SCIP *  scip,
int **  coords,
int **  nodecoords,
int *  ncoords,
int  node,
int  grid_dim 
)

computes coordinates of node 'node'

Parameters
scipSCIP data structure
coordscoordinates
nodecoordscoordinates of the node (to be computed)
ncoordsarray with number of coordinate
nodethe node
grid_dimproblem dimension

Definition at line 691 of file grphbase.c.

Referenced by SCIPprobdataWriteSolution().

SCIP_RETCODE graph_grid_create ( SCIP *  scip,
GRAPH **  gridgraph,
int **  coords,
int  nterms,
int  grid_dim,
int  scale_order 
)

creates a graph out of a given grid

Parameters
scipSCIP data structure
gridgraphthe grid graph to be constructed
coordscoordinates
ntermsnumber of terminals
grid_dimproblem dimension
scale_orderscale order

Definition at line 535 of file grphbase.c.

References compEdges(), getNodeNumber(), graph_edge_add(), graph_init(), graph_knot_add(), graph_knot_chg(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::source, STP_GRID, and GRAPH::stp_type.

Referenced by graph_load().

void graph_ident ( const GRAPH )
SCIP_RETCODE graph_init_history ( SCIP *  scip,
GRAPH graph 
)

initialize data structures required to keep track of reductions

Parameters
scipSCIP data structure
graphgraph

Definition at line 128 of file grphbase.c.

References GRAPH::ancestors, GRAPH::edges, GRAPH::head, GRAPH::knots, GRAPH::orghead, GRAPH::orgtail, GRAPH::pcancestors, STP_MAX_NODE_WEIGHT, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, and GRAPH::tail.

Referenced by daPc_reduce(), and reduce().

void graph_knot_chg ( GRAPH p,
int  node,
int  term 
)
SCIP_RETCODE graph_knot_contract ( SCIP *  scip,
GRAPH p,
int  t,
int  s 
)
void graph_knot_contract_dir ( GRAPH ,
int  ,
int   
)
SCIP_RETCODE graph_knot_contractpc ( SCIP *  scip,
GRAPH g,
int  t,
int  s,
int  i 
)

contract an edge of (rooted) prize-collecting Steiner tree problem

Parameters
scipSCIP data structure
gthe graph
ttail node to be contracted
shead node to be contracted
iterminal to add offset to

Definition at line 1679 of file grphbase.c.

References GRAPH::ancestors, GRAPH::cost, EAT_LAST, GRAPH::grad, graph_edge_del(), graph_knot_chg(), graph_knot_contract(), GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_pterm, Is_term, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::pcancestors, GRAPH::prize, prize_subtract(), SCIPintListNodeAppendCopy(), SCIPintListNodeFree(), GRAPH::source, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and TRUE.

Referenced by degree_test_mw(), degree_test_pc(), nv_reduction(), nv_reductionAdv(), sl_reduction(), and trydg1edgepc().

SCIP_RETCODE graph_load ( SCIP *  ,
GRAPH **  ,
const char *  ,
PRESOL  
)

Definition at line 780 of file grphload.c.

References GRAPH::cost, DIRSEP, EAT_LAST, GRAPH::edges, section::extension, EXTSEP, FAILURE, FALSE, FARAWAY, current_file::filename, presolve_info::fixed, section::flag, FLAG_REQUIRED, key::format, current_file::fp, get_arguments(), GRAPH::grad, graph_edge_add(), graph_flags(), graph_grid_create(), GRAPH_HAS_COORDINATES, graph_init(), GRAPH_IS_GRIDGRAPH, graph_knot_add(), graph_knot_chg(), graph_maxweight_transform(), graph_MwcsToSap(), graph_obstgrid_create(), graph_PcToSap(), graph_prize_transform(), graph_rootprize_transform(), graph_valid(), GSTP, GRAPH::hoplimit, GRAPH::ieat, init_coordinates(), GRAPH::inpbeg, Is_term, KEY_COMMENT_CREATOR, KEY_COMMENT_DATE, KEY_COMMENT_NAME, KEY_COMMENT_PROBLEM, KEY_COMMENT_REMARK, KEY_COORDINATES_DD, KEY_COORDINATES_DDD, KEY_COORDINATES_DDDD, KEY_COORDINATES_DDDDD, KEY_COORDINATES_DDDDDD, KEY_COORDINATES_DDDDDDD, KEY_COORDINATES_DDDDDDDD, KEY_COORDINATES_END, KEY_COORDINATES_GRID, KEY_END, KEY_EOF, KEY_GRAPH_A, KEY_GRAPH_AA, KEY_GRAPH_E, KEY_GRAPH_EDGES, KEY_GRAPH_HOPLIMIT, KEY_GRAPH_NODES, KEY_GRAPH_OBSTACLES, KEY_MAXDEGS_MD, KEY_NODEWEIGHTS_END, KEY_NODEWEIGHTS_NW, KEY_OBSTACLES_END, KEY_OBSTACLES_RR, KEY_PRESOLVE_DATE, KEY_PRESOLVE_EA, KEY_PRESOLVE_EC, KEY_PRESOLVE_ED, KEY_PRESOLVE_ES, KEY_PRESOLVE_FIXED, KEY_PRESOLVE_LOWER, KEY_PRESOLVE_TIME, KEY_PRESOLVE_UPPER, KEY_SECTION, KEY_TERMINALS_END, KEY_TERMINALS_GROUPS, KEY_TERMINALS_ROOT, KEY_TERMINALS_ROOTP, KEY_TERMINALS_T, KEY_TERMINALS_TERMINALS, KEY_TERMINALS_TG, KEY_TERMINALS_TP, key::keyword, GRAPH::knots, current_file::line, presolve_info::lower, section::mark, MAX_ARGUMENTS, MAX_KEYWORD_LEN, MAX_LINE_LEN, MAX_PATH_LEN, GRAPH::maxdeg, message(), MSG_DEBUG, MSG_ERROR, MSG_FATAL, MSG_INFO, parameter::n, section::name, open_file(), GRAPH::prize, scale_coords(), current_file::section, SECTION_EXISTEND, SECTION_MISSING, GRAPH::source, start_section(), STP_DEG_CONS, STP_DIRECTED, STP_GRID, STP_HOP_CONS, STP_MAX_NODE_WEIGHT, STP_NODE_WEIGHTS, STP_OBSTACLES_GRID, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, STP_UNDIRECTED, SUCCESS, key::sw_code, GRAPH::tail, GRAPH::term, GRAPH::terms, presolve_info::time, TRUE, UNKNOWN, and presolve_info::upper.

Referenced by SCIPprobdataCreate().

SCIP_RETCODE graph_maxweight_transform ( SCIP *  scip,
GRAPH graph,
SCIP_Real *  maxweights 
)

alters the graph for MWCS problems

Parameters
scipSCIP data structure
graphthe graph
maxweightsarray containing the weight of each node

Definition at line 1020 of file grphbase.c.

References GRAPH::cost, EAT_LAST, graph_knot_chg(), graph_prize_transform(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::term, and GRAPH::terms.

Referenced by graph_load().

SCIP_RETCODE graph_MwcsToSap ( SCIP *  scip,
GRAPH graph,
SCIP_Real *  maxweights 
)

tansforms an MWCSP to an SAP

Parameters
scipSCIP data structure
graphthe graph
maxweightsarray containing the weight of each node

Definition at line 1079 of file grphbase.c.

References GRAPH::cost, EAT_LAST, graph_knot_chg(), graph_PcToSap(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::term, and GRAPH::terms.

Referenced by graph_load().

SCIP_RETCODE graph_obstgrid_create ( SCIP *  scip,
GRAPH **  gridgraph,
int **  coords,
int **  obst_coords,
int  nterms,
int  grid_dim,
int  nobstacles,
int  scale_order 
)

creates a graph out of a given grid

Parameters
scipSCIP data structure
gridgraphthe (obstacle) grid graph to be constructed
coordscoordinates of all points
obst_coordscoordinates of obstacles
ntermsnumber of terminals
grid_dimdimension of the problem
nobstaclesnumber of obstacles
scale_orderscale factor

Definition at line 374 of file grphbase.c.

References compEdgesObst(), FALSE, getNodeNumber(), graph_edge_add(), graph_init(), graph_knot_add(), graph_knot_chg(), graph_pack(), GRAPH::grid_coordinates, GRAPH::grid_dim, GRAPH::grid_ncoords, GRAPH::source, STP_OBSTACLES_GRID, GRAPH::stp_type, and TRUE.

Referenced by graph_load().

void graph_path_execX ( SCIP *  scip,
const GRAPH g,
int  start,
SCIP_Real *  cost,
SCIP_Real *  pathdist,
int *  pathedge 
)

Dijkstra's algorithm starting from node 'start'

Parameters
scipSCIP data structure
ggraph data structure
startstart vertex
costedgecosts
pathdistdistance array (on vertices)
pathedgepredecessor edge array (on vertices)

Definition at line 639 of file grphpath.c.

References CONNECT, correctX(), EAT_LAST, FARAWAY, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearestX(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::term, and UNKNOWN.

Referenced by da_reduce(), daPc_reduce(), hcrbound_reduce(), hcrcbound_reduce(), rptReduction(), SCIP_DECL_PROPEXEC(), SCIPheurComputeSteinerTree(), and sd_red().

void graph_path_length ( const GRAPH ,
const PATH  
)

Definition at line 2359 of file grphpath.c.

References GRAPH::cost, and GRAPH::knots.

void graph_path_st ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
SCIP_Real *  pathdist,
int *  pathedge,
int  start,
unsigned int *  randseed,
char *  connected 
)

Find a directed tree rooted in node 'start' and spanning all terminals

Parameters
scipSCIP data structure
ggraph data structure
costedgecosts
pathdistdistance array (on vertices)
pathedgepredecessor edge array (on vertices)
startstart vertex
randseedrandom seed
connectedarray to mark whether a vertex is part of computed Steiner tree

Definition at line 707 of file grphpath.c.

References BSP_MODE, correctX(), EAT_LAST, FALSE, FARAWAY, FSP_MODE, GRAPH::grad, graph_path_exec(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearestX(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, resetX(), GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.

Referenced by computeSteinerTreeDijk().

SCIP_RETCODE graph_PcSapCopy ( SCIP *  scip,
GRAPH graph,
GRAPH **  newgraph,
SCIP_Real *  offset 
)

alters the graph for prize collecting problems

Parameters
scipSCIP data structure
graphthe graph
newgraphthe new graph
offsetoffset

Definition at line 792 of file grphbase.c.

References GRAPH::cost, EAT_LAST, GRAPH::edges, GRAPH::esize, FARAWAY, flipedge, graph_copy(), graph_edge_add(), graph_edge_redirect(), graph_knot_add(), graph_resize(), Is_pterm, Is_term, GRAPH::knots, GRAPH::ksize, GRAPH::prize, GRAPH::source, STP_DIRECTED, GRAPH::stp_type, GRAPH::term, and GRAPH::terms.

Referenced by daPc_reduce(), and SCIPdualAscentPcStp().

SCIP_RETCODE graph_PcToSap ( SCIP *  scip,
GRAPH graph 
)
SCIP_RETCODE graph_prize_transform ( SCIP *  scip,
GRAPH graph 
)
SCIP_RETCODE graph_resize ( SCIP *  scip,
GRAPH g,
int  ksize,
int  esize,
int  layers 
)

enlarge the graph

Parameters
scipSCIP data structure
ggraph to be resized
ksizenew node slots
esizenew edge slots
layerslayers (set to -1 by default)

Definition at line 186 of file grphbase.c.

References GRAPH::cost, GRAPH::edges, GRAPH::esize, GRAPH::grad, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, GRAPH::knots, GRAPH::ksize, GRAPH::layers, GRAPH::locals, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::source, GRAPH::tail, and GRAPH::term.

Referenced by graph_PcSapCopy(), graph_PcToSap(), graph_prize_transform(), and graph_rootprize_transform().

SCIP_RETCODE graph_rootprize_transform ( SCIP *  scip,
GRAPH graph 
)

alters the graph for rooted prize collecting problems

Parameters
scipSCIP data structure
graphthe graph

Definition at line 955 of file grphbase.c.

References GRAPH::edges, GRAPH::esize, FARAWAY, graph_edge_add(), graph_knot_add(), graph_knot_chg(), graph_resize(), Is_term, GRAPH::knots, GRAPH::ksize, GRAPH::norgmodeledges, GRAPH::norgmodelknots, GRAPH::prize, GRAPH::source, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, GRAPH::term, and GRAPH::terms.

Referenced by graph_load().

void graph_save ( const GRAPH ,
const char *  ,
FILETYPE   
)

Definition at line 309 of file grphsave.c.

References bea_save(), FALSE, FF_BEA, FF_GRD, FF_PRB, FF_STP, graph_valid(), and stp_save().

SCIP_Bool graph_sol_valid ( SCIP *  scip,
const GRAPH graph,
int *  result 
)

verifies whether a given primal solution is feasible

Parameters
scipSCIP data structure
graphgraph data structure
resultsolution array, indicating whether an edge is in the solution

Definition at line 2639 of file grphbase.c.

References CONNECT, EAT_LAST, FALSE, GRAPH::head, Is_term, GRAPH::knots, GRAPH::oeat, GRAPH::outbeg, GRAPH::source, GRAPH::term, GRAPH::terms, and TRUE.

Referenced by SCIP_DECL_HEUREXEC(), and SCIPheurPrunePCSteinerTree().

void graph_trail ( const GRAPH p,
int  i 
)

traverse the graph

Parameters
pthe new graph
inode to start from

Definition at line 2510 of file grphbase.c.

References EAT_LAST, GRAPH::head, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, and TRUE.

Referenced by graph_valid(), and level0().

void graph_uncover ( GRAPH g)

reinsert all hidden edges

Parameters
gthe graph

Definition at line 2058 of file grphbase.c.

References EAT_HIDE, GRAPH::edges, GRAPH::grad, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, GRAPH::oeat, GRAPH::outbeg, and GRAPH::tail.

char graph_valid2 ( SCIP *  ,
const GRAPH ,
SCIP_Real *   
)
void graph_writefig ( const GRAPH ,
const char *  ,
const double *  ,
int   
)
SCIP_RETCODE hcrbound_reduce ( SCIP *  scip,
GRAPH graph,
PATH vnoi,
SCIP_Real *  cost,
SCIP_Real *  costrev,
SCIP_Real *  pathdist,
int *  heap,
int *  state,
int *  vbase,
int *  nelims,
int *  pathedge 
)
SCIP_RETCODE hcrcbound_reduce ( SCIP *  ,
GRAPH ,
PATH ,
SCIP_Real *  ,
SCIP_Real *  ,
SCIP_Real *  ,
SCIP_Real  ,
int *  ,
int *  ,
int *  ,
int *  ,
int *  ,
SCIP_Bool   
)
void heap_add ( int *  ,
int *  ,
int *  ,
int  ,
PATH  
)

Definition at line 241 of file grphpath.c.

References GT.

Referenced by computeSteinerTreeVnoi(), and SCIPheurImproveSteinerTree().

SCIP_RETCODE hopbound_reduce ( SCIP *  scip,
GRAPH graph,
PATH vnoi,
SCIP_Real *  cost,
SCIP_Real *  radius,
SCIP_Real *  costrev,
int *  heap,
int *  state,
int *  vbase,
int *  nelims 
)
void level0 ( SCIP *  ,
GRAPH  
)
SCIP_RETCODE nnpReduction ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  mem,
int *  marked,
int *  visited,
int *  count,
int  maxniter,
char *  positive 
)

non-negative path reduction for the MWCSP

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offfset value
memnodes array
markednodes array
visitednodes array
countpointer to number of reductions
maxnitermax number of edges to check
positivenodes array

Definition at line 5564 of file reduce_alt.c.

References EAT_LAST, FALSE, flipedge, graph_edge_del(), GRAPH::head, GRAPH::inpbeg, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, and TRUE.

Referenced by reduceMwcs().

SCIP_RETCODE npvReduction ( SCIP *  scip,
GRAPH g,
PATH pathtail,
PATH pathhead,
int *  heap,
int *  statetail,
int *  statehead,
int *  memlbltail,
int *  memlblhead,
int *  nelims,
int  limit 
)
SCIP_RETCODE pcgraphorg ( SCIP *  scip,
GRAPH graph 
)

mark terminals and switch terminal property to original terminals

Parameters
scipSCIP data structure
graphthe graph

Definition at line 2104 of file grphbase.c.

References FALSE, GRAPH::grad, graph_knot_chg(), Is_pterm, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::source, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, GRAPH::term, and TRUE.

Referenced by bound_reduce(), da_reduce(), daPc_reduce(), reduceMwcs(), and reducePc().

void prize_subtract ( SCIP *  scip,
GRAPH g,
SCIP_Real  cost,
int  i 
)

subtract a given sum from the prize of a terminal

Parameters
scipSCIP data structure
gthe graph
costcost to be subtracted
ithe terminal

Definition at line 1637 of file grphbase.c.

References GRAPH::cost, EAT_LAST, GRAPH::head, GRAPH::ieat, GRAPH::inpbeg, Is_pterm, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, GRAPH::source, STP_MAX_NODE_WEIGHT, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, GRAPH::tail, and GRAPH::term.

Referenced by graph_knot_contractpc().

SCIP_RETCODE reduce ( SCIP *  scip,
GRAPH **  graph,
SCIP_Real *  offset,
int  level,
int  minelims 
)

reduces the graph

Parameters
scipSCIP data structure
graphgraph structure
offsetpointer to store offset generated by reductions
levelreduction level 0: none, 1: basic, 2: advanced
minelimsminimal amount of reductions to reiterate reduction methods

Definition at line 1886 of file reduce.c.

References FALSE, graph_init_history(), graph_path_exit(), graph_path_init(), graph_valid(), level0(), reduceHc(), reduceMwcs(), reducePc(), reduceSap(), reduceStp(), STP_DEG_CONS, STP_DIRECTED, STP_HOP_CONS, STP_MAX_NODE_WEIGHT, STP_NODE_WEIGHTS, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, and TRUE.

Referenced by SCIP_DECL_HEUREXEC(), and SCIPprobdataCreate().

SCIP_RETCODE rptReduction ( SCIP *  scip,
GRAPH g,
SCIP_Real *  fixed,
int *  count 
)

root proximity terminal test (SAP)

Parameters
scipSCIP data structure
ggraph data structure
fixedpointer to offset value
countpointer to number of reductions

Definition at line 739 of file reduce_simple.c.

References GRAPH::ancestors, GRAPH::cost, EAT_LAST, GRAPH::fixedges, GRAPH::grad, graph_knot_contract(), graph_path_execX(), GRAPH::ieat, GRAPH::inpbeg, Is_term, GRAPH::knots, SCIPintListNodeAppendCopy(), GRAPH::source, GRAPH::tail, and GRAPH::term.

Referenced by reduceSap().

SCIP_RETCODE SCIPvalidateStpSol ( SCIP *  scip,
const GRAPH g,
const double *  xval,
SCIP_Bool *  feasible 
)
SCIP_RETCODE sd2_reduction ( SCIP *  scip,
GRAPH g,
SCIP_Real *  nodecost,
int *  nelims,
int *  adjacent 
)
SCIP_RETCODE sd_red ( SCIP *  scip,
GRAPH g,
PATH vnoi,
SCIP_Real *  edgepreds,
SCIP_Real *  mstsdist,
int *  heap,
int *  state,
int *  vbase,
int *  nodesid,
int *  nodesorg,
int *  forbidden,
int *  nelims 
)

Special distance test

Parameters
scipSCIP data structure
ggraph data structure
vnoiVoronoi data structure
edgepredsarray to store edge predecessors of auxiliary graph
mstsdistarray to store mst distances in auxiliary graph
heaparray representing a heap
statearray to indicate whether a node has been scanned during SP calculation
vbaseVoronoi base to each vertex
nodesidarray to map nodes in auxiliary graph to original ones
nodesorgarray to map terminals of original graph vertices of auxiliary graph
forbiddenarray to mark whether an edge may be eliminated
nelimspoint to store number of deleted edges

Definition at line 598 of file reduce_alt.c.

References bdr_reduction(), GRAPH::cost, shortest_path::dist, EAT_FREE, EAT_LAST, shortest_path::edge, Edge_anti, GRAPH::edges, FALSE, flipedge, getcloseterms(), getlecloseterms(), getnext4terms(), GRAPH::grad, graph_edge_add(), graph_edge_del(), graph_free(), graph_init(), graph_knot_add(), graph_knot_chg(), graph_path_exec(), graph_path_execX(), graph_path_exit(), graph_path_init(), GRAPH::head, GRAPH::ieat, Is_term, GRAPH::knots, GRAPH::mark, MST_MODE, GRAPH::oeat, GRAPH::outbeg, SCIPprobdataPrintGraph2(), sddeltable(), GRAPH::source, GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.

Referenced by reduceStp().

SCIP_RETCODE sd_reduction ( SCIP *  ,
GRAPH ,
SCIP_Real *  ,
SCIP_Real *  ,
SCIP_Real *  ,
SCIP_Real *  ,
SCIP_Real *  ,
int *  ,
int *  ,
int *  ,
int *  ,
int  ,
unsigned int *   
)
void sdpaths ( SCIP *  scip,
const GRAPH g,
PATH path,
SCIP_Real *  cost,
SCIP_Real  distlimit,
int *  heap,
int *  state,
int *  memlbl,
int *  nlbl,
int  tail,
int  head,
int  limit 
)

limited Dijkstra, stopping at terminals

Parameters
scipSCIP data structure
ggraph data structure
pathshortest paths data structure
costedge costs
distlimitdistance limit of the search
heaparray representing a heap
statearray to indicate whether a node has been scanned during SP calculation
memlblarray to save labelled nodes
nlblnumber of labelled nodes
tailtail of the edge
headhead of the edge
limitmaximum number of edges to consider during execution

Definition at line 542 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, FALSE, FSP_MODE, GRAPH::grad, GRAPH::head, Is_term, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, STP_MAX_NODE_WEIGHT, GRAPH::stp_type, GRAPH::term, TRUE, and UNKNOWN.

Referenced by getSD(), sdsp_reduction(), and sdsp_sap_reduction().

SCIP_RETCODE sdpc_reduction ( SCIP *  scip,
GRAPH g,
PATH vnoi,
SCIP_Real *  boundedges,
int *  heap,
int *  state,
int *  vbase,
int *  nodesid,
int *  nodesorg,
int *  nelims 
)

SD test for PC

Parameters
scipSCIP data structure
ggraph data structure
vnoiVoronoi data structure
boundedgesarray to store bound edges
heapheap array
statearray to store state of a node during Voronoi computation
vbaseVoronoi base to each node
nodesidarray
nodesorgarray
nelimspointer to store number of eliminated edges

Definition at line 1144 of file reduce_alt.c.

References GRAPH::cost, shortest_path::dist, EAT_FREE, EAT_LAST, Edge_anti, GRAPH::edges, FARAWAY, getcloseterms(), getnext4terms(), getnext4tterms(), GRAPH::grad, graph_edge_add(), graph_edge_del(), graph_free(), graph_init(), graph_knot_add(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, GRAPH::source, GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.

Referenced by reducePc().

SCIP_RETCODE sdsp_reduction ( SCIP *  scip,
GRAPH g,
PATH pathtail,
PATH pathhead,
int *  heap,
int *  statetail,
int *  statehead,
int *  memlbltail,
int *  memlblhead,
int *  nelims,
int  limit 
)
SCIP_RETCODE sdsp_sap_reduction ( SCIP *  scip,
GRAPH g,
PATH pathtail,
PATH pathhead,
int *  heap,
int *  statetail,
int *  statehead,
int *  memlbltail,
int *  memlblhead,
int *  nelims,
int  limit 
)

SDC test for the SAP using a limited version of Dijkstra's algorithm from both endpoints of an arc

Definition at line 1900 of file reduce_alt.c.

References GRAPH::cost, shortest_path::dist, EAT_LAST, shortest_path::edge, GRAPH::edges, FARAWAY, flipedge, GRAPH::grad, graph_edge_del(), GRAPH::head, GRAPH::knots, GRAPH::mark, GRAPH::oeat, GRAPH::outbeg, sdpaths(), TRUE, and UNKNOWN.

Referenced by reduceSap().

void voronoi ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
SCIP_Real *  costrev,
char *  base,
int *  vbase,
PATH path 
)

build a voronoi region, w.r.t. shortest paths, for a given set of bases

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
costrevreversed edge costs
basearray to indicate whether a vertex is a Voronoi base
vbasevoronoi base to each vertex
pathpath data struture (leading to respective Voronoi base)

Definition at line 1034 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, FSP_MODE, GRAPH::head, GRAPH::knots, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::source, and UNKNOWN.

Referenced by computeSteinerTreeVnoi(), and SCIPheurImproveSteinerTree().

SCIP_RETCODE voronoi_dist ( SCIP *  ,
const GRAPH ,
SCIP_Real *  ,
double *  ,
int *  ,
int *  ,
int *  ,
int *  ,
int *  ,
int *  ,
PATH  
)

Referenced by nv_reduction(), and nv_reductionAdv().

SCIP_RETCODE voronoi_extend ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
PATH path,
VLIST **  adjterms,
char *  termsmark,
int *  reachednodes,
int *  nreachednodes,
int *  nodenterms,
int  nneighbterms,
int  base,
int  countex 
)

extend a voronoi region until all neighbouring terminals are spanned

Parameters
scipSCIP data structure
ggraph data structure
costedgecosts
pathshortest paths data structure
adjtermsstructure for adjacent terminal data
termsmarkarray to mark terminal
reachednodesarray to mark reached nodes
nreachednodespointer to number of reached nodes
nodentermsarray to store number of terimals to each node
nneighbtermsnumber of neighbouring terminals
basevoronoi base
countexnumber of heap elements

Definition at line 862 of file grphpath.c.

References Vnoi_List_Node::base, CONNECT, correct(), Vnoi_List_Node::dist, shortest_path::dist, EAT_LAST, Vnoi_List_Node::edge, shortest_path::edge, FALSE, FSP_MODE, GT, GRAPH::head, GRAPH::knots, GRAPH::mark, nearest(), Vnoi_List_Node::next, GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, and TRUE.

SCIP_RETCODE voronoi_extend2 ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
PATH path,
SCIP_Real **  distarr,
int **  basearr,
int **  edgearr,
char *  termsmark,
int *  reachednodes,
int *  nreachednodes,
int *  nodenterms,
int  nneighbterms,
int  base,
int  countex 
)

extend a voronoi region until all neighbouring terminals are spanned

Parameters
scipSCIP data structure
ggraph data structure
costedgecosts
pathshortest paths data structure
distarrarray to store distance from each node to its base
basearrarray to store the bases
edgearrarray to store the ancestor edge
termsmarkarray to mark terminal
reachednodesarray to mark reached nodes
nreachednodespointer to number of reached nodes
nodentermsarray to store number of terimals to each node
nneighbtermsnumber of neighbouring terminals
basevoronoi base
countexcount of heap elements

Definition at line 954 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FALSE, FSP_MODE, GT, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::term, and TRUE.

Referenced by computeSteinerTreeVnoi().

void voronoi_hop ( const GRAPH ,
double *  ,
double *  ,
double *  ,
PATH ,
int *  ,
int *  ,
int *  ,
int *  ,
int *   
)
void voronoi_inout ( const GRAPH )
SCIP_RETCODE voronoi_radius ( SCIP *  scip,
const GRAPH graph,
GRAPH adjgraph,
PATH path,
SCIP_Real *  rad,
SCIP_Real *  cost,
SCIP_Real *  costrev,
int *  vbase,
int *  heap,
int *  state 
)

build voronoi regions, w.r.t. shortest paths, for all terminals and compute the radii

Parameters
scipSCIP data structure
graphgraph data structure
adjgraphgraph data structure
patharray containing Voronoi paths data
radarray storing shortest way from a terminal out of its Voronoi region
costedge costs
costrevreversed edge costs
vbasearray containing Voronoi base of each node
heaparray representing a heap
statearray to mark state of each node during calculation

Definition at line 1912 of file grphpath.c.

References CONNECT, correct(), GRAPH::cost, shortest_path::dist, EAT_LAST, shortest_path::edge, Edge_anti, FARAWAY, FSP_MODE, graph_edge_add(), graph_knot_add(), GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::prize, GRAPH::source, STP_HOP_CONS, STP_MAX_NODE_WEIGHT, STP_PRIZE_COLLECTING, STP_ROOTED_PRIZE_COLLECTING, GRAPH::stp_type, GRAPH::tail, GRAPH::term, GRAPH::terms, TRUE, and UNKNOWN.

Referenced by bound_reduce(), and hopbound_reduce().

void voronoi_repair ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
int *  count,
int *  vbase,
PATH path,
int *  newedge,
int  crucnode,
UF uf 
)

repair the voronoi diagram for a given set nodes

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
countpointer to number of heap elements
vbasearray containing Voronoi base of each node
pathVoronoi paths data struture
newedgethe new edge
crucnodethe current crucial node
ufunion find data structure

Definition at line 2211 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, FSP_MODE, GRAPH::head, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, SCIPunionfindFind(), GRAPH::tail, and UNKNOWN.

Referenced by SCIPheurImproveSteinerTree().

void voronoi_repair_mult ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
int *  count,
int *  vbase,
int *  boundedges,
int *  nboundedges,
char *  nodesmark,
UF uf,
PATH path 
)

repair the voronoi diagram for a given set nodes

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
countpointer to number of heap elements
vbasearray containing Voronoi base of each node
boundedgesboundary edges
nboundedgesnumber of boundary edges
nodesmarkarray to mark temporarily discarded nodes
ufunion find data structure
pathVoronoi paths data struture

Definition at line 2289 of file grphpath.c.

References CONNECT, correct(), EAT_LAST, FSP_MODE, GRAPH::head, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, and SCIPunionfindFind().

Referenced by SCIPheurImproveSteinerTree().

void voronoi_slrepair ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
PATH path,
int *  vbase,
int *  heap,
int *  state,
int  start,
int  adjnode 
)

repair the voronoi diagram for SL reduction

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
patharray to store
vbasearray containing Voronoi base of each node
heaparray representing a heap
statearray indicating state of each vertex during calculation of Voronoi regions
startnode to start repair from
adjnodeadjacent node

Definition at line 2136 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FSP_MODE, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::term, and UNKNOWN.

void voronoi_term ( const GRAPH ,
double *  ,
double *  ,
double *  ,
PATH ,
int *  ,
int *  ,
int *  ,
int *  ,
int   
)

Referenced by bd3_reduction().

void voronoi_terms ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  cost,
PATH path,
int *  vbase,
int *  heap,
int *  state 
)

build a Voronoi region in presolving, w.r.t. shortest paths, for all terminals

Parameters
scipSCIP data structure
ggraph data structure
costedge costs
pathpath data struture (leading to respective Voronoi base)
vbaseVoronoi base to each vertex
heaparray representing a heap
statearray to mark the state of each node during calculation

Definition at line 1679 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, FSP_MODE, GRAPH::head, Is_term, GRAPH::knots, GRAPH::mark, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::term, and UNKNOWN.

Referenced by daPc_reduce(), getnext3terms(), getnext4terms(), hcrbound_reduce(), hcrcbound_reduce(), ledge_reduction(), SCIP_DECL_PROPEXEC(), and sl_reduction().

void voronoiSteinerTreeExt ( SCIP *  scip,
const GRAPH g,
SCIP_Real *  costrev,
int *  vbase,
char *  stvertex,
PATH path 
)

Voronoi Steiner tree extension for RPC, PC and MW

Parameters
scipSCIP data structure
ggraph data structure
costrevreversed edge costs
vbasevoronoi base to each vertex
stvertexarray to indicate whether a vertex is a Voronoi base
pathpath data struture (leading to respective Voronoi base)

Definition at line 1121 of file grphpath.c.

References CONNECT, correct(), shortest_path::dist, EAT_LAST, shortest_path::edge, FARAWAY, FSP_MODE, GRAPH::head, Is_pterm, Is_term, GRAPH::knots, nearest(), GRAPH::oeat, GRAPH::outbeg, GRAPH::path_heap, GRAPH::path_state, GRAPH::prize, GRAPH::term, and UNKNOWN.

Referenced by extendSteinerTreePcMw().