nonimprovingRounds;
171assert(eventhdlr !=
NULL);
184assert(eventhdlr !=
NULL);
202assert(eventhdlr !=
NULL);
203assert(event !=
NULL);
212 for( i = 0; i < nsubconss; i++ )
215 if( dualval !=
NULL)
221 for( i = 0; i < nsubconss; i++ )
226 if( transcons ==
NULL)
236 if( heurdata->heurverblevel > 2 )
256assert(eventhdlr !=
NULL);
280assert(hashmap !=
NULL);
284 for( i = 0; i < nentries; ++i )
322assert(hashmap !=
NULL);
326 for( i = 0; i < nentries; ++i )
363assert(conshdlr !=
NULL);
371 for( i = 0; i < nconss; ++i )
389 if( !addcombconss || !addcontconss )
391iscombinatorial =
TRUE;
393 for( j = 0; j < nvars; ++j )
397iscombinatorial =
FALSE;
403 if( (iscombinatorial && !addcombconss) || (!iscombinatorial && !addcontconss) )
439assert(conshdlr !=
NULL);
447 for( i = 0; i < nconss; ++i )
459 if( (iscombinatorial && !addcombconss) || (!iscombinatorial && !addcontconss) )
4662, vars, coefs,
NULL,
496assert(conshdlr !=
NULL);
507 for( i = 0; i < nconss; ++i )
515 if( coefssize < nvars )
525 for( j = coefssize; j < nvars; ++j )
565assert(conshdlr !=
NULL);
576 for( i = 0; i < nconss; ++i )
584 if( coefssize < nvars )
594 for( j = coefssize; j < nvars; ++j )
655assert(conshdlr !=
NULL);
662assert(conss !=
NULL);
667 for( i = 0; i < nconss; ++i )
677 if( coefssize < nvars )
691 for( j = 0; j < nvars; ++j )
722 if( conshdlr !=
NULL)
729 if( conshdlr !=
NULL)
738 if( conshdlr !=
NULL)
745 if( conshdlr !=
NULL)
752 if( conshdlr !=
NULL)
785assert( heurdata !=
NULL);
796 for( i = 0; i < nvars; ++i )
810 if( subvar ==
NULL)
812 SCIPdebugMsg(
scip,
"return14 : abort building solution since a variable was not in our list\n");
830assert(subvar !=
NULL);
831transval =
SCIPgetSolVal(heurdata->subscip, subsol, subvar);
835transval = tscalar * transval + tconstant;
837val = scalar * transval + constant;
842val = scalar * val + constant;
902assert( heurdata !=
NULL);
903assert( heurdata->subscip ==
NULL);
905heurdata->usedcalls = 0;
906heurdata->solfound =
FALSE;
907heurdata->nonimprovingRounds = 0;
922 for(i = 0; i < nconss; i++ )
927 if( currentconshdlr == conshdlrindi ||
928currentconshdlr == conshdlrnonlin ||
929currentconshdlr == conshdlrvarbound ||
930currentconshdlr == conshdlrknapsack ||
931currentconshdlr == conshdlrlogicor ||
932currentconshdlr == conshdlrsetppc ||
933currentconshdlr == conshdlrlin )
945 if( heurdata->dynamicdepth == 1 )
947heurdata->maxcalls = (int)
SCIPfloor(
scip, sqrt((
double)(nvars - ncontvars)));
950heurdata->triedsetupsubscip =
TRUE;
964 FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE, &success) );
966 if( success ==
FALSE)
968 SCIPdebugMsg(
scip,
"In heur_dualval: failed to copy some plugins to sub-SCIP, continue anyway\n");
999 for( i = 0; i < nconss; ++i )
1005assert( subcons !=
NULL);
1013 if( !heurdata->subscipisvalid )
1015 SCIPdebugMsg(
scip,
"In heur_dualval: failed to copy some constraints to sub-SCIP, continue anyway\n");
1019heurdata->nvars = nvars;
1033 if( entry !=
NULL)
1071 for( i = 0; i < nconsindicator; i++ )
1076currcons = indicatorconss[i];
1077assert(currcons !=
NULL);
1097heurdata->integervarssize = nvars;
1101 for( i = 0; i < nvars; ++i )
1104assert( var !=
NULL);
1112heurdata->integervars[j++] = vars[i];
1122 for( k = 0; k < nconsindicator; k++ )
1129currcons = indicatorconss[k];
1130assert(currcons !=
NULL);
1133assert(indicatorbinvar !=
NULL);
1137 if( indicatorbinvar ==
SCIPhashmapGetImage(heurdata->varsubsciptoscip, var) || indicatorbinvar == negatedvar )
1142assert(indicatorbinvar == negatedvar);
1147assert(indicatorbinvar != negatedvar);
1151varobjective = heurdata->lambdaobj *
REALABS(varobjective);
1153indicons = currcons;
1154assert( indicons !=
NULL);
1158assert( indicons !=
NULL);
1172 if( heurdata->relaxindicators )
1187indicatorbinvar = negatedvar;
1264assert(imagecons !=
NULL);
1286 if( heurdata->relaxindicators )
1289 for( k = 0; k < nvars; k++ )
1311 for( k = 0; k < nconsindicator; k++ )
1316currcons = indicatorconss[k];
1317assert(currcons !=
NULL);
1368 if( heurdata->relaxcontvars )
1370 for( i = 0; i < nvars; ++i )
1373assert( var !=
NULL);
1438 SCIPinfinity(
scip),
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
1439heurdata->objbound = cons;
1441 for( i = 0; i < nvars; ++i )
1444assert( var !=
NULL);
1450 if( subvar ==
NULL)
1466 if( heurdata->heurverblevel > 3 )
1475heurdata->nintegervars = j;
1489assert(heurdata !=
NULL);
1490assert(heurdata->subscip !=
NULL);
1492heurdata->nsubvars = 0;
1493heurdata->nvars = 0;
1518assert(heur !=
NULL);
1519assert(sol !=
NULL);
1522assert(heurdata !=
NULL);
1536 for( i = 0; i < nsubvars; ++i )
1538subvar = subvars[i];
1539assert(subvar !=
NULL);
1553#define BIG_VALUE 1E+10 1574 for( i = 0; i < heurdata->nintegervars; i++ )
1576var = heurdata->integervars[i];
1577assert(var !=
NULL);
1580assert(var !=
NULL);
1583 if( subvar ==
NULL)
1619 if( rcons ==
NULL)
1655 if( clearswitchedvars )
1658 for( i = 0; i < heurdata->nintegervars; i++ )
1660var = heurdata->integervars[i];
1686 if( transsol !=
NULL)
1691 if( beforeswitching )
1700 for( i = nsubbinvars + nsubintvars - 1; i >= 0; --i )
1702subvar = subvars[i];
1710assert(var !=
NULL);
1744 for( j = 0; j < heurdata->nintegervars; j++ )
1746sortedvars[j] = heurdata->integervars[j];
1750 if( sortedvars[j] ==
NULL)
1754assert(var !=
NULL);
1765assert(var !=
NULL);
1769 if( relaxcons !=
NULL)
1774 if( dualvalue ==
NULL)
1777 if( dualvalue ==
NULL)
1780assert(dualvalue !=
NULL);
1781ranks[j] = (*dualvalue);
1785assert(ranks[j] == 0.0);
1793 if( dualvalue ==
NULL)
1796assert(dualvalue !=
NULL);
1798ranks[j] = (*dualvalue);
1802 for( k = 0; k < nconsindicator; k++ )
1808currcons = indicatorconss[k];
1809assert(currcons !=
NULL);
1812assert(indicatorbinvar !=
NULL);
1817indicons = currcons;
1818assert(indicons !=
NULL);
1821assert(subcons !=
NULL);
1824assert(subcons !=
NULL);
1828 if( dualvalue ==
NULL)
1831assert(dualvalue !=
NULL);
1834ranks[j] = (*dualvalue);
1841absranks[j] =
REALABS(ranks[j]);
1870maxslackset =
FALSE;
1875 for( i = 0; i < nsubvars; i++ )
1878 if( subvar ==
NULL)
1884 if( heurdata->isnlp )
1890maxslackset =
TRUE;
1895assert(bestsol !=
NULL);
1896 if( maxslack <
SCIPgetSolVal(heurdata->subscip, bestsol, subvar) )
1898maxslack =
SCIPgetSolVal(heurdata->subscip, bestsol, subvar);
1900maxslackset =
TRUE;
1906 if( ! maxslackset )
1912assert(maxslack >= 0);
1914 if( heurdata->heurverblevel > 0 && maxslackset )
1940assert(heurdata !=
NULL);
1947heurdata->solfound =
TRUE;
1950assert( heurdata->isnlp );
1961 if( heurdata->heurverblevel > 1 )
1976 if( heurdata->heurverblevel > 0 )
1988 if( stored && heurdata->heurverblevel > 1 )
1991 if( heurdata->isnlp )
1999heurdata->solfound =
TRUE;
2001 if( heurdata->heurverblevel >= 1 )
2009heurdata->prevInfeasible =
FALSE;
2010heurdata->solfound =
TRUE;
2013 if( heurdata->heurverblevel >= 1 )
2060assert(heur !=
NULL);
2068assert(heurdata !=
NULL);
2082 if( heurdata->subscip ==
NULL&& !heurdata->triedsetupsubscip )
2088 if( heurdata->solfound )
2097 if( heurdata->subscip ==
NULL)
2103assert(heurdata->nsubvars > 0);
2104assert(heurdata->varsubsciptoscip !=
NULL);
2126heurdata->prevInfeasible =
TRUE;
2136retcode =
SCIPsolve(heurdata->subscip);
2137heurdata->isnlp =
TRUE;
2154heurdata->isnlp =
FALSE;
2158 if( heurdata->isnlp )
2175 if( subvar ==
NULL)
2177startpoint[i] = constant;
2198 SCIP_CALL(
SCIPsolveNLP(heurdata->subscip, .verblevel = (
unsigned short)heurdata->nlpverblevel) );
2205 SCIP_CALL(
SCIPsolveNLP(heurdata->subscip, .verblevel = (
unsigned short)heurdata->nlpverblevel) );
2213 for( i = 0; i < nsubconss; i++ )
2221 for( i = 0; i < nsubconss; i++ )
2227 if( transcons ==
NULL)
2267assert(bestsol !=
NULL);
2270 for( i = 0; i < nsubvars; i++ )
2279 if( heurdata->forceimprovements )
2283heurdata->nonimprovingRounds++;
2284 SCIPdebugMsg(
scip,
"nonimpr rounds %d prevobj %f \n", heurdata->nonimprovingRounds, heurdata->prevobjective);
2287 if( heurdata->nonimprovingRounds > heurdata->maxcalls/8 )
2291 if( heurdata->isnlp )
2298heurdata->solfound =
TRUE;
2299heurdata->switchdifferent =
TRUE;
2308heurdata->prevobjective =
SCIPgetSolOrigObj(heurdata->subscip, bestsol) - objvalue;
2322 if( heurdata->heurverblevel > 1 )
2324k = heurdata->rankvalue;
2326 if( heurdata->nintegervars < heurdata->rankvalue )
2327k = heurdata->nintegervars;
2329 for( i = 0; i < k; i++ )
2336 if( heurdata->isnlp )
2340maxequalranks =
MIN(heurdata->maxequalranks, heurdata->nintegervars/3);
2356 for( k = 0; k < heurdata->nintegervars; ++k )
2358var = heurdata->integervars[k];
2366 if( rcons !=
NULL)
2369assert(var !=
NULL);
2370assert(subvar !=
NULL);
2380 for( i = 0; i < heurdata->nintegervars; i++ )
2395 if( heurdata->heurverblevel > 1 )
2442 if( seclastval !=
NULL)
2450 if( heurdata->heurverblevel > 1 )
2457 if( heurdata->usedcalls >= heurdata->maxcalls )
2466heurdata->usedcalls++;
2468 if( heurdata->heurverblevel > 1 )
2475 if( *result ==
SCIP_DIDNOTFIND|| heurdata->solfound || heurdata->prevInfeasible )
2481 if( heurdata->switchdifferent )
2483heurdata->switchdifferent =
FALSE;
2484heurdata->solfound =
FALSE;
2486heurdata->nonimprovingRounds -= 2;
2489 if( heurdata->prevInfeasible )
2491heurdata->prevInfeasible =
FALSE;
2492heurdata->solfound =
FALSE;
2494heurdata->nonimprovingRounds++;
2502 if( heurdata->subscip ==
NULL)
2530assert(heur !=
NULL);
2546assert(heur !=
NULL);
2563assert(heur !=
NULL);
2572assert(heurdata !=
NULL);
2573assert(heurdata->subscip ==
NULL);
2574assert(!heurdata->triedsetupsubscip);
2580 if( heurdata->subscip ==
NULL)
2603assert(heur !=
NULL);
2606assert(heurdata !=
NULL);
2610 if( heurdata->subscip !=
NULL)
2616 for( i = 0; i < nsubconss; i++ )
2624 if( heurdata->varsciptosubscip !=
NULL)
2630 if( heurdata->origsubscipConsMap !=
NULL)
2636 if( heurdata->relaxcons !=
NULL)
2642 if( heurdata->conss2nlrow !=
NULL)
2648 if( heurdata->slack2var !=
NULL)
2654 if( heurdata->indicopymap !=
NULL)
2660 if( heurdata->indicopymapback !=
NULL)
2666 if( heurdata->relaxconsindi !=
NULL)
2672 if( heurdata->slackvarlbMap !=
NULL)
2678 if( heurdata->slackvarubMap !=
NULL)
2685 if( heurdata->subscip !=
NULL)
2691 if( heurdata->varsubsciptoscip !=
NULL)
2697 if( heurdata->slacktoindivarsmap !=
NULL)
2703 if( heurdata->indicators !=
NULL)
2709 if( heurdata->switchedvars !=
NULL)
2713 if( heurdata->switchedvars2 !=
NULL)
2719heurdata->triedsetupsubscip =
FALSE;
2720heurdata->usedcalls = 0;
2721heurdata->solfound =
FALSE;
2722heurdata->prevInfeasible =
FALSE;
2724assert(heurdata->subscip ==
NULL);
2725assert(heurdata->varsubsciptoscip ==
NULL);
2726assert(heurdata->varsciptosubscip ==
NULL);
2738assert(heur !=
NULL);
2745assert(heurdata !=
NULL);
2748 if( heurdata->subscip ==
NULL)
2764assert(heur !=
NULL);
2779assert(heur !=
NULL);
2780assert(result !=
NULL);
2784assert(heurdata !=
NULL);
2790heurdata->usedcalls = 0;
2791heurdata->prevInfeasible =
FALSE;
2792heurdata->solfound =
FALSE;
2793heurdata->nonimprovingRounds = 0;
2794heurdata->prevobjective = INT_MAX;
2832assert(heur !=
NULL);
2843 "exit if objective doesn't improve",
2847 "add constraint to ensure that discrete vars are improving",
2851 "disable the heuristic if it was not called at a leaf of the B&B tree",
2855 "relax the indicator variables by introducing continuous copies",
2859 "relax the continous variables",
2863 "verblevel of the heuristic, default is 0 to display nothing",
2867 "verblevel of the nlp solver, can be 0 or 1",
2871 "number of ranks that should be displayed when the heuristic is called",
2875 "maximal number of recursive calls of the heuristic (if dynamicdepth is off)",
2879 "says if and how the recursion depth is computed at runtime",
2883 "maximal number of variables that may have maximal rank, quit if there are more, turn off by setting -1",
2887 "minimal gap for which we still run the heuristic, if gap is less we return without doing anything",
2891 "value added to objective of slack variables, must not be zero",
2895 "scaling factor for the objective function",
constraint handler for indicator constraints
Constraint handler for knapsack constraints of the form , x binary and .
Constraint handler for linear constraints in their most general form, .
Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo...
Constraint handler for the set partitioning / packing / covering constraints .
Constraint handler for variable bound constraints .
SCIP_RETCODE SCIPcreateConsIndicatorLinCons(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *binvar, SCIP_CONS *lincons, SCIP_VAR *slackvar, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
SCIP_Real SCIPgetDualsolLinear(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetVbdcoefVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetRhsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPchgRhsLinear(SCIP *scip, SCIP_CONS *cons, SCIP_Real rhs)
SCIP_RETCODE SCIPaddCoefLinear(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, SCIP_Real val)
SCIP_Real SCIPgetLhsLinear(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_Real * SCIPgetValsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetVbdvarVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetBinaryVarIndicator(SCIP_CONS *cons)
SCIP_VAR * SCIPgetVarVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_Longint * SCIPgetWeightsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetSlackVarIndicator(SCIP_CONS *cons)
SCIP_Longint SCIPgetCapacityKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetLhsVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_SETPPCTYPE SCIPgetTypeSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_CONS * SCIPgetLinearConsIndicator(SCIP_CONS *cons)
SCIP_RETCODE SCIPcreateConsLinear(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
SCIP_VAR ** SCIPgetVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetRhsVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPchgLhsLinear(SCIP *scip, SCIP_CONS *cons, SCIP_Real lhs)
@ SCIP_SETPPCTYPE_PARTITIONING
@ SCIP_SETPPCTYPE_COVERING
@ SCIP_SETPPCTYPE_PACKING
SCIP_RETCODE SCIPcopyVars(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_VAR **fixedvars, SCIP_Real *fixedvals, int nfixedvars, SCIP_Bool global)
SCIP_RETCODE SCIPcopyPlugins(SCIP *sourcescip, SCIP *targetscip, SCIP_Bool copyreaders, SCIP_Bool copypricers, SCIP_Bool copyconshdlrs, SCIP_Bool copyconflicthdlrs, SCIP_Bool copypresolvers, SCIP_Bool copyrelaxators, SCIP_Bool copyseparators, SCIP_Bool copycutselectors, SCIP_Bool copypropagators, SCIP_Bool copyheuristics, SCIP_Bool copyeventhdlrs, SCIP_Bool copynodeselectors, SCIP_Bool copybranchrules, SCIP_Bool copydisplays, SCIP_Bool copydialogs, SCIP_Bool copytables, SCIP_Bool copyexprhdlrs, SCIP_Bool copynlpis, SCIP_Bool passmessagehdlr, SCIP_Bool *valid)
SCIP_RETCODE SCIPcopyConss(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, SCIP_Bool enablepricing, SCIP_Bool *valid)
SCIP_RETCODE SCIPcopyParamSettings(SCIP *sourcescip, SCIP *targetscip)
SCIP_Bool SCIPisTransformed(SCIP *scip)
SCIP_RETCODE SCIPfree(SCIP **scip)
SCIP_RETCODE SCIPcreate(SCIP **scip)
SCIP_STATUS SCIPgetStatus(SCIP *scip)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_RETCODE SCIPaddVar(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPgetOrigVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars)
const char * SCIPgetProbName(SCIP *scip)
SCIP_RETCODE SCIPgetVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars)
int SCIPgetNOrigConss(SCIP *scip)
SCIP_VAR ** SCIPgetOrigVars(SCIP *scip)
SCIP_RETCODE SCIPaddCons(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPdelCons(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNConss(SCIP *scip)
int SCIPgetNOrigVars(SCIP *scip)
SCIP_CONS ** SCIPgetOrigConss(SCIP *scip)
SCIP_RETCODE SCIPcreateProb(SCIP *scip, const char *name, SCIP_DECL_PROBDELORIG((*probdelorig)), SCIP_DECL_PROBTRANS((*probtrans)), SCIP_DECL_PROBDELTRANS((*probdeltrans)), SCIP_DECL_PROBINITSOL((*probinitsol)), SCIP_DECL_PROBEXITSOL((*probexitsol)), SCIP_DECL_PROBCOPY((*probcopy)), SCIP_PROBDATA *probdata)
void SCIPhashmapFree(SCIP_HASHMAP **hashmap)
void * SCIPhashmapEntryGetImage(SCIP_HASHMAPENTRY *entry)
void * SCIPhashmapGetImage(SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPhashmapInsert(SCIP_HASHMAP *hashmap, void *origin, void *image)
int SCIPhashmapGetNEntries(SCIP_HASHMAP *hashmap)
SCIP_HASHMAPENTRY * SCIPhashmapGetEntry(SCIP_HASHMAP *hashmap, int entryidx)
SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)
void * SCIPhashmapEntryGetOrigin(SCIP_HASHMAPENTRY *entry)
SCIP_RETCODE SCIPhashmapRemoveAll(SCIP_HASHMAP *hashmap)
SCIP_RETCODE SCIPhashmapRemove(SCIP_HASHMAP *hashmap, void *origin)
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
SCIP_RETCODE SCIPapplyHeurDualval(SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *refpoint)
SCIP_RETCODE SCIPaddIntParam(SCIP *scip, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPsetLongintParam(SCIP *scip, const char *name, SCIP_Longint value)
SCIP_RETCODE SCIPaddRealParam(SCIP *scip, const char *name, const char *desc, SCIP_Real *valueptr, SCIP_Bool isadvanced, SCIP_Real defaultvalue, SCIP_Real minvalue, SCIP_Real maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPsetIntParam(SCIP *scip, const char *name, int value)
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 SCIPsetRealParam(SCIP *scip, const char *name, SCIP_Real value)
SCIP_RETCODE SCIPincludeHeurDualval(SCIP *scip)
int SCIPgetNLPBranchCands(SCIP *scip)
int SCIPgetNPseudoBranchCands(SCIP *scip)
int SCIPconshdlrGetNConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name)
int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)
void SCIPconsAddUpgradeLocks(SCIP_CONS *cons, int nlocks)
SCIP_Bool SCIPconsIsDynamic(SCIP_CONS *cons)
SCIP_CONSHDLR * SCIPconsGetHdlr(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsInitial(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsEnforced(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsPropagated(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLocal(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsEnabled(SCIP_CONS *cons)
const char * SCIPconsGetName(SCIP_CONS *cons)
SCIP_RETCODE SCIPgetTransformedCons(SCIP *scip, SCIP_CONS *cons, SCIP_CONS **transcons)
SCIP_Bool SCIPconsIsStickingAtNode(SCIP_CONS *cons)
SCIP_RETCODE SCIPreleaseCons(SCIP *scip, SCIP_CONS **cons)
SCIP_Bool SCIPconsIsSeparated(SCIP_CONS *cons)
SCIP_RETCODE SCIPcaptureCons(SCIP *scip, SCIP_CONS *cons)
SCIP_Bool SCIPconsIsRemovable(SCIP_CONS *cons)
SCIP_RETCODE SCIPincludeEventhdlrBasic(SCIP *scip, SCIP_EVENTHDLR **eventhdlrptr, const char *name, const char *desc, SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)
SCIP_EVENTHDLRDATA * SCIPeventhdlrGetData(SCIP_EVENTHDLR *eventhdlr)
SCIP_RETCODE SCIPsetEventhdlrExit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit)))
SCIP_RETCODE SCIPsetEventhdlrInit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit)))
SCIP_RETCODE SCIPcatchEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
SCIP_RETCODE SCIPdropEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
SCIP_RETCODE SCIPsetHeurExitsol(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXITSOL((*heurexitsol)))
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 SCIPsetHeurExit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXIT((*heurexit)))
void SCIPheurSetFreq(SCIP_HEUR *heur, int freq)
void SCIPheurSetTimingmask(SCIP_HEUR *heur, SCIP_HEURTIMING timingmask)
SCIP_RETCODE SCIPsetHeurInitsol(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINITSOL((*heurinitsol)))
int SCIPheurGetFreqofs(SCIP_HEUR *heur)
SCIP_RETCODE SCIPsetHeurInit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINIT((*heurinit)))
int SCIPheurGetFreq(SCIP_HEUR *heur)
const char * SCIPheurGetName(SCIP_HEUR *heur)
SCIP_LPSOLSTAT SCIPgetLPSolstat(SCIP *scip)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPreallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPallocBlockMemoryArray(scip, ptr, num)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPfreeBufferArrayNull(scip, ptr)
#define SCIPallocBlockMemory(scip, ptr)
int SCIPgetNNlpis(SCIP *scip)
SCIP_RETCODE SCIPaddNlRow(SCIP *scip, SCIP_NLROW *nlrow)
SCIP_Bool SCIPisNLPConstructed(SCIP *scip)
SCIP_NLPSOLSTAT SCIPgetNLPSolstat(SCIP *scip)
#define SCIPsolveNLP(...)
SCIP_RETCODE SCIPsetNLPInitialGuess(SCIP *scip, SCIP_Real *initialguess)
int SCIPgetNNLPVars(SCIP *scip)
SCIP_VAR ** SCIPgetNLPVars(SCIP *scip)
SCIP_RETCODE SCIPreleaseNlRow(SCIP *scip, SCIP_NLROW **nlrow)
SCIP_Real SCIPnlrowGetDualsol(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPcreateNlRow(SCIP *scip, SCIP_NLROW **nlrow, const char *name, SCIP_Real constant, int nlinvars, SCIP_VAR **linvars, SCIP_Real *lincoefs, SCIP_EXPR *expr, SCIP_Real lhs, SCIP_Real rhs, SCIP_EXPRCURV curvature)
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
SCIP_Real SCIPsolGetOrigObj(SCIP_SOL *sol)
SCIP_RETCODE SCIPfreeSol(SCIP *scip, SCIP_SOL **sol)
SCIP_RETCODE SCIPcreateOrigSol(SCIP *scip, 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_Real SCIPgetSolOrigObj(SCIP *scip, SCIP_SOL *sol)
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_RETCODE SCIPpresolve(SCIP *scip)
SCIP_RETCODE SCIPfreeTransform(SCIP *scip)
SCIP_RETCODE SCIPsolve(SCIP *scip)
SCIP_Real SCIPgetUpperbound(SCIP *scip)
SCIP_Real SCIPgetGap(SCIP *scip)
SCIP_Bool SCIPisRelLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPvarGetOrigvarSum(SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_VAR * SCIPvarGetNegatedVar(SCIP_VAR *var)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_Bool SCIPvarIsBinary(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)
SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
int SCIPvarGetProbindex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var)
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
SCIP_Bool SCIPvarIsNegated(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPcreateVar(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_VAR * SCIPvarGetTransVar(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
SCIP_Real SCIPvarGetNLPSol(SCIP_VAR *var)
SCIP_RETCODE SCIPcaptureVar(SCIP *scip, SCIP_VAR *var)
void SCIPsortDownRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, int len)
int SCIPsnprintf(char *t, int len, const char *s,...)
static SCIP_DECL_EVENTEXEC(eventExecLPsol)
#define DEFAULT_RANKVALUE
#define DEFAULT_ONLYCHEAPER
static SCIP_RETCODE createSolFromSubScipSol(SCIP *scip, SCIP_HEUR *heur, SCIP_SOL **sol, SCIP_SOL *subsol)
static SCIP_RETCODE addSetppcConstraints(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_HEURDATA *heurdata)
static SCIP_DECL_HEUREXIT(heurExitDualval)
#define DEFAULT_LAMBDAOBJ
#define DEFAULT_HEURVERBLEVEL
static SCIP_RETCODE addLogicOrConstraints(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_HEURDATA *heurdata)
static SCIP_RETCODE createSolFromNLP(SCIP *scip, SCIP_HEUR *heur, SCIP_SOL **sol)
static SCIP_RETCODE computeRanks(SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_Real *absranks, SCIP_Real *ranks, SCIP_VAR **sortedvars)
static SCIP_RETCODE freeMemory(SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_SOL *transsol, SCIP_Real *absranks, SCIP_Real *ranks, SCIP_VAR **sortedvars, SCIP_Bool beforeswitching, SCIP_Bool clearswitchedvars)
#define DEFAULT_RELAXINDICATORS
static SCIP_DECL_HEUREXEC(heurExecDualval)
static SCIP_RETCODE releaseHashmapNLPRows(SCIP *scip, SCIP_HASHMAP *hashmap)
static SCIP_RETCODE addLinearConstraints(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_Bool addcombconss, SCIP_Bool addcontconss, SCIP_HEURDATA *heurdata)
#define DEFAULT_FORCEIMPROVEMENTS
static SCIP_RETCODE storeSolution(SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *transsol, SCIP_SOL *bestsol)
#define DEFAULT_LAMBDASLACK
static SCIP_DECL_EVENTEXIT(eventExitLPsol)
static SCIP_DECL_HEURINIT(heurInitDualval)
#define DEFAULT_RELAXCONTVARS
static SCIP_DECL_HEURCOPY(heurCopyDualval)
static SCIP_Real maximalslack(SCIP *scip, SCIP_HEURDATA *heurdata)
static SCIP_RETCODE SCIPincludeEventHdlrLPsol(SCIP *scip, SCIP_HEURDATA *heurdata)
static SCIP_RETCODE createSubSCIP(SCIP *scip, SCIP_HEURDATA *heurdata)
static SCIP_DECL_HEUREXITSOL(heurExitsolDualval)
static SCIP_DECL_HEURFREE(heurFreeDualval)
static SCIP_RETCODE fixDiscreteVars(SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_SOL *refpoint, SCIP_SOL **transsol)
static SCIP_RETCODE addKnapsackConstraints(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_HEURDATA *heurdata)
#define DEFAULT_DYNAMICDEPTH
static SCIP_DECL_HEURINITSOL(heurInitsolDualval)
#define DEFAULT_ONLYLEAVES
static SCIP_RETCODE freeSubSCIP(SCIP *scip, SCIP_HEURDATA *heurdata)
#define DEFAULT_NLPVERBLEVEL
static SCIP_RETCODE releaseHashmapEntries(SCIP *scip, SCIP_HASHMAP *hashmap, SCIP_Bool isvarmap)
#define DEFAULT_MAXEQUALRANKS
static SCIP_RETCODE addVarboundConstraints(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_Bool addcombconss, SCIP_Bool addcontconss, SCIP_HEURDATA *heurdata)
static SCIP_RETCODE addLinearConstraintsToNlp(SCIP *scip, SCIP_Bool addcombconss, SCIP_Bool addcontconss, SCIP_HEURDATA *heurdata)
static SCIP_DECL_EVENTINIT(eventInitLPsol)
primal heuristic that uses dualvalues for successive switching variable values
memory allocation routines
#define BMSclearMemory(ptr)
#define BMSclearMemoryArray(ptr, num)
BMS_BLKMEM * SCIPblkmem(SCIP *scip)
public methods for managing constraints
public methods for managing events
public methods for primal heuristics
public methods for message output
public data structures and miscellaneous methods
methods for sorting joint arrays of various types
public methods for NLP management
public methods for primal CIP solutions
public methods for problem variables
public methods for branching rule plugins and branching
public methods for constraint handler plugins and constraints
public methods for problem copies
public methods for event handler plugins and event handlers
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 nonlinear relaxation
public methods for NLPI solver interfaces
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for global and local (sub)problems
public methods for solutions
public methods for querying solving statistics
public methods for SCIP variables
#define SCIP_EVENTTYPE_FIRSTLPSOLVED
struct SCIP_EventhdlrData SCIP_EVENTHDLRDATA
#define SCIP_EVENTTYPE_LPSOLVED
type and macro definitions related to algebraic expressions
struct SCIP_HeurData SCIP_HEURDATA
@ SCIP_NLPSOLSTAT_FEASIBLE
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
#define SCIP_HEURTIMING_DURINGLPLOOP
@ SCIP_VARTYPE_CONTINUOUS
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