reduce_sol.c
Go to the documentation of this file.
20 * This file includes methods to save and retain solutions and sollocal bounds during the reduction
27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
517 if( GE(sollocal->primalbound, FARAWAY) && !EQ(sollocal->nodesol_ub, REDSOLVAL_UNSET) && g->terms > 2 )
644 SCIPdebugMessage("returning best bound: %f (%f-%f) \n", sollocal->primalbound - sollocal->offset, sollocal->primalbound, sollocal->offset);
977 SCIPdebugMessage("FINALIZING top level %d; solval=%f offset=%f \n", nlevels - 1, redlevel_top->solval_incomplete, redsol->offset);
1025 SCIPdebugMessage("merge levels %d->%d \n", redsolGetNlevels(redsol) - 1, redsolGetNlevels(redsol) - 2);
1026 SCIPdebugMessage("...update solval_incomplete: %f->%f \n", levelParent->solval_incomplete, levelParent->solval_incomplete + levelTop->solval_postred);
Definition: reduce_sol.c:57
SCIP_Bool reduce_solUsesNodesol(const REDSOL *redsol)
Definition: reduce_sol.c:1236
SCIP_Real reduce_solGetUpperBoundWithOffset(const REDSOL *redsol)
Definition: reduce_sol.c:1263
Definition: graphdefs.h:184
SCIP_RETCODE reduce_solGetEdgesol(SCIP *scip, GRAPH *g, REDSOL *redsol, SCIP_Real *solval, int *edgesol)
Definition: reduce_sol.c:1197
Definition: struct_scip.h:59
SCIP_Real reduce_sollocalGetUpperBoundWithOffset(const REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:664
includes methods for Steiner tree problem solutions
static SCIP_RETCODE nodesolUpdate(SCIP *scip, GRAPH *g, SCIP_Real *solval, PATH *solpath, int *nodesol)
Definition: reduce_sol.c:113
void reduce_solLevelTopRemove(SCIP *scip, REDSOL *redsol)
Definition: reduce_sol.c:940
void reduce_sollocalSetOffset(SCIP_Real offsetnew, REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:488
static SCIP_RETCODE redlevelAddLocal(SCIP *scip, const GRAPH *g, REDSOLLEVEL *redlevel, REDSOLLOCAL **redsollocal_out)
Definition: reduce_sol.c:362
static REDSOLLEVEL * redsolGetTopParentLevel(const REDSOL *redsol)
Definition: reduce_sol.c:429
includes various files containing graph methods used for Steiner tree problems
static void nodesolSetTrivial(const GRAPH *g, int *nodesol)
Definition: reduce_sol.c:87
Definition: graphdefs.h:284
SCIP_RETCODE reduce_solLevelTopUpdate(SCIP *scip, const GRAPH *subgraph, REDSOL *redsol)
Definition: reduce_sol.c:922
SCIP_Real graph_pc_getNonLeafTermOffset(SCIP *, const GRAPH *)
Definition: graph_pcbase.c:2209
static SCIP_RETCODE redlevelInit(SCIP *scip, int nnodes, REDSOLLEVEL **redlevel)
Definition: reduce_sol.c:226
header only, simple implementation of an STL like vector
void reduce_solLevelTopFinalize(SCIP *scip, GRAPH *g, REDSOL *redsol)
Definition: reduce_sol.c:956
int * reduce_sollocalGetSolnode(REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:651
SCIP_RETCODE reduce_solInit(SCIP *scip, const GRAPH *g, SCIP_Bool useNodeSol, REDSOL **redsol)
Definition: reduce_sol.c:687
void reduce_solLevelTopClean(SCIP *scip, REDSOL *redsol)
Definition: reduce_sol.c:997
const int * reduce_solGetNodesolPointer(const REDSOL *redsol)
Definition: reduce_sol.c:1248
void reduce_sollocalUpdateUpperBound(SCIP_Real ubnew, REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:610
Definition: reduce_sol.c:70
static void nodesolGetEdgeSol(const GRAPH *graph, const PATH *solpath, int *edgesol)
Definition: reduce_sol.c:202
void reduce_solGetNodesol(const GRAPH *g, REDSOL *redsol, int *nodesol)
Definition: reduce_sol.c:1176
void reduce_solFinalizeLocal(SCIP *scip, const GRAPH *g, REDSOL *redsol)
Definition: reduce_sol.c:735
struct reduction_solution_level REDSOLLEVEL
Definition: type_retcode.h:33
void SCIPStpHeurTMBuildTree(SCIP *scip, GRAPH *g, PATH *mst, const SCIP_Real *cost, SCIP_Real *objresult, int *connected)
Definition: heur_tm.c:2932
SCIP_Bool reduce_sollocalUsesNodesol(const REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:554
static SCIP_RETCODE sollocalInitNodesol(SCIP *scip, int *nodesol_transfer, REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:166
SCIP_Real reduce_sollocalGetUpperBound(const REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:633
void reduce_solSetOffset(SCIP_Real offsetnew, REDSOL *redsol)
Definition: reduce_sol.c:1124
void reduce_solLevelTopTransferSolBack(const int *nodemap_subToOrg, REDSOL *redsol)
Definition: reduce_sol.c:1010
static REDSOLLEVEL * redsolGetTopLevel(const REDSOL *redsol)
Definition: reduce_sol.c:415
static void redlevelFree(SCIP *scip, REDSOLLEVEL **redlevel)
Definition: reduce_sol.c:255
SCIP_RETCODE reduce_solAddNodesol(const GRAPH *g, const int *nodesol, REDSOL *redsol)
Definition: reduce_sol.c:1150
Portable definitions.
Definition: reduce_sol.c:44
SCIP_Bool reduce_sollocalHasUpperBound(const REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:675
void reduce_sollocalFree(SCIP *scip, REDSOLLOCAL **sollocal)
Definition: reduce_sol.c:472
void solstp_setVertexFromEdgeConn(const GRAPH *g, const int *soledge, int *solnode)
Definition: solstp.c:2114
SCIP_RETCODE SCIPStpHeurTMBuildTreePcMw(SCIP *scip, const GRAPH *g, SCIP_Bool useRootSym, PATH *mst, const SCIP_Real *cost, SCIP_Real *objresult, int *connected)
Definition: heur_tm.c:3012
void reduce_solReInitLocal(const GRAPH *g, REDSOL *redsol)
Definition: reduce_sol.c:793
static int * redlevelGetNodesol(REDSOLLEVEL *redlevel)
Definition: reduce_sol.c:325
SCIP_RETCODE reduce_sollocalInit(SCIP *scip, const GRAPH *g, REDSOLLOCAL **sollocal)
Definition: reduce_sol.c:447
SCIP_RETCODE reduce_sollocalRebuildTry(SCIP *scip, GRAPH *g, REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:507
shortest paths based primal heuristics for Steiner problems
void reduce_solPack(const GRAPH *g, const int *nodes_old2packed, int nnodes_packed, REDSOL *redsol)
Definition: reduce_sol.c:846
SCIP_Real * reduce_solGetOffsetPointer(REDSOL *redsol)
Definition: reduce_sol.c:1285
SCIP_RETCODE reduce_solLevelTopTransferSolTo(const int *nodemap_orgToTop, REDSOL *redsol)
Definition: reduce_sol.c:1067
SCIP_RETCODE reduce_solLevelAdd(SCIP *scip, const GRAPH *g, REDSOL *redsol)
Definition: reduce_sol.c:897
SCIP_RETCODE reduce_solInitLocal(SCIP *scip, const GRAPH *g, REDSOL *redsol, REDSOLLOCAL **redsollocal_out)
Definition: reduce_sol.c:717
SCIP_Bool solstp_isValid(SCIP *scip, const GRAPH *graph, const int *result)
Definition: solstp.c:1650
Definition: objbenders.h:33
static void redlevelClean(SCIP *scip, REDSOLLEVEL *redlevel)
Definition: reduce_sol.c:305
SCIP_RETCODE reduce_sollocalUpdateNodesol(SCIP *scip, const int *edgesol, GRAPH *g, REDSOLLOCAL *sollocal)
Definition: reduce_sol.c:565
includes various reduction methods for Steiner tree problems
SCIP_Real solstp_getObj(const GRAPH *g, const int *soledge, SCIP_Real offset)
Definition: solstp.c:1859
static SCIP_RETCODE redlevelInitIncomplete(SCIP *scip, const REDSOL *redsol, REDSOLLEVEL *redlevel)
Definition: reduce_sol.c:342
SCIP callable library.