assert( heur !=
NULL);
113assert( heurdata !=
NULL);
114assert( nindconss == 0 || indconss !=
NULL);
115assert( solcand !=
NULL);
116assert( nfoundsols !=
NULL);
132assert( binvar !=
NULL);
150 for(c = 0; c < nindconss; ++c)
159assert( binvar !=
NULL);
222 SCIPdebugMsg(
scip,
"Finished one-opt (tried variables: %d, found sols: %d).\n", cnt, *nfoundsols);
247assert( heur !=
NULL);
248assert( heurdata !=
NULL);
249assert( nindconss == 0 || indconss !=
NULL);
250assert( solcand !=
NULL);
251assert( nfoundsols !=
NULL);
253 SCIPdebugMsg(
scip,
"Trying to generate feasible solution with indicators from solution candidate (obj: %f) ...\n", heurdata->obj);
268 for(c = 0; c < nindconss; ++c)
277assert( binvar !=
NULL);
301 SCIPdebugMsg(
scip,
"Solution candidate reaches cutoff (in propagation).\n");
319 SCIPdebugMsg(
scip,
"Solution candidate reaches cutoff (in LP solving).\n");
335#ifdef SCIP_MORE_DEBUG 355 if( stored && heurdata->oneopt )
358assert( *nfoundsols > 0 );
375assert( heur !=
NULL);
390assert( heur !=
NULL);
395assert( heurdata !=
NULL);
397 if( heurdata->indicatorconshdlr ==
NULL)
400 if( heurdata->indicatorconshdlr ==
NULL)
415assert( heur !=
NULL);
420assert( heurdata !=
NULL);
440assert( heur !=
NULL);
442assert( result !=
NULL);
451assert( heurdata !=
NULL);
454 if( heurdata->solcand !=
NULL)
456assert( heurdata->nindconss > 0 );
457assert( heurdata->indconss !=
NULL);
466 if( nfoundsols > 0 )
477 if( heurdata->improvesols )
485 if( heurdata->indicatorconshdlr ==
NULL)
490 if( bestsol == heurdata->lastsol )
492heurdata->lastsol = bestsol;
504 if( nindconss == 0 )
508assert( indconss !=
NULL);
512 for(i = 0; i < nindconss; ++i)
521assert( binvar !=
NULL);
535 if( nfoundsols > 0 )
561heurdata->nindconss = 0;
562heurdata->indconss =
NULL;
563heurdata->solcand =
NULL;
564heurdata->lastsol =
NULL;
565heurdata->indicatorconshdlr =
NULL;
573assert( heur !=
NULL);
583 "whether the one-opt heuristic should be started",
588 "Try to improve other solutions by one-opt?",
608assert( heur !=
NULL);
610assert( nindconss > 0 );
611assert( indconss !=
NULL);
612assert( solcand !=
NULL);
616assert( heurdata !=
NULL);
618 if( obj >= heurdata->obj )
622 if( heurdata->indconss !=
NULL)
626heurdata->nindconss = nindconss;
629 if( heurdata->solcand !=
NULL)
constraint handler for indicator constraints
#define SCIP_MAXTREEDEPTH
SCIP_VAR * SCIPgetBinaryVarIndicator(SCIP_CONS *cons)
int SCIPgetSubscipDepth(SCIP *scip)
SCIP_Bool SCIPisStopped(SCIP *scip)
int SCIPgetNIntVars(SCIP *scip)
int SCIPgetNBinVars(SCIP *scip)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_RETCODE SCIPheurPassIndicator(SCIP *scip, SCIP_HEUR *heur, int nindconss, SCIP_CONS **indconss, SCIP_Bool *solcand, SCIP_Real obj)
SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPincludeHeurIndicator(SCIP *scip)
int SCIPconshdlrGetNConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name)
SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconsIsActive(SCIP_CONS *cons)
SCIP_RETCODE SCIPsetHeurCopy(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURCOPY((*heurcopy)))
SCIP_HEURDATA * SCIPheurGetData(SCIP_HEUR *heur)
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 SCIPsetHeurFree(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURFREE((*heurfree)))
SCIP_RETCODE SCIPsetHeurInit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINIT((*heurinit)))
const char * SCIPheurGetName(SCIP_HEUR *heur)
void SCIPheurSetData(SCIP_HEUR *heur, SCIP_HEURDATA *heurdata)
SCIP_LPSOLSTAT SCIPgetLPSolstat(SCIP *scip)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPallocBlockMemory(scip, ptr)
#define SCIPduplicateBlockMemoryArray(scip, ptr, source, num)
SCIP_RETCODE SCIPchgVarUbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPchgVarLbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPpropagateProbing(SCIP *scip, int maxproprounds, SCIP_Bool *cutoff, SCIP_Longint *ndomredsfound)
SCIP_RETCODE SCIPbacktrackProbing(SCIP *scip, int probingdepth)
SCIP_RETCODE SCIPstartProbing(SCIP *scip)
SCIP_RETCODE SCIPnewProbingNode(SCIP *scip)
SCIP_RETCODE SCIPsolveProbingLP(SCIP *scip, int itlim, SCIP_Bool *lperror, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPendProbing(SCIP *scip)
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
SCIP_RETCODE SCIPprintSol(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros)
SCIP_HEUR * SCIPsolGetHeur(SCIP_SOL *sol)
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 SCIPlinkLPSol(SCIP *scip, SCIP_SOL *sol)
SCIP_Real SCIPgetSolOrigObj(SCIP *scip, SCIP_SOL *sol)
SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var)
SCIP_Real SCIPgetSolTransObj(SCIP *scip, SCIP_SOL *sol)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisFeasIntegral(SCIP *scip, SCIP_Real val)
int SCIPgetDepth(SCIP *scip)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
static SCIP_DECL_HEURINIT(heurInitIndicator)
static SCIP_RETCODE tryOneOpt(SCIP *scip, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, int nindconss, SCIP_CONS **indconss, SCIP_Bool *solcand, int *nfoundsols)
static SCIP_DECL_HEURFREE(heurFreeIndicator)
static SCIP_RETCODE trySolCandidate(SCIP *scip, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, int nindconss, SCIP_CONS **indconss, SCIP_Bool *solcand, int *nfoundsols)
static SCIP_DECL_HEUREXEC(heurExecIndicator)
static SCIP_DECL_HEURCOPY(heurCopyIndicator)
#define DEFAULT_IMPROVESOLS
handle partial solutions for linear problems with indicators and otherwise continuous variables
memory allocation routines
#define BMScopyMemoryArray(ptr, source, num)
public methods for managing constraints
public methods for primal heuristics
public methods for message output
public methods for primal CIP solutions
public methods for problem variables
public methods for constraint handler plugins and constraints
public methods for problem copies
public methods for primal heuristic plugins and divesets
public methods for the LP relaxation, rows and columns
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for global and local (sub)problems
public methods for the probing mode
public methods for solutions
public methods for the branch-and-bound tree
struct SCIP_HeurData SCIP_HEURDATA
enum SCIP_Retcode SCIP_RETCODE
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