146 SCIP_CALL(
SCIPcheckStage(
scip,
"checkSolOrig",
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
158 for( v = 0; v <
scip->origprob->nvars; ++v )
180 SCIPmessagePrintInfo(
scip->messagehdlr,
"solution violates original bounds of variable <%s> [%g,%g] solution value <%g>\n",
191 for(
h = 0;
h <
scip->set->nconshdlrs; ++
h )
220 for(
c = 0;
c <
scip->origprob->nconss; ++
c )
240 for( ;
h <
scip->set->nconshdlrs; ++
h )
289 for(
h =
scip->set->nconshdlrs - 1;
h >= 0; --
h )
298 for(
c = nconss - 1;
c >= 0; --
c )
324 for(
c = nconss - 1;
c >= 0; --
c )
377 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtransformProb",
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE) );
444 if( !
scip->set->reopt_enable &&
scip->set->nactivebenders == 0 )
447 for( s =
scip->origprimal->nsols - 1; s >= 0; --s )
452 sol =
scip->origprimal->sols[s];
491 scip->origprimal->nsols--;
502 "%d/%d feasible solution%s given by solution candidate storage, new primal bound %.6e\n\n",
508 "all %d solutions given by solution candidate storage are infeasible\n\n",
ncandsols);
513 "transformed problem has %d variables (%d bin, %d int, %d impl, %d cont) and %d constraints\n",
514 scip->transprob->nvars,
scip->transprob->nbinvars,
scip->transprob->nintvars,
scip->transprob->nimplvars,
515 scip->transprob->ncontvars,
scip->transprob->nconss);
517 for(
h = 0;
h <
scip->set->nconshdlrs; ++
h )
522 if( nactiveconss > 0 )
531 SCIP_Real maxnonzeros;
539 maxnonzeros =
MAX(maxnonzeros, 1.0);
555 if(
scip->set->random_permutationseed > 0 )
568 if(
scip->set->misc_estimexternmem )
609 scip->stat->prevrunnvars =
scip->transprob->nvars;
617 scip->conflictstore,
scip->eventfilter,
scip->eventqueue,
scip->cliquetable) );
647 SCIP_Bool* infeasible
679 for( v =
nvars - 1; v >= 0; --v )
733 "clique table cleanup detected %d bound changes%s\n",
nlocalbdchgs, *infeasible ?
" and infeasibility" :
"");
756 if(
scip->set->misc_calcintegral )
765 scip->conflictstore,
scip->eventfilter,
scip->eventqueue,
scip->cliquetable) );
801 SCIP_Bool* infeasible,
876 if(
i == 0 &&
j == 0 &&
k == 0 )
877 ++(
scip->stat->npresolroundsext);
891 ++(
scip->stat->npresolroundsfast);
893 ++(
scip->stat->npresolroundsmed);
896 SCIPdebugMsg(
scip,
"starting presolving round %d (%d/%d/%d), timing = %u\n",
897 scip->stat->npresolrounds,
scip->stat->npresolroundsfast,
scip->stat->npresolroundsmed,
898 scip->stat->npresolroundsext, *timing);
922 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
923 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
924 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
941 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
942 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
943 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
969 "presolver <%s> detected unboundedness (or infeasibility)\n",
SCIPpresolGetName(
scip->set->presols[
i-1]));
972 "propagator <%s> detected unboundedness (or infeasibility)\n",
SCIPpropGetName(
scip->set->props_presol[
j-1]));
1005 SCIPdebugMsg(
scip,
"executing presolve method of constraint handler <%s>\n",
1008 *timing,
scip->stat->npresolrounds,
1009 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
1010 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
1011 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
1028 "constraint handler <%s> detected unboundedness (or infeasibility)\n",
1034 scip->branchcand) );
1072 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
1073 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
1074 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
1088 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
1089 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
1090 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
1116 "presolver <%s> detected unboundedness (or infeasibility)\n",
SCIPpresolGetName(
scip->set->presols[
i-1]));
1119 "propagator <%s> detected unboundedness (or infeasibility)\n",
SCIPpropGetName(
scip->set->props_presol[
j-1]));
1124 scip->branchcand) );
1160 "clique table cleanup detected %d bound changes%s\n",
nlocalbdchgs, *infeasible ?
" and infeasibility" :
"");
1167 if( !*infeasible &&
scip->set->nheurs > 0 &&
scip->set->nactivebenders == 0 )
1189 "feasible solution found by %s heuristic after %.1f seconds, objective value %.6e\n",
1204 SCIPdebugMsg(
scip,
"not enough reductions in %s presolving, running %s presolving now...\n",
1232 SCIPdebugMsg(
scip,
"reached end of exhaustive presolving loop, starting from the beginning...\n");
1258 SCIP_Bool* infeasible,
1317 if(
scip->set->nheurs > 0 &&
scip->set->nactivebenders == 0 )
1338 "feasible solution found by %s heuristic after %.1f seconds, objective value %.6e\n",
1345 *infeasible =
FALSE;
1347 *
vanished =
scip->transprob->nvars == 0 &&
scip->transprob->nconss == 0 &&
scip->set->nactivepricers == 0;
1349 finished = (
scip->set->presol_maxrounds != -1 &&
scip->stat->npresolrounds >=
scip->set->presol_maxrounds)
1350 || (*
unbounded) || (*vanished) || (
scip->set->reopt_enable &&
scip->stat->nreoptruns >= 1);
1357 scip->stat->lastnpresolfixedvars =
scip->stat->npresolfixedvars;
1358 scip->stat->lastnpresolaggrvars =
scip->stat->npresolaggrvars;
1359 scip->stat->lastnpresolchgvartypes =
scip->stat->npresolchgvartypes;
1360 scip->stat->lastnpresolchgbds =
scip->stat->npresolchgbds;
1361 scip->stat->lastnpresoladdholes =
scip->stat->npresoladdholes;
1362 scip->stat->lastnpresoldelconss =
scip->stat->npresoldelconss;
1363 scip->stat->lastnpresoladdconss =
scip->stat->npresoladdconss;
1364 scip->stat->lastnpresolupgdconss =
scip->stat->npresolupgdconss;
1365 scip->stat->lastnpresolchgcoefs =
scip->stat->npresolchgcoefs;
1366 scip->stat->lastnpresolchgsides =
scip->stat->npresolchgsides;
1367#ifdef SCIP_DISABLED_CODE
1368 scip->stat->lastnpresolimplications =
scip->stat->nimplications;
1398 *
vanished =
scip->transprob->nvars == 0 &&
scip->transprob->nconss == 0 &&
scip->set->nactivepricers == 0;
1402 scip->stat->npresolrounds++;
1408 "(round %d, %-11s %d del vars, %d del conss, %d add conss, %d chg bounds, %d chg sides, %d chg coeffs, %d upgd conss, %d impls, %d clqs\n",
1413 scip->stat->npresolfixedvars +
scip->stat->npresolaggrvars,
1414 scip->stat->npresoldelconss,
scip->stat->npresoladdconss,
1415 scip->stat->npresolchgbds,
scip->stat->npresolchgsides,
1416 scip->stat->npresolchgcoefs,
scip->stat->npresolupgdconss,
1428 if(
scip->primal->nlimsolsfound > 0 )
1437 if(
scip->primal->nsols >= 1 )
1445 else if(
scip->transprob->nvars == 0 &&
scip->transprob->nconss == 0 )
1453 if(
scip->set->nactivepricers == 0 )
1457 if(
scip->primal->nlimsolsfound > 0 )
1467 SCIP_Real maxnonzeros;
1475 *infeasible = *infeasible ||
infeas;
1493 maxnonzeros =
MAX(maxnonzeros, 1.0);
1513 "presolving (%d rounds: %d fast, %d medium, %d exhaustive):\n",
scip->stat->npresolrounds,
1514 scip->stat->npresolroundsfast,
scip->stat->npresolroundsmed,
scip->stat->npresolroundsext);
1516 " %d deleted vars, %d deleted constraints, %d added constraints, %d tightened bounds, %d added holes, %d changed sides, %d changed coefficients\n",
1517 scip->stat->npresolfixedvars +
scip->stat->npresolaggrvars,
scip->stat->npresoldelconss,
scip->stat->npresoladdconss,
1518 scip->stat->npresolchgbds,
scip->stat->npresoladdholes,
scip->stat->npresolchgsides,
scip->stat->npresolchgcoefs);
1553 SCIPdebugMsg(
scip,
"try to transfer %d original solutions into the transformed problem space\n", nsols);
1555 ntransvars =
scip->transprob->nvars;
1568 for( s = nsols-1; s >= 0; --s )
1590 "transformed %d/%d original solutions to the transformed problem space\n",
1637 if(
scip->transprob->nlpenabled && !
scip->set->nlp_disable )
1648 if(
scip->set->misc_estimexternmem &&
scip->stat->nruns <= 1 )
1650 scip->stat->externmemestim *= 2;
1679 if(
scip->set->misc_transorigsols )
1697 if(
scip->set->nactivepricers == 0 )
1708 var =
scip->transprob->vars[v];
1716 objbound +=
obj *
bd;
1837 assert( ! restart ||
scip->stat->inrestart );
1937 if(
scip->set->reopt_enable )
1946 if(
scip->set->misc_resetstat )
1992 if( !
scip->set->reopt_enable &&
scip->set->limit_maxorigsol > 0 &&
scip->set->misc_transsolsorig &&
scip->set->nactivebenders == 0 )
1995 SCIP_Bool hasinfval;
2002 nsols =
scip->primal->nsols;
2003 maxsols =
scip->set->limit_maxorigsol;
2024 if( !
scip->set->misc_finitesolstore )
2055 if(
scip->origprimal->nsols > 1 )
2058 "stored the %d best primal solutions in the original solution candidate list\n",
scip->origprimal->nsols);
2060 else if(
scip->origprimal->nsols == 1 )
2063 "stored the best primal solution in the original solution candidate list\n");
2160 if(
scip->set->misc_resetstat )
2201 if(
scip->set->reopt_enable )
2205 if(
scip->stat->nruns > 1 )
2207 scip->stat->nnodes,
scip->stat->ntotalnodes,
scip->stat->nruns);
2208 else if(
scip->set->reopt_enable )
2225 if(
scip->primal->nsolsfound > 0 )
2234 if(
scip->primal->nsolsfound !=
scip->primal->nlimsolsfound )
2316 if(
scip->transprob->nintvars > 0 ||
scip->transprob->nimplvars > 0 )
2320 "tree compression:\n");
2322 " given tree has %d nodes.\n",
noldnodes);
2327 for(
c = 0;
c <
scip->set->ncomprs;
c++)
2338 " <%s> compressed the search tree to %d nodes (rate %g).\n",
SCIPcomprGetName(
scip->set->comprs[
c]),
2349 " search tree could not be compressed.\n");
2369 ++
scip->stat->nreoptruns;
2373 scip->origprob->nvars,
scip->set->limit_maxsol) );
2376 if(
scip->set->reopt_sepaglbinfsubtrees ||
scip->set->reopt_sepabestsol )
2384 if(
scip->stat->nreoptruns == 1 )
2418 scip->eventqueue,
scip->cliquetable,
scip->mem->probmem) );
2434 if(
scip->set->compr_enable )
2466 SCIP_Bool infeasible;
2470 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPpresolve",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE) );
2477 if(
scip->set->misc_catchctrlc )
2484 switch(
scip->set->stage )
2516 switch(
scip->stat->status )
2525 "presolving detected infeasibility\n");
2530 "presolving detected unboundedness\n");
2535 "presolving detected unboundedness (or infeasibility)\n");
2551 "presolved problem has %d variables (%d bin, %d int, %d impl, %d cont) and %d constraints\n",
2552 scip->transprob->nvars,
scip->transprob->nbinvars,
scip->transprob->nintvars,
scip->transprob->nimplvars,
2553 scip->transprob->ncontvars,
scip->transprob->nconss);
2555 for(
h = 0;
h <
scip->set->nconshdlrs; ++
h )
2560 if( nactiveconss > 0 )
2570 "transformed objective value is always integral (scale: %.15g)\n",
scip->transprob->objscale);
2594 if(
scip->set->misc_catchctrlc )
2645 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsolve",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
2688 if(
scip->set->misc_catchctrlc )
2696 restart =
scip->stat->userrestart;
2712 if(
scip->stat->userrestart )
2715 scip->stat->nruns,
scip->stat->nnodes);
2718 "(run %d, node %" SCIP_LONGINT_FORMAT ") restarting after %d global fixings of integer variables\n",
2719 scip->stat->nruns,
scip->stat->nnodes,
scip->stat->nrootintfixingsrun);
2733 switch(
scip->set->stage )
2747 if (
scip->set->reopt_enable )
2761 if(
scip->set->reopt_enable )
2792 scip->eventfilter,
scip->eventqueue,
scip->cliquetable, &restart) );
2848 children, nchildren, siblings, nsiblings) );
2853 if(
scip->set->misc_catchctrlc )
2856 if(
scip->set->reopt_enable )
2862 nsols =
scip->set->reopt_savesols == -1 ?
INT_MAX :
MAX(
scip->set->reopt_savesols, 1);
2863 nsols =
MIN(
scip->primal->nsols, nsols);
2865 for( s = 0; s < nsols; s++ )
2875 SCIP_Bool hasinfval;
2884 if( s == 0 &&
scip->set->reopt_sepabestsol )
2887 scip->origprob->vars,
scip->origprob->nvars) );
2905 if(
scip->set->reopt_storevarhistory )
2908 scip->origprob->vars,
scip->origprob->nvars) );
2917 if(
scip->set->reopt_enable &&
scip->set->reopt_commontimelimit )
2919 SCIP_Real timelimit;
2925 timelimit =
MAX(0, timelimit);
2966 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsolveParallel",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
2997 SCIPinfoMessage(
scip,
NULL,
"SCIP was compiled without task processing interface. Parallel solve not possible\n");
3006 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsolveConcurrent",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3015 SCIPerrorMessage(
"minimum number of threads greater than maximum number of threads\n");
3020 int nconcsolvertypes;
3022 SCIP_Longint nthreads;
3023 SCIP_Real memorylimit;
3025 SCIP_Longint* weights;
3033 if(
scip->set->concurrent_presolvebefore )
3060 memorylimit =
scip->set->limit_memory;
3066 if( !
scip->set->misc_avoidmemout )
3085 SCIPwarningMessage(
scip,
"requested minimum number of threads could not be satisfied with given memory limit\n");
3103 for(
i = 0;
i < nconcsolvertypes; ++
i )
3110 for(
i = 0;
i < nconcsolvertypes; ++
i )
3134 for(
i = 0;
i < nthreads; ++
i )
3197 SCIPerrorMessage(
"Reoptimization cannot be %s after starting the (pre)solving process.\n",
enable ?
"enabled" :
"disabled");
3253 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddReoptDualBndchg",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3273 if(
scip->set->reopt_enable &&
scip->stat->nreoptruns > 1 )
3301 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetReoptOldObjCoef",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3351 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfreeSolve",
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3353 switch(
scip->set->stage )
3362 SCIP_Bool infeasible;
3417 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfreeReoptSolve",
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3419 switch(
scip->set->stage )
3429 SCIP_Bool infeasible;
3480 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfreeTransform",
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3488 switch(
scip->set->stage )
3496 SCIP_Bool infeasible;
3564 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinterruptSolve",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
3596 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisSolveInterrupted",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
3598 return scip->stat->userinterrupt;
3619 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPrestartSolve",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3634 return scip->set->reopt_enable;
3650 if(
scip->set->reopt_enable )
3672 if(
scip->set->reopt_enable )
3698 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPcheckReoptRestart",
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3701 scip->transprob->nvars, restart) );
3725 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisInRestart",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
3728 return scip->stat->inrestart;
SCIP_RETCODE SCIPbranchcandCreate(SCIP_BRANCHCAND **branchcand)
void SCIPbranchcandInvalidate(SCIP_BRANCHCAND *branchcand)
SCIP_RETCODE SCIPbranchcandFree(SCIP_BRANCHCAND **branchcand)
internal methods for branching rules and branching candidate storage
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
internal methods for clocks and timing issues
SCIP_RETCODE SCIPcomprExec(SCIP_COMPR *compr, SCIP_SET *set, SCIP_REOPT *reopt, SCIP_RESULT *result)
internal methods for tree compressions
SCIP_RETCODE SCIPconcsolverCreateInstance(SCIP_SET *set, SCIP_CONCSOLVERTYPE *concsolvertype, SCIP_CONCSOLVER **concsolver)
SCIP_RETCODE SCIPconcsolverInitSeeds(SCIP_CONCSOLVER *concsolver, unsigned int seed)
SCIP_Real SCIPconcsolverTypeGetPrefPrio(SCIP_CONCSOLVERTYPE *concsolvertype)
datastructures for concurrent solvers
SCIP_RETCODE SCIPconcurrentSolve(SCIP *scip)
SCIP_RETCODE SCIPfreeConcurrent(SCIP *scip)
int SCIPgetNConcurrentSolvers(SCIP *scip)
helper functions for concurrent scip solvers
SCIP_RETCODE SCIPconflictCreate(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_RETCODE SCIPconflictFree(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
internal methods for conflict analysis
SCIP_RETCODE SCIPconflictstoreClear(SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_REOPT *reopt)
SCIP_RETCODE SCIPconflictstoreClean(SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_REOPT *reopt)
internal methods for storing conflicts
SCIP_RETCODE SCIPconsGetNVars(SCIP_CONS *cons, SCIP_SET *set, int *nvars, SCIP_Bool *success)
SCIP_RETCODE SCIPconsCheck(SCIP_CONS *cons, SCIP_SET *set, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_RESULT *result)
SCIP_RETCODE SCIPconshdlrPresolve(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
SCIP_RETCODE SCIPconshdlrCheck(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_Bool completely, SCIP_RESULT *result)
internal methods for constraints and constraint handlers
void SCIPcutpoolAddNCutsFound(SCIP_CUTPOOL *cutpool, SCIP_Longint ncutsfound)
void SCIPcutpoolSetTime(SCIP_CUTPOOL *cutpool, SCIP_Real time)
SCIP_RETCODE SCIPcutpoolCreate(SCIP_CUTPOOL **cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, int agelimit, SCIP_Bool globalcutpool)
SCIP_RETCODE SCIPcutpoolFree(SCIP_CUTPOOL **cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
void SCIPcutpoolAddNCalls(SCIP_CUTPOOL *cutpool, SCIP_Longint ncalls)
void SCIPcutpoolAddMaxNCuts(SCIP_CUTPOOL *cutpool, SCIP_Longint ncuts)
void SCIPcutpoolAddNCutsAdded(SCIP_CUTPOOL *cutpool, SCIP_Longint ncutsadded)
void SCIPcutpoolAddNRootCalls(SCIP_CUTPOOL *cutpool, SCIP_Longint nrootcalls)
SCIP_RETCODE SCIPcutpoolClear(SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
internal methods for storing cuts in a cut pool
void SCIPexitSolveDecompstore(SCIP *scip)
int SCIPdecompstoreGetNOrigDecomps(SCIP_DECOMPSTORE *decompstore)
SCIP_RETCODE SCIPtransformDecompstore(SCIP *scip)
internal methods for decompositions and the decomposition store
SCIP_RETCODE SCIPcheckStage(SCIP *scip, const char *method, SCIP_Bool init, SCIP_Bool problem, SCIP_Bool transforming, SCIP_Bool transformed, SCIP_Bool initpresolve, SCIP_Bool presolving, SCIP_Bool exitpresolve, SCIP_Bool presolved, SCIP_Bool initsolve, SCIP_Bool solving, SCIP_Bool solved, SCIP_Bool exitsolve, SCIP_Bool freetrans, SCIP_Bool freescip)
#define SCIPdebugFreeSol(set)
#define SCIPdebugReset(set)
#define SCIP_CALL_ABORT(x)
SCIP_RETCODE SCIPeventqueueFree(SCIP_EVENTQUEUE **eventqueue)
SCIP_RETCODE SCIPeventfilterFree(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_RETCODE SCIPeventfilterCreate(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPeventProcess(SCIP_EVENT *event, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
SCIP_RETCODE SCIPeventChgType(SCIP_EVENT *event, SCIP_EVENTTYPE eventtype)
SCIP_RETCODE SCIPeventqueueCreate(SCIP_EVENTQUEUE **eventqueue)
internal methods for managing events
SCIP_RETCODE SCIPprintStage(SCIP *scip, FILE *file)
SCIP_Bool SCIPisPresolveFinished(SCIP *scip)
SCIP_STATUS SCIPgetStatus(SCIP *scip)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_RETCODE SCIPpermuteProb(SCIP *scip, unsigned int randseed, SCIP_Bool permuteconss, SCIP_Bool permutebinvars, SCIP_Bool permuteintvars, SCIP_Bool permuteimplvars, SCIP_Bool permutecontvars)
int SCIPgetNIntVars(SCIP *scip)
SCIP_RETCODE SCIPsetObjlimit(SCIP *scip, SCIP_Real objlimit)
int SCIPgetNVars(SCIP *scip)
int SCIPgetNConss(SCIP *scip)
int SCIPgetNFixedVars(SCIP *scip)
int SCIPgetNBinVars(SCIP *scip)
SCIP_VAR ** SCIPgetFixedVars(SCIP *scip)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_Real SCIPnextafter(SCIP_Real from, SCIP_Real to)
SCIP_Real SCIPrelDiff(SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPgetBoolParam(SCIP *scip, const char *name, SCIP_Bool *value)
SCIP_RETCODE SCIPsetIntParam(SCIP *scip, const char *name, int value)
SCIP_RETCODE SCIPgetRealParam(SCIP *scip, const char *name, SCIP_Real *value)
SCIP_RETCODE SCIPsetRealParam(SCIP *scip, const char *name, SCIP_Real value)
int SCIPgetNActiveBenders(SCIP *scip)
SCIP_RETCODE SCIPapplyBendersDecomposition(SCIP *scip, int decompindex)
SCIP_BRANCHRULE * SCIPfindBranchrule(SCIP *scip, const char *name)
SCIP_Longint SCIPbranchruleGetNChildren(SCIP_BRANCHRULE *branchrule)
const char * SCIPcomprGetName(SCIP_COMPR *compr)
SCIP_CONCSOLVERTYPE ** SCIPgetConcsolverTypes(SCIP *scip)
int SCIPgetNConcsolverTypes(SCIP *scip)
int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrNeedsCons(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name)
int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsActive(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsModifiable(SCIP_CONS *cons)
SCIP_Longint SCIPcutpoolGetNRootCalls(SCIP_CUTPOOL *cutpool)
SCIP_Longint SCIPcutpoolGetNCutsFound(SCIP_CUTPOOL *cutpool)
SCIP_Real SCIPcutpoolGetTime(SCIP_CUTPOOL *cutpool)
SCIP_Longint SCIPcutpoolGetMaxNCuts(SCIP_CUTPOOL *cutpool)
SCIP_Longint SCIPcutpoolGetNCalls(SCIP_CUTPOOL *cutpool)
SCIP_Longint SCIPcutpoolGetNCutsAdded(SCIP_CUTPOOL *cutpool)
const char * SCIPheurGetName(SCIP_HEUR *heur)
SCIP_RETCODE SCIPinterruptLP(SCIP *scip, SCIP_Bool interrupt)
SCIP_Longint SCIPgetMemExternEstim(SCIP *scip)
BMS_BUFMEM * SCIPcleanbuffer(SCIP *scip)
SCIP_Longint SCIPgetMemUsed(SCIP *scip)
BMS_BUFMEM * SCIPbuffer(SCIP *scip)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPduplicateBufferArray(scip, ptr, source, num)
SCIP_SYNCSTORE * SCIPgetSyncstore(SCIP *scip)
int SCIPpresolGetPriority(SCIP_PRESOL *presol)
const char * SCIPpresolGetName(SCIP_PRESOL *presol)
int SCIPpropGetPresolPriority(SCIP_PROP *prop)
const char * SCIPpropGetName(SCIP_PROP *prop)
SCIP_SOL * SCIPgetReoptLastOptSol(SCIP *scip)
void SCIPresetReoptSolMarks(SCIP *scip)
SCIP_RETCODE SCIPgetReoptOldObjCoef(SCIP *scip, SCIP_VAR *var, int run, SCIP_Real *objcoef)
SCIP_RETCODE SCIPcheckReoptRestart(SCIP *scip, SCIP_NODE *node, SCIP_Bool *restart)
SCIP_RETCODE SCIPaddReoptDualBndchg(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, SCIP_Real oldbound)
SCIP_Bool SCIPisReoptEnabled(SCIP *scip)
SCIP_RETCODE SCIPenableReoptimization(SCIP *scip, SCIP_Bool enable)
SCIP_RETCODE SCIPgetReoptSolsRun(SCIP *scip, int run, SCIP_SOL **sols, int solssize, int *nsols)
SCIP_RETCODE SCIPfreeReoptSolve(SCIP *scip)
SCIP_RETCODE SCIPcheckSolOrig(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *feasible, SCIP_Bool printreason, SCIP_Bool completely)
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
void SCIPupdateSolBoundViolation(SCIP *scip, SCIP_SOL *sol, SCIP_Real absviol, SCIP_Real relviol)
SCIP_Longint SCIPsolGetNodenum(SCIP_SOL *sol)
int SCIPgetNSols(SCIP *scip)
SCIP_HEUR * SCIPsolGetHeur(SCIP_SOL *sol)
SCIP_RETCODE SCIPcreateFiniteSolCopy(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol, SCIP_Bool *success)
SCIP_Bool SCIPsolIsOriginal(SCIP_SOL *sol)
SCIP_SOL ** SCIPgetSols(SCIP *scip)
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 SCIPtransformProb(SCIP *scip)
SCIP_RETCODE SCIPrestartSolve(SCIP *scip)
SCIP_RETCODE SCIPsolveParallel(SCIP *scip)
SCIP_RETCODE SCIPpresolve(SCIP *scip)
SCIP_RETCODE SCIPsolveConcurrent(SCIP *scip)
SCIP_Bool SCIPisSolveInterrupted(SCIP *scip)
SCIP_RETCODE SCIPfreeTransform(SCIP *scip)
SCIP_RETCODE SCIPinterruptSolve(SCIP *scip)
SCIP_RETCODE SCIPfreeSolve(SCIP *scip, SCIP_Bool restart)
SCIP_Bool SCIPisInRestart(SCIP *scip)
SCIP_RETCODE SCIPsolve(SCIP *scip)
SCIP_Real SCIPgetPrimalbound(SCIP *scip)
SCIP_Real SCIPgetUpperbound(SCIP *scip)
SCIP_Real SCIPgetGap(SCIP *scip)
SCIP_Real SCIPgetDualbound(SCIP *scip)
SCIP_Real SCIPgetLowerbound(SCIP *scip)
void SCIPstoreSolutionGap(SCIP *scip)
SCIP_Real SCIPgetSolvingTime(SCIP *scip)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_RETCODE SCIPchgFeastol(SCIP *scip, SCIP_Real feastol)
SCIP_Real SCIPfeastol(SCIP *scip)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPgetChildren(SCIP *scip, SCIP_NODE ***children, int *nchildren)
int SCIPgetNNodesLeft(SCIP *scip)
SCIP_RETCODE SCIPgetLeaves(SCIP *scip, SCIP_NODE ***leaves, int *nleaves)
SCIP_RETCODE SCIPgetSiblings(SCIP *scip, SCIP_NODE ***siblings, int *nsiblings)
SCIP_RETCODE SCIPvarGetOrigvarSum(SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbOriginal(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
int SCIPvarGetIndex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbOriginal(SCIP_VAR *var)
SCIP_Real SCIPvarGetWorstBoundGlobal(SCIP_VAR *var)
SCIP_VAR ** SCIPvarGetMultaggrVars(SCIP_VAR *var)
int SCIPvarGetMultaggrNVars(SCIP_VAR *var)
SCIP_Bool SCIPvarIsOriginal(SCIP_VAR *var)
SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip, SCIP_RELAX *relax)
int SCIPrandomGetInt(SCIP_RANDNUMGEN *randnumgen, int minrandval, int maxrandval)
void SCIPselectDownRealInt(SCIP_Real *realarray, int *intarray, int k, int len)
int SCIPsnprintf(char *t, int len, const char *s,...)
SCIPcreateSol(scip, &heurdata->sol, heur))
SCIPfreeRandom(scip, &heurdata->randnumgen)
SCIPcreateRandom(scip, &heurdata->randnumgen, DEFAULT_RANDSEED, TRUE))
assert(minobj< SCIPgetCutoffbound(scip))
SCIP_RETCODE SCIPcliquetableFree(SCIP_CLIQUETABLE **cliquetable, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPcliquetableCreate(SCIP_CLIQUETABLE **cliquetable, SCIP_SET *set, BMS_BLKMEM *blkmem)
int SCIPcliquetableGetNCliques(SCIP_CLIQUETABLE *cliquetable)
SCIP_RETCODE SCIPcliquetableCleanup(SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, int *nchgbds, SCIP_Bool *infeasible)
methods for implications, variable bounds, and cliques
void SCIPinterruptRelease(SCIP_INTERRUPT *interrupt)
void SCIPinterruptCapture(SCIP_INTERRUPT *interrupt)
methods for catching the user CTRL-C interrupt
void SCIPlpRecomputeLocalAndGlobalPseudoObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
SCIP_RETCODE SCIPlpFree(SCIP_LP **lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
SCIP_RETCODE SCIPlpCreate(SCIP_LP **lp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *name)
SCIP_RETCODE SCIPlpReset(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
void SCIPlpInvalidateRootObjval(SCIP_LP *lp)
internal methods for LP management
size_t BMSgetNUsedBufferMemory(BMS_BUFMEM *buffer)
memory allocation routines
#define BMSgarbagecollectBlockMemory(mem)
void SCIPmessagePrintInfo(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...)
void SCIPmessagePrintVerbInfo(SCIP_MESSAGEHDLR *messagehdlr, SCIP_VERBLEVEL verblevel, SCIP_VERBLEVEL msgverblevel, const char *formatstr,...)
SCIP_RETCODE SCIPnlpFree(SCIP_NLP **nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPnlpAddVars(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int nvars, SCIP_VAR **vars)
SCIP_RETCODE SCIPnlpCreate(SCIP_NLP **nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, int nvars_estimate)
internal methods for NLP management
SCIP_RETCODE SCIPpresolExec(SCIP_PRESOL *presol, SCIP_SET *set, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
internal methods for presolvers
SCIP_RETCODE SCIPpricestoreCreate(SCIP_PRICESTORE **pricestore)
SCIP_RETCODE SCIPpricestoreFree(SCIP_PRICESTORE **pricestore)
internal methods for storing priced variables
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPprimalAddOrigSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Bool *stored)
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
SCIP_RETCODE SCIPprimalTransformSol(SCIP_PRIMAL *primal, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Real *solvals, SCIP_Bool *solvalset, int solvalssize, SCIP_Bool *added)
SCIP_RETCODE SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
SCIP_RETCODE SCIPprimalAddSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool *stored)
SCIP_RETCODE SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
internal methods for collecting primal CIP solutions and primal informations
SCIP_RETCODE SCIPprobScaleObj(SCIP_PROB *transprob, SCIP_PROB *origprob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue)
SCIP_RETCODE SCIPprobExitPresolve(SCIP_PROB *prob, SCIP_SET *set)
void SCIPprobInvalidateDualbound(SCIP_PROB *prob)
const char * SCIPprobGetName(SCIP_PROB *prob)
SCIP_RETCODE SCIPprobPerformVarDeletions(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand)
void SCIPprobUpdateDualbound(SCIP_PROB *prob, SCIP_Real newbound)
SCIP_RETCODE SCIPprobInitSolve(SCIP_PROB *prob, SCIP_SET *set)
void SCIPprobMarkNConss(SCIP_PROB *prob)
SCIP_RETCODE SCIPprobTransform(SCIP_PROB *source, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CONFLICTSTORE *conflictstore, SCIP_PROB **target)
SCIP_RETCODE SCIPprobCheckObjIntegral(SCIP_PROB *transprob, SCIP_PROB *origprob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue)
SCIP_RETCODE SCIPprobExitSolve(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Bool restart)
SCIP_Bool SCIPprobIsObjIntegral(SCIP_PROB *prob)
void SCIPprobResortVars(SCIP_PROB *prob)
SCIP_RETCODE SCIPprobFree(SCIP_PROB **prob, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPprobResetBounds(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_Real SCIPprobInternObjval(SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_SET *set, SCIP_Real objval)
internal methods for storing and manipulating the main problem
SCIP_RETCODE SCIPpropPresol(SCIP_PROP *prop, SCIP_SET *set, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
internal methods for propagators
public methods for branching rules
public methods for tree compressions
public methods for managing constraints
public methods for primal heuristics
public methods for message output
public data structures and miscellaneous methods
methods for selecting (weighted) k-medians
public methods for presolvers
public methods for propagators
public methods for primal CIP solutions
public methods for problem variables
SCIP_RETCODE SCIPrelaxationFree(SCIP_RELAXATION **relaxation)
SCIP_RETCODE SCIPrelaxationCreate(SCIP_RELAXATION **relaxation, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree)
internal methods for relaxators
SCIP_RETCODE SCIPreoptUpdateVarHistory(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_VAR **vars, int nvars)
SCIP_RETCODE SCIPreoptSaveActiveConss(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_PROB *transprob, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptAddRun(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR **origvars, int norigvars, int size)
SCIP_RETCODE SCIPreoptAddSol(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *origprimal, BMS_BLKMEM *blkmem, SCIP_SOL *sol, SCIP_Bool bestsol, SCIP_Bool *added, SCIP_VAR **vars, int nvars, int run)
SCIP_SOL * SCIPreoptGetLastBestSol(SCIP_REOPT *reopt)
SCIP_RETCODE SCIPreoptGetSolsRun(SCIP_REOPT *reopt, int run, SCIP_SOL **sols, int solssize, int *nsols)
SCIP_RETCODE SCIPreoptReleaseData(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
void SCIPreoptResetSolMarks(SCIP_REOPT *reopt)
SCIP_Real SCIPreoptGetOldObjCoef(SCIP_REOPT *reopt, int run, int idx)
SCIP_RETCODE SCIPreoptFree(SCIP_REOPT **reopt, SCIP_SET *set, SCIP_PRIMAL *origprimal, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptAddOptSol(SCIP_REOPT *reopt, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *origprimal, SCIP_VAR **vars, int nvars)
int SCIPreoptGetNNodes(SCIP_REOPT *reopt, SCIP_NODE *node)
SCIP_RETCODE SCIPreoptResetActiveConss(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPreoptCreate(SCIP_REOPT **reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptAddDualBndchg(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newval, SCIP_Real oldval)
SCIP_RETCODE SCIPreoptMergeVarHistory(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **vars, int nvars)
SCIP_RETCODE SCIPreoptSaveGlobalBounds(SCIP_REOPT *reopt, SCIP_PROB *transprob, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptCheckRestart(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, SCIP_VAR **transvars, int ntransvars, SCIP_Bool *restart)
SCIP_RETCODE SCIPreoptInstallBounds(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptApplyGlbConss(SCIP *scip, SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptReset(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptSaveOpenNodes(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_NODE **leaves, int nleaves, SCIP_NODE **childs, int nchilds, SCIP_NODE **siblings, int nsiblings)
data structures and methods for collecting reoptimization information
public methods for Benders decomposition
public methods for branching rule plugins and branching
public methods for concurrent solving mode
public methods for constraint handler plugins and constraints
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 random numbers
public methods for solutions
static SCIP_RETCODE checkSolOrig(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *feasible, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool checkmodifiable)
static SCIP_RETCODE prepareReoptimization(SCIP *scip)
static SCIP_RETCODE freeTransforming(SCIP *scip)
static SCIP_RETCODE freeReoptSolve(SCIP *scip)
static SCIP_RETCODE displayRelevantStats(SCIP *scip)
static SCIP_RETCODE initSolve(SCIP *scip, SCIP_Bool solved)
static SCIP_RETCODE exitPresolve(SCIP *scip, SCIP_Bool solved, SCIP_Bool *infeasible)
static SCIP_RETCODE freeTransform(SCIP *scip)
static SCIP_RETCODE calcNonZeros(SCIP *scip, SCIP_Longint *nchecknonzeros, SCIP_Longint *nactivenonzeros, SCIP_Bool *approxchecknonzeros, SCIP_Bool *approxactivenonzeros)
static SCIP_RETCODE initPresolve(SCIP *scip)
static SCIP_RETCODE freeSolve(SCIP *scip, SCIP_Bool restart)
static SCIP_RETCODE compressReoptTree(SCIP *scip)
static SCIP_RETCODE presolve(SCIP *scip, SCIP_Bool *unbounded, SCIP_Bool *infeasible, SCIP_Bool *vanished)
static SCIP_RETCODE transformSols(SCIP *scip)
static SCIP_RETCODE presolveRound(SCIP *scip, SCIP_PRESOLTIMING *timing, SCIP_Bool *unbounded, SCIP_Bool *infeasible, SCIP_Bool lastround, int *presolstart, int presolend, int *propstart, int propend, int *consstart, int consend)
public methods for querying solving statistics
public methods for timing
public methods for the branch-and-bound tree
public methods for SCIP variables
SCIP_RETCODE SCIPsepastoreCreate(SCIP_SEPASTORE **sepastore, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_RETCODE SCIPsepastoreFree(SCIP_SEPASTORE **sepastore, BMS_BLKMEM *blkmem)
internal methods for storing separated cuts
void SCIPsetSortPresols(SCIP_SET *set)
SCIP_RETCODE SCIPsetInitsolPlugins(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat)
SCIP_RETCODE SCIPsetInitPlugins(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat)
SCIP_RETCODE SCIPsetSetReoptimizationParams(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Bool SCIPsetIsFeasGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
void SCIPsetSortPropsPresol(SCIP_SET *set)
void SCIPsetSortComprs(SCIP_SET *set)
SCIP_RETCODE SCIPsetExitprePlugins(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat)
SCIP_Bool SCIPsetIsFeasLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
SCIP_Bool SCIPsetIsLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
SCIP_RETCODE SCIPsetExitsolPlugins(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_Bool restart)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetCutoffbounddelta(SCIP_SET *set)
SCIP_RETCODE SCIPsetExitPlugins(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat)
SCIP_RETCODE SCIPsetInitprePlugins(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat)
SCIP_NODESEL * SCIPsetGetNodesel(SCIP_SET *set, SCIP_STAT *stat)
internal methods for global SCIP settings
SCIP_RETCODE SCIPsolFree(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_PRIMAL *primal)
void SCIPsolRecomputeObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob)
SCIP_RETCODE SCIPsolRetransform(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_Bool *hasinfval)
SCIP_Real SCIPsolGetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
void SCIPsolResetViolations(SCIP_SOL *sol)
SCIP_Real SCIPsolGetObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
SCIP_RETCODE SCIPsolPrint(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool mipstart, SCIP_Bool printzeros)
internal methods for storing primal CIP solutions
SCIP_RETCODE SCIPsolveCIP(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_MEM *mem, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PRICESTORE *pricestore, SCIP_SEPASTORE *sepastore, SCIP_CUTPOOL *cutpool, SCIP_CUTPOOL *delayedcutpool, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *restart)
SCIP_Bool SCIPsolveIsStopped(SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool checknodelimits)
SCIP_RETCODE SCIPprimalHeuristics(SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_NODE *nextnode, SCIP_HEURTIMING heurtiming, SCIP_Bool nodeinfeasible, SCIP_Bool *foundsol, SCIP_Bool *unbounded)
internal methods for main solving loop and node processing
void SCIPstatUpdatePrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real upperbound, SCIP_Real lowerbound)
void SCIPstatMark(SCIP_STAT *stat)
void SCIPstatResetDisplay(SCIP_STAT *stat)
void SCIPstatResetPrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_Bool partialreset)
void SCIPstatResetPresolving(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatReset(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatEnforceLPUpdates(SCIP_STAT *stat)
void SCIPstatResetCurrentRun(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool solved)
internal methods for problem statistics
datastructures for managing events
datastructures for block memory pools and memory buffers
datastructures for collecting primal CIP solutions and primal informations
datastructures for storing and manipulating the main problem
SCIP main data structure.
datastructures for global SCIP settings
datastructures for problem statistics
data structures for branch and bound tree
void SCIPsyncstoreSetSolveIsStopped(SCIP_SYNCSTORE *syncstore, SCIP_Bool stopped)
SCIP_RETCODE SCIPsyncstoreInit(SCIP *scip)
the function declarations for the synchronization store
void SCIPnodeUpdateLowerbound(SCIP_NODE *node, SCIP_STAT *stat, SCIP_SET *set, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real newbound)
SCIP_NODE * SCIPtreeGetFocusNode(SCIP_TREE *tree)
SCIP_RETCODE SCIPtreeFree(SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_NODE * SCIPtreeGetCurrentNode(SCIP_TREE *tree)
SCIP_NODE * SCIPtreeGetRootNode(SCIP_TREE *tree)
SCIP_RETCODE SCIPtreeCreatePresolvingRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable)
int SCIPtreeGetNNodes(SCIP_TREE *tree)
SCIP_RETCODE SCIPtreeClear(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPnodeFocus(SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff, SCIP_Bool postponed, SCIP_Bool exitsolve)
SCIP_RETCODE SCIPtreeCreate(SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_NODESEL *nodesel)
SCIP_RETCODE SCIPtreeCreateRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPtreeFreePresolvingRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable)
internal methods for branch and bound tree
#define SCIP_EVENTTYPE_PRESOLVEROUND
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_STAGE_INITPRESOLVE
@ SCIP_STAGE_EXITPRESOLVE
@ SCIP_STAGE_TRANSFORMING
#define SCIP_HEURTIMING_BEFOREPRESOL
#define SCIP_PRESOLTIMING_FINAL
#define SCIP_PRESOLTIMING_MEDIUM
unsigned int SCIP_PRESOLTIMING
#define SCIP_HEURTIMING_DURINGPRESOLLOOP
#define SCIP_PRESOLTIMING_FAST
#define SCIP_PRESOLTIMING_EXHAUSTIVE
@ SCIP_VARSTATUS_MULTAGGR
SCIP_RETCODE SCIPvarFlattenAggregationGraph(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue)
internal methods for problem variables
SCIP_RETCODE SCIPvisualInit(SCIP_VISUAL *visual, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
void SCIPvisualExit(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
methods for creating output for visualization tools (VBC, BAK)