Scippy

SCIP

Solving Constraint Integer Programs

graph.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2022 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file graph.h
17  * @brief includes various files containing graph methods used for Steiner tree problems
18  * @author Gerald Gamrath
19  * @author Thorsten Koch
20  * @author Daniel Rehfeldt
21  *
22  *
23  */
24 
25 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
26 
27 #ifndef APPLICATIONS_STP_GRAPH_H_
28 #define APPLICATIONS_STP_GRAPH_H_
29 
30 #include "scip/scip.h"
31 #include "misc_stp.h"
32 #include "graphdefs.h"
33 #include "redcosts.h"
34 #include "reducedefs.h"
35 #include "portab.h"
36 #include "stpvector.h"
37 
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 
44 //#define STP_RPC_FIXEDPROPER // only for testing
45 
46 
47 
48 /* graph_history.c
49  */
51 extern int graph_contractTrace(int, const GRAPH*);
52 extern SCIP_Bool graph_knot_hasContractTrace(int, const GRAPH*);
53 extern void graph_fixed_resetMoved(GRAPH*);
56 extern SCIP_Bool graph_valid_ancestors(SCIP*, const GRAPH*);
58 /* Pseudo ancestors */
61 extern void graph_freePseudoAncestors(SCIP*, GRAPH*);
62 extern void graph_edge_delPseudoAncestors(SCIP*, int, GRAPH*);
63 extern void graph_knot_delPseudoAncestors(SCIP*, int, GRAPH*);
64 extern void graph_edge_printPseudoAncestors(const GRAPH*, int);
65 extern void graph_knot_printPseudoAncestors(const GRAPH*, int);
66 extern int graph_edge_nPseudoAncestors(const GRAPH*, int);
67 extern int graph_knot_nPseudoAncestors(const GRAPH*, int);
68 extern const int* graph_edge_getPseudoAncestors(const GRAPH*, int);
69 extern IDX* graph_edge_getAncestors(const GRAPH*, int);
70 extern const int* graph_knot_getPseudoAncestors(const GRAPH*, int);
71 extern int graph_getNpseudoAncestors(const GRAPH*);
72 extern void graph_addPseudoAncestor(GRAPH*, int*);
73 extern void graph_addPseudoAncestors(int, GRAPH*);
85 //extern SCIP_RETCODE graph_checkConflict1_pseudoAncestors(SCIP*, const GRAPH*, int, SCIP_Bool*);
87 extern void graph_pseudoAncestors_hashNode(const PSEUDOANS*, int, int*);
88 extern void graph_pseudoAncestors_hashEdge(const PSEUDOANS*, int, int*);
89 extern void graph_pseudoAncestors_unhashNode(const PSEUDOANS*, int, int*);
90 extern void graph_pseudoAncestors_unhashEdge(const PSEUDOANS*, int, int*);
91 extern void graph_pseudoAncestors_hashNodeDirty(const PSEUDOANS*, int, SCIP_Bool, SCIP_Bool*, int*);
92 extern void graph_pseudoAncestors_hashEdgeDirty(const PSEUDOANS*, int, SCIP_Bool, SCIP_Bool*, int*);
93 extern void graph_pseudoAncestors_unhashNodeDirty(const PSEUDOANS*, int, int*);
94 extern void graph_pseudoAncestors_unhashEdgeDirty(const PSEUDOANS*, int, int*);
95 extern SCIP_Bool graph_pseudoAncestors_edgeIsHashed(const PSEUDOANS*, int, const int*);
96 extern SCIP_Bool graph_pseudoAncestors_nodeIsHashed(const PSEUDOANS*, int, const int*);
97 extern SCIP_Bool graph_pseudoAncestors_edgesInConflict(SCIP*, const GRAPH*, const int*, int);
99 /* Fixed components */
101 extern void graph_free_fixed(SCIP*, GRAPH*);
102 extern void graph_free_fixedEdgesOnly(SCIP*, GRAPH*);
103 extern SCIP_RETCODE graph_fixed_add(SCIP*, IDX*, const int*, int, GRAPH*);
108 extern IDX* graph_getFixedges(const GRAPH*);
109 extern const int* graph_getFixpseudonodes(SCIP*, const GRAPH*);
110 extern int graph_getNfixpseudonodes(const GRAPH*);
111 
112 /* graph_util.c
113  */
115 extern SCIP_RETCODE graph_findCentralTerminal(SCIP*, const GRAPH*, int, int*);
116 extern SCIP_RETCODE graph_trail_arr(SCIP*, const GRAPH*, int, SCIP_Bool*);
117 extern SCIP_RETCODE graph_trail_costAware(SCIP*, const GRAPH*, int, SCIP_Bool*);
118 /* Dijkstra heap: */
119 extern SCIP_RETCODE graph_heap_create(SCIP*, int, int*, DENTRY*, DHEAP**);
120 extern void graph_heap_free(SCIP*, SCIP_Bool, SCIP_Bool, DHEAP**);
121 extern void graph_heap_deleteMin(int*, SCIP_Real*, DHEAP*);
122 extern void graph_heap_deleteMinGetNode(int*, DHEAP*);
124 extern void graph_heap_clean(SCIP_Bool, DHEAP*);
125 extern void graph_heap_correct(int, SCIP_Real, DHEAP*);
126 extern SCIP_Bool graph_heap_isClean(const DHEAP*);
127 /* CSR storage: */
130 extern void graph_free_csr(SCIP*, GRAPH*);
131 extern SCIP_RETCODE graph_csr_alloc(SCIP*, int, int, CSR**);
132 extern SCIP_RETCODE graph_csr_allocWithEdgeId(SCIP*, int, int, CSR**);
133 extern void graph_csr_copy(const CSR*, CSR*);
134 extern void graph_csr_build(const GRAPH*, const SCIP_Real*, CSR*);
135 extern void graph_csr_buildCosts(const GRAPH*, const CSR*, const SCIP_Real*, SCIP_Real* RESTRICT);
136 extern void graph_csr_chgCosts(const GRAPH*, const SCIP_Real*, CSR*);
137 extern void graph_csr_print(const CSR*);
138 extern int graph_csr_getNedges(const CSR*);
139 extern void graph_csr_free(SCIP*, CSR**);
140 extern SCIP_Bool graph_csr_costsAreInSync(const GRAPH*, const CSR*, const SCIP_Real*);
141 extern SCIP_Bool graph_csr_isValid(const CSR*, SCIP_Bool verbose);
142 extern SCIP_Bool graph_valid_csr(const GRAPH*, SCIP_Bool verbose);
143 extern void graph_buildOrgNodesToReducedMap(const GRAPH*, int*);
144 /* CSR depository: */
145 extern SCIP_RETCODE graph_csrdepo_init(SCIP*, int, int, CSRDEPO**);
146 extern void graph_csrdepo_free(SCIP*, CSRDEPO**);
147 extern void graph_csrdepo_print(const CSRDEPO*);
148 extern void graph_csrdepo_getCSR(const CSRDEPO*, int, CSR*);
149 extern void graph_csrdepo_getTopCSR(const CSRDEPO*, CSR*);
150 extern int graph_csrdepo_getNcsrs(const CSRDEPO*);
151 extern int graph_csrdepo_getDataSize(const CSRDEPO*);
152 extern void graph_csrdepo_clean(CSRDEPO*);
153 extern void graph_csrdepo_removeTop(CSRDEPO*);
154 extern void graph_csrdepo_addEmptyTop(CSRDEPO*, int, int);
155 extern void graph_csrdepo_addEmptyTopTree(CSRDEPO*, int);
158 extern void graph_csrdepo_getEmptyTop(const CSRDEPO*, CSR*);
160 
161 /* Dynamic CSR storage: */
163 extern void graph_update_dcsr(SCIP*, GRAPH*);
164 extern void graph_dcsr_deleteEdge(DCSR*, int, int);
165 extern void graph_dcsr_deleteEdgeBi(SCIP*, DCSR*, int);
166 extern void graph_free_dcsr(SCIP*, GRAPH*);
167 extern SCIP_Bool graph_valid_dcsr(const GRAPH*, SCIP_Bool verbose);
168 /* misc: */
171 extern void graph_dijkLimited_reset(const GRAPH*, DIJK*);
172 extern void graph_dijkLimited_clean(const GRAPH*, DIJK*);
173 extern void graph_dijkLimited_free(SCIP*, DIJK**);
174 
175 /* graph_base.c
176  */
177 extern void graph_mark(GRAPH*);
178 extern void graph_show(const GRAPH*);
179 extern void graph_uncover(GRAPH*);
180 extern void graph_free(SCIP*, GRAPH**, SCIP_Bool);
181 extern void graph_freeHistory(SCIP*, GRAPH*);
182 extern void graph_freeHistoryDeep(SCIP*, GRAPH*);
183 extern void graph_getIsTermArray(const GRAPH*, SCIP_Bool*);
184 extern void graph_getTerms(const GRAPH*, int*);
185 extern SCIP_RETCODE graph_getTermsRandom(SCIP*, const GRAPH*, int*);
186 extern void graph_getEdgeCosts(const GRAPH*, SCIP_Real* RESTRICT, SCIP_Real* RESTRICT);
187 extern void graph_getEdgeRevCosts(const GRAPH*, SCIP_Real* RESTRICT);
188 extern void graph_getCsr(const GRAPH*, int* RESTRICT, int* RESTRICT, int* RESTRICT, int*);
189 extern SCIP_RETCODE graph_resize(SCIP*, GRAPH*, int, int, int);
190 extern SCIP_RETCODE graph_copy(SCIP*, const GRAPH*, GRAPH**);
192 extern SCIP_RETCODE graph_copyData(SCIP*, const GRAPH*, GRAPH*);
194 extern SCIP_RETCODE graph_init(SCIP*, GRAPH**, int, int, int);
196 extern SCIP_Bool graph_isMarked(const GRAPH*);
197 extern SCIP_Bool graph_isSetUp(const GRAPH*);
199 extern SCIP_Bool graph_valid(SCIP*, const GRAPH*);
200 extern SCIP_Bool graph_validInput(SCIP*, const GRAPH*);
201 extern SCIP_Bool graph_knotIsNWLeaf(const GRAPH*, int);
202 
203 /* graph_sub.c
204  */
207 extern void graph_subinoutFree(SCIP*, SUBINOUT**);
208 extern void graph_subinoutClean(SCIP*, SUBINOUT*);
212 const int* graph_subinoutGetSubToOrgEdgeMap(const SUBINOUT*);
213 const int* graph_subinoutGetSubToOrgNodeMap(const SUBINOUT*);
214 const int* graph_subinoutGetOrgToSubNodeMap(const SUBINOUT*);
219 extern void graph_subgraphFree(SCIP*, GRAPH**);
220 
221 /* graph_grid.c
222  */
223 extern SCIP_RETCODE graph_grid_create(SCIP*, GRAPH**, int**, int, int, int);
224 extern SCIP_RETCODE graph_obstgrid_create(SCIP*, GRAPH**, int**, int**, int, int, int, int);
225 extern SCIP_RETCODE graph_grid_coordinates(SCIP*, int**, int**, int*, int, int);
226 
227 /* graph_edge.c
228  */
229 extern void graph_edge_add(SCIP*, GRAPH*, int, int, double, double);
230 extern void graph_edge_addBi(SCIP*, GRAPH*, int, int, double);
231 extern void graph_edge_addSubgraph(SCIP*, const GRAPH*, const int*, int, GRAPH*);
232 extern void graph_edge_del(SCIP*, GRAPH*, int, SCIP_Bool);
233 extern void graph_edge_delFull(SCIP*, GRAPH*, int, SCIP_Bool);
234 extern void graph_edge_delBlocked(SCIP*, GRAPH*, const SCIP_Bool*, SCIP_Bool);
235 extern void graph_edge_delHistory(SCIP*, GRAPH*, int);
236 extern void graph_edge_hide(GRAPH*, int);
237 extern int graph_edge_redirect(SCIP*, GRAPH*, int, int, int, SCIP_Real, SCIP_Bool, SCIP_Bool);
238 
239 /* graph_node.c
240  */
241 extern SCIP_RETCODE graph_knot_contract(SCIP*, GRAPH*, int*, int, int);
242 extern SCIP_RETCODE graph_knot_contractFixed(SCIP*, GRAPH*, int*, int, int, int);
243 extern SCIP_RETCODE graph_knot_contractLowdeg2High(SCIP*, GRAPH*, int*, int, int);
245 extern SCIP_RETCODE graph_edge_reinsert(SCIP*, GRAPH*, int, int, int, SCIP_Real, int, SINGLETONANS*, SINGLETONANS*, int*, SCIP_Bool*);
246 extern SCIP_Bool graph_knot_isInRange(const GRAPH*, int);
247 extern void graph_knot_add(GRAPH*, int);
248 extern void graph_knot_chg(GRAPH*, int, int);
249 extern void graph_knot_del(SCIP*, GRAPH*, int, SCIP_Bool);
250 extern void graph_knot_delFull(SCIP*, GRAPH*, int, SCIP_Bool);
251 extern void graph_knot_contract_dir(GRAPH*, int, int);
252 
253 /* graph_delpseudo.c
254  */
255 extern SCIP_RETCODE graph_edge_delPseudo(SCIP*, GRAPH*, const SCIP_Real*, const SCIP_Real*, const SCIP_Real*, int, SCIP_Real*, SCIP_Bool*);
256 extern SCIP_RETCODE graph_edge_delPseudoPath(SCIP*, GRAPH*, int, int, int, SCIP_Real*);
257 extern SCIP_RETCODE graph_knot_delPseudo(SCIP*, GRAPH*, const SCIP_Real*, const SCIP_Real*, const SCIP_Real*, int, REDCOST*, SCIP_Bool*);
258 extern SCIP_RETCODE graph_knot_delPseudoCheckIfPossible(SCIP*, const GRAPH*, const SCIP_Real*, const SCIP_Real*, const SCIP_Real*, int, SCIP_Bool*);
259 
260 /* graph_stats.c
261  */
263 extern void graph_edge_printInfo(const GRAPH*, int);
264 extern SCIP_Bool graph_edge_isBlocked(const GRAPH*, int);
265 extern SCIP_Bool graph_edge_isDeleted(const GRAPH*, int);
266 extern SCIP_Bool graph_edge_isInRange(const GRAPH*, int);
268 extern SCIP_Bool graph_isAlmostUniform(const GRAPH*);
269 extern void graph_knot_printInfo(const GRAPH*, int);
270 extern void graph_printInfo(const GRAPH*);
271 extern void graph_printInfoReduced(const GRAPH*);
272 extern int graph_get_nNodes(const GRAPH*);
273 extern int graph_get_nEdges(const GRAPH*);
274 extern int graph_get_nTerms(const GRAPH*);
275 extern void graph_get_nVET(const GRAPH*, int*, int*, int*);
276 extern SCIP_Real graph_get_avgDeg(const GRAPH*);
277 extern SCIP_Bool graph_typeIsSpgLike(const GRAPH*);
278 extern SCIP_Bool graph_typeIsUndirected(const GRAPH*);
279 extern SCIP_Bool graph_typeIsDirected(const GRAPH*);
280 
281 
282 /* graph_trans.c
283  */
287 extern void graph_transGstpClean(PRESOL*, GRAPH*);
297 extern SCIP_RETCODE graph_transPcGetRsap(SCIP*, GRAPH*, GRAPH**, const int*, int, int);
298 extern SCIP_RETCODE graph_transRpcGetSpg(SCIP*, const GRAPH*, SCIP_Real, SCIP_Real*, int**, GRAPH**);
300 
301 
302 /* graph_pcbase.c
303  */
304 extern void graph_pc_knotToNonTermProperty(GRAPH*, int);
305 extern void graph_pc_knotToFixedTermProperty(GRAPH*, int);
306 extern void graph_pc_termToNonLeafTerm(SCIP*, GRAPH*, int, SCIP_Bool);
307 extern void graph_pc_termToNonTerm(SCIP*, GRAPH*, int);
308 extern void graph_pc_fixedTermToNonTerm(SCIP*, GRAPH*, int);
309 extern void graph_pc_knotToFixedTerm(SCIP*, GRAPH*, int, SCIP_Real*);
310 extern void graph_pc_nonTermToFixedTerm(GRAPH*, int, SCIP_Real*);
311 extern void graph_pc_updateSubgraphEdge(const GRAPH*, const int*, int, GRAPH*);
312 extern void graph_pc_enforcePseudoTerm(SCIP*, GRAPH*, int);
313 extern void graph_pc_enforceNonLeafTerm(SCIP*, GRAPH*, int);
314 extern SCIP_Bool graph_pc_nonLeafTermIsEnforced(SCIP*, const GRAPH*, int);
315 extern void graph_pc_enforceNode(SCIP*, GRAPH*, int, SCIP_Real*);
316 extern void graph_pc_subtractPrize(SCIP*, GRAPH*, SCIP_Real, int);
317 extern void graph_pc_knotChgPrize(GRAPH*, SCIP_Real, int);
318 extern void graph_pc_2org(SCIP*, GRAPH*);
319 extern void graph_pc_2trans(SCIP*, GRAPH*);
320 extern void graph_pc_2orgcheck(SCIP*, GRAPH*);
321 extern void graph_pc_2transcheck(SCIP*, GRAPH*);
322 extern int graph_pc_getNorgEdges(const GRAPH*);
323 extern void graph_pc_getReductionRatios(const GRAPH*, SCIP_Real*, SCIP_Real*);
324 extern void graph_pc_getOrgCosts(SCIP*, const GRAPH*, SCIP_Real*);
325 extern void graph_pc_getOrgCostsCsr(SCIP*, const GRAPH*, CSR*);
326 extern void graph_pc_markOrgGraph(GRAPH*);
327 extern void graph_pc_adaptSap(SCIP_Real, GRAPH*, SCIP_Real*);
328 extern void graph_pc_presolExit(SCIP*, GRAPH*);
329 extern void graph_pc_getBiased(const GRAPH*, SCIP_Real* RESTRICT, SCIP_Real* RESTRICT);
330 extern void graph_pc_termMarkProper(const GRAPH*, int*);
331 extern void graph_pc_shiftNonLeafCosts(SCIP*, GRAPH*);
338 extern SCIP_RETCODE graph_pc_contractNodeAncestors(SCIP*, GRAPH*, int, int, int);
339 extern SCIP_RETCODE graph_pc_contractEdge(SCIP*, GRAPH*, int*, int, int, int);
340 extern SCIP_RETCODE graph_pc_contractEdgeUnordered(SCIP*, GRAPH*, int*, int, int);
341 extern int graph_pc_deleteTerm(SCIP*, GRAPH*, int, SCIP_Real*);
342 extern int graph_pc_realDegree(const GRAPH*, int, SCIP_Bool);
343 extern int graph_pc_getRoot2PtermEdge(const GRAPH*, int);
344 extern int graph_pc_nFixedTerms(const GRAPH*);
345 extern int graph_pc_nNonFixedTerms(const GRAPH*);
346 extern int graph_pc_nProperPotentialTerms(const GRAPH*);
347 extern int graph_pc_nNonLeafTerms(const GRAPH*);
348 extern int graph_pc_getTwinTerm(const GRAPH*, int);
349 extern SCIP_Bool graph_pc_costsEqualOrgCosts(SCIP*, const GRAPH*, const SCIP_Real*);
350 extern SCIP_Bool graph_pc_edgeIsExtended(const GRAPH*, int);
351 extern SCIP_Bool graph_pc_knotIsFixedTerm(const GRAPH*, int);
352 extern SCIP_Bool graph_pc_knotIsPropPotTerm(const GRAPH*, int);
353 extern SCIP_Bool graph_pc_knotHasMaxPrize(const GRAPH*, int);
354 extern SCIP_Bool graph_pc_knotIsDummyTerm(const GRAPH*, int);
355 extern SCIP_Bool graph_pc_termIsNonLeafTerm(const GRAPH*, int);
356 extern SCIP_Bool graph_pc_knotIsNonLeafTerm(const GRAPH*, int);
357 extern SCIP_Bool graph_pc_evalTermIsNonLeaf(SCIP*, const GRAPH*, int);
361 extern SCIP_Bool graph_pc_isPc(const GRAPH*);
362 extern SCIP_Bool graph_pc_isMw(const GRAPH*);
363 extern SCIP_Bool graph_pc_isPcMw(const GRAPH*);
364 extern SCIP_Bool graph_pc_isRootedPcMw(const GRAPH*);
366 extern SCIP_Real graph_pc_solGetObj(SCIP*, const GRAPH*, const int*, SCIP_Real);
367 
368 
369 /* graph_path.c
370  */
371 extern void graph_path_exit(SCIP*, GRAPH*);
372 extern void graph_path_exec(SCIP*, const GRAPH*, int, int, const SCIP_Real*, PATH*);
373 extern void graph_pathInLimitedExec(const GRAPH*, const SCIP_Real*, const SCIP_Bool*, int, DIJK*, SCIP_Real*);
374 extern void graph_path_execX(SCIP*, const GRAPH*, int, const SCIP_Real*, SCIP_Real*, int*);
375 extern void graph_path_invroot(SCIP*, const GRAPH*, int, const SCIP_Real*, SCIP_Real*, int*);
376 extern void graph_path_st(const GRAPH*, const SCIP_Real*, SCIP_Real*, int*, int, STP_Bool*);
377 extern SCIP_RETCODE graph_path_st_dc(SCIP*, const GRAPH*, const SCIP_Real*, SCIP_Real*, int*, int, STP_Bool*, int*, STP_Bool*);
378 extern void graph_path_st_rpcmw(GRAPH*, SCIP_Real*, int*, const SCIP_Real*, const SCIP_Real*, SCIP_Real*, int*, int, STP_Bool*);
380 extern void graph_path_st_pcmw(GRAPH*, SCIP_Real*, int*, const SCIP_Real*, const SCIP_Real*, SCIP_Bool, SCIP_Real*, int*, int, STP_Bool*);
381 extern void graph_path_st_pcmw_full(GRAPH*, const SCIP_Real*, SCIP_Real*, int*, int, STP_Bool*);
382 extern void graph_path_st_pcmw_reduce(SCIP*, const GRAPH*, const SCIP_Real*, SCIP_Real*, int*, int, STP_Bool*);
383 extern void graph_path_st_pcmw_extend(SCIP*, const GRAPH*, const SCIP_Real*, SCIP_Bool, PATH*, STP_Bool*, SCIP_Bool*);
385 extern void graph_path_st_pcmw_extendOut(SCIP*, const GRAPH*, int, STP_Bool*, SCIP_Real*, int*, STP_Bool*, DHEAP*, SCIP_Bool*);
386 extern void graph_pathHeapAdd(const PATH*, int, int* RESTRICT, int* RESTRICT, int*);
387 extern void graph_path_PcMwSd(SCIP*, const GRAPH*, PATH*, SCIP_Real*, SCIP_Real, int*, int*, int*, int*, int*, int*, int, int, int);
389 extern SCIP_Bool graph_path_exists(const GRAPH*);
390 extern void graph_sdPaths(const GRAPH*, PATH*, const SCIP_Real*, SCIP_Real, int*, int*, int*, int*, int, int, int);
391 
392 /* graph_tpath.c
393  */
394 extern void graph_add2ndTermPaths(const GRAPH*, const SCIP_Real*, const SCIP_Real*, PATH*, int*, int*);
395 extern void graph_add3rdTermPaths(const GRAPH*, const SCIP_Real*, const SCIP_Real*, PATH*, int*, int*);
396 extern void graph_add4thTermPaths(const GRAPH*, const SCIP_Real*, const SCIP_Real*, PATH*, int*, int*);
397 extern void graph_get2nextTermPaths(GRAPH*, const SCIP_Real*, const SCIP_Real*, PATH*, int*, int*);
398 extern void graph_get3nextTermPaths(GRAPH*, const SCIP_Real*, const SCIP_Real*, PATH*, int*, int*);
399 extern void graph_get4nextTermPaths(GRAPH*, const SCIP_Real*, const SCIP_Real*, PATH*, int*, int*);
400 extern SCIP_RETCODE graph_get4nextTTerms(SCIP*, GRAPH*, const SCIP_Real*, PATH*, int*, int*, int*);
404 extern SCIP_RETCODE graph_tpathsRepair(SCIP*, int, SCIP_Bool, const GRAPH*, TPATHS*);
406 extern void graph_tpathsFree(SCIP*, TPATHS**);
407 extern void graph_tpathsPrintForNode(const GRAPH*, const SDPROFIT*, const TPATHS*, int);
408 extern void graph_tpathsGetProfitNodes(SCIP*, const GRAPH*, const TPATHS*, const SDPROFIT*, int, int, STP_Vectype(int));
409 extern void graph_tpathsAdd1st(const GRAPH*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
410 extern void graph_tpathsAdd2nd(const GRAPH*, const SCIP_Real*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
411 extern void graph_tpathsAdd3rd(const GRAPH*, const SCIP_Real*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
412 extern void graph_tpathsAdd4th(const GRAPH*, const SCIP_Real*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
413 extern void graph_tpathsSetAll2(GRAPH*, const SCIP_Real*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
414 extern void graph_tpathsSetAll3(GRAPH*, const SCIP_Real*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
415 extern void graph_tpathsSetAll4(GRAPH*, const SCIP_Real*, const SCIP_Real*, const SDPROFIT*, TPATHS*);
416 extern void graph_tpathsGetClosestTerm(const GRAPH*, const TPATHS*, int,
417  int* RESTRICT, int* RESTRICT, SCIP_Real* RESTRICT);
418 extern void graph_tpathsGet3CloseTerms(const GRAPH*, const TPATHS*, int, SCIP_Real,
419  int* RESTRICT, int* RESTRICT, SCIP_Real* RESTRICT, int* RESTRICT);
420 extern void graph_tpathsGet4CloseTerms(const GRAPH*, const TPATHS*, int, SCIP_Real,
421  int* RESTRICT, int* RESTRICT, SCIP_Real* RESTRICT, int* RESTRICT);
422 extern void graph_tpathsGet4CloseTermsLE(const GRAPH*, const TPATHS*, int, SCIP_Real,
423  int* RESTRICT, int* RESTRICT, SCIP_Real* RESTRICT, int* RESTRICT);
424 
425 /* graph_sdpath.c
426  */
427 extern void graph_sdStar(SCIP*, const GRAPH*, SCIP_Bool, int, int, int*, SCIP_Real*, int*, int*, DHEAP*, STP_Bool*, SCIP_Bool*);
428 extern SCIP_RETCODE graph_sdStarBiased(SCIP*, const GRAPH*, const SDPROFIT*, int, int*, DIJK*, SCIP_Bool*);
429 extern SCIP_RETCODE graph_sdCloseNodesBiased(SCIP*, const GRAPH*, const SDPROFIT*, int, DIJK*);
430 extern SCIP_Bool graph_sdWalksConnected(SCIP*, const GRAPH*, const int*, const SCIP_Real*, const STP_Bool*, int, int, SCIP_Real*, int*, int*, STP_Bool*, SCIP_Bool);
431 extern SCIP_Bool graph_sdWalks(SCIP*, const GRAPH*, const SCIP_Real*, const int*, SCIP_Real, int, int, int, SCIP_Real*, int*, int*, int*, int*, STP_Bool*);
432 extern SCIP_Bool graph_sdWalks_csr(SCIP*, const GRAPH*, const int*, SCIP_Real, int, int, int, SCIP_Real*, int*, int*, DHEAP*, STP_Bool*);
433 extern SCIP_Bool graph_sdWalksTriangle(SCIP*, const GRAPH*, const int*, const int*, SCIP_Real, int, int, int, SCIP_Real*, SCIP_Real*, int*, int*, DHEAP*, STP_Bool*);
434 extern SCIP_Bool graph_sdWalksExt(SCIP*, const GRAPH*, const SCIP_Real*, SCIP_Real, int, int, int, int, SCIP_Real*, int*, int*, int*, int*, int*, int*, STP_Bool*);
435 extern SCIP_Bool graph_sdWalksExt2(SCIP*, const GRAPH*, const SCIP_Real*, const int*, SCIP_Real, int, int, int, int, SCIP_Real*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, STP_Bool*);
437 
438 
439 /* graph_vnoi.c
440  */
441 extern SCIP_RETCODE graph_vnoiInit(SCIP*, const GRAPH*, SCIP_Bool, VNOI**);
442 extern void graph_vnoiFree(SCIP*, VNOI**);
443 extern SCIP_RETCODE graph_vnoiCompute(SCIP*, const GRAPH*, VNOI*);
444 extern SCIP_RETCODE graph_vnoiComputeImplied(SCIP*, const GRAPH*, const SDPROFIT*, VNOI*);
445 extern void graph_voronoi(const GRAPH*, const SCIP_Real*, const SCIP_Real*, const STP_Bool*, int*, PATH*);
446 extern void graph_voronoiTerms(const GRAPH*, const SCIP_Bool*, int* RESTRICT, PATH* RESTRICT);
447 extern void graph_voronoiRepair(SCIP*, const GRAPH*, const SCIP_Real*, const SCIP_Real*, int*, int*, PATH*, int*, int, UF*);
448 extern void graph_voronoiRepairMult(SCIP*, const GRAPH*, const SCIP_Real*, const STP_Bool*, int* RESTRICT, int* RESTRICT, int* RESTRICT, int* RESTRICT, UF* RESTRICT, PATH* RESTRICT);
449 extern void graph_voronoiWithRadiusMw(SCIP*, const GRAPH*, PATH*, const SCIP_Real*, SCIP_Real*, int*, int*, int*);
450 extern void graph_voronoiMw(SCIP*, const GRAPH*, const SCIP_Real*, PATH*, int*, int*, int*);
451 extern void graph_add1stTermPaths(const GRAPH*, const SCIP_Real*, PATH*, int*, int*);
452 extern void voronoiSteinerTreeExt(SCIP*, const GRAPH*, SCIP_Real*, int*, STP_Bool*, PATH*);
453 extern SCIP_RETCODE graph_voronoiExtend(SCIP*, const GRAPH*, const SCIP_Real*, PATH*, SCIP_Real**, int**, int**, STP_Bool*, int*, int*, int*, int, int, int);
454 extern SCIP_RETCODE graph_voronoiWithDist(SCIP*, const GRAPH*, const SCIP_Bool*, const SCIP_Real*, double*, int*, int*, int*, int*, PATH*);
455 extern SCIP_RETCODE graph_voronoiWithRadius(SCIP*, const GRAPH*, GRAPH*, PATH*, SCIP_Real*, SCIP_Real*, SCIP_Real*, int*, int*, int*);
456 
457 
458 /* graph_mcut.c
459  */
460 #if 0
461 extern void graph_mincut_exit(SCIP*, GRAPH*);
462 extern void graph_mincut_exec(GRAPH*, int, int, int, const int*, int*, const int*, const int*, const int*, int);
464 #else
465 extern void graph_mincut_exit(SCIP*, GRAPH*);
466 extern void graph_mincut_exec(const GRAPH*, const int, const int, const int, const int, const int, const int*, const int*, int* RESTRICT, const int*, const int*, const int*, const SCIP_Bool);
468 extern SCIP_RETCODE graph_mincut_reInit(SCIP*, int, int, GRAPH*);
470 extern void graph_mincut_setDefaultVals(GRAPH*);
471 #endif
472 
473 /* graph_load.c
474  */
475 extern SCIP_RETCODE graph_load(SCIP*, GRAPH**, const char*, PRESOL*);
476 
477 /* graph_save.c
478  */
479 extern void graph_save(SCIP*, const GRAPH*, const char*, FILETYPE);
480 extern void graph_writeReductionStats(const GRAPH*, const char*, const char*);
481 extern void graph_writeReductionRatioStats(const GRAPH*, const char*, const char*);
483 extern SCIP_RETCODE graph_writeGml(const GRAPH*, const char*, const SCIP_Bool*);
484 extern SCIP_RETCODE graph_writeGmlSub(const GRAPH*, const char*, const SCIP_Bool*);
485 extern void graph_writeStp(SCIP*, const GRAPH*, FILE*, SCIP_Real);
486 extern void graph_writeStpByName(SCIP*, const GRAPH*, const char*, SCIP_Real);
487 extern void graph_writeStpOrg(SCIP*, const GRAPH*, const char*);
488 
489 
490 /* validate.c
491  */
492 extern SCIP_RETCODE SCIPStpValidateSol(SCIP*, const GRAPH*, const double*, SCIP_Bool, SCIP_Bool*);
493 
494 
495 
496 #ifdef __cplusplus
497 }
498 #endif
499 
500 
501 #endif /* !APPLICATIONS_STP_GRAPH_H_ */
#define STP_Vectype(type)
Definition: stpvector.h:44
void graph_csr_copy(const CSR *, CSR *)
Definition: graph_util.c:1483
void graph_csrdepo_addEmptyTopTree(CSRDEPO *, int)
Definition: graph_util.c:836
void graph_edge_delPseudoAncestors(SCIP *, int, GRAPH *)
SCIP_RETCODE graph_init_csr(SCIP *, GRAPH *)
Definition: graph_util.c:1581
SCIP_RETCODE graph_singletonAncestors_init(SCIP *, const GRAPH *, int, SINGLETONANS *)
void graph_path_st(const GRAPH *, const SCIP_Real *, SCIP_Real *, int *, int, STP_Bool *)
Definition: graph_path.c:1199
SCIP_RETCODE graph_transPcmw2rooted(SCIP *, GRAPH *, SCIP_Real, SCIP_Bool)
Definition: graph_trans.c:809
int graph_get_nEdges(const GRAPH *)
Definition: graph_stats.c:548
int graph_edge_nPseudoAncestors(const GRAPH *, int)
void graph_pseudoAncestors_unhashEdge(const PSEUDOANS *, int, int *)
SCIP_RETCODE graph_edge_delPseudoPath(SCIP *, GRAPH *, int, int, int, SCIP_Real *)
void graph_knot_chg(GRAPH *, int, int)
Definition: graph_node.c:86
SCIP_Bool graph_valid_pseudoAncestors(SCIP *, const GRAPH *)
void graph_csrdepo_clean(CSRDEPO *)
Definition: graph_util.c:781
SCIP_Bool graph_valid_ancestors(SCIP *, const GRAPH *)
int graph_pc_realDegree(const GRAPH *, int, SCIP_Bool)
SCIP_RETCODE graph_pc_contractNodeAncestors(SCIP *, GRAPH *, int, int, int)
void graph_csr_print(const CSR *)
Definition: graph_util.c:1514
void graph_pc_getBiased(const GRAPH *, SCIP_Real *RESTRICT, SCIP_Real *RESTRICT)
SCIP_Bool graph_pc_isMw(const GRAPH *)
int graph_knot_getContractionRecordAncestor(int, const SUBINOUT *)
Definition: graph_sub.c:895
void graph_tpathsAdd4th(const GRAPH *, const SCIP_Real *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:2112
void graph_edge_del(SCIP *, GRAPH *, int, SCIP_Bool)
Definition: graph_edge.c:368
SCIP_RETCODE graph_knot_contractFixed(SCIP *, GRAPH *, int *, int, int, int)
Definition: graph_node.c:521
SCIP_Bool graph_sdWalksConnected(SCIP *, const GRAPH *, const int *, const SCIP_Real *, const STP_Bool *, int, int, SCIP_Real *, int *, int *, STP_Bool *, SCIP_Bool)
SCIP_Bool graph_typeIsDirected(const GRAPH *)
Definition: graph_stats.c:83
FILETYPE
Definition: graphdefs.h:115
void graph_edge_printPseudoAncestors(const GRAPH *, int)
SCIP_Bool graph_pseudoAncestors_nodeIsHashed(const PSEUDOANS *, int, const int *)
SCIP_RETCODE graph_fixed_addEdge(SCIP *, int, GRAPH *)
SCIP_Bool graph_sdWalksExt(SCIP *, const GRAPH *, const SCIP_Real *, SCIP_Real, int, int, int, int, SCIP_Real *, int *, int *, int *, int *, int *, int *, STP_Bool *)
SCIP_Bool graph_pc_isRootedPcMw(const GRAPH *)
void graph_writeReductionRatioStats(const GRAPH *, const char *, const char *)
Definition: graph_save.c:285
SCIP_RETCODE graph_voronoiWithDist(SCIP *, const GRAPH *, const SCIP_Bool *, const SCIP_Real *, double *, int *, int *, int *, int *, PATH *)
SCIP_Bool graph_csr_costsAreInSync(const GRAPH *, const CSR *, const SCIP_Real *)
Definition: graph_util.c:1448
void graph_pc_subtractPrize(SCIP *, GRAPH *, SCIP_Real, int)
void graph_tpathsGetClosestTerm(const GRAPH *, const TPATHS *, int, int *RESTRICT, int *RESTRICT, SCIP_Real *RESTRICT)
SCIP_Bool graph_sdWalks_csr(SCIP *, const GRAPH *, const int *, SCIP_Real, int, int, int, SCIP_Real *, int *, int *, DHEAP *, STP_Bool *)
SCIP_RETCODE graph_subinoutActivateEdgeMap(const GRAPH *, SUBINOUT *)
Definition: graph_sub.c:769
void graph_edge_addBi(SCIP *, GRAPH *, int, int, double)
SCIP_Bool graph_valid(SCIP *, const GRAPH *)
Definition: graph_base.c:1480
void graph_add3rdTermPaths(const GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1501
SCIP_RETCODE graph_pc_presolInit(SCIP *, GRAPH *)
Definition: graph_pcbase.c:815
void graph_getIsTermArray(const GRAPH *, SCIP_Bool *)
Definition: graph_base.c:540
void graph_pc_termMarkProper(const GRAPH *, int *)
SCIP_Bool graph_subinoutUsesNewHistory(const SUBINOUT *)
Definition: graph_sub.c:848
SCIP_RETCODE graph_findCentralTerminal(SCIP *, const GRAPH *, int, int *)
Definition: graph_util.c:410
SCIP_Bool graph_mincut_isInitialized(const GRAPH *)
Definition: graph_mcut.c:1139
void graph_get3nextTermPaths(GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1562
int graph_pc_nFixedTerms(const GRAPH *)
void graph_path_exec(SCIP *, const GRAPH *, int, int, const SCIP_Real *, PATH *)
Definition: graph_path.c:541
void graph_csr_build(const GRAPH *, const SCIP_Real *, CSR *)
Definition: graph_util.c:1351
int graph_contractTrace(int, const GRAPH *)
void graph_mark(GRAPH *)
Definition: graph_base.c:1130
void graph_free_dcsr(SCIP *, GRAPH *)
Definition: graph_util.c:1807
void graph_writeStp(SCIP *, const GRAPH *, FILE *, SCIP_Real)
Definition: graph_save.c:568
int graph_pseudoAncestorsGetHashArraySize(const PSEUDOANS *)
const int * graph_subinoutGetContractionRecord(const SUBINOUT *)
Definition: graph_sub.c:837
SCIP_RETCODE graph_pseudoAncestors_appendCopyNodeToEdge(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
SCIP_Bool graph_pc_term2edgeIsConsistent(SCIP *, const GRAPH *)
Definition: graph_pcbase.c:874
void graph_writeReductionStats(const GRAPH *, const char *, const char *)
Definition: graph_save.c:412
void graph_knot_printInfo(const GRAPH *, int)
Definition: graph_stats.c:151
SCIP_RETCODE graph_fixed_addNodePc(SCIP *, int, GRAPH *)
void graph_free(SCIP *, GRAPH **, SCIP_Bool)
Definition: graph_base.c:796
void graph_pc_2org(SCIP *, GRAPH *)
SCIP_RETCODE graph_path_init(SCIP *, GRAPH *)
Definition: graph_path.c:480
void graph_dcsr_deleteEdgeBi(SCIP *, DCSR *, int)
Definition: graph_util.c:1894
SCIP_RETCODE graph_initPseudoAncestorsSized(SCIP *, int, GRAPH *)
SCIP_RETCODE graph_pseudoAncestors_appendCopyNode(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
SCIP_Bool graph_pc_nonLeafTermIsEnforced(SCIP *, const GRAPH *, int)
void graph_subinoutFree(SCIP *, SUBINOUT **)
Definition: graph_sub.c:859
void graph_pseudoAncestors_unhashNode(const PSEUDOANS *, int, int *)
void graph_subinoutActivateNewHistory(SUBINOUT *)
Definition: graph_sub.c:788
void graph_pseudoAncestors_unhashNodeDirty(const PSEUDOANS *, int, int *)
void graph_pathHeapAdd(const PATH *, int, int *RESTRICT, int *RESTRICT, int *)
void graph_pseudoAncestors_hashNodeDirty(const PSEUDOANS *, int, SCIP_Bool, SCIP_Bool *, int *)
void graph_pc_enforceNonLeafTerm(SCIP *, GRAPH *, int)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_RETCODE graph_grid_coordinates(SCIP *, int **, int **, int *, int, int)
Definition: graph_grid.c:486
int graph_edge_redirect(SCIP *, GRAPH *, int, int, int, SCIP_Real, SCIP_Bool, SCIP_Bool)
Definition: graph_edge.c:103
void graph_heap_clean(SCIP_Bool, DHEAP *)
Definition: graph_util.c:938
void graph_voronoiRepairMult(SCIP *, const GRAPH *, const SCIP_Real *, const STP_Bool *, int *RESTRICT, int *RESTRICT, int *RESTRICT, int *RESTRICT, UF *RESTRICT, PATH *RESTRICT)
void graph_tpathsGet3CloseTerms(const GRAPH *, const TPATHS *, int, SCIP_Real, int *RESTRICT, int *RESTRICT, SCIP_Real *RESTRICT, int *RESTRICT)
const int * graph_subinoutGetSubToOrgNodeMap(const SUBINOUT *)
Definition: graph_sub.c:799
SCIP_RETCODE graph_termsReachable(SCIP *, const GRAPH *, SCIP_Bool *)
Definition: graph_util.c:370
void graph_tpathsPrintForNode(const GRAPH *, const SDPROFIT *, const TPATHS *, int)
Definition: graph_tpath.c:1793
SCIP_RETCODE graph_knot_replaceDeg2(SCIP *, int, SCIP_Real, int, GRAPH *, SCIP_Bool *)
Definition: graph_node.c:158
SCIP_RETCODE graph_transPcGetSap(SCIP *, GRAPH *, GRAPH **, SCIP_Real *)
Definition: graph_trans.c:931
const int * graph_knot_getPseudoAncestors(const GRAPH *, int)
void graph_csrdepo_getTopCSR(const CSRDEPO *, CSR *)
Definition: graph_util.c:684
SCIP_RETCODE graph_knot_contract(SCIP *, GRAPH *, int *, int, int)
Definition: graph_node.c:264
void graph_add4thTermPaths(const GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1521
void graph_heap_deleteMin(int *, SCIP_Real *, DHEAP *)
Definition: graph_util.c:1053
void graph_path_PcMwSd(SCIP *, const GRAPH *, PATH *, SCIP_Real *, SCIP_Real, int *, int *, int *, int *, int *, int *, int, int, int)
Definition: graph_path.c:788
int graph_csr_getNedges(const CSR *)
Definition: graph_util.c:1536
void graph_tpathsAdd1st(const GRAPH *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:1932
SCIP_Bool graph_heap_isClean(const DHEAP *)
Definition: graph_util.c:962
void graph_tpathsSetAll3(GRAPH *, const SCIP_Real *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:2219
SCIP_RETCODE graph_mincut_init(SCIP *, GRAPH *)
Definition: graph_mcut.c:1105
SCIP_Real graph_pc_getNonLeafTermOffset(SCIP *, const GRAPH *)
void graph_pseudoAncestors_hashEdge(const PSEUDOANS *, int, int *)
SCIP_RETCODE graph_mincut_reInit(SCIP *, int, int, GRAPH *)
Definition: graph_mcut.c:1120
SCIP_RETCODE graph_voronoiWithRadius(SCIP *, const GRAPH *, GRAPH *, PATH *, SCIP_Real *, SCIP_Real *, SCIP_Real *, int *, int *, int *)
Definition: graph_vnoi.c:774
void graph_pc_termToNonLeafTerm(SCIP *, GRAPH *, int, SCIP_Bool)
SCIP_RETCODE graph_pack(SCIP *, GRAPH *, GRAPH **, REDSOL *, SCIP_Bool)
Definition: graph_base.c:1324
SCIP_RETCODE graph_printEdgeConflicts(SCIP *, const GRAPH *)
Definition: graph_stats.c:408
void graph_printInfo(const GRAPH *)
Definition: graph_stats.c:299
void graph_path_st_pcmw_reduce(SCIP *, const GRAPH *, const SCIP_Real *, SCIP_Real *, int *, int, STP_Bool *)
Definition: graph_path.c:1556
void graph_voronoiRepair(SCIP *, const GRAPH *, const SCIP_Real *, const SCIP_Real *, int *, int *, PATH *, int *, int, UF *)
Definition: graph_vnoi.c:1100
SCIP_RETCODE graph_resize(SCIP *, GRAPH *, int, int, int)
Definition: graph_base.c:744
void graph_pc_fixedTermToNonTerm(SCIP *, GRAPH *, int)
SCIP_Bool graph_valid_csr(const GRAPH *, SCIP_Bool verbose)
Definition: graph_util.c:1694
void graph_vnoiFree(SCIP *, VNOI **)
Definition: graph_vnoi.c:1348
header only, simple implementation of an STL like vector
SCIP_Bool graph_sdWalks(SCIP *, const GRAPH *, const SCIP_Real *, const int *, SCIP_Real, int, int, int, SCIP_Real *, int *, int *, int *, int *, STP_Bool *)
SCIP_RETCODE graph_obstgrid_create(SCIP *, GRAPH **, int **, int **, int, int, int, int)
Definition: graph_grid.c:175
SCIP_RETCODE graph_tpathsRecomputeBiased(const SDPROFIT *, GRAPH *, TPATHS *)
Definition: graph_tpath.c:1776
SCIP_Bool graph_pc_knotHasMaxPrize(const GRAPH *, int)
SCIP_Bool graph_validInput(SCIP *, const GRAPH *)
Definition: graph_base.c:1619
SCIP_RETCODE graph_init_dcsr(SCIP *, GRAPH *)
Definition: graph_util.c:1721
void graph_get2nextTermPaths(GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1542
void graph_csr_chgCosts(const GRAPH *, const SCIP_Real *, CSR *)
Definition: graph_util.c:1298
SCIP_RETCODE graph_pseudoAncestors_appendMoveNode(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
SCIP_RETCODE graph_edge_reinsert(SCIP *, GRAPH *, int, int, int, SCIP_Real, int, SINGLETONANS *, SINGLETONANS *, int *, SCIP_Bool *)
Definition: graph_edge.c:200
void graph_pseudoAncestors_unhashEdgeDirty(const PSEUDOANS *, int, int *)
SCIP_RETCODE graph_initAncestors(SCIP *, GRAPH *)
void graph_tpathsSetAll4(GRAPH *, const SCIP_Real *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:2260
SCIP_Bool graph_pc_termIsNonLeafTerm(const GRAPH *, int)
SCIP_RETCODE graph_pc_initPrizes(SCIP *, GRAPH *, int)
Definition: graph_pcbase.c:741
SCIP_RETCODE graph_vnoiCompute(SCIP *, const GRAPH *, VNOI *)
Definition: graph_vnoi.c:1302
SCIP_Bool graph_sdWalksTriangle(SCIP *, const GRAPH *, const int *, const int *, SCIP_Real, int, int, int, SCIP_Real *, SCIP_Real *, int *, int *, DHEAP *, STP_Bool *)
SCIP_Bool graph_csrdepo_isEmpty(const CSRDEPO *)
Definition: graph_util.c:851
void graph_path_invroot(SCIP *, const GRAPH *, int, const SCIP_Real *, SCIP_Real *, int *)
Definition: graph_path.c:973
SCIP_Bool graph_knotIsNWLeaf(const GRAPH *, int)
Definition: graph_node.c:35
SCIP_RETCODE graph_pc_initSubgraph(SCIP *, GRAPH *)
Definition: graph_pcbase.c:763
void graph_knot_delFull(SCIP *, GRAPH *, int, SCIP_Bool)
Definition: graph_node.c:131
void graph_dijkLimited_reset(const GRAPH *, DIJK *)
Definition: graph_util.c:2105
SCIP_RETCODE graph_pc_initTerm2Edge(SCIP *, GRAPH *, int)
Definition: graph_pcbase.c:721
SCIP_RETCODE graph_tpathsInitBiased(SCIP *, const SDPROFIT *, GRAPH *, TPATHS **)
Definition: graph_tpath.c:1700
void graph_path_st_pcmw(GRAPH *, SCIP_Real *, int *, const SCIP_Real *, const SCIP_Real *, SCIP_Bool, SCIP_Real *, int *, int, STP_Bool *)
Definition: graph_path.c:1430
SCIP_RETCODE graph_get4nextTTerms(SCIP *, GRAPH *, const SCIP_Real *, PATH *, int *, int *, int *)
Definition: graph_tpath.c:1601
int graph_pc_getRoot2PtermEdge(const GRAPH *, int)
SCIP_Bool graph_pc_edgeIsExtended(const GRAPH *, int)
void graph_buildOrgNodesToReducedMap(const GRAPH *, int *)
Definition: graph_util.c:560
SCIP_RETCODE graph_path_st_dc(SCIP *, const GRAPH *, const SCIP_Real *, SCIP_Real *, int *, int, STP_Bool *, int *, STP_Bool *)
Definition: graph_path.c:1299
SCIP_Bool graph_csrdepo_hasEmptyTop(const CSRDEPO *)
Definition: graph_util.c:863
SCIP_RETCODE graph_edge_delPseudo(SCIP *, GRAPH *, const SCIP_Real *, const SCIP_Real *, const SCIP_Real *, int, SCIP_Real *, SCIP_Bool *)
void graph_path_execX(SCIP *, const GRAPH *, int, const SCIP_Real *, SCIP_Real *, int *)
Definition: graph_path.c:905
SCIP_RETCODE graph_transMw(SCIP *, GRAPH *)
Definition: graph_trans.c:632
miscellaneous methods used for solving Steiner problems
void graph_pc_2trans(SCIP *, GRAPH *)
int graph_get_nTerms(const GRAPH *)
Definition: graph_stats.c:560
SCIP_RETCODE graph_subgraphCompleteNewHistory(SCIP *, const int *, GRAPH *, GRAPH *)
Definition: graph_sub.c:920
void graph_freePseudoAncestors(SCIP *, GRAPH *)
SCIP_RETCODE graph_transRpc2SpgTrivial(SCIP *, GRAPH *)
Definition: graph_trans.c:505
void graph_writeStpByName(SCIP *, const GRAPH *, const char *, SCIP_Real)
Definition: graph_save.c:550
void graph_tpathsGetProfitNodes(SCIP *, const GRAPH *, const TPATHS *, const SDPROFIT *, int, int, STP_Vectype(int))
Definition: graph_tpath.c:1842
int graph_getNfixpseudonodes(const GRAPH *)
void graph_dcsr_deleteEdge(DCSR *, int, int)
Definition: graph_util.c:1840
void graph_get_nVET(const GRAPH *, int *, int *, int *)
Definition: graph_stats.c:571
SCIP_RETCODE graph_pseudoAncestors_appendCopySingToEdge(SCIP *, int, const SINGLETONANS *, SCIP_Bool, GRAPH *, SCIP_Bool *)
SCIP_RETCODE graph_csr_allocWithEdgeId(SCIP *, int, int, CSR **)
Definition: graph_util.c:1270
SCIP_Bool graph_transRpcToSpgIsStable(const GRAPH *, SCIP_Real)
Definition: graph_trans.c:1188
void graph_mincut_setDefaultVals(GRAPH *)
Definition: graph_mcut.c:1081
void graph_free_fixed(SCIP *, GRAPH *)
void graph_pc_shiftNonLeafCosts(SCIP *, GRAPH *)
Definition: graph_pcbase.c:671
void graph_edge_addSubgraph(SCIP *, const GRAPH *, const int *, int, GRAPH *)
Definition: graph_edge.c:341
SCIP_RETCODE graph_transPc(SCIP *, GRAPH *)
Definition: graph_trans.c:154
void graph_pc_2transcheck(SCIP *, GRAPH *)
SCIP_RETCODE graph_transNw(SCIP *, PRESOL *, GRAPH *)
Definition: graph_trans.c:1519
SCIP_RETCODE graph_getTermsRandom(SCIP *, const GRAPH *, int *)
Definition: graph_base.c:588
Definition: graphdefs.h:294
SCIP_RETCODE graph_pseudoAncestors_appendCopyArrayToEdge(SCIP *, int, const int *, int, GRAPH *, SCIP_Bool *)
SCIP_RETCODE graph_initHistory(SCIP *, GRAPH *)
Definition: graph_base.c:695
void graph_freeHistoryDeep(SCIP *, GRAPH *)
Definition: graph_base.c:900
void graph_free_fixedEdgesOnly(SCIP *, GRAPH *)
void graph_edge_add(SCIP *, GRAPH *, int, int, double, double)
void graph_csrdepo_free(SCIP *, CSRDEPO **)
Definition: graph_util.c:637
void graph_getCsr(const GRAPH *, int *RESTRICT, int *RESTRICT, int *RESTRICT, int *)
void graph_csrdepo_getEmptyTop(const CSRDEPO *, CSR *)
Definition: graph_util.c:874
void graph_pc_knotToFixedTermProperty(GRAPH *, int)
SCIP_RETCODE graph_knot_contractLowdeg2High(SCIP *, GRAPH *, int *, int, int)
Definition: graph_node.c:539
SCIP_RETCODE graph_tpathsRepair(SCIP *, int, SCIP_Bool, const GRAPH *, TPATHS *)
Definition: graph_tpath.c:1744
void graph_knot_add(GRAPH *, int)
Definition: graph_node.c:64
void graph_pc_termToNonTerm(SCIP *, GRAPH *, int)
SCIP_RETCODE graph_subgraphExtract(SCIP *, GRAPH *, SUBINOUT *, GRAPH **)
Definition: graph_sub.c:712
void graph_path_st_pcmw_extend(SCIP *, const GRAPH *, const SCIP_Real *, SCIP_Bool, PATH *, STP_Bool *, SCIP_Bool *)
Definition: graph_path.c:1706
SCIP_Bool graph_isAlmostUniform(const GRAPH *)
Definition: graph_stats.c:237
SCIP_RETCODE graph_pseudoAncestors_addToEdge(SCIP *, int, int, GRAPH *)
void graph_edge_delBlocked(SCIP *, GRAPH *, const SCIP_Bool *, SCIP_Bool)
Definition: graph_edge.c:448
void graph_pc_knotToNonTermProperty(GRAPH *, int)
SCIP_Bool graph_knot_hasContractTrace(int, const GRAPH *)
SCIP_RETCODE graph_initPseudoAncestors(SCIP *, GRAPH *)
SCIP_RETCODE graph_knot_delPseudo(SCIP *, GRAPH *, const SCIP_Real *, const SCIP_Real *, const SCIP_Real *, int, REDCOST *, SCIP_Bool *)
SCIP_RETCODE graph_transPc2Spg(SCIP *, PRESOL *, GRAPH *)
Definition: graph_trans.c:257
SCIP_RETCODE graph_copyFixed(SCIP *, GRAPH *, SCIP_Bool, GRAPH *)
void graph_knot_del(SCIP *, GRAPH *, int, SCIP_Bool)
Definition: graph_node.c:111
SCIP_Bool graph_pseudoAncestors_edgesInConflict(SCIP *, const GRAPH *, const int *, int)
SCIP_RETCODE graph_fixed_add(SCIP *, IDX *, const int *, int, GRAPH *)
SCIP_RETCODE graph_free_pseudoAncestorsBlock(SCIP *, int, GRAPH *)
SCIP_RETCODE graph_pc_contractEdge(SCIP *, GRAPH *, int *, int, int, int)
void graph_fixed_resetMoved(GRAPH *)
SCIP_RETCODE graph_sdComputeCliqueStar(SCIP *, const GRAPH *, const SDPROFIT *, SDCLIQUE *)
SCIP_RETCODE graph_initContractTracing(SCIP *, GRAPH *)
SCIP_RETCODE graph_writeReductionRatioStatsLive(SCIP *, GRAPH *, const char *)
Definition: graph_save.c:316
SCIP_RETCODE graph_csr_alloc(SCIP *, int, int, CSR **)
Definition: graph_util.c:1231
SCIP_RETCODE graph_knot_delPseudoCheckIfPossible(SCIP *, const GRAPH *, const SCIP_Real *, const SCIP_Real *, const SCIP_Real *, int, SCIP_Bool *)
void graph_csrdepo_addEmptyTop(CSRDEPO *, int, int)
Definition: graph_util.c:800
SCIP_RETCODE graph_pseudoAncestors_appendCopyEdgeToNode(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
SCIP_Real graph_pc_solGetObj(SCIP *, const GRAPH *, const int *, SCIP_Real)
void graph_edge_delFull(SCIP *, GRAPH *, int, SCIP_Bool)
Definition: graph_edge.c:418
void graph_subgraphFree(SCIP *, GRAPH **)
Definition: graph_sub.c:1022
SCIP_RETCODE graph_tpathsRepairSetUp(const GRAPH *, TPATHS *)
Definition: graph_tpath.c:1719
SCIP_Bool graph_pc_knotIsPropPotTerm(const GRAPH *, int)
void voronoiSteinerTreeExt(SCIP *, const GRAPH *, SCIP_Real *, int *, STP_Bool *, PATH *)
SCIP_RETCODE SCIPStpValidateSol(SCIP *, const GRAPH *, const double *, SCIP_Bool, SCIP_Bool *)
Definition: validate.c:202
unsigned char STP_Bool
Definition: portab.h:34
void graph_pc_enforcePseudoTerm(SCIP *, GRAPH *, int)
SCIP_RETCODE graph_dijkLimited_init(SCIP *, const GRAPH *, DIJK **)
Definition: graph_util.c:1989
SCIP_RETCODE graph_copyData(SCIP *, const GRAPH *, GRAPH *)
Definition: graph_base.c:957
SCIP_RETCODE graph_transNw2sap(SCIP *, PRESOL *, GRAPH *)
Definition: graph_trans.c:1487
SCIP_Bool graph_valid_dcsr(const GRAPH *, SCIP_Bool verbose)
Definition: graph_util.c:1919
SCIP_RETCODE graph_sdStarBiased(SCIP *, const GRAPH *, const SDPROFIT *, int, int *, DIJK *, SCIP_Bool *)
void graph_path_st_rpcmw(GRAPH *, SCIP_Real *, int *, const SCIP_Real *, const SCIP_Real *, SCIP_Real *, int *, int, STP_Bool *)
Definition: graph_path.c:1988
void graph_heap_free(SCIP *, SCIP_Bool, SCIP_Bool, DHEAP **)
Definition: graph_util.c:1034
void graph_pc_getReductionRatios(const GRAPH *, SCIP_Real *, SCIP_Real *)
SCIP_RETCODE graph_pc_finalizeSubgraph(SCIP *, GRAPH *)
Definition: graph_pcbase.c:795
void graph_dijkLimited_free(SCIP *, DIJK **)
Definition: graph_util.c:2143
SCIP_Bool graph_csr_isValid(const CSR *, SCIP_Bool verbose)
Definition: graph_util.c:1637
void graph_pc_knotChgPrize(GRAPH *, SCIP_Real, int)
#define SCIP_Bool
Definition: def.h:84
int graph_knot_nPseudoAncestors(const GRAPH *, int)
void graph_csrdepo_removeTop(CSRDEPO *)
Definition: graph_util.c:753
SCIP_Bool graph_hasMultiEdges(SCIP *, const GRAPH *, SCIP_Bool)
Definition: graph_stats.c:185
SCIP_Bool graph_edge_isDeleted(const GRAPH *, int)
Definition: graph_stats.c:121
void graph_mincut_exit(SCIP *, GRAPH *)
Definition: graph_mcut.c:1175
SCIP_RETCODE graph_path_st_brmwcs(SCIP *, GRAPH *, const SCIP_Real *, SCIP_Real *, int *, int, STP_Bool *, SCIP_Bool *)
Definition: graph_path.c:2146
includes graph definitions used for Steiner tree problems
void graph_knot_delPseudoAncestors(SCIP *, int, GRAPH *)
SCIP_Bool graph_isMarked(const GRAPH *)
Definition: graph_base.c:1165
SCIP_RETCODE graph_csrdepo_init(SCIP *, int, int, CSRDEPO **)
Definition: graph_util.c:590
SCIP_RETCODE graph_fixed_moveNodePc(SCIP *, int, GRAPH *)
SCIP_RETCODE graph_pseudoAncestors_appendCopyEdge(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
void graph_csrdepo_print(const CSRDEPO *)
Definition: graph_util.c:908
SCIP_Bool graph_pc_transOrgAreConistent(SCIP *, const GRAPH *, SCIP_Bool)
Definition: graph_pcbase.c:980
const int * graph_subinoutGetOrgToSubNodeMap(const SUBINOUT *)
Definition: graph_sub.c:825
void graph_voronoiTerms(const GRAPH *, const SCIP_Bool *, int *RESTRICT, PATH *RESTRICT)
void graph_singletonAncestors_freeMembers(SCIP *, SINGLETONANS *)
void graph_tpathsAdd3rd(const GRAPH *, const SCIP_Real *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:2044
int graph_pc_nProperPotentialTerms(const GRAPH *)
const int * graph_edge_getPseudoAncestors(const GRAPH *, int)
void graph_getEdgeCosts(const GRAPH *, SCIP_Real *RESTRICT, SCIP_Real *RESTRICT)
void graph_voronoiMw(SCIP *, const GRAPH *, const SCIP_Real *, PATH *, int *, int *, int *)
Definition: graph_vnoi.c:517
void graph_knot_contract_dir(GRAPH *, int, int)
IDX * graph_getFixedges(const GRAPH *)
void graph_update_dcsr(SCIP *, GRAPH *)
Definition: graph_util.c:1829
void graph_path_st_pcmw_extendBiased(SCIP *, GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, STP_Bool *, SCIP_Bool *)
Definition: graph_path.c:1845
void graph_mincut_exec(const GRAPH *, const int, const int, const int, const int, const int, const int *, const int *, int *RESTRICT, const int *, const int *, const int *, const SCIP_Bool)
void graph_pc_updateSubgraphEdge(const GRAPH *, const int *, int, GRAPH *)
int graph_pc_getNorgEdges(const GRAPH *)
SCIP_RETCODE graph_grid_create(SCIP *, GRAPH **, int **, int, int, int)
Definition: graph_grid.c:338
SCIP_RETCODE graph_vnoiInit(SCIP *, const GRAPH *, SCIP_Bool, VNOI **)
Definition: graph_vnoi.c:1265
void graph_pc_markOrgGraph(GRAPH *)
void graph_edge_printInfo(const GRAPH *, int)
Definition: graph_stats.c:133
SCIP_RETCODE graph_copyPseudoAncestors(SCIP *, const GRAPH *, GRAPH *)
Definition: graph_base.c:1088
SCIP_Bool graph_pc_knotIsNonLeafTerm(const GRAPH *, int)
SCIP_RETCODE graph_transRpc(SCIP *, GRAPH *)
Definition: graph_trans.c:373
void graph_tpathsGet4CloseTerms(const GRAPH *, const TPATHS *, int, SCIP_Real, int *RESTRICT, int *RESTRICT, SCIP_Real *RESTRICT, int *RESTRICT)
void graph_path_st_pcmw_extendOut(SCIP *, const GRAPH *, int, STP_Bool *, SCIP_Real *, int *, STP_Bool *, DHEAP *, SCIP_Bool *)
Definition: graph_path.c:1051
SCIP_Bool graph_sdWalksExt2(SCIP *, const GRAPH *, const SCIP_Real *, const int *, SCIP_Real, int, int, int, int, SCIP_Real *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *, STP_Bool *)
void graph_edge_delHistory(SCIP *, GRAPH *, int)
Definition: graph_edge.c:466
SCIP_RETCODE graph_init_csrWithEdgeId(SCIP *, GRAPH *)
Definition: graph_util.c:1603
SCIP_RETCODE graph_dijkLimited_initPcShifts(SCIP *, const GRAPH *, DIJK *)
Definition: graph_util.c:2031
void graph_heap_deleteMinGetNode(int *, DHEAP *)
Definition: graph_util.c:1065
void graph_uncover(GRAPH *)
Definition: graph_base.c:1276
SCIP_RETCODE graph_trail_costAware(SCIP *, const GRAPH *, int, SCIP_Bool *)
Definition: graph_util.c:353
void graph_path_exit(SCIP *, GRAPH *)
Definition: graph_path.c:515
SCIP_Bool graph_pc_isPc(const GRAPH *)
void graph_pc_adaptSap(SCIP_Real, GRAPH *, SCIP_Real *)
void graph_writeStpOrg(SCIP *, const GRAPH *, const char *)
Definition: graph_save.c:799
void graph_pseudoAncestors_hashNode(const PSEUDOANS *, int, int *)
Portable definitions.
int graph_pc_nNonLeafTerms(const GRAPH *)
SCIP_RETCODE graph_transRpc2FixedProper(SCIP *, PRESOL *, GRAPH *)
Definition: graph_trans.c:531
SCIP_Bool graph_typeIsUndirected(const GRAPH *)
Definition: graph_stats.c:69
SCIP_RETCODE graph_sdCloseNodesBiased(SCIP *, const GRAPH *, const SDPROFIT *, int, DIJK *)
void graph_edge_hide(GRAPH *, int)
Definition: graph_edge.c:483
void graph_get4nextTermPaths(GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1582
void graph_pc_enforceNode(SCIP *, GRAPH *, int, SCIP_Real *)
void graph_tpathsAdd2nd(const GRAPH *, const SCIP_Real *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:1987
SCIP_RETCODE graph_trail_arr(SCIP *, const GRAPH *, int, SCIP_Bool *)
Definition: graph_util.c:336
void graph_freeHistory(SCIP *, GRAPH *)
Definition: graph_base.c:868
Reduced cost based routines for Steiner problems.
void graph_csrdepo_emptyTopSetMarked(CSRDEPO *)
Definition: graph_util.c:890
SCIP_RETCODE graph_transPcGetRsap(SCIP *, GRAPH *, GRAPH **, const int *, int, int)
Definition: graph_trans.c:1043
void graph_pc_2orgcheck(SCIP *, GRAPH *)
SCIP_Bool graph_pc_knotIsDummyTerm(const GRAPH *, int)
void graph_knot_printPseudoAncestors(const GRAPH *, int)
void graph_pathInLimitedExec(const GRAPH *, const SCIP_Real *, const SCIP_Bool *, int, DIJK *, SCIP_Real *)
Definition: graph_path.c:610
SCIP_Bool graph_pc_knotIsFixedTerm(const GRAPH *, int)
SCIP_RETCODE graph_subinoutInit(SCIP *, const GRAPH *, SUBINOUT **)
Definition: graph_sub.c:733
SCIP_Bool graph_edge_isInRange(const GRAPH *, int)
Definition: graph_stats.c:110
void graph_path_st_pcmw_full(GRAPH *, const SCIP_Real *, SCIP_Real *, int *, int, STP_Bool *)
Definition: graph_path.c:1608
void graph_subinoutClean(SCIP *, SUBINOUT *)
Definition: graph_sub.c:882
SCIP_RETCODE graph_pc_contractEdgeUnordered(SCIP *, GRAPH *, int *, int, int)
SCIP_RETCODE graph_init_fixed(SCIP *, GRAPH *)
SCIP_RETCODE graph_transNw2pc(SCIP *, PRESOL *, GRAPH *)
Definition: graph_trans.c:1420
SCIP_Bool graph_pc_isUnrootedPcMw(const GRAPH *)
int graph_pc_deleteTerm(SCIP *, GRAPH *, int, SCIP_Real *)
void graph_csr_free(SCIP *, CSR **)
Definition: graph_util.c:1554
SCIP_RETCODE graph_heap_create(SCIP *, int, int *, DENTRY *, DHEAP **)
Definition: graph_util.c:992
const int * graph_subinoutGetSubToOrgEdgeMap(const SUBINOUT *)
Definition: graph_sub.c:812
SCIP_Bool graph_pc_isPcMw(const GRAPH *)
void graph_add2ndTermPaths(const GRAPH *, const SCIP_Real *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1482
void graph_dijkLimited_clean(const GRAPH *, DIJK *)
Definition: graph_util.c:2083
SCIP_RETCODE graph_tpathsInit(SCIP *, GRAPH *, TPATHS **)
Definition: graph_tpath.c:1682
#define SCIP_Real
Definition: def.h:177
void graph_sdStar(SCIP *, const GRAPH *, SCIP_Bool, int, int, int *, SCIP_Real *, int *, int *, DHEAP *, STP_Bool *, SCIP_Bool *)
void graph_addPseudoAncestors(int, GRAPH *)
int graph_heap_deleteMinReturnNode(DHEAP *)
Definition: graph_util.c:1076
void graph_sdPaths(const GRAPH *, PATH *, const SCIP_Real *, SCIP_Real, int *, int *, int *, int *, int, int, int)
Definition: graph_path.c:684
void graph_pseudoAncestors_hashEdgeDirty(const PSEUDOANS *, int, SCIP_Bool, SCIP_Bool *, int *)
SCIP_RETCODE graph_writeGmlSub(const GRAPH *, const char *, const SCIP_Bool *)
Definition: graph_save.c:490
void graph_free_csr(SCIP *, GRAPH *)
Definition: graph_util.c:1623
void graph_voronoi(const GRAPH *, const SCIP_Real *, const SCIP_Real *, const STP_Bool *, int *, PATH *)
Definition: graph_vnoi.c:333
SCIP_RETCODE graph_load(SCIP *, GRAPH **, const char *, PRESOL *)
Definition: graph_load.c:885
SCIP_RETCODE graph_copy(SCIP *, const GRAPH *, GRAPH **)
Definition: graph_base.c:939
includes reductions definitions and inline methods used for Steiner tree problems ...
const int * graph_getFixpseudonodes(SCIP *, const GRAPH *)
SCIP_RETCODE graph_pseudoAncestors_addToNode(SCIP *, int, int, GRAPH *)
void graph_addPseudoAncestor(GRAPH *, int *)
int graph_getNpseudoAncestors(const GRAPH *)
void graph_pc_getOrgCostsCsr(SCIP *, const GRAPH *, CSR *)
int graph_get_nNodes(const GRAPH *)
Definition: graph_stats.c:536
void graph_pc_getOrgCosts(SCIP *, const GRAPH *, SCIP_Real *)
void graph_pc_knotToFixedTerm(SCIP *, GRAPH *, int, SCIP_Real *)
int graph_pc_nNonFixedTerms(const GRAPH *)
SCIP_Bool graph_pc_costsEqualOrgCosts(SCIP *, const GRAPH *, const SCIP_Real *)
SCIP_Bool graph_knot_isInRange(const GRAPH *, int)
Definition: graph_node.c:52
SCIP_Bool graph_isSetUp(const GRAPH *)
Definition: graph_base.c:1240
void graph_getTerms(const GRAPH *, int *)
Definition: graph_base.c:567
void graph_tpathsGet4CloseTermsLE(const GRAPH *, const TPATHS *, int, SCIP_Real, int *RESTRICT, int *RESTRICT, SCIP_Real *RESTRICT, int *RESTRICT)
SCIP_RETCODE graph_buildCompleteGraph(SCIP *, GRAPH **, int)
Definition: graph_base.c:440
void graph_getEdgeRevCosts(const GRAPH *, SCIP_Real *RESTRICT)
void graph_save(SCIP *, const GRAPH *, const char *, FILETYPE)
Definition: graph_save.c:370
void graph_add1stTermPaths(const GRAPH *, const SCIP_Real *, PATH *, int *, int *)
Definition: graph_tpath.c:1464
SCIP_RETCODE graph_vnoiComputeImplied(SCIP *, const GRAPH *, const SDPROFIT *, VNOI *)
Definition: graph_vnoi.c:1323
int graph_csrdepo_getDataSize(const CSRDEPO *)
Definition: graph_util.c:709
SCIP_RETCODE graph_init(SCIP *, GRAPH **, int, int, int)
Definition: graph_base.c:607
SCIP_RETCODE graph_transRpcGetSpg(SCIP *, const GRAPH *, SCIP_Real, SCIP_Real *, int **, GRAPH **)
Definition: graph_trans.c:1217
void graph_show(const GRAPH *)
Definition: graph_base.c:1251
SCIP_Real graph_get_avgDeg(const GRAPH *)
Definition: graph_stats.c:613
void graph_transGstpClean(PRESOL *, GRAPH *)
Definition: graph_trans.c:1381
SCIP_Bool graph_pc_evalTermIsNonLeaf(SCIP *, const GRAPH *, int)
SCIP_RETCODE graph_subgraphReinsert(SCIP *, SUBINOUT *, GRAPH *, GRAPH **)
Definition: graph_sub.c:983
SCIP_Real graph_pc_getPosPrizeSum(SCIP *, const GRAPH *)
SCIP_Bool graph_typeIsSpgLike(const GRAPH *)
Definition: graph_stats.c:57
SCIP_RETCODE graph_writeGml(const GRAPH *, const char *, const SCIP_Bool *)
Definition: graph_save.c:441
SCIP_Bool graph_pseudoAncestors_edgeIsHashed(const PSEUDOANS *, int, const int *)
SCIP_Bool graph_edge_isBlocked(const GRAPH *, int)
Definition: graph_stats.c:94
void graph_pc_nonTermToFixedTerm(GRAPH *, int, SCIP_Real *)
SCIP_RETCODE graph_transRmw(SCIP *, GRAPH *)
Definition: graph_trans.c:687
SCIP_RETCODE graph_pseudoAncestors_appendMoveEdge(SCIP *, int, int, SCIP_Bool, GRAPH *, SCIP_Bool *)
void graph_tpathsFree(SCIP *, TPATHS **)
Definition: graph_tpath.c:2300
void graph_printInfoReduced(const GRAPH *)
Definition: graph_stats.c:375
void graph_voronoiWithRadiusMw(SCIP *, const GRAPH *, PATH *, const SCIP_Real *, SCIP_Real *, int *, int *, int *)
Definition: graph_vnoi.c:973
void graph_heap_correct(int, SCIP_Real, DHEAP *)
Definition: graph_util.c:1166
void graph_csr_buildCosts(const GRAPH *, const CSR *, const SCIP_Real *, SCIP_Real *RESTRICT)
void graph_pc_presolExit(SCIP *, GRAPH *)
Definition: graph_pcbase.c:858
SCIP_RETCODE graph_voronoiExtend(SCIP *, const GRAPH *, const SCIP_Real *, PATH *, SCIP_Real **, int **, int **, STP_Bool *, int *, int *, int *, int, int, int)
Definition: graph_vnoi.c:253
SCIP_Bool graph_path_exists(const GRAPH *)
Definition: graph_path.c:497
void graph_tpathsSetAll2(GRAPH *, const SCIP_Real *, const SCIP_Real *, const SDPROFIT *, TPATHS *)
Definition: graph_tpath.c:2180
SCIP callable library.
IDX * graph_edge_getAncestors(const GRAPH *, int)
int graph_pc_getTwinTerm(const GRAPH *, int)
void graph_csrdepo_getCSR(const CSRDEPO *, int, CSR *)
Definition: graph_util.c:667
int graph_csrdepo_getNcsrs(const CSRDEPO *)
Definition: graph_util.c:741