HeurFarthestInsert.cpp
Go to the documentation of this file.
30 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
66 /** method updating the distances of the nodes to the tour after having inserted one node with id index */
76 /* Regard all outgoing edges of the node and update, if the length and therefore the distance of the adjacent is
110 /** solving process initialization method of primal heuristic (called when branch and bound process is about to begin)
112 * This method is called when the presolving was finished and the branch and bound process is about to begin.
121 /** solving process deinitialization method of primal heuristic (called before branch and bound process data is freed)
139 * - SCIP_DELAYED : the heuristic was skipped, but should be called again as soon as possible, disregarding
243 // widen the subtour by one node each step until you have a complete tour, actually the farthest insert heuritic
252 if( (maxmin < dist[i] && dist[i] != DBL_MAX) || (maxmin == dist[i] && !subtour[i]) ) /*lint !e777*/
279 /* find best insertion of the new node by trying to replace any edge connecting by the two edges connecting
314 // bestedges should contain a 3-cycle (modulo orientation) connecting new node with two incident ones of the tour
Definition: type_result.h:42
Definition: type_result.h:56
SCIP_DECL_HEURFREE(HeurFarthestInsert::scip_free)
Definition: HeurFarthestInsert.cpp:88
Definition: HeurFarthestInsert.h:41
SCIP_DECL_HEUREXITSOL(HeurFarthestInsert::scip_exitsol)
Definition: HeurFarthestInsert.cpp:126
generator for global cuts in undirected graphs
farthest insert - combinatorial heuristic for TSP
Definition: struct_sol.h:73
Definition: ProbDataTSP.h:42
Definition: type_result.h:44
Definition: pqueue.h:37
C++ wrapper classes for SCIP.
Definition: type_retcode.h:42
C++ problem data for TSP.
static void updateDistances(GRAPHNODE *nodes, double *dist, int idx)
Definition: HeurFarthestInsert.cpp:68
SCIP_RETCODE SCIPsetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real val)
Definition: scip_sol.c:1221
SCIP_DECL_HEURCLONE(scip::ObjCloneable *HeurFarthestInsert::clone)
Definition: HeurFarthestInsert.cpp:371
static GRAPHEDGE * findEdge(GRAPHNODE *nodes, int index1, int index2)
Definition: HeurFarthestInsert.cpp:46
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:3098
SCIP_DECL_HEURINIT(HeurFarthestInsert::scip_init)
Definition: HeurFarthestInsert.cpp:94
Definition: GomoryHuTree.h:40
Definition: GomoryHuTree.h:63
SCIP_DECL_HEUREXEC(HeurFarthestInsert::scip_exec)
Definition: HeurFarthestInsert.cpp:142
SCIP_DECL_HEURINITSOL(HeurFarthestInsert::scip_initsol)
Definition: HeurFarthestInsert.cpp:116
SCIP_DECL_HEUREXIT(HeurFarthestInsert::scip_exit)
Definition: HeurFarthestInsert.cpp:103
Definition: ConshdlrSubtour.h:38
Definition: objbenders.h:43
SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
Definition: scip_sol.c:328