HeurFarthestInsert.cpp
Go to the documentation of this file.
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
57 /** method updating the distances of the nodes to the tour after having inserted one node with id index */
67 /* Regard all outgoing edges of the node and update, if the length and therefore the distance of the adjacent is
101 /** solving process initialization method of primal heuristic (called when branch and bound process is about to begin)
103 * This method is called when the presolving was finished and the branch and bound process is about to begin.
112 /** solving process deinitialization method of primal heuristic (called before branch and bound process data is freed)
130 * - SCIP_DELAYED : the heuristic was skipped, but should be called again as soon as possible, disregarding
234 // widen the subtour by one node each step until you have a complete tour, actually the farthest insert heuritic
243 if( (maxmin < dist[i] && dist[i] != DBL_MAX) || (maxmin == dist[i] && !subtour[i]) ) /*lint !e777*/
270 /* find best insertion of the new node by trying to replace any edge connecting by the two edges connecting
305 // bestedges should contain a 3-cycle (modulo orientation) connecting new node with two incident ones of the tour
Definition: type_result.h:33
Definition: type_result.h:47
SCIP_DECL_HEURFREE(HeurFarthestInsert::scip_free)
Definition: HeurFarthestInsert.cpp:79
Definition: HeurFarthestInsert.h:32
SCIP_DECL_HEUREXITSOL(HeurFarthestInsert::scip_exitsol)
Definition: HeurFarthestInsert.cpp:117
generator for global cuts in undirected graphs
farthest insert - combinatorial heuristic for TSP
Definition: struct_sol.h:64
Definition: ProbDataTSP.h:33
Definition: type_result.h:35
Definition: pqueue.h:28
C++ wrapper classes for SCIP.
Definition: type_retcode.h:33
C++ problem data for TSP.
static void updateDistances(GRAPHNODE *nodes, double *dist, int idx)
Definition: HeurFarthestInsert.cpp:59
SCIP_RETCODE SCIPsetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real val)
Definition: scip_sol.c:1212
SCIP_DECL_HEURCLONE(scip::ObjCloneable *HeurFarthestInsert::clone)
Definition: HeurFarthestInsert.cpp:362
static GRAPHEDGE * findEdge(GRAPHNODE *nodes, int index1, int index2)
Definition: HeurFarthestInsert.cpp:37
SCIP_RETCODE SCIPtrySol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: scip_sol.c:3125
SCIP_DECL_HEURINIT(HeurFarthestInsert::scip_init)
Definition: HeurFarthestInsert.cpp:85
Definition: GomoryHuTree.h:31
Definition: GomoryHuTree.h:54
SCIP_DECL_HEUREXEC(HeurFarthestInsert::scip_exec)
Definition: HeurFarthestInsert.cpp:133
SCIP_DECL_HEURINITSOL(HeurFarthestInsert::scip_initsol)
Definition: HeurFarthestInsert.cpp:107
SCIP_DECL_HEUREXIT(HeurFarthestInsert::scip_exit)
Definition: HeurFarthestInsert.cpp:94
Definition: ConshdlrSubtour.h:29
Definition: objbenders.h:33
SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
Definition: scip_sol.c:319