144 *nchecknonzeros = 0LL;
145 *nactivenonzeros = 0LL;
146 *approxchecknonzeros =
FALSE;
147 *approxactivenonzeros =
FALSE;
150 for(
h =
scip->set->nconshdlrs - 1;
h >= 0; --
h )
159 for(
c = nconss - 1;
c >= 0; --
c )
166 *approxactivenonzeros =
TRUE;
168 *approxchecknonzeros =
TRUE;
172 *nactivenonzeros +=
nvars;
174 *nchecknonzeros +=
nvars;
185 for(
c = nconss - 1;
c >= 0; --
c )
192 *approxchecknonzeros =
TRUE;
194 *nchecknonzeros +=
nvars;
242 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtransformProb",
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE) );
306 ncandsols =
scip->origprimal->nsols;
314 if( !
scip->set->reopt_enable &&
scip->set->nactivebenders == 0 )
316 oldnsolsfound =
scip->primal->nsolsfound;
317 for( s =
scip->origprimal->nsols - 1; s >= 0; --s )
322 sol =
scip->origprimal->sols[s];
361 scip->origprimal->nsols--;
367 scip->stat->nexternalsolsfound +=
scip->primal->nsolsfound - oldnsolsfound;
372 "%d/%d feasible solution%s given by solution candidate storage, new primal bound %.6e\n\n",
375 else if( ncandsols > 0 && !
scip->set->reopt_enable )
378 "all %d solutions given by solution candidate storage are infeasible\n\n", ncandsols);
383 "transformed problem has %d variables (%d bin, %d int, %d cont) and %d constraints\n",
384 scip->transprob->nvars,
scip->transprob->nbinvars +
scip->transprob->nbinimplvars,
385 scip->transprob->nintvars +
scip->transprob->nintimplvars,
scip->transprob->ncontvars +
386 scip->transprob->ncontimplvars,
scip->transprob->nconss);
388 if(
scip->transprob->nbinimplvars > 0 ||
scip->transprob->nintimplvars > 0 ||
scip->transprob->ncontimplvars > 0 )
390 "transformed problem has %d implied integral variables (%d bin, %d int, %d cont)\n",
SCIPprobGetNImplVars(
scip->transprob),
391 scip->transprob->nbinimplvars,
scip->transprob->nintimplvars,
scip->transprob->ncontimplvars);
393 for(
h = 0;
h <
scip->set->nconshdlrs; ++
h )
398 if( nactiveconss > 0 )
415 maxnonzeros =
MAX(maxnonzeros, 1.0);
417 scip->stat->nnz = nactivenonzeros;
422 approxactivenonzeros ?
"more than " :
"", nactivenonzeros, nactivenonzeros/maxnonzeros * 100,
423 approxchecknonzeros ?
"more than " :
"", nchecknonzeros, nchecknonzeros/maxnonzeros * 100);
431 if(
scip->set->random_permutationseed > 0 )
437 permuteconss =
scip->set->random_permuteconss;
438 permutevars =
scip->set->random_permutevars;
439 permutationseed =
scip->set->random_permutationseed;
442 permutevars, permutevars, permutevars, permutevars, permutevars, permutevars) );
445 if(
scip->set->misc_estimexternmem )
467 size_t nusedcleanbuffers;
484 scip->stat->prevrunnvars =
scip->transprob->nvars;
492 scip->conflictstore,
scip->eventqueue,
scip->eventfilter,
scip->cliquetable) );
504 scip->tree->root->estimate =
scip->tree->root->lowerbound;
505 scip->stat->rootlowerbound =
scip->tree->root->lowerbound;
506 if(
scip->set->exact_enable )
543 size_t nusedcleanbuffers;
570 for( v =
nvars - 1; v >= 0; --v )
614 int nlocalbdchgs = 0;
621 &nlocalbdchgs, infeasible) );
624 "clique table cleanup detected %d bound changes%s\n", nlocalbdchgs, *infeasible ?
" and infeasibility" :
"");
648 scip->conflictstore,
scip->eventqueue,
scip->eventfilter,
scip->cliquetable) );
701#ifdef SCIP_DISABLED_CODE
702 int oldpresolstart = 0;
703 int oldpropstart = 0;
704 int oldconsstart = 0;
713 size_t nusedcleanbuffers;
724 assert((presolend ==
scip->set->npresols && propend ==
scip->set->nprops && consend ==
scip->set->nconshdlrs)
725 || (*presolstart == 0 && *propstart == 0 && *consstart == 0));
751#ifdef SCIP_DISABLED_CODE
756 if(
i >= presolend && j >= propend && k >= consend )
759 if(
i == 0 && j == 0 && k == 0 )
760 ++(
scip->stat->npresolroundsext);
774 ++(
scip->stat->npresolroundsfast);
776 ++(
scip->stat->npresolroundsmed);
779 SCIPdebugMsg(
scip,
"starting presolving round %d (%d/%d/%d), timing = %u\n",
780 scip->stat->npresolrounds,
scip->stat->npresolroundsfast,
scip->stat->npresolroundsmed,
781 scip->stat->npresolroundsext, *timing);
784 while( !(*unbounded) && !(*infeasible) && !aborted && (
i < presolend || j < propend) )
797 if( prioprop >= priopresol )
805 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
806 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
807 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
812 lastranpresol =
FALSE;
824 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
825 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
826 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
831 lastranpresol =
TRUE;
844 "propagator <%s> detected infeasibility\n",
SCIPpropGetName(
scip->set->props_presol[j-1]));
852 "presolver <%s> detected unboundedness (or infeasibility)\n",
SCIPpresolGetName(
scip->set->presols[
i-1]));
855 "propagator <%s> detected unboundedness (or infeasibility)\n",
SCIPpropGetName(
scip->set->props_presol[j-1]));
871 *presolstart =
i + 1;
886 while( k < consend && !(*unbounded) && !(*infeasible) && !aborted && !
SCIPisExact(
scip) )
888 SCIPdebugMsg(
scip,
"executing presolve method of constraint handler <%s>\n",
891 *timing,
scip->stat->npresolrounds,
892 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
893 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
894 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
911 "constraint handler <%s> detected unboundedness (or infeasibility)\n",
936 while( !(*unbounded) && !(*infeasible) && !aborted && (
i < presolend || j < propend) )
941 priopresol = -INT_MAX;
943 if( j < scip->
set->nprops )
949 if( prioprop >= priopresol )
955 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
956 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
957 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
962 lastranpresol =
FALSE;
971 &
scip->stat->npresolfixedvars, &
scip->stat->npresolaggrvars, &
scip->stat->npresolchgvartypes,
972 &
scip->stat->npresolchgbds, &
scip->stat->npresoladdholes, &
scip->stat->npresoldelconss,
973 &
scip->stat->npresoladdconss, &
scip->stat->npresolupgdconss, &
scip->stat->npresolchgcoefs,
978 lastranpresol =
TRUE;
991 "propagator <%s> detected infeasibility\n",
SCIPpropGetName(
scip->set->props_presol[j-1]));
999 "presolver <%s> detected unboundedness (or infeasibility)\n",
SCIPpresolGetName(
scip->set->presols[
i-1]));
1002 "propagator <%s> detected unboundedness (or infeasibility)\n",
SCIPpropGetName(
scip->set->props_presol[j-1]));
1007 scip->branchcand) );
1018 *presolstart =
i + 1;
1033 if( !(*unbounded) && !(*infeasible) )
1035 int nlocalbdchgs = 0;
1039 &nlocalbdchgs, infeasible) );
1041 if( nlocalbdchgs > 0 || *infeasible )
1043 "clique table cleanup detected %d bound changes%s\n", nlocalbdchgs, *infeasible ?
" and infeasibility" :
"");
1045 scip->stat->npresolfixedvars += nlocalbdchgs;
1050 if( !*infeasible &&
scip->set->nheurs > 0 &&
scip->set->nactivebenders == 0 )
1072 "feasible solution found by %s heuristic after %.1f seconds, objective value %.6e\n",
1078 if( !(*unbounded) && !(*infeasible) )
1087 SCIPdebugMsg(
scip,
"not enough reductions in %s presolving, running %s presolving now...\n",
1104 propstart, propend, consstart, consend) );
1106#ifdef SCIP_DISABLED_CODE
1108 else if( (oldpresolstart > 0 || oldpropstart > 0 || oldconsstart > 0) && presolend ==
scip->set->npresols
1109 && propend ==
scip->set->nprops && consend ==
scip->set->nconshdlrs )
1111 int newpresolstart = 0;
1112 int newpropstart = 0;
1113 int newconsstart = 0;
1115 SCIPdebugMsg(
scip,
"reached end of exhaustive presolving loop, starting from the beginning...\n");
1118 oldpresolstart, &newpropstart, oldpropstart, &newconsstart, oldconsstart) );
1120 *presolstart = newpresolstart;
1121 *propstart = newpropstart;
1122 *consstart = newconsstart;
1149 int presolstart = 0;
1154 size_t nusedbuffers;
1155 size_t nusedcleanbuffers;
1201 if(
scip->set->nheurs > 0 &&
scip->set->nactivebenders == 0 )
1222 "feasible solution found by %s heuristic after %.1f seconds, objective value %.6e\n",
1230 *infeasible =
FALSE;
1232 *vanished =
scip->transprob->nvars == 0 &&
scip->transprob->nconss == 0 &&
scip->set->nactivepricers == 0;
1234 finished = (
scip->set->presol_maxrounds != -1 &&
scip->stat->npresolrounds >=
scip->set->presol_maxrounds)
1235 || (*unbounded) || (*vanished) || (
scip->set->reopt_enable &&
scip->stat->nreoptruns >= 1);
1241 while( !finished && !stopped )
1244 scip->stat->lastnpresolfixedvars =
scip->stat->npresolfixedvars;
1245 scip->stat->lastnpresolaggrvars =
scip->stat->npresolaggrvars;
1246 scip->stat->lastnpresolchgvartypes =
scip->stat->npresolchgvartypes;
1247 scip->stat->lastnpresolchgbds =
scip->stat->npresolchgbds;
1248 scip->stat->lastnpresoladdholes =
scip->stat->npresoladdholes;
1249 scip->stat->lastnpresoldelconss =
scip->stat->npresoldelconss;
1250 scip->stat->lastnpresoladdconss =
scip->stat->npresoladdconss;
1251 scip->stat->lastnpresolupgdconss =
scip->stat->npresolupgdconss;
1252 scip->stat->lastnpresolchgcoefs =
scip->stat->npresolchgcoefs;
1253 scip->stat->lastnpresolchgsides =
scip->stat->npresolchgsides;
1254#ifdef SCIP_DISABLED_CODE
1255 scip->stat->lastnpresolimplications =
scip->stat->nimplications;
1269 lastround = (
scip->set->presol_maxrounds == -1 ?
FALSE : (
scip->stat->npresolrounds + 1 >=
scip->set->presol_maxrounds));
1277 &presolstart,
scip->set->npresols, &propstart,
scip->set->nprops, &consstart,
scip->set->nconshdlrs) );
1282 SCIPdebugMsg(
scip,
"presolving round %d returned with unbounded = %u, infeasible = %u, finished = %u\n",
scip->stat->npresolrounds, *unbounded, *infeasible, finished);
1285 *vanished =
scip->transprob->nvars == 0 &&
scip->transprob->nconss == 0 &&
scip->set->nactivepricers == 0;
1286 finished = finished || *unbounded || *infeasible || *vanished;
1289 scip->stat->npresolrounds++;
1295 "(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, %d implints\n",
1300 scip->stat->npresolfixedvars +
scip->stat->npresolaggrvars,
1301 scip->stat->npresoldelconss,
scip->stat->npresoladdconss,
1302 scip->stat->npresolchgbds,
scip->stat->npresolchgsides,
1303 scip->stat->npresolchgcoefs,
scip->stat->npresolupgdconss,
1313 for(
i = 0;
i <
scip->transprob->nfixedvars; ++
i )
1325 if(
scip->primal->nlimsolsfound > 0 )
1332 else if( *unbounded )
1334 if(
scip->primal->nsols >= 1 )
1342 else if(
scip->transprob->nvars == 0 &&
scip->transprob->nconss == 0 )
1358 if(
scip->set->nactivepricers == 0 )
1362 if(
scip->primal->nlimsolsfound > 0 )
1370 if( finished && (!stopped || *unbounded || *infeasible || *vanished) )
1380 *infeasible = *infeasible || infeas;
1385 if( !
scip->set->random_permutevars && !(*infeasible) && !(*unbounded) && !(*vanished) )
1398 maxnonzeros =
MAX(maxnonzeros, 1.0);
1400 scip->stat->nnz = nactivenonzeros;
1405 approxactivenonzeros ?
"more than " :
"", nactivenonzeros, nactivenonzeros/maxnonzeros * 100,
1406 approxchecknonzeros ?
"more than " :
"", nchecknonzeros, nchecknonzeros/maxnonzeros * 100);
1418 "presolving (%d rounds: %d fast, %d medium, %d exhaustive):\n",
scip->stat->npresolrounds,
1419 scip->stat->npresolroundsfast,
scip->stat->npresolroundsmed,
scip->stat->npresolroundsext);
1421 " %d deleted vars, %d deleted constraints, %d added constraints, %d tightened bounds, %d added holes, %d changed sides, %d changed coefficients\n",
1422 scip->stat->npresolfixedvars +
scip->stat->npresolaggrvars,
scip->stat->npresoldelconss,
scip->stat->npresoladdconss,
1423 scip->stat->npresolchgbds,
scip->stat->npresoladdholes,
scip->stat->npresolchgsides,
scip->stat->npresolchgcoefs);
1425 " %d implications, %d cliques, %d implied integral variables (%d bin, %d int, %d cont)\n",
1454 oldnsolsfound =
scip->primal->nsolsfound;
1460 SCIPdebugMsg(
scip,
"try to transfer %d original solutions into the transformed problem space\n", nsols);
1462 ntransvars =
scip->transprob->nvars;
1475 for( s = nsols-1; s >= 0; --s )
1488 solvalset, ntransvars, &added) );
1494 if( naddedsols > 0 )
1497 "transformed %d/%d original solutions to the transformed problem space\n",
1500 scip->stat->nexternalsolsfound +=
scip->primal->nsolsfound - oldnsolsfound;
1544 if(
scip->transprob->nlpenabled && !
scip->set->nlp_disable )
1555 if(
scip->set->misc_estimexternmem &&
scip->stat->nruns <= 1 )
1557 scip->stat->externmemestim *= 2;
1579 if(
scip->set->misc_transorigsols )
1590 scip->tree->root->estimate =
scip->tree->root->lowerbound;
1591 scip->stat->rootlowerbound =
scip->tree->root->lowerbound;
1592 if(
scip->set->exact_enable )
1600 if(
scip->set->misc_calcintegral )
1603 assert(
scip->stat->lastlowerbound ==
scip->tree->root->lowerbound);
1606 scip->stat->lastlowerbound =
scip->tree->root->lowerbound;
1607 if(
scip->set->exact_enable )
1624 if(
scip->set->nactivepricers == 0 )
1635 var =
scip->transprob->vars[v];
1643 objbound +=
obj * bd;
1782 assert( ! restart ||
scip->stat->inrestart );
1882 if(
scip->set->reopt_enable )
1891 if(
scip->set->misc_resetstat )
1937 if( !
scip->set->reopt_enable &&
scip->set->limit_maxorigsol > 0 &&
scip->set->misc_transsolsorig &&
scip->set->nactivebenders == 0 )
1947 nsols =
scip->primal->nsols;
1948 maxsols =
scip->set->limit_maxorigsol;
1953 while( s < nsols && scip->origprimal->nsols < maxsols )
1969 if( !
scip->set->misc_finitesolstore )
1985 if( newsol !=
NULL )
2000 if(
scip->origprimal->nsols > 1 )
2003 "stored the %d best primal solutions in the original solution candidate list\n",
scip->origprimal->nsols);
2005 else if(
scip->origprimal->nsols == 1 )
2008 "stored the best primal solution in the original solution candidate list\n");
2054 if(
scip->set->misc_resetstat && !reducedfree )
2107 if(
scip->set->misc_resetstat )
2142 objlimitreached =
TRUE;
2148 if(
scip->set->reopt_enable )
2152 if(
scip->stat->nruns > 1 )
2154 scip->stat->nnodes,
scip->stat->ntotalnodes,
scip->stat->nruns);
2155 else if(
scip->set->reopt_enable )
2168 if( objlimitreached )
2172 if(
scip->primal->nsolsfound > 0 )
2181 if(
scip->primal->nsolsfound !=
scip->primal->nlimsolsfound )
2200 if(
scip->set->exact_enable &&
scip->primal->nsolsfound > 0 )
2273 if( noldnodes <= 1 )
2277 if(
scip->transprob->nintvars > 0 ||
scip->transprob->nintimplvars > 0 ||
scip->transprob->ncontimplvars > 0 )
2281 "tree compression:\n");
2283 " given tree has %d nodes.\n", noldnodes);
2288 for(
c = 0;
c <
scip->set->ncomprs;
c++)
2299 " <%s> compressed the search tree to %d nodes (rate %g).\n",
SCIPcomprGetName(
scip->set->comprs[
c]),
2300 nnewnodes, ((
SCIP_Real)nnewnodes)/noldnodes);
2310 " search tree could not be compressed.\n");
2330 ++
scip->stat->nreoptruns;
2334 scip->origprob->nvars,
scip->set->limit_maxsol) );
2337 if(
scip->set->reopt_sepaglbinfsubtrees ||
scip->set->reopt_sepabestsol )
2345 if(
scip->stat->nreoptruns == 1 )
2372 scip->transprob->nvars, &reoptrestart) );
2379 scip->eventqueue,
scip->cliquetable,
scip->mem->probmem) );
2395 if(
scip->set->compr_enable )
2412 if(
scip->stat->npresolfixedvars +
scip->stat->npresolaggrvars > 0 )
2414 else if(
scip->stat->npresoldelconss > 0 )
2416 else if(
scip->stat->npresoladdconss > 0 )
2418 else if(
scip->stat->npresolchgbds > 0 )
2420 else if(
scip->stat->npresoladdholes > 0 )
2422 else if(
scip->stat->npresolchgsides > 0 )
2424 else if(
scip->stat->npresolchgcoefs > 0 )
2457 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPpresolve",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE) );
2464 if(
scip->set->misc_catchctrlc )
2471 switch(
scip->set->stage )
2485 if( infeasible || unbounded || vanished )
2496 switch(
scip->stat->status )
2502 "presolving solved problem\n");
2507 "presolving detected infeasibility\n");
2512 "presolving detected unboundedness\n");
2517 "presolving detected unboundedness (or infeasibility)\n");
2533 "presolved problem has %d variables (%d bin, %d int, %d cont) and %d constraints\n",
2534 scip->transprob->nvars,
scip->transprob->nbinvars +
scip->transprob->nbinimplvars,
2535 scip->transprob->nintvars +
scip->transprob->nintimplvars,
scip->transprob->ncontvars +
2536 scip->transprob->ncontimplvars,
scip->transprob->nconss);
2538 for(
h = 0;
h <
scip->set->nconshdlrs; ++
h )
2543 if( nactiveconss > 0 )
2553 "transformed objective value is always integral (scale: ");
2555 if(
scip->transprob->objscaleexact !=
NULL )
2558 scip->transprob->objscaleexact);
2563 scip->transprob->objscale);
2590 if(
scip->set->misc_catchctrlc )
2603 if(
scip->set->exact_enable && !(
scip->set->certificate_filename[0] ==
'-' &&
scip->set->certificate_filename[1] ==
'\0')
2608 "Disable presolving for rigorous certificate of the original problem.\n");
2649 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsolve",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
2682 if(
scip->set->misc_catchctrlc )
2690 restart =
scip->stat->userrestart;
2696 transferstatistics =
TRUE;
2706 if(
scip->stat->userrestart )
2709 scip->stat->nruns,
scip->stat->nnodes);
2712 "(run %d, node %" SCIP_LONGINT_FORMAT ") restarting after %d global fixings of integer variables\n",
2713 scip->stat->nruns,
scip->stat->nnodes,
scip->stat->nrootintfixingsrun);
2727 switch(
scip->set->stage )
2737 statsprinted =
TRUE;
2741 if (
scip->set->reopt_enable )
2756 if(
scip->set->reopt_enable )
2773 if( transferstatistics )
2790 scip->eventqueue,
scip->eventfilter,
scip->cliquetable, &restart) );
2846 children, nchildren, siblings, nsiblings) );
2851 if(
scip->set->misc_catchctrlc )
2854 if(
scip->set->reopt_enable )
2860 nsols =
scip->set->reopt_savesols == -1 ? INT_MAX :
MAX(
scip->set->reopt_savesols, 1);
2861 nsols =
MIN(
scip->primal->nsols, nsols);
2863 for( s = 0; s < nsols; s++ )
2882 if( s == 0 &&
scip->set->reopt_sepabestsol )
2885 scip->origprob->vars,
scip->origprob->nvars) );
2895 sol, s == 0, &added,
scip->origprob->vars,
scip->origprob->nvars,
scip->stat->nreoptruns) );
2903 if(
scip->set->reopt_storevarhistory )
2906 scip->origprob->vars,
scip->origprob->nvars) );
2915 if(
scip->set->reopt_enable &&
scip->set->reopt_commontimelimit )
2922 timelimit = timelimit - usedtime;
2923 timelimit =
MAX(0, timelimit);
2971 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsolveConcurrent",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
2975 SCIPerrorMessage(
"SCIP was compiled without task processing interface. Concurrent solve not possible\n");
2982 SCIPerrorMessage(
"Concurrent solve not implemented for exact solving mode.\n");
2988 minnthreads =
scip->set->parallel_minnthreads;
2989 maxnthreads =
scip->set->parallel_maxnthreads;
2991 if( minnthreads > maxnthreads )
2993 SCIPerrorMessage(
"minimum number of threads greater than maximum number of threads\n");
2998 int nconcsolvertypes;
3005 int ncandsolvertypes;
3011 if(
scip->set->concurrent_presolvebefore )
3038 memorylimit =
scip->set->limit_memory;
3044 if( !
scip->set->misc_avoidmemout )
3051 nthreads = minnthreads;
3058 if( minnthreads > nthreads )
3063 SCIPwarningMessage(
scip,
"requested minimum number of threads could not be satisfied with given memory limit\n");
3074 nthreads =
MIN(nthreads, maxnthreads);
3081 for(
i = 0;
i < nconcsolvertypes; ++
i )
3083 assert(prefpriosum != 0.0);
3085 ncandsolvertypes = 0;
3089 for(
i = 0;
i < nconcsolvertypes; ++
i )
3096 j = ncandsolvertypes++;
3100 prios[j] =
MIN(1.0, prio);
3113 for(
i = 0;
i < nthreads; ++
i )
3161 if( (enable &&
scip->set->reopt_enable &&
scip->reopt !=
NULL)
3162 || (!enable && !
scip->set->reopt_enable &&
scip->reopt ==
NULL) )
3175 SCIPerrorMessage(
"Reoptimization cannot be %s after starting the (pre)solving process.\n", enable ?
"enabled" :
"disabled");
3180 if(
scip->set->exact_enable )
3182 SCIPerrorMessage(
"Reoptimization cannot (yet) be started in exact solving mode.\n");
3190 if( enable &&
scip->reopt ==
NULL )
3193 scip->set->reopt_enable = enable;
3199 else if( (!enable &&
scip->reopt !=
NULL) || (!enable &&
scip->set->reopt_enable &&
scip->reopt ==
NULL) )
3202 scip->set->reopt_enable = enable;
3215 scip->set->reopt_enable = enable;
3238 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddReoptDualBndchg",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3258 if(
scip->set->reopt_enable &&
scip->stat->nreoptruns > 1 )
3284 assert(0 < run && run <= scip->stat->nreoptruns);
3286 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetReoptOldObjCoef",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3336 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfreeSolve",
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3338 switch(
scip->set->stage )
3403 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfreeReoptSolve",
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3405 switch(
scip->set->stage )
3468 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfreeTransform",
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
3476 switch(
scip->set->stage )
3552 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinterruptSolve",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
3584 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisSolveInterrupted",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
3586 return scip->stat->userinterrupt;
3607 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPrestartSolve",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3622 return scip->set->reopt_enable;
3638 if(
scip->set->reopt_enable )
3640 assert(run > 0 && run <= scip->stat->nreoptruns);
3660 if(
scip->set->reopt_enable )
3686 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPcheckReoptRestart",
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3689 scip->transprob->nvars, restart) );
3713 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisInRestart",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
3716 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
SCIP_RETCODE SCIPcertificatePrintResult(SCIP *scip, SCIP_Bool isorigfile, SCIP_SET *set, SCIP_CERTIFICATE *certificate)
SCIP_CERTIFICATE * SCIPgetCertificate(SCIP *scip)
SCIP_RETCODE SCIPcertificateClearMirinfo(SCIP *scip)
SCIP_RETCODE SCIPcertificateSaveFinalbound(SCIP *scip, SCIP_CERTIFICATE *certificate)
SCIP_Bool SCIPcertificateIsEnabled(SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPcertificateClearAggrinfo(SCIP *scip)
SCIP_RETCODE SCIPcertificateExit(SCIP *scip)
SCIP_RETCODE SCIPcertificateInit(SCIP *scip, SCIP_CERTIFICATE *certificate, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
methods for certificate output
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
internal methods for conflict analysis
SCIP_RETCODE SCIPconflictCreate(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_RETCODE SCIPconflictFree(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
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 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)
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)
SCIP_RETCODE SCIPtransformDecompstore(SCIP *scip)
internal methods for decompositions and the decomposition store
#define SCIPdebugFreeSol(set)
#define SCIPcheckStage(scip, method, init, problem, transforming, transformed, initpresolve, presolving, exitpresolve, presolved, initsolve, solving, solved, exitsolve, freetrans, freescip)
#define SCIPdebugReset(set)
#define SCIP_CALL_ABORT(x)
#define SCIP_LONGINT_FORMAT
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)
int SCIPgetNIntVars(SCIP *scip)
SCIP_RETCODE SCIPpermuteProb(SCIP *scip, unsigned int randseed, SCIP_Bool permuteconss, SCIP_Bool permutebinvars, SCIP_Bool permuteintvars, SCIP_Bool permutebinimplvars, SCIP_Bool permuteintimplvars, SCIP_Bool permutecontimplvars, SCIP_Bool permutecontvars)
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_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)
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_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name)
int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsActive(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)
SCIP_Bool SCIPisExact(SCIP *scip)
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_BLKMEM * SCIPblkmem(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_RETCODE SCIPrationalCreateBlock(BMS_BLKMEM *blkmem, SCIP_RATIONAL **rational)
void SCIPrationalSetInfinity(SCIP_RATIONAL *res)
void SCIPrationalPrintVerbInfo(SCIP_MESSAGEHDLR *msg, SCIP_VERBLEVEL verblevel, SCIP_VERBLEVEL msgverblevel, SCIP_RATIONAL *rational)
void SCIPrationalSetReal(SCIP_RATIONAL *res, SCIP_Real real)
void SCIPrationalFreeBuffer(BMS_BUFMEM *bufmem, SCIP_RATIONAL **rational)
SCIP_RETCODE SCIPrationalCreateBuffer(BMS_BUFMEM *bufmem, SCIP_RATIONAL **rational)
void SCIPrationalSetRational(SCIP_RATIONAL *res, SCIP_RATIONAL *src)
void SCIPrationalMessage(SCIP_MESSAGEHDLR *msg, FILE *file, SCIP_RATIONAL *rational)
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_RETCODE SCIPgetReoptSolsRun(SCIP *scip, int run, SCIP_SOL **sols, int solssize, int *nsols)
SCIP_Bool SCIPisReoptEnabled(SCIP *scip)
SCIP_RETCODE SCIPenableReoptimization(SCIP *scip, SCIP_Bool enable)
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)
SCIP_RETCODE SCIPtrySolFreeExact(SCIP *scip, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
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 SCIPcreateSolExact(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
SCIP_RETCODE SCIPtransformProb(SCIP *scip)
SCIP_RETCODE SCIPrestartSolve(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 SCIPgetGap(SCIP *scip)
SCIP_Real SCIPgetDualbound(SCIP *scip)
void SCIPgetDualboundExact(SCIP *scip, SCIP_RATIONAL *result)
void SCIPgetPrimalboundExact(SCIP *scip, SCIP_RATIONAL *result)
void SCIPstoreSolutionGap(SCIP *scip)
SCIP_Real SCIPgetSolvingTime(SCIP *scip)
SCIP_Real SCIPinfinity(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 SCIPvarGetObj(SCIP_VAR *var)
int SCIPvarGetIndex(SCIP_VAR *var)
SCIP_Real SCIPvarGetWorstBoundGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, 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, SCIP_EVENTFILTER *eventfilter, 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
SCIP_RETCODE SCIPlpExactReset(SCIP_LPEXACT *lpexact, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue)
SCIP_RETCODE SCIPlpExactCreate(SCIP_LPEXACT **lpexact, BMS_BLKMEM *blkmem, SCIP_LP *fplp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *name)
SCIP_RETCODE SCIPlpExactFree(SCIP_LPEXACT **lpexact, BMS_BLKMEM *blkmem, SCIP_SET *set)
internal methods for exact LP management
size_t BMSgetNUsedBufferMemory(BMS_BUFMEM *buffer)
memory allocation routines
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 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 SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
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 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 SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem)
internal methods for collecting primal CIP solutions and primal informations
SCIP_RETCODE SCIPprobExitPresolve(SCIP_PROB *prob, SCIP_SET *set)
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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CONFLICTSTORE *conflictstore, SCIP_PROB **target)
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)
int SCIPprobGetNImplVars(SCIP_PROB *prob)
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 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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
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 certified solving
public methods for concurrent solving mode
public methods for constraint handler plugins and constraints
public methods for exact solving
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 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_Bool hasPresolveModifiedProblem(SCIP *scip)
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
SCIP_RETCODE SCIPsepastoreExactFree(SCIP_SEPASTOREEXACT **sepastoreexact)
SCIP_RETCODE SCIPsepastoreExactClearCuts(SCIP_SEPASTOREEXACT *sepastoreexact, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LPEXACT *lp)
SCIP_RETCODE SCIPsepastoreExactCreate(SCIP_SEPASTOREEXACT **sepastoreexact, SCIP_SET *set)
internal methods for storing separated exact 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)
SCIP_RETCODE SCIPsetCheckParamValuePtrUnique(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 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)
SCIP_RETCODE SCIPsolCheckOrig(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool checkmodifiable, SCIP_Bool *feasible)
internal methods for storing primal CIP solutions
SCIP_Bool SCIPsolveIsStopped(SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool checknodelimits)
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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *restart)
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
the type definitions for the SCIP parallel interface
SCIP_Bool SCIPtpiIsAvailable(void)
SCIP_RETCODE SCIPtreeFree(SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
SCIP_NODE * SCIPtreeGetFocusNode(SCIP_TREE *tree)
SCIP_NODE * SCIPtreeGetCurrentNode(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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
SCIP_RETCODE SCIPtreeCreateRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
int SCIPtreeGetNNodes(SCIP_TREE *tree)
SCIP_RETCODE SCIPtreeClear(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, 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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
SCIP_RETCODE SCIPtreeCreate(SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_NODESEL *nodesel)
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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff, SCIP_Bool postponed, SCIP_Bool exitsolve)
internal methods for branch and bound tree
struct SCIP_Branchrule SCIP_BRANCHRULE
struct SCIP_ConcSolver SCIP_CONCSOLVER
struct SCIP_ConcSolverType SCIP_CONCSOLVERTYPE
struct SCIP_Cons SCIP_CONS
#define SCIP_EVENTTYPE_PRESOLVEROUND
#define SCIP_EVENTTYPE_DUALBOUNDIMPROVED
struct SCIP_Event SCIP_EVENT
struct SCIP_RandNumGen SCIP_RANDNUMGEN
struct SCIP_Rational SCIP_RATIONAL
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
struct SCIP_Node SCIP_NODE
@ 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)