108#define NUMSTOP 9007199254740992.0
112#define SOLSTOP 10000000.0
123 if( !
set->conf_enable || !(
set->conf_useprop ||
set->conf_usegenres ) )
245 if( bdchginfo1 == bdchginfo2 )
294 conflictBdchginfoComp,
NULL) );
296 conflictBdchginfoComp,
NULL) );
298 conflictBdchginfoComp,
NULL) );
300 conflictBdchginfoComp,
NULL) );
302 (*conflict)->conflictsets =
NULL;
303 (*conflict)->conflictsetscores =
NULL;
304 (*conflict)->conflictvarslbs =
NULL;
305 (*conflict)->conflictvarsubs =
NULL;
306 (*conflict)->tmpbdchginfos =
NULL;
307 (*conflict)->conflictprobnvars = 0;
308 (*conflict)->conflictsetssize = 0;
309 (*conflict)->nconflictsets = 0;
310 (*conflict)->conflictrows =
NULL;
311 (*conflict)->nconflictrows = 0;
312 (*conflict)->proofsets =
NULL;
313 (*conflict)->proofsetssize = 0;
314 (*conflict)->nproofsets = 0;
315 (*conflict)->tmpbdchginfossize = 0;
316 (*conflict)->ntmpbdchginfos = 0;
317 (*conflict)->count = 0;
318 (*conflict)->nglbchgbds = 0;
319 (*conflict)->nappliedglbconss = 0;
320 (*conflict)->nappliedglbresconss = 0;
321 (*conflict)->nappliedglbliterals = 0;
322 (*conflict)->nlocchgbds = 0;
323 (*conflict)->nappliedlocconss = 0;
324 (*conflict)->nappliedlocliterals = 0;
325 (*conflict)->npropcalls = 0;
326 (*conflict)->npropsuccess = 0;
327 (*conflict)->npropconfconss = 0;
328 (*conflict)->npropconfliterals = 0;
329 (*conflict)->npropreconvconss = 0;
330 (*conflict)->npropreconvliterals = 0;
331 (*conflict)->ninflpcalls = 0;
332 (*conflict)->ninflpsuccess = 0;
333 (*conflict)->ninflpconfconss = 0;
334 (*conflict)->ninflpconfliterals = 0;
335 (*conflict)->ninflpreconvconss = 0;
336 (*conflict)->ninflpreconvliterals = 0;
337 (*conflict)->ninflpiterations = 0;
338 (*conflict)->nboundlpcalls = 0;
339 (*conflict)->nboundlpsuccess = 0;
340 (*conflict)->nboundlpconfconss = 0;
341 (*conflict)->nboundlpconfliterals = 0;
342 (*conflict)->nboundlpreconvconss = 0;
343 (*conflict)->nboundlpreconvliterals = 0;
344 (*conflict)->nboundlpiterations = 0;
345 (*conflict)->nsbcalls = 0;
346 (*conflict)->nsbsuccess = 0;
347 (*conflict)->nsbconfconss = 0;
348 (*conflict)->nsbconfliterals = 0;
349 (*conflict)->nsbreconvconss = 0;
350 (*conflict)->nsbreconvliterals = 0;
351 (*conflict)->nsbiterations = 0;
352 (*conflict)->npseudocalls = 0;
353 (*conflict)->npseudosuccess = 0;
354 (*conflict)->npseudoconfconss = 0;
355 (*conflict)->npseudoconfliterals = 0;
356 (*conflict)->npseudoreconvconss = 0;
357 (*conflict)->npseudoreconvliterals = 0;
358 (*conflict)->ndualproofsinfglobal = 0;
359 (*conflict)->ndualproofsinflocal = 0;
360 (*conflict)->ndualproofsinfsuccess = 0;
361 (*conflict)->dualproofsinfnnonzeros = 0;
362 (*conflict)->ndualproofsbndglobal = 0;
363 (*conflict)->ndualproofsbndlocal = 0;
364 (*conflict)->ndualproofsbndsuccess = 0;
365 (*conflict)->dualproofsbndnnonzeros = 0;
366 (*conflict)->nrescalls = 0;
367 (*conflict)->nressuccess = 0;
368 (*conflict)->nreslargecoefs = 0;
369 (*conflict)->nreslongconfs = 0;
370 (*conflict)->nresconfconss = 0;
371 (*conflict)->nresconfvariables = 0;
372 (*conflict)->conflictrowssize = 0;
373 (*conflict)->bdchgonlyresqueue =
FALSE;
374 (*conflict)->bdchgonlyconfqueue =
FALSE;
391 assert((*conflict)->nconflictsets == 0);
392 assert((*conflict)->ntmpbdchginfos == 0);
394#if defined(SCIP_CONFGRAPH) || defined(SCIP_CONFGRAPH_DOT)
449 if(
var->conflictlbcount == conflict->
count )
452 return var->conflictrelaxedlb;
466 if(
var->conflictubcount == conflict->
count )
469 return var->conflictrelaxedub;
915 negated = weight < 0.0;
931 SCIPsetDebugMsg(
set,
" -> add %s row <%s>[%g,%g](lp depth: %d): dual=%g -> dualrhs=%g\n",
932 row->
local ?
"local" :
"global",
950 *zerocontribution =
TRUE;
955 *zerocontribution =
FALSE;
968 for(
i = 0;
i < row->
len && *zerocontribution;
i++ )
971 *zerocontribution =
FALSE;
974 if( !(*zerocontribution) )
976 SCIPsetDebugMsg(
set,
" -> invalid dual solution value %g for row <%s>: lhs=%g, rhs=%g\n",
1016 if( infdelta !=
NULL )
1019 for(
i = 0;
i < nnz;
i++ )
1027 val = aggrrow->
vals[v];
1091 if(
set->exact_enable )
1102 if( infdelta !=
NULL )
1105 for(
i = 0;
i < nnz;
i++ )
1121 if( infdelta !=
NULL )
1135 if( infdelta !=
NULL )
1179 assert(rowdepth[0] <= rowdepth[nrows-1]);
1184 for(
i = 0;
i < nrows;
i++ )
1189 rownnz[
i] = row->
len;
1193 for(
i = 0;
i < nrows;
i++ )
1196 int d = rowdepth[
i];
1199 while( j+1 < nrows && rowdepth[j+1] == d )
1210 assert(rownnz[
i] <= rownnz[j]);
1216 for(
i = 0;
i < nrows-1;
i++ )
1217 assert(rowdepth[
i] < rowdepth[
i+1] || (rowdepth[
i] == rowdepth[
i+1] && rownnz[
i] <= rownnz[
i+1]));
1252 if( !
set->conf_uselocalrows )
1281 for(
i = 0;
i < nlocalrows; ++
i )
1286 r = localrowinds[
i];
1305 assert(!zerocontribution);
1317 if( *validdepth < localrowdepth[
i] )
1318 *validdepth = localrowdepth[
i];
1426 localrowinds =
NULL;
1427 localrowdepth =
NULL;
1434 for(
r = 0;
r < nrows; ++
r )
1447 for(
r = 0;
r < nrows; ++
r )
1466 if( zerocontribution )
1485 assert(certificate_index != LONG_MAX);
1514 localrowinds[nlocalrows] =
r;
1515 localrowdepth[nlocalrows++] = lpdepth;
1544 if( nlocalrows > 0 &&
set->conf_uselocalrows > 0 )
1547 nlocalrows, farkasact, validdepth, curvarlbs, curvarubs,
valid) );
1556 if(
set->exact_enable )
1558 for(
int i = 0;
i < farkasrow->
nnz;
i++ )
1572 for(
int i = 0;
i < farkasrow->
nrows;
i++ )
1640 col =
scip->lpexact->cols[
i];
1673 valsexact[nvals] = val;
1674 cols[nvals] =
scip->lp->cols[
i];
1675 colsexact[nvals] =
scip->lpexact->cols[
i];
1751 localrowinds =
NULL;
1752 localrowdepth =
NULL;
1784 for(
r = 0;
r < nrows; ++
r )
1793 if(
set->exact_enable )
1808 if(
set->exact_enable )
1835 if( !
set->exact_enable )
1858 for(
r = 0;
r < nrows; ++
r )
1877 if( zerocontribution )
1912 localrowinds[nlocalrows] =
r;
1913 localrowdepth[nlocalrows++] = lpdepth;
1942 if( nlocalrows > 0 &&
set->conf_uselocalrows > 0 )
1945 nlocalrows, farkasact, validdepth, curvarlbs, curvarubs,
valid) );
1964 usedrows[0] = objectiverow;
1965 for(
int i = 1;
i < farkasrow->
nrows;
i++ )
1990 if( objectiverow !=
NULL )
2044 if(
set->exact_enable )
2056 if( success !=
NULL )
2060 if( !
set->conf_enable || !
set->conf_usepseudo )
2064 if(
set->nconflicthdlrs == 0 )
2067 SCIPsetDebugMsg(
set,
"analyzing pseudo solution (obj: %g) that exceeds objective limit (%g)\n",
2107 for( v = 0; v <
nvars; ++v )
2113 lbchginfoposs[v] =
var->nlbchginfos-1;
2114 ubchginfoposs[v] =
var->nubchginfos-1;
2118 pseudocoefs[v] = 0.0;
2122 if( pseudocoefs[v] > 0.0 )
2123 pseudoact += pseudocoefs[v] * curvarubs[v];
2125 pseudoact += pseudocoefs[v] * curvarlbs[v];
2128 SCIPsetDebugMsg(
set,
" -> recalculated pseudo infeasibility proof: %g <= %g\n", pseudolhs, pseudoact);
2136 int nreconvliterals;
2142 curvarlbs, curvarubs, lbchginfoposs, ubchginfoposs,
NULL,
NULL,
NULL, lp->
lpi) );
2146 lbchginfoposs, ubchginfoposs, &nconss, &nliterals, &nreconvconss, &nreconvliterals) );
2152 if( success !=
NULL )
2153 *success = (nconss > 0);
2166 SCIP_CALL(
SCIPconflictFlushConss(conflict, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue, eventfilter, cliquetable) );
2267 int* nreconvliterals,
2300 *dualproofsuccess =
FALSE;
2305 *nreconvliterals = 0;
2358 (*iterations) += iter;
2400 farkasactivity = 0.0;
2418 lbchginfoposs[v] =
var->nlbchginfos-1;
2419 ubchginfoposs[v] =
var->nubchginfos-1;
2432 lbchginfoposs[v] =
var->nlbchginfos;
2440 ubchginfoposs[v] =
var->nubchginfos;
2459 curvarlbs, curvarubs, &
valid) );
2466 curvarlbs, curvarubs, &
valid) );
2475 globalinfeasible =
FALSE;
2482 SCIP_CALL(
SCIPconflictAnalyzeDualProof(conflict,
set, stat, eventfilter, blkmem, origprob, transprob, tree, reopt, lp,
2483 farkasrow, validdepth, curvarlbs, curvarubs,
TRUE, &globalinfeasible, dualproofsuccess) );
2503 SCIPsetDebugMsg(
set,
"analyzing conflict on infeasible LP (infeasible: %u, objlimexc: %u, optimal:%u) in depth %d (diving: %u)\n",
2516 farkasactivity = -farkasactivity;
2521 for( v = 0; v < nnz; v++ )
2530 SCIP_CALL(
SCIPrunBoundHeuristic(conflict,
set, stat, origprob, transprob, tree, reopt, lp, lpi, eventfilter,
2531 blkmem, farkascoefs, &farkaslhs, &farkasactivity, curvarlbs, curvarubs, lbchginfoposs, ubchginfoposs, iterations,
2532 marklpunsolved, dualproofsuccess, &
valid) );
2539 goto FLUSHPROOFSETS;
2545 lbchginfoposs, ubchginfoposs, nconss, nliterals, nreconvconss, nreconvliterals) );
2547 SCIP_CALL(
SCIPconflictFlushConss(conflict, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand,
2548 eventqueue, eventfilter, cliquetable) );
2559 SCIP_CALL(
SCIPconflictFlushProofset(conflict, conflictstore, blkmem,
set, stat, transprob, origprob, tree, reopt, lp,
2560 branchcand, eventqueue, eventfilter, cliquetable) );
2613 int nreconvliterals;
2627 if( downconflict !=
NULL )
2628 *downconflict =
FALSE;
2629 if( upconflict !=
NULL )
2630 *upconflict =
FALSE;
2633 if( !
set->conf_enable || !
set->conf_usesb )
2637 if(
set->nconflicthdlrs == 0 )
2663 if( newub >= col->
lb - 0.5 )
2665 SCIPsetDebugMsg(
set,
"analyzing conflict on infeasible downwards strongbranch for variable <%s>[%g,%g] in depth %d\n",
2698 SCIPsetDebugMsg(
set,
" -> resolved downwards strong branching LP in %d iterations\n", iter);
2702 lp, branchcand, eventqueue, eventfilter, cliquetable,
TRUE, &dualraysuccess, &iter, &nconss,
2703 &nliterals, &nreconvconss, &nreconvliterals,
FALSE) );
2704 conflict->
nsbsuccess += ((nconss > 0 || dualraysuccess) ? 1 : 0);
2710 if( downconflict !=
NULL )
2711 *downconflict = (nconss > 0);
2730 if( newlb <= col->ub + 0.5 )
2732 SCIPsetDebugMsg(
set,
"analyzing conflict on infeasible upwards strongbranch for variable <%s>[%g,%g] in depth %d\n",
2765 SCIPsetDebugMsg(
set,
" -> resolved upwards strong branching LP in %d iterations\n", iter);
2769 lp, branchcand, eventqueue, eventfilter, cliquetable,
TRUE, &dualraysuccess, &iter, &nconss,
2770 &nliterals, &nreconvconss, &nreconvliterals,
FALSE) );
2771 conflict->
nsbsuccess += ((nconss > 0 || dualraysuccess) ? 1 : 0);
2777 if( upconflict !=
NULL )
2778 *upconflict = (nconss > 0);
2851 int nreconvliterals;
2861 if( !
set->conf_enable ||
set->conf_useinflp ==
'o' )
2865 if(
set->nconflicthdlrs == 0 )
2868 SCIPsetDebugMsg(
set,
"analyzing conflict on infeasible LP in depth %d (solstat: %d, objchanged: %u)\n",
2880 SCIP_CALL(
conflictAnalyzeLP(conflict, conflictstore, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,
2881 eventfilter, cliquetable,
SCIPlpDiving(lp), &dualraysuccess, &iterations, &nconss, &nliterals, &nreconvconss, &nreconvliterals,
TRUE) );
2888 if( success !=
NULL )
2928 int nreconvliterals;
2939 if( !
set->conf_enable ||
set->conf_useboundlp ==
'o')
2943 if(
set->nconflicthdlrs == 0 )
2946 SCIPsetDebugMsg(
set,
"analyzing conflict on bound exceeding LP in depth %d (solstat: %d)\n",
2960 SCIP_CALL(
conflictAnalyzeLP(conflict, conflictstore, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,
2961 eventfilter, cliquetable,
SCIPlpDiving(lp), &dualraysuccess, &iterations, &nconss, &nliterals, &nreconvconss, &nreconvliterals,
TRUE) );
2968 if( success !=
NULL )
3008 if( success !=
NULL )
3012 if( !
set->conf_enable || (
set->conf_useinflp ==
'o' &&
set->conf_useboundlp ==
'o') )
3072 reopt, lp, branchcand, eventqueue, eventfilter, cliquetable, success) );
3077 reopt, lp, branchcand, eventqueue, eventfilter, cliquetable, success) );
SCIP_RETCODE SCIPcertificatePrintAggrrow(SCIP_SET *set, SCIP_PROB *prob, SCIP_CERTIFICATE *certificate, SCIP_AGGRROW *aggrrow, SCIP_ROW **aggrrows, SCIP_Real *weights, int naggrrows, SCIP_Bool local, SCIP_Longint *certificateline)
SCIP_CERTIFICATE * SCIPgetCertificate(SCIP *scip)
SCIP_Longint SCIPcertificateGetRowIndex(SCIP_CERTIFICATE *certificate, SCIP_ROWEXACT *row, SCIP_Bool rhs)
SCIP_RETCODE SCIPcertificatePrintMirCut(SCIP_SET *set, SCIP_LP *lp, SCIP_CERTIFICATE *certificate, SCIP_PROB *prob, SCIP_ROW *row, const char sense)
SCIP_RETCODE SCIPcertificatePrintCutoffBound(SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_RATIONAL *bound, SCIP_Longint *certificateline)
methods for certificate output
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
internal methods for clocks and timing issues
internal methods for conflict analysis
void SCIPproofsetFree(SCIP_PROOFSET **proofset, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPconflictInitProofset(SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPconflictFlushProofset(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CLIQUETABLE *cliquetable)
SCIP_RETCODE SCIPconflictAnalyzeDualProof(SCIP_CONFLICT *conflict, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_AGGRROW *proofrow, int validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool initialproof, SCIP_Bool *globalinfeasible, SCIP_Bool *success)
int SCIPproofsetGetNVars(SCIP_PROOFSET *proofset)
int SCIPconflictGetNConflicts(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNAppliedGlobalConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsInfLocal(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNAppliedLocalLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNResConflictVars(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPropCalls(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNStrongbranchIterations(SCIP_CONFLICT *conflict)
SCIP_Real SCIPconflictGetInfeasibleLPTime(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNInfeasibleLPCalls(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPgetFarkasProof(SCIP_SET *set, SCIP_PROB *prob, SCIP_LP *lp, SCIP_LPI *lpi, SCIP_TREE *tree, SCIP_AGGRROW *farkasrow, SCIP_Real *farkasact, int *validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *valid)
SCIP_RETCODE SCIPconflictCreate(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_Real SCIPconflictGetGlobalApplTime(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPgetDualProof(SCIP_SET *set, SCIP_PROB *transprob, SCIP_LP *lp, SCIP_LPI *lpi, SCIP_TREE *tree, SCIP_AGGRROW *farkasrow, SCIP_Real *farkasact, int *validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *valid)
SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNGlobalChgBds(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPconflictClearQueues(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNAppliedLiterals(SCIP_CONFLICT *conflict)
static SCIP_Bool checkDualFeasibility(SCIP_SET *set, SCIP_ROW *row, SCIP_Real weight, SCIP_Bool *zerocontribution)
SCIP_RETCODE SCIPconflictAnalyzeLP(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
SCIP_Longint SCIPconflictGetNPropConflictLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNAppliedConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNStrongbranchCalls(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPropReconvergenceConss(SCIP_CONFLICT *conflict)
SCIP_Real SCIPconflictGetBoundexceedingLPTime(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals(SCIP_CONFLICT *conflict)
static SCIP_RETCODE conflictAnalyzeBoundexceedingLP(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
SCIP_Real SCIPconflictGetPseudoTime(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals(SCIP_CONFLICT *conflict)
SCIP_Bool SCIPconflictApplicable(SCIP_SET *set)
static SCIP_RETCODE conflictAnalyzeInfeasibleLP(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
static SCIP_RETCODE addLocalRows(SCIP_SET *set, SCIP_PROB *transprob, SCIP_LP *lp, SCIP_AGGRROW *proofrow, SCIP_ROW **rows, SCIP_Real *dualsols, int *localrowinds, int *localrowdepth, int nlocalrows, SCIP_Real *proofact, int *validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *valid)
static SCIP_Real aggrRowGetMinActivitySafely(SCIP_SET *set, SCIP_PROB *transprob, SCIP_AGGRROW *aggrrow, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *infdelta)
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNAppliedLocalConss(SCIP_CONFLICT *conflict)
static SCIP_RETCODE sortLocalRows(SCIP_SET *set, SCIP_AGGRROW *aggrrow, SCIP_ROW **rows, int *rowinds, int *rowdepth, int nrows)
SCIP_RETCODE SCIPconflictAnalyzeStrongbranch(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CLIQUETABLE *cliquetable, SCIP_COL *col, SCIP_Bool *downconflict, SCIP_Bool *upconflict)
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss(SCIP_CONFLICT *conflict)
SCIP_Real SCIPconflictGetVarUb(SCIP_CONFLICT *conflict, SCIP_VAR *var)
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPconflictAnalyzePseudo(SCIP_CONFLICT *conflict, 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, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
SCIP_Real SCIPconflictGetStrongbranchTime(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPseudoSuccess(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals(SCIP_CONFLICT *conflict)
SCIP_Real SCIPaggrRowGetMinActivity(SCIP_SET *set, SCIP_PROB *transprob, SCIP_AGGRROW *aggrrow, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *infdelta)
SCIP_Longint SCIPconflictGetNPseudoConflictLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNLocalChgBds(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsBndSuccess(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPropSuccess(SCIP_CONFLICT *conflict)
static SCIP_RETCODE getObjectiveRow(SCIP *scip, SCIP_ROW **row, SCIP_Real rhs, SCIP_Bool *success)
SCIP_Longint SCIPconflictGetNDualproofsInfSuccess(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPropConflictConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNStrongbranchSuccess(SCIP_CONFLICT *conflict)
static SCIP_RETCODE addRowToAggrRow(SCIP_SET *set, SCIP_ROW *row, SCIP_Real weight, SCIP_AGGRROW *aggrrow, SCIP_Bool safely, SCIP_Bool *success)
SCIP_Real SCIPconflictGetResTime(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsBndGlobal(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsBndLocal(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPseudoCalls(SCIP_CONFLICT *conflict)
static SCIP_RETCODE conflictAnalyzeLP(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool diving, SCIP_Bool *dualproofsuccess, int *iterations, int *nconss, int *nliterals, int *nreconvconss, int *nreconvliterals, SCIP_Bool marklpunsolved)
SCIP_Longint SCIPconflictGetNAppliedResConss(SCIP_CONFLICT *conflict)
void SCIPconflictEnableOrDisableClocks(SCIP_CONFLICT *conflict, SCIP_Bool enable)
SCIP_Real SCIPconflictGetPropTime(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNPseudoConflictConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNDualproofsInfGlobal(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPconflictFree(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
SCIP_Real SCIPconflictGetVarLb(SCIP_CONFLICT *conflict, SCIP_VAR *var)
SCIP_Longint SCIPconflictGetNStrongbranchConflictConss(SCIP_CONFLICT *conflict)
SCIP_Longint SCIPconflictGetNInfeasibleLPIterations(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPconflictFlushConss(SCIP_CONFLICT *conflict, 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, SCIP_CLIQUETABLE *cliquetable)
void SCIPconflictsetFree(SCIP_CONFLICTSET **conflictset, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPconflictAnalyzeRemainingBdchgs(SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool diving, int *lbchginfoposs, int *ubchginfoposs, int *nconss, int *nliterals, int *nreconvconss, int *nreconvliterals)
SCIP_RETCODE SCIPrunBoundHeuristic(SCIP_CONFLICT *conflict, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_LPI *lpi, SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_Real *proofcoefs, SCIP_Real *prooflhs, SCIP_Real *proofactivity, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, int *lbchginfoposs, int *ubchginfoposs, int *iterations, SCIP_Bool marklpunsolved, SCIP_Bool *dualproofsuccess, SCIP_Bool *valid)
SCIP_RETCODE SCIPundoBdchgsProof(SCIP_SET *set, SCIP_PROB *prob, int currentdepth, SCIP_Real *proofcoefs, SCIP_Real prooflhs, SCIP_Real *proofact, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, int *lbchginfoposs, int *ubchginfoposs, SCIP_LPBDCHGS *oldlpbdchgs, SCIP_LPBDCHGS *relaxedlpbdchgs, SCIP_Bool *resolve, SCIP_LPI *lpi)
SCIP_RETCODE SCIPconflictsetCreate(SCIP_CONFLICTSET **conflictset, BMS_BLKMEM *blkmem)
void SCIPconflictRowFree(SCIP_CONFLICTROW **row, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPconflictInitRows(SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem)
internal methods for storing conflicts
internal methods for constraints and constraint handlers
Constraint handler for linear constraints in their most general form, .
methods for the aggregation rows
#define SCIPquadprecProdDD(r, a, b)
#define QUAD_ASSIGN(a, constant)
#define SCIPquadprecSumQQ(r, a, b)
#define SCIP_LONGINT_FORMAT
SCIP_Bool SCIPisObjIntegral(SCIP *scip)
SCIP_RETCODE SCIPhashmapInsertLong(SCIP_HASHMAP *hashmap, void *origin, SCIP_Longint image)
SCIP_RETCODE SCIPhashmapRemove(SCIP_HASHMAP *hashmap, void *origin)
SCIP_Longint SCIPhashmapGetImageLong(SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPlpiGetRealpar(SCIP_LPI *lpi, SCIP_LPPARAM type, SCIP_Real *dval)
SCIP_Real SCIPlpiInfinity(SCIP_LPI *lpi)
SCIP_Bool SCIPlpiIsObjlimExc(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiGetBase(SCIP_LPI *lpi, int *cstat, int *rstat)
SCIP_RETCODE SCIPlpiSetRealpar(SCIP_LPI *lpi, SCIP_LPPARAM type, SCIP_Real dval)
SCIP_RETCODE SCIPlpiGetDualfarkas(SCIP_LPI *lpi, SCIP_Real *dualfarkas)
SCIP_RETCODE SCIPlpiGetObjval(SCIP_LPI *lpi, SCIP_Real *objval)
SCIP_RETCODE SCIPlpiStartStrongbranch(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiChgBounds(SCIP_LPI *lpi, int ncols, const int *ind, const SCIP_Real *lb, const SCIP_Real *ub)
SCIP_Bool SCIPlpiIsDualFeasible(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiSetIntpar(SCIP_LPI *lpi, SCIP_LPPARAM type, int ival)
SCIP_RETCODE SCIPlpiSetBase(SCIP_LPI *lpi, const int *cstat, const int *rstat)
SCIP_Bool SCIPlpiWasSolved(SCIP_LPI *lpi)
SCIP_Bool SCIPlpiIsOptimal(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiEndStrongbranch(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiGetSol(SCIP_LPI *lpi, SCIP_Real *objval, SCIP_Real *primsol, SCIP_Real *dualsol, SCIP_Real *activity, SCIP_Real *redcost)
SCIP_Bool SCIPlpiHasDualRay(SCIP_LPI *lpi)
SCIP_Bool SCIPlpiIsPrimalInfeasible(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiSolveDual(SCIP_LPI *lpi)
SCIP_RETCODE SCIPlpiGetIterations(SCIP_LPI *lpi, int *iterations)
SCIP_Bool SCIPlpiIsStable(SCIP_LPI *lpi)
void SCIPpqueueClear(SCIP_PQUEUE *pqueue)
SCIP_RETCODE SCIPpqueueCreate(SCIP_PQUEUE **pqueue, int initsize, SCIP_Real sizefac, SCIP_DECL_SORTPTRCOMP((*ptrcomp)),)
void SCIPpqueueFree(SCIP_PQUEUE **pqueue)
SCIP_Bool SCIPisCertified(SCIP *scip)
SCIP_VAR * SCIPcolGetVar(SCIP_COL *col)
void SCIPaggrRowClearSafely(SCIP_AGGRROW *aggrrow)
SCIP_RETCODE SCIPaggrRowCreate(SCIP *scip, SCIP_AGGRROW **aggrrow)
SCIP_RETCODE SCIPaggrRowAddRowSafely(SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_ROW *row, SCIP_Real weight, int sidetype, SCIP_Bool *success)
void SCIPaggrRowClear(SCIP_AGGRROW *aggrrow)
SCIP_Real SCIPaggrRowGetRhs(SCIP_AGGRROW *aggrrow)
void SCIPaggrRowFree(SCIP *scip, SCIP_AGGRROW **aggrrow)
int * SCIPaggrRowGetInds(SCIP_AGGRROW *aggrrow)
void SCIPaggrRowRemoveZeros(SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_Bool useglbbounds, SCIP_Bool *valid)
int SCIPaggrRowGetNNz(SCIP_AGGRROW *aggrrow)
SCIP_RETCODE SCIPaggrRowAddRow(SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_ROW *row, SCIP_Real weight, int sidetype)
static INLINE SCIP_Real SCIPaggrRowGetProbvarValue(SCIP_AGGRROW *aggrrow, int probindex)
SCIP_RETCODE SCIPaggrRowAddObjectiveFunction(SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_Real rhs, SCIP_Real scale)
SCIP_Bool SCIPisExact(SCIP *scip)
void SCIPintervalSetRoundingModeUpwards(void)
void SCIPintervalSetRoundingModeDownwards(void)
SCIP_ROUNDMODE SCIPintervalGetRoundingMode(void)
void SCIPintervalSetRoundingMode(SCIP_ROUNDMODE roundmode)
SCIP_RETCODE SCIPreleaseRowExact(SCIP *scip, SCIP_ROWEXACT **row)
SCIP_RETCODE SCIPcreateRowExact(SCIP *scip, SCIP_ROWEXACT **row, SCIP_ROW *fprow, int len, SCIP_COLEXACT **cols, SCIP_RATIONAL **vals, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_Bool isfprelaxable)
SCIP_ROW ** SCIPgetLPRows(SCIP *scip)
SCIP_COL ** SCIPgetLPCols(SCIP *scip)
int SCIPgetNLPCols(SCIP *scip)
BMS_BUFMEM * SCIPbuffer(SCIP *scip)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPfreeBufferArrayNull(scip, ptr)
SCIP_Bool SCIPrationalIsFpRepresentable(SCIP_RATIONAL *rational)
void SCIPrationalRoundInteger(SCIP_RATIONAL *res, SCIP_RATIONAL *src, SCIP_ROUNDMODE_RAT roundmode)
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)
SCIP_Bool SCIPrationalIsZero(SCIP_RATIONAL *rational)
void SCIPrationalSetNegInfinity(SCIP_RATIONAL *res)
SCIP_Bool SCIPrationalIsInfinity(SCIP_RATIONAL *rational)
SCIP_Real SCIPrationalRoundReal(SCIP_RATIONAL *rational, SCIP_ROUNDMODE_RAT roundmode)
SCIP_Bool SCIPrationalIsNegInfinity(SCIP_RATIONAL *rational)
int SCIProwGetLPDepth(SCIP_ROW *row)
int SCIProwGetNNonz(SCIP_ROW *row)
const char * SCIProwGetName(SCIP_ROW *row)
SCIP_RETCODE SCIPreleaseRow(SCIP *scip, SCIP_ROW **row)
SCIP_RETCODE SCIPcreateRowUnspec(SCIP *scip, SCIP_ROW **row, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
SCIP_ROWORIGINTYPE SCIProwGetOrigintype(SCIP_ROW *row)
SCIP_RATIONAL * SCIPgetCutoffboundExact(SCIP *scip)
SCIP_Real SCIPgetCutoffbound(SCIP *scip)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPbdchginfoIsRedundant(SCIP_BDCHGINFO *bdchginfo)
SCIP_BDCHGIDX * SCIPbdchginfoGetIdx(SCIP_BDCHGINFO *bdchginfo)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
int SCIPvarGetProbindex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_Bool SCIPbdchgidxIsEarlierNonNull(SCIP_BDCHGIDX *bdchgidx1, SCIP_BDCHGIDX *bdchgidx2)
void SCIPsortIntInt(int *intarray1, int *intarray2, int len)
void SCIPsortIntIntInt(int *intarray1, int *intarray2, int *intarray3, int len)
assert(minobj< SCIPgetCutoffbound(scip))
internal methods for branching and inference history
SCIP_Bool SCIPlpDivingObjChanged(SCIP_LP *lp)
SCIP_LPSOLSTAT SCIPlpGetSolstat(SCIP_LP *lp)
SCIP_LPI * SCIPlpGetLPI(SCIP_LP *lp)
SCIP_Bool SCIPlpDiving(SCIP_LP *lp)
int SCIPlpGetNCols(SCIP_LP *lp)
SCIP_ROW ** SCIPlpGetRows(SCIP_LP *lp)
int SCIPlpGetNRows(SCIP_LP *lp)
SCIP_Real SCIPlpGetPseudoObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
internal methods for LP management
internal methods for exact LP management
interface methods for specific LP solvers
#define BMSfreeMemory(ptr)
#define BMSclearMemoryArray(ptr, num)
struct BMS_BlkMem BMS_BLKMEM
#define BMSfreeMemoryArrayNull(ptr)
#define BMSallocMemory(ptr)
methods commonly used for presolving
SCIP_Bool SCIPprobIsObjIntegral(SCIP_PROB *prob)
int SCIPprobGetNVars(SCIP_PROB *prob)
SCIP_VAR ** SCIPprobGetVars(SCIP_PROB *prob)
SCIP_Bool SCIPprobAllColsInLP(SCIP_PROB *prob, SCIP_SET *set, SCIP_LP *lp)
internal methods for storing and manipulating the main problem
internal methods for propagators
public methods for conflict analysis handlers
public methods for managing constraints
public methods for LP management
public methods for message output
public data structures and miscellaneous methods
methods for sorting joint arrays of various types
public methods for handling parameter settings
public methods for propagators
public methods for branch and bound tree
public methods for problem variables
public methods for certified solving
public methods for conflict handler plugins and conflict analysis
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 the LP relaxation, rows and columns
public methods for memory management
public methods for numerical tolerances
public methods for global and local (sub)problems
public methods for solutions
public methods for querying solving statistics
public methods for SCIP variables
SCIP_Bool SCIPsetIsDualfeasZero(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetFeasCeil(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetFeasFloor(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsEQ(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_Bool SCIPsetIsGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetCutoffbounddelta(SCIP_SET *set)
internal methods for global SCIP settings
#define SCIPsetFreeBufferArray(set, ptr)
#define SCIPsetAllocBufferArray(set, ptr, num)
internal methods for storing primal CIP solutions
SCIP_Longint certificateline
SCIP_HASHMAP * rowdatahash
SCIP_CONFTYPE conflicttype
unsigned int usescutoffbound
SCIP_Longint ninflpiterations
SCIP_Longint ndualproofsbndglobal
SCIP_Longint ndualproofsinfsuccess
SCIP_Longint nappliedglbconss
SCIP_Longint nsbiterations
SCIP_Longint npropconfconss
SCIP_Longint ninflpconfconss
SCIP_Longint npseudoreconvliterals
SCIP_Longint npseudosuccess
SCIP_Longint ninflpconfliterals
SCIP_CLOCK * propanalyzetime
SCIP_Longint nboundlpconfliterals
SCIP_Longint ndualproofsinflocal
SCIP_Longint npseudoconfconss
SCIP_Longint nboundlpcalls
SCIP_PQUEUE * forcedbdchgqueue
SCIP_Longint nappliedglbliterals
SCIP_Longint nboundlpreconvliterals
SCIP_Longint npseudocalls
SCIP_Longint ninflpreconvconss
SCIP_Longint dualproofsbndnnonzeros
SCIP_Bool bdchgonlyconfqueue
SCIP_Longint nappliedglbresconss
SCIP_CLOCK * pseudoanalyzetime
SCIP_Longint nsbconfliterals
SCIP_CLOCK * inflpanalyzetime
SCIP_Longint nboundlpiterations
SCIP_Longint npseudoreconvconss
SCIP_Longint npseudoconfliterals
SCIP_Longint nsbreconvconss
SCIP_Longint nsbreconvliterals
SCIP_Longint npropsuccess
SCIP_Longint ndualproofsinfglobal
SCIP_Longint nresconfvariables
SCIP_Longint nappliedlocconss
SCIP_Longint nsbconfconss
SCIP_Longint ninflpsuccess
SCIP_CLOCK * sbanalyzetime
SCIP_Longint nboundlpreconvconss
SCIP_CLOCK * resanalyzetime
SCIP_Longint ndualproofsbndsuccess
SCIP_Longint dualproofsinfnnonzeros
SCIP_Longint nboundlpconfconss
SCIP_Longint npropreconvliterals
SCIP_CLOCK * boundlpanalyzetime
SCIP_Longint nboundlpsuccess
SCIP_Longint npropconfliterals
SCIP_Longint ninflpreconvliterals
SCIP_CONFLICTSET * conflictset
SCIP_Longint ndualproofsbndlocal
SCIP_Longint nappliedlocliterals
SCIP_Longint npropreconvconss
SCIP_Longint nconflictlps
SCIP_Longint nconflictlpiterations
SCIP_CLOCK * conflictlptime
data structures for certificate output
datastructures for conflict analysis
data structures for LP management
data structures for exact LP management
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
datastructures for problem variables
int SCIPtreeGetFocusDepth(SCIP_TREE *tree)
int SCIPtreeGetEffectiveRootDepth(SCIP_TREE *tree)
int SCIPtreeGetCurrentDepth(SCIP_TREE *tree)
internal methods for branch and bound tree
struct SCIP_BranchCand SCIP_BRANCHCAND
struct SCIP_Conflict SCIP_CONFLICT
@ SCIP_CONFTYPE_BNDEXCEEDING
struct SCIP_ConflictStore SCIP_CONFLICTSTORE
struct SCIP_AggrRow SCIP_AGGRROW
struct SCIP_EventFilter SCIP_EVENTFILTER
struct SCIP_EventQueue SCIP_EVENTQUEUE
struct SCIP_CliqueTable SCIP_CLIQUETABLE
@ SCIP_ROWORIGINTYPE_SEPA
struct SCIP_LpSolVals SCIP_LPSOLVALS
struct SCIP_ColSolVals SCIP_COLSOLVALS
struct SCIP_RowSolVals SCIP_ROWSOLVALS
@ SCIP_LPSOLSTAT_NOTSOLVED
@ SCIP_LPSOLSTAT_INFEASIBLE
@ SCIP_LPSOLSTAT_OBJLIMIT
struct SCIP_RowExact SCIP_ROWEXACT
struct SCIP_ColExact SCIP_COLEXACT
#define SCIP_DECL_SORTPTRCOMP(x)
struct SCIP_Prob SCIP_PROB
struct SCIP_Rational SCIP_RATIONAL
struct SCIP_Reopt SCIP_REOPT
enum SCIP_Retcode SCIP_RETCODE
struct SCIP_Stat SCIP_STAT
struct SCIP_Tree SCIP_TREE
struct SCIP_BdChgInfo SCIP_BDCHGINFO
SCIP_Real SCIPvarGetLbLP(SCIP_VAR *var, SCIP_SET *set)
SCIP_Real SCIPvarGetUbLP(SCIP_VAR *var, SCIP_SET *set)
internal methods for problem variables
methods for creating output for visualization tools (VBC, BAK)