34 #define HEUR_NAME "trysol" 35 #define HEUR_DESC "try solution heuristic" 36 #define HEUR_DISPCHAR 'y' 37 #define HEUR_PRIORITY -3000000 39 #define HEUR_FREQOFS 0 40 #define HEUR_MAXDEPTH -1 41 #define HEUR_TIMING SCIP_HEURTIMING_DURINGLPLOOP | SCIP_HEURTIMING_BEFOREPRESOL | SCIP_HEURTIMING_BEFORENODE 42 #define HEUR_USESSUBSCIP FALSE 83 assert( heur != NULL );
85 assert(
scip != NULL );
91 assert(heurdata != NULL);
105 assert( heur != NULL );
107 assert(
scip != NULL );
113 assert(heurdata != NULL);
116 if( heurdata->trysol != NULL )
118 assert( heurdata->trysol == NULL );
121 if( heurdata->addsol != NULL )
123 assert( heurdata->trysol == NULL );
139 assert( heur != NULL );
141 assert(
scip != NULL );
142 assert( result != NULL );
148 assert(heurdata != NULL);
151 if( heurdata->addsol == NULL && heurdata->trysol == NULL )
156 heurdata->rec =
TRUE;
158 if( heurdata->trysol != NULL )
176 if( heurdata->addsol != NULL )
193 assert( heurdata->trysol == NULL );
194 assert( heurdata->addsol == NULL );
196 heurdata->rec =
FALSE;
215 heurdata->trysol = NULL;
216 heurdata->addsol = NULL;
217 heurdata->rec =
FALSE;
224 assert(heur != NULL);
244 assert( scip != NULL );
245 assert( heur != NULL );
246 assert( sol != NULL );
251 assert(heurdata != NULL);
254 if( ! heurdata->rec )
260 if( heurdata->trysol != NULL )
285 assert( scip != NULL );
286 assert( heur != NULL );
287 assert( sol != NULL );
292 assert(heurdata != NULL);
295 if( ! heurdata->rec )
301 if( heurdata->addsol != NULL )
primal heuristic that tries a given solution
SCIP_RETCODE SCIPaddSolFree(SCIP *scip, SCIP_SOL **sol, SCIP_Bool *stored)
SCIP_RETCODE SCIPsetHeurExit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXIT((*heurexit)))
enum SCIP_Retcode SCIP_RETCODE
struct SCIP_HeurData SCIP_HEURDATA
#define SCIPfreeBlockMemory(scip, ptr)
SCIP_RETCODE SCIPincludeHeurBasic(SCIP *scip, SCIP_HEUR **heur, const char *name, const char *desc, char dispchar, int priority, int freq, int freqofs, int maxdepth, SCIP_HEURTIMING timingmask, SCIP_Bool usessubscip, SCIP_DECL_HEUREXEC((*heurexec)), SCIP_HEURDATA *heurdata)
SCIP_RETCODE SCIPheurPassSolAddSol(SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
#define SCIPallocBlockMemory(scip, ptr)
SCIP_RETCODE SCIPheurPassSolTrySol(SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
SCIP_RETCODE SCIPincludeHeurTrySol(SCIP *scip)
SCIP_RETCODE SCIPcreateSolCopy(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol)
const char * SCIPheurGetName(SCIP_HEUR *heur)
static SCIP_DECL_HEURFREE(heurFreeTrySol)
SCIP_RETCODE SCIPsetHeurFree(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURFREE((*heurfree)))
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
static SCIP_DECL_HEUREXEC(heurExecTrySol)
void SCIPsolSetHeur(SCIP_SOL *sol, SCIP_HEUR *heur)
SCIP_RETCODE SCIPtrySolFree(SCIP *scip, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
SCIP_RETCODE SCIPfreeSol(SCIP *scip, SCIP_SOL **sol)
static SCIP_DECL_HEURCOPY(heurCopyTrySol)
SCIP_Real SCIPgetSolOrigObj(SCIP *scip, SCIP_SOL *sol)
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
static SCIP_DECL_HEUREXITSOL(heurExitTrySol)
SCIP_RETCODE SCIPunlinkSol(SCIP *scip, SCIP_SOL *sol)
SCIP_OBJSENSE SCIPgetObjsense(SCIP *scip)
SCIP_RETCODE SCIPsetHeurCopy(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURCOPY((*heurcopy)))
SCIP_HEURDATA * SCIPheurGetData(SCIP_HEUR *heur)