( edge !=
NULL)
57 if( edge->
adjac== node2 )
113assert( graph_ != 0 );
114assert( tour_ != 0 );
127assert( result !=
NULL);
128assert( heur !=
NULL);
145 int nnodes= graph_->nnodes;
148 if( nnodes < 4 || sol == NULL || ncalls_ >=
nnodes)
169 while( edge !=
NULL)
174node = edge->
adjac;
179 for(j = i; j > 0 && tour_[j-1]->length < edge->
length; j-- )
180tour_[j] = tour_[j-1];
191 while( node != &nodes[0] );
199 for(
inti = 0; i < ncalls_ && *result !=
SCIP_FOUNDSOL; i++ )
201edges2test[0] = tour_[ncalls_];
202edges2test[1] = tour_[i];
204edges2test[3] =
findEdge( nodes, edges2test[0]->adjac, edges2test[1]->adjac );
205assert( edges2test[2] !=
NULL);
206assert( edges2test[3] !=
NULL);
209 if( edges2test[0]->length + edges2test[1]->length > edges2test[2]->length + edges2test[3]->length
221 for(
intj = 0; j <
nnodes; j++)
void capture_graph(GRAPH *gr)
void release_graph(GRAPH **gr)
generator for global cuts in undirected graphs
SCIP_DECL_HEURCLONE(scip::ObjCloneable *Heur2opt::clone)
SCIP_DECL_HEUREXIT(Heur2opt::scip_exit)
SCIP_DECL_HEUREXITSOL(Heur2opt::scip_exitsol)
SCIP_DECL_HEURINIT(Heur2opt::scip_init)
static GRAPHEDGE * findEdge(GRAPHNODE *nodes, GRAPHNODE *node1, GRAPHNODE *node2)
SCIP_DECL_HEURINITSOL(Heur2opt::scip_initsol)
SCIP_DECL_HEURFREE(Heur2opt::scip_free)
SCIP_DECL_HEUREXEC(Heur2opt::scip_exec)
2-Optimum - combinatorial improvement heuristic for TSP
C++ problem data for TSP.
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPallocBlockMemoryArray(scip, ptr, num)
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
SCIP_RETCODE SCIPaddSolFree(SCIP *scip, SCIP_SOL **sol, SCIP_Bool *stored)
SCIP_RETCODE SCIPsetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real val)
SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
scip::ObjProbData * SCIPgetObjProbData(SCIP *scip)
C++ wrapper classes for SCIP.
struct GraphEdge * first_edge
Definition of base class for all clonable classes.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4