A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://scip.zib.de/doc/html/event__estim_8c_source.php below:

SCIP Doxygen Documentation: event_estim.c Source File

82#define EVENTHDLR_NAME "estim" 83#define EVENTHDLR_DESC "event handler for tree size estimation and restarts" 84#define EVENTTYPE_ESTIM (SCIP_EVENTTYPE_NODEDELETE | SCIP_EVENTTYPE_NODEBRANCHED) 101#define RESTARTPOLICY_CHAR_NEVER 'n' 102#define RESTARTPOLICY_CHAR_ALWAYS 'a' 103#define RESTARTPOLICY_CHAR_COMPLETION 'c' 104#define RESTARTPOLICY_CHAR_ESTIMATION 'e' 106#define DES_USETRENDINLEVEL TRUE 109#define TABLE_NAME "estim" 110#define TABLE_DESC "tree size estimations statistics table" 111#define TABLE_POSITION 18500 112#define TABLE_EARLIEST_STAGE SCIP_STAGE_INIT 115#define DISP_NAME "completed" 116#define DISP_DESC "completion of search in percent (based on tree size estimation)" 117#define DISP_HEADER "compl." 119#define DISP_PRIORITY 110000 120#define DISP_POSITION 30100 121#define DISP_STRIPLINE TRUE 123#define INITIALSIZE 100 127#define DES_ALPHA_TREEWEIGHT 0.65 128#define DES_BETA_TREEWEIGHT 0.15 130#define DES_ALPHA_GAP 0.6 131#define DES_BETA_GAP 0.15 133#define DES_ALPHA_LEAFFREQUENCY 0.3 134#define DES_BETA_LEAFFREQUENCY 0.33 136#define DES_ALPHA_SSG 0.6 137#define DES_BETA_SSG 0.15 139#define DES_ALPHA_OPENNODES 0.6 140#define DES_BETA_OPENNODES 0.15 142#define MAX_REGFORESTSIZE 10000000 147#define COMPLETIONTYPE_AUTO 'a' 148#define COMPLETIONTYPE_REGFOREST 'r' 149#define COMPLETIONTYPE_MONOREG 'm' 150#define COMPLETIONTYPE_TREEWEIGHT 'w' 151#define COMPLETIONTYPE_SSG 's' 152#define COMPLETIONTYPE_GAP 'g' 156#define ESTIMMETHOD_COMPL 'c' 157#define ESTIMMETHOD_WBE 'b' 158#define ESTIMMETHOD_ENSMBL 'e' 159#define ESTIMMETHOD_GAP 'g' 160#define ESTIMMETHOD_LFREQ 'l' 161#define ESTIMMETHOD_OPEN 'o' 162#define ESTIMMETHOD_SSG 's' 163#define ESTIMMETHOD_TPROF 't' 164#define ESTIMMETHOD_TREEWEIGHT 'w' 166#define ESTIMMETHODS "bceglostw" 169#define TREEPROFILE_MINSIZE 512 170#define SSG_STARTPRIMBOUND SCIP_INVALID 242#define DEFAULT_USELEAFTS TRUE 243#define DEFAULT_REPORTFREQ -1 244#define DEFAULT_REGFORESTFILENAME "-" 245#define DEFAULT_COEFMONOWEIGHT 0.3667 246#define DEFAULT_COEFMONOSSG 0.6333 247#define DEFAULT_COMPLETIONTYPE COMPLETIONTYPE_AUTO 248#define DEFAULT_ESTIMMETHOD ESTIMMETHOD_TREEWEIGHT 251#define DEFAULT_TREEPROFILE_ENABLED FALSE 252#define DEFAULT_TREEPROFILE_MINNODESPERDEPTH 20.0 253#define DEFAULT_RESTARTPOLICY 'e' 254#define DEFAULT_RESTARTLIMIT 1 255#define DEFAULT_MINNODES 1000L 256#define DEFAULT_COUNTONLYLEAVES FALSE 257#define DEFAULT_RESTARTFACTOR 50.0 258#define DEFAULT_RESTARTNONLINEAR FALSE 259#define DEFAULT_RESTARTACTPRICERS FALSE 260#define DEFAULT_HITCOUNTERLIM 50 261#define DEFAULT_SSG_NMAXSUBTREES -1 263#define DEFAULT_SSG_NMINNODESLASTSPLIT 0L 264#define DEFAULT_SHOWSTATS FALSE 267struct

SCIP_EventhdlrData

273 char

* regforestfilename;

281 int

nrestartsperformed;

282 int

restarthitcounter;

287 char

restartpolicyparam;

291 char

completiontypeparam;

330#define DECL_TIMESERIESUPDATE(x) SCIP_RETCODE x (\ 333 TREEDATA* treedata, \ 391 else if

( num >= 1e+20 )

407

assert(regforest !=

NULL

);

409 if

( *regforest ==

NULL

)

411

regforestptr = *regforest;

431

assert(regforest !=

NULL

);

432

assert(datapoint !=

NULL

);

437 for

( treeidx = 0; treeidx < regforest->

ntrees

; ++treeidx )

439 int

treepos = regforest->

nbegin

[treeidx];

440 int

* childtree = &(regforest->

child

[2 * treepos]);

441 int

* splitidxtree = &(regforest->

splitidx

[treepos]);

448 while

( splitidxtree[pos] != - 1 )

452

assert(splitidxtree[pos] < regforest->

dim

);

454

goright = (datapoint[splitidxtree[pos]] > valuetree[pos]) ? 1 : 0;

455

pos = childtree[2 * pos + goright];

458

value += valuetree[pos];

472 const char

* filename

498 if

(

SCIPfgets

(buffer, (

int

)

sizeof

(buffer), file) ==

NULL

)

501 SCIPerrorMessage

(

"Could not read first line of regression file '%s'\n"

, filename);

506

sscanret = sscanf(buffer, firstlineformat, &ntrees, &dim, &size);

511 SCIPerrorMessage

(

"Could not extract tree information from buffer line [%s]\n"

, buffer);

515 SCIPdebugMessage

(

"Read ntrees=%d, dim=%d, size=%d (return value %d)\n"

, ntrees, dim, size, sscanret);

525 if

( dim <= 0 || ntrees <= 0 || size <= 0 )

528 SCIPerrorMessage

(

"Cannot create regression tree with negative size, dimension, or number of trees\n"

);

535

regforestptr = *regforest;

543

regforestptr->

dim

= dim;

544

regforestptr->

size

= size;

545

regforestptr->

ntrees

= ntrees;

554 while

( !

SCIPfeof

(file) && !error )

560 if

(

SCIPfgets

(buffer, (

int

)

sizeof

(buffer), file) ==

NULL

)

563

sscanret = sscanf(buffer, dataformat,

565

&regforestptr->

child

[2 * pos],

566

&regforestptr->

child

[2 * pos + 1],

581

assert(treepos < regforestptr->ntrees);

583

regforestptr->

nbegin

[treepos++] = pos;

612

assert(stats !=

NULL

);

613

assert(other !=

NULL

);

628

assert(dest !=

NULL

);

629

assert(src !=

NULL

);

643

assert(treeprofilestats !=

NULL

);

657 if

( mindepth < treeprofile->profilesize )

692

assert(treeprofile !=

NULL

);

696

(*treeprofile)->profile =

NULL

;

697

(*treeprofile)->profilesize = 0;

703

(*treeprofile)->lastestimate = -1.0;

716

assert(treeprofile !=

NULL

);

718 if

( *treeprofile ==

NULL

)

725

*treeprofile =

NULL

;

742

assert(node !=

NULL

);

744 if

( treeprofile ==

NULL

)

748

assert(nodedepth >= 0);

756

nodedepthcnt = ++treeprofile->

profile

[nodedepth];

761

nbits = 8*

sizeof

(

unsigned

int);

763 if

( (

unsigned int

)nodedepth < nbits && nodedepthcnt == (1U << nodedepth) )

778 if

( nodedepthcnt > maxnodes )

784 else if

( nodedepthcnt == maxnodes )

811 if

( treeprofile ==

NULL

)

837

estimate += growthfac;

838

growthfac *= gamma_d;

842 for

( ; d < waist; ++d )

846

assert(1.0 <= gamma_d && gamma_d <= 2.0);

847

estimate += growthfac;

848

growthfac *= gamma_d;

855

assert(0.0 <= gamma_d && gamma_d <= 1.0);

857

estimate += growthfac;

858

growthfac *= gamma_d;

889

assert(pqueue !=

NULL

);

896

assert(nodeinfo !=

NULL

);

916

assert(ssg !=

NULL

);

941

assert(ssg !=

NULL

);

948

(*ssg)->nsubtrees = 0;

968 if

( (*ssg)->nodes2info !=

NULL

)

1000

assert(oldpos == -1 || oldpos == nodeinfo->

pos

);

1001

nodeinfo->

pos

= newpos;

1016

assert(ssg !=

NULL

);

1017

assert(node !=

NULL

);

1023

nodeinfo->

node

= node;

1025

nodeinfo->

pos

= -1;

1036

assert(subtreeidx >= 0);

1037

assert(subtreeidx < ssg->nsubtrees);

1046

assert(0 <= nodeinfo->

pos

);

1068

assert(ssg !=

NULL

);

1073

nnewsubtrees = nopennodes[0] + nopennodes[1] + nopennodes[2] + (addfocusnode ? 1 : 0);

1098 for

( t = 0; t < 3; ++t )

1101 int nnodes

= nopennodes[t];

1105 for

( n = 0; n <

nnodes

; ++n )

1149

gap =

MIN

(gap, 1.0);

1173 if

( nodeinfo ==

NULL

)

1181 if

( nodeinfo ==

NULL

)

1188

assert(pqueue !=

NULL

);

1191

pos = nodeinfo->

pos

;

1206

assert(nodeinfofirst ==

NULL

|| subtreeidx == nodeinfofirst->

subtreeidx

);

1237 int

parentnodelabel;

1241

assert(ssg !=

NULL

);

1248 if

( nchildren == 0 )

1258

parentnode = focusnode;

1267

parentnode = focusnode;

1270

parentnodelabel = parentnodeinfo->

subtreeidx

;

1273 for

( n = 0; n < nchildren; ++n )

1291#ifdef SCIP_DISABLED_CODE 1328 for

( l = 0; l < ssg->

nsubtrees

; ++l )

1335 for

( t = 0; t < 3; ++t )

1339 for

( n = 0; n < nopennodes[t]; ++n )

1349

assert(label >= 0 && label < ssg->nsubtrees);

1350

lowerbounds[label] =

MIN

(lowerbounds[label], lowerbound);

1356 for

( l = 0; l < ssg->

nsubtrees

; ++l )

1370

subtreegap =

MIN

(subtreegap, 1.0);

1372

gapsum += subtreegap;

1376 if

( updatescaling )

1417 for

( l = 0; l < ssg->

nsubtrees

; ++l )

1432

gapsum += subtreegap;

1436 if

( updatescaling )

1479

((ssg->

nmaxsubtrees

== -1 || nnewsubtrees <= ssg->nmaxsubtrees) &&

1491 SCIPdebugMsg

(

scip

,

"Keep split into %d subtrees because new split into %d subtrees exceeds limit %d\n"

,

1501 if

( insertchildren )

1509

updatescaling =

TRUE

;

1515 else if

( insertchildren )

1521 if

( nchildren == 0 )

1542

treedata->

nopen

= 1;

1556

assert(treedata !=

NULL

);

1577 if

( *treedata ==

NULL

)

1595

assert(node !=

NULL

);

1598

treedata->

nopen

--;

1600 if

( nchildren == 0 )

1608

treedata->

nnodes

+= nchildren;

1609

treedata->

nopen

+= nchildren;

1637char

* treeDataPrint(

1648 "weight: %.4Lf, ssg %.4f"

,

1681

assert(des !=

NULL

);

1707

newtrend = des->

beta

* (newlevel - des->

level

) + (1.0 - des->

beta

) * des->

trend

;

1709

des->

level

= newlevel;

1710

des->

trend

= newtrend;

1720

assert(des !=

NULL

);

1725 return

des->

trend

;

1735

timeseries->

nvals

= 0;

1736

timeseries->

nobs

= 0L;

1758

assert(timeseries !=

NULL

);

1759

assert(name !=

NULL

);

1760

assert(alpha >= 0.0 && alpha <= 1);

1761

assert(beta >= 0.0 && beta <= 1);

1765

timeseriesptr = *timeseries;

1766

assert(timeseriesptr !=

NULL

);

1772

assert(timeseriesupdate !=

NULL

);

1773

timeseriesptr->timeseriesupdate = timeseriesupdate;

1784

timeseriesptr->

des

.

alpha

= alpha;

1785

timeseriesptr->

des

.

beta

= beta;

1800

assert(timeseries !=

NULL

);

1809

*timeseries =

NULL

;

1818

assert(timeseries !=

NULL

);

1855 if

( timeseries->

nobs

== 0L )

1862 if

(

EPSZ

(val - targetval, tolerance) )

1863 return

treedata->

nnodes

;

1870 if

( (targetval > val && trend < tolerance) || (targetval < val && trend > -tolerance) )

1877 return

timeseries->

useleafts

? 2.0 * estimated - 1.0 : estimated;

1914

assert(timeseries->

nvals

% 2 == 0);

1916

des = &timeseries->

des

;

1920 for

( i = 0; i < timeseries->

nvals

/ 2; ++i )

1922

timeseries->

vals

[i] = timeseries->

vals

[2 * i];

1944

assert(timeseries !=

NULL

);

1945

assert(treedata !=

NULL

);

1948

assert(timeseries->timeseriesupdate !=

NULL

);

1949 SCIP_CALL

( timeseries->timeseriesupdate(

scip

, timeseries, treedata, &value) );

1954 if

( timeseries->

useleafts

&& ! isleaf )

1957

timeseries->

nobs

++;

1966

tspos = timeseries->

nvals

++;

1967

timeseries->

vals

[tspos] = value;

1987 return

timeseries->

name

;

1996 TIMESERIES

** tss = eventhdlrdata->timeseries;

2002

assert(tss[t] !=

NULL

);

2005

tss[t]->

useleafts

= eventhdlrdata->useleafts;

2020 TIMESERIES

** tss = eventhdlrdata->timeseries;

2026

assert(tss[t] !=

NULL

);

2081

assert(eventhdlrdata !=

NULL

);

2082

treedata = eventhdlrdata->treedata;

2085 if

( treedata->

weight

<= 0.3 )

2088

coeffs = coeffs_early;

2092 else if

( treedata->

weight

<= 0.6 )

2094

coeffs = coeffs_intermediate;

2103

coeffs = coeffs_late;

2115 TSPOS

tspos = tsposs[t];

2119

testim = treedata->

nnodes

;

2121

estim += coeffs[t] * testim;

2124 if

( estim < treedata->

nnodes

)

2139 char

completiontype;

2141

assert(eventhdlrdata !=

NULL

);

2142

treedata = eventhdlrdata->treedata;

2143

completiontype = eventhdlrdata->completiontypeparam;

2157 SCIP_Bool

useweight = eventhdlrdata->treeisbinary;

2160 if

( eventhdlrdata->regforest !=

NULL

)

2162 else if

( useweight && usessg )

2164 else if

( useweight )

2173 switch

(completiontype)

2192

*completed = eventhdlrdata->coefmonoweight * (

SCIP_Real

)treedata->

weight

+

2193

eventhdlrdata->coefmonossg * (1.0 - treedata->

ssg

->

value

);

2205

*completed = 1.0 - treedata->

ssg

->

value

;

2230

completed =

MIN

(completed, 1.0);

2232 if

( completed > 0.0 )

2246

assert(ts !=

NULL

);

2247

assert(value !=

NULL

);

2268

abspb =

REALABS

(primalbound);

2270

*value = 1.0 -

REALABS

(primalbound - dualbound)/

MAX

(abspb, absdb);

2274

*value =

MAX

(*value, 0.0);

2332

assert(eventhdlrdata !=

NULL

);

2363 switch

(eventhdlrdata->restartpolicyparam)

2374 SCIPerrorMessage

(

"Unknown restart policy %c\n"

, eventhdlrdata->restartpolicyparam);

2399 if

( eventhdlrdata->restartlimit != -1 && eventhdlrdata->nrestartsperformed >= eventhdlrdata->restartlimit )

2403 if

( eventhdlrdata->countonlyleaves )

2404 nnodes

= eventhdlrdata->treedata->nleaves;

2406 nnodes

= eventhdlrdata->treedata->nvisited;

2408 if

( nnodes < eventhdlrdata->minnodes )

2426 if

( completion < 1.0 / eventhdlrdata->restartfactor )

2430 "Completion %.5f less than restart threshold %.5f\n"

,

2431

completion, 1.0 / eventhdlrdata->restartfactor);

2451 if

( estimation < 0.0 )

2455 "Estimation %g is still unavailable\n"

,

2463 if

( estimation > eventhdlrdata->treedata->nnodes * eventhdlrdata->restartfactor )

2467 "Estimation %g exceeds number of estimation tree nodes %" SCIP_LONGINT_FORMAT " by a factor of %.1f\n"

,

2468

estimation, eventhdlrdata->treedata->nnodes, estimation / eventhdlrdata->treedata->nnodes);

2489

applyrestart =

TRUE

;

2492

applyrestart =

FALSE

;

2504 return

applyrestart;

2516 TIMESERIES

** tss = eventhdlrdata->timeseries;

2522

assert(tss[t] !=

NULL

);

2525#ifdef SCIP_MORE_DEBUG 2527 "Update of time series '%s', current value %.4f (%" SCIP_LONGINT_FORMAT " observations)\n"

,

2544 TREEDATA

* treedata = eventhdlrdata->treedata;

2545 char

* ptr = strbuf;

2552 if

( reportnum > 0 )

2561

completed =

MIN

(1.0, completed);

2562

completed =

MAX

(0.0, completed);

2571 "weight: %.4Lf completed %.4f\n"

,

2584 "estim"

,

"value"

,

"trend"

,

"resolution"

,

"smooth"

);

2589 real2String

(wbeestim, wbeestimstr, 0),

"-"

,

"-"

,

"-"

,

"-"

);

2593 "-"

,

"-"

,

"-"

,

"-"

);

2600 TIMESERIES

* ts = eventhdlrdata->timeseries[t];

2616 if

( reportnum > 0 )

2641

assert(eventhdlrdata !=

NULL

);

2659

assert(eventhdlrdata !=

NULL

);

2667

eventhdlrdata->lastrestartrun = 0;

2668

eventhdlrdata->nrestartsperformed = 0;

2680

assert(eventhdlrdata !=

NULL

);

2694

assert(eventhdlrdata !=

NULL

);

2696

eventhdlrdata->restarthitcounter = 0;

2697

eventhdlrdata->weightlastreport = 0.0;

2698

eventhdlrdata->nreports = 0;

2707 if

( eventhdlrdata->treeprofile_enabled )

2712

eventhdlrdata->treeisbinary =

TRUE

;

2724

assert(eventhdlrdata !=

NULL

);

2726 if

( eventhdlrdata->treeprofile !=

NULL

)

2745

assert(eventhdlr !=

NULL

);

2748

assert(eventhdlrdata !=

NULL

);

2750

treedata = eventhdlrdata->treedata;

2771 if

( nchildren != 2 )

2772

eventhdlrdata->treeisbinary =

FALSE

;

2787

(eventhdlrdata->reportfreq == 0

2788

|| treedata->

weight

>= eventhdlrdata->weightlastreport + 1.0 / (

SCIP_Real

)eventhdlrdata->reportfreq) )

2792 if

( eventhdlrdata->reportfreq > 0 )

2810

eventhdlrdata->restarthitcounter++;

2812 if

( eventhdlrdata->restarthitcounter >= eventhdlrdata->hitcounterlim )

2817

eventhdlrdata->nrestartsperformed++;

2820 "Restart triggered after %d consecutive estimations that the remaining tree will be large\n"

,

2821

eventhdlrdata->restarthitcounter);

2831

eventhdlrdata->restarthitcounter = 0;

2846

assert(eventhdlr !=

NULL

);

2849

assert(eventhdlrdata !=

NULL

);

2851 if

( eventhdlrdata->showstats )

2866

assert(disp !=

NULL

);

2871

assert(eventhdlr !=

NULL

);

2873

assert(eventhdlrdata !=

NULL

);

2874

treedata = eventhdlrdata->treedata;

2878

completed =

MIN

(completed, 1.0);

2880 if

( treedata->

weight

>= 0.005 && completed > 0 )

2904

eventExecEstim, eventhdlrdata) );

2905

assert(eventhdlr !=

NULL

);

2916 SCIP_CALL

(

SCIPaddCharParam

(

scip

,

"estimation/restarts/restartpolicy"

,

"restart policy: (a)lways, (c)ompletion, (e)stimation, (n)ever"

,

2920 "tree size estimation method: (c)ompletion, (e)nsemble, " 2921 "time series forecasts on either (g)ap, (l)eaf frequency, (o)open nodes, tree (w)eight, (s)sg, " 2922 "or (t)ree profile or w(b)e"

,

2935 "factor by which the estimated number of nodes should exceed the current number of nodes"

,

2939 "whether to apply a restart when nonlinear constraints are present"

,

2943 "whether to apply a restart when active pricers are used"

,

2947 "coefficient of tree weight in monotone approximation of search completion"

,

2951 "coefficient of 1 - SSG in monotone approximation of search completion"

,

2954 SCIP_CALL

(

SCIPaddIntParam

(

scip

,

"estimation/restarts/hitcounterlim"

,

"limit on the number of successive samples to really trigger a restart"

,

2958 "report frequency on estimation: -1: never, 0:always, k >= 1: k times evenly during search"

,

2965 "approximation of search tree completion: (a)uto, (g)ap, tree (w)eight, (m)onotone regression, (r)egression forest, (s)sg"

,

2969 "should the event handler collect data?"

,

2973 "minimum average number of nodes at each depth before producing estimations"

,

2977 "use leaf nodes as basic observations for time series, or all nodes?"

,

2981 "should statistics be shown at the end?"

,

2986 "the maximum number of individual SSG subtrees; -1: no limit"

,

2990 "minimum number of nodes to process between two consecutive SSG splits"

,

3029 if

( eventhdlr ==

NULL

)

3036

assert(eventhdlrdata !=

NULL

);

3038 switch

(eventhdlrdata->estimmethod)

3077 SCIPerrorMessage

(

"Unknown estimation '%c' method specified, should be one of [%s]\n"

,

#define SCIP_ALLOC_TERMINATE(retcode, x, TERM)

#define SCIP_CALL_ABORT(x)

#define SCIP_CALL_TERMINATE(retcode, x, TERM)

#define SCIP_LONGINT_FORMAT

static void SCIPregForestFree(SCIP_REGFOREST **regforest)

static char * timeSeriesGetName(TIMESERIES *timeseries)

static SCIP_RETCODE subtreeSumGapComputeFromScratchEfficiently(SCIP *scip, SUBTREESUMGAP *ssg, SCIP_Bool updatescaling)

enum RestartPolicy RESTARTPOLICY

#define DEFAULT_COEFMONOWEIGHT

static SCIP_RETCODE timeSeriesCreate(SCIP *scip, TIMESERIES **timeseries, const char *name, SCIP_Real targetvalue, SCIP_Real initialvalue, SCIP_Real alpha, SCIP_Real beta, DECL_TIMESERIESUPDATE((*timeseriesupdate)))

static SCIP_RETCODE subtreeSumGapSplit(SCIP *scip, SUBTREESUMGAP *ssg, SCIP_Bool addfocusnode)

static SCIP_DECL_PQUEUEELEMCHGPOS(elemChgPosNodeInfo)

#define DES_BETA_TREEWEIGHT

static void freeTreeProfile(SCIP *scip, TREEPROFILE **treeprofile)

static SCIP_DECL_EVENTEXIT(eventExitEstim)

static SCIP_RETCODE updateTreeData(SCIP *scip, TREEDATA *treedata, SCIP_NODE *node, int nchildren)

#define DEFAULT_SHOWSTATS

#define DEFAULT_RESTARTLIMIT

static SCIP_Real getEnsembleEstimation(SCIP_EVENTHDLRDATA *eventhdlrdata)

static SCIP_Bool shouldApplyRestart(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)

#define DES_ALPHA_TREEWEIGHT

#define DES_ALPHA_OPENNODES

#define MAX_REGFORESTSIZE

#define RESTARTPOLICY_CHAR_ALWAYS

#define RESTARTPOLICY_CHAR_NEVER

static SCIP_Bool isRestartApplicable(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)

#define DEFAULT_REPORTFREQ

static SCIP_Real timeSeriesGetSmoothEstimation(TIMESERIES *timeseries)

static SCIP_RETCODE subtreeSumGapCreate(SCIP *scip, SUBTREESUMGAP **ssg)

static void doubleExpSmoothUpdate(DOUBLEEXPSMOOTH *des, SCIP_Real xnew)

static void copyTreeProfileStats(TREEPROFILESTATS *dest, TREEPROFILESTATS *src)

#define DEFAULT_SSG_NMAXSUBTREES

#define DES_BETA_LEAFFREQUENCY

static SCIP_DECL_EVENTEXEC(eventExecEstim)

#define DEFAULT_SSG_NMINNODESLASTSPLIT

#define COMPLETIONTYPE_REGFOREST

#define DES_USETRENDINLEVEL

#define COMPLETIONTYPE_MONOREG

#define ESTIMMETHOD_TREEWEIGHT

#define COMPLETIONTYPE_TREEWEIGHT

#define ESTIMMETHOD_LFREQ

static SCIP_RETCODE timeSeriesUpdate(SCIP *scip, TIMESERIES *timeseries, TREEDATA *treedata, SCIP_Bool isleaf)

#define DEFAULT_TREEPROFILE_ENABLED

static SCIP_DECL_EVENTCOPY(eventCopyEstim)

static SCIP_Real SCIPregForestPredict(SCIP_REGFOREST *regforest, SCIP_Real *datapoint)

static void freeTreeData(SCIP *scip, TREEDATA **treedata)

static SCIP_RETCODE resetTreeData(SCIP *scip, TREEDATA *treedata)

static SCIP_Real timeSeriesEstimate(TIMESERIES *timeseries, TREEDATA *treedata)

static SCIP_RETCODE includeTimeseries(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)

#define ESTIMMETHOD_ENSMBL

#define COMPLETIONTYPE_GAP

#define COMPLETIONTYPE_SSG

static void timeSeriesUpdateSmoothEstimation(TIMESERIES *timeseries, SCIP_Real estimation)

#define DEFAULT_COUNTONLYLEAVES

static SCIP_RETCODE subtreeSumGapRemoveNode(SCIP *scip, SUBTREESUMGAP *ssg, SCIP_NODE *node)

static void timeSeriesResample(TIMESERIES *timeseries)

static SCIP_RETCODE subtreeSumGapReset(SCIP *scip, SUBTREESUMGAP *ssg)

static SCIP_RETCODE updateTreeProfile(SCIP *scip, TREEPROFILE *treeprofile, SCIP_NODE *node)

static SCIP_RETCODE createTreeData(SCIP *scip, TREEDATA **treedata)

static SCIP_RETCODE getEstimCompletion(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_Real *estim)

#define DEFAULT_HITCOUNTERLIM

#define DES_BETA_OPENNODES

static SCIP_Real calcGap(SCIP *scip, SCIP_Real lowerbound)

#define DEFAULT_RESTARTACTPRICERS

SCIP_Real SCIPgetTreesizeEstimation(SCIP *scip)

static SCIP_DECL_EVENTINIT(eventInitEstim)

static void timeSeriesFree(SCIP *scip, TIMESERIES **timeseries)

#define DEFAULT_RESTARTFACTOR

static SCIP_DECL_SORTPTRCOMP(compareNodeInfos)

#define DEFAULT_USELEAFTS

SCIP_RETCODE SCIPincludeEventHdlrEstim(SCIP *scip)

#define DES_ALPHA_LEAFFREQUENCY

static SCIP_RETCODE subtreeSumGapInsertChildren(SCIP *scip, SUBTREESUMGAP *ssg)

static SCIP_Real timeSeriesGetValue(TIMESERIES *timeseries)

@ RESTARTPOLICY_COMPLETION

@ RESTARTPOLICY_ESTIMATION

static SCIP_Bool shouldApplyRestartCompletion(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)

static SCIP_RETCODE extendMemoryTreeProfile(SCIP *scip, TREEPROFILE *treeprofile, int mindepth)

static void subtreeSumGapFree(SCIP *scip, SUBTREESUMGAP **ssg)

#define DECL_TIMESERIESUPDATE(x)

static void timeSeriesReset(TIMESERIES *timeseries)

static char * printReport(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, char *strbuf, int reportnum)

static SCIP_DECL_EVENTFREE(eventFreeEstim)

#define RESTARTPOLICY_CHAR_COMPLETION

#define TABLE_EARLIEST_STAGE

#define ESTIMMETHOD_TPROF

static void doubleExpSmoothInit(DOUBLEEXPSMOOTH *des, SCIP_Real x1)

#define DEFAULT_COEFMONOSSG

static SCIP_Bool isEqualTreeProfileStats(TREEPROFILESTATS *stats, TREEPROFILESTATS *other)

static int timeSeriesGetResolution(TIMESERIES *timeseries)

static SCIP_RETCODE createTreeProfile(SCIP *scip, TREEPROFILE **treeprofile)

static void subtreeSumGapDelSubtrees(SCIP *scip, SUBTREESUMGAP *ssg)

static SCIP_DECL_TABLEOUTPUT(tableOutputEstim)

static SCIP_RETCODE updateTimeseries(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, TREEDATA *treedata, SCIP_Bool isleaf)

static void resetTreeProfileStats(TREEPROFILESTATS *treeprofilestats)

static SCIP_Real treeDataGetWbe(TREEDATA *treedata)

static void resetTimeSeries(SCIP_EVENTHDLRDATA *eventhdlrdata)

#define DEFAULT_COMPLETIONTYPE

static SCIP_DECL_EVENTINITSOL(eventInitsolEstim)

static SCIP_RETCODE SCIPregForestFromFile(SCIP_REGFOREST **regforest, const char *filename)

static RESTARTPOLICY getRestartPolicy(SCIP_EVENTHDLRDATA *eventhdlrdata)

static SCIP_Real doubleExpSmoothGetTrend(DOUBLEEXPSMOOTH *des)

static void doubleExpSmoothReset(DOUBLEEXPSMOOTH *des, SCIP_Real initialvalue)

static char * real2String(SCIP_Real num, char *buf, int digits)

static SCIP_RETCODE subtreeSumGapUpdate(SCIP *scip, SUBTREESUMGAP *ssg, SCIP_NODE *node, int nchildren, SCIP_Longint nsolvednodes)

static void freeTimeSeries(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)

static SCIP_Real predictTotalSizeTreeProfile(SCIP *scip, TREEPROFILE *treeprofile, SCIP_Real minnodesperdepth)

#define ESTIMMETHOD_COMPL

#define TREEPROFILE_MINSIZE

#define COMPLETIONTYPE_AUTO

static SCIP_DECL_DISPOUTPUT(dispOutputCompleted)

static SCIP_RETCODE subtreeSumGapStoreNode(SCIP *scip, SUBTREESUMGAP *ssg, SCIP_NODE *node, int subtreeidx)

static SCIP_RETCODE getSearchCompletion(SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_Real *completed)

#define RESTARTPOLICY_CHAR_ESTIMATION

static SCIP_Real timeSeriesGetTargetValue(TIMESERIES *timeseries)

#define DEFAULT_ESTIMMETHOD

#define SSG_STARTPRIMBOUND

#define DEFAULT_RESTARTNONLINEAR

#define DEFAULT_RESTARTPOLICY

static SCIP_Bool shouldApplyRestartEstimation(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)

#define DEFAULT_TREEPROFILE_MINNODESPERDEPTH

static SCIP_DECL_EVENTEXITSOL(eventExitsolEstim)

#define DEFAULT_REGFORESTFILENAME

event handler for tree size estimation and restarts

SCIP_FILE * SCIPfopen(const char *path, const char *mode)

int SCIPfeof(SCIP_FILE *stream)

int SCIPfclose(SCIP_FILE *fp)

char * SCIPfgets(char *s, int size, SCIP_FILE *stream)

SCIP_STATUS SCIPgetStatus(SCIP *scip)

SCIP_STAGE SCIPgetStage(SCIP *scip)

void SCIPhashmapFree(SCIP_HASHMAP **hashmap)

void * SCIPhashmapGetImage(SCIP_HASHMAP *hashmap, void *origin)

SCIP_RETCODE SCIPhashmapInsert(SCIP_HASHMAP *hashmap, void *origin, void *image)

SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)

SCIP_Bool SCIPhashmapExists(SCIP_HASHMAP *hashmap, void *origin)

SCIP_RETCODE SCIPhashmapRemoveAll(SCIP_HASHMAP *hashmap)

SCIP_RETCODE SCIPhashmapRemove(SCIP_HASHMAP *hashmap, void *origin)

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_RETCODE SCIPaddLongintParam(SCIP *scip, const char *name, const char *desc, SCIP_Longint *valueptr, SCIP_Bool isadvanced, SCIP_Longint defaultvalue, SCIP_Longint minvalue, SCIP_Longint maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddCharParam(SCIP *scip, const char *name, const char *desc, char *valueptr, SCIP_Bool isadvanced, char defaultvalue, const char *allowedvalues, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddIntParam(SCIP *scip, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddStringParam(SCIP *scip, const char *name, const char *desc, char **valueptr, SCIP_Bool isadvanced, const char *defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddRealParam(SCIP *scip, const char *name, const char *desc, SCIP_Real *valueptr, SCIP_Bool isadvanced, SCIP_Real defaultvalue, SCIP_Real minvalue, SCIP_Real maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

void ** SCIPpqueueElems(SCIP_PQUEUE *pqueue)

void SCIPpqueueDelPos(SCIP_PQUEUE *pqueue, int pos)

void SCIPpqueueFree(SCIP_PQUEUE **pqueue)

SCIP_RETCODE SCIPpqueueInsert(SCIP_PQUEUE *pqueue, void *elem)

int SCIPpqueueNElems(SCIP_PQUEUE *pqueue)

SCIP_RETCODE SCIPpqueueCreate(SCIP_PQUEUE **pqueue, int initsize, SCIP_Real sizefac, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), SCIP_DECL_PQUEUEELEMCHGPOS((*elemchgpos)))

void * SCIPpqueueFirst(SCIP_PQUEUE *pqueue)

const char * SCIPdispGetName(SCIP_DISP *disp)

SCIP_RETCODE SCIPincludeDisp(SCIP *scip, const char *name, const char *desc, const char *header, SCIP_DISPSTATUS dispstatus, SCIP_DECL_DISPCOPY((*dispcopy)), SCIP_DECL_DISPFREE((*dispfree)), SCIP_DECL_DISPINIT((*dispinit)), SCIP_DECL_DISPEXIT((*dispexit)), SCIP_DECL_DISPINITSOL((*dispinitsol)), SCIP_DECL_DISPEXITSOL((*dispexitsol)), SCIP_DECL_DISPOUTPUT((*dispoutput)), SCIP_DISPDATA *dispdata, int width, int priority, int position, SCIP_Bool stripline)

SCIP_RETCODE SCIPsetEventhdlrInitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINITSOL((*eventinitsol)))

SCIP_RETCODE SCIPsetEventhdlrCopy(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTCOPY((*eventcopy)))

SCIP_RETCODE SCIPincludeEventhdlrBasic(SCIP *scip, SCIP_EVENTHDLR **eventhdlrptr, const char *name, const char *desc, SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)

SCIP_EVENTHDLR * SCIPfindEventhdlr(SCIP *scip, const char *name)

SCIP_EVENTHDLRDATA * SCIPeventhdlrGetData(SCIP_EVENTHDLR *eventhdlr)

SCIP_RETCODE SCIPsetEventhdlrExitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXITSOL((*eventexitsol)))

SCIP_RETCODE SCIPsetEventhdlrFree(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTFREE((*eventfree)))

SCIP_RETCODE SCIPsetEventhdlrExit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit)))

SCIP_RETCODE SCIPsetEventhdlrInit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit)))

SCIP_EVENTTYPE SCIPeventGetType(SCIP_EVENT *event)

SCIP_RETCODE SCIPcatchEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)

SCIP_NODE * SCIPeventGetNode(SCIP_EVENT *event)

SCIP_RETCODE SCIPdropEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)

#define SCIPfreeBlockMemoryArray(scip, ptr, num)

#define SCIPreallocMemoryArray(scip, ptr, newnum)

#define SCIPallocMemoryArray(scip, ptr, num)

#define SCIPallocClearBlockMemoryArray(scip, ptr, num)

int SCIPcalcMemGrowSize(SCIP *scip, int num)

#define SCIPallocBufferArray(scip, ptr, num)

#define SCIPallocClearMemoryArray(scip, ptr, num)

#define SCIPallocMemory(scip, ptr)

#define SCIPfreeBufferArray(scip, ptr)

#define SCIPfreeMemoryArray(scip, ptr)

#define SCIPfreeMemory(scip, ptr)

#define SCIPfreeBlockMemory(scip, ptr)

#define SCIPallocBlockMemory(scip, ptr)

SCIP_Bool SCIPisNLPConstructed(SCIP *scip)

SCIP_NODETYPE SCIPnodeGetType(SCIP_NODE *node)

SCIP_Real SCIPnodeGetLowerbound(SCIP_NODE *node)

SCIP_Longint SCIPnodeGetNumber(SCIP_NODE *node)

SCIP_NODE * SCIPnodeGetParent(SCIP_NODE *node)

int SCIPnodeGetDepth(SCIP_NODE *node)

int SCIPgetNActivePricers(SCIP *scip)

SCIP_Real SCIPretransformObj(SCIP *scip, SCIP_Real obj)

SCIP_RETCODE SCIPrestartSolve(SCIP *scip)

SCIP_Bool SCIPisInRestart(SCIP *scip)

SCIP_Real SCIPgetPrimalbound(SCIP *scip)

SCIP_Real SCIPgetUpperbound(SCIP *scip)

SCIP_Longint SCIPgetNNodes(SCIP *scip)

SCIP_Real SCIPgetDualbound(SCIP *scip)

SCIP_Real SCIPgetLowerbound(SCIP *scip)

int SCIPgetNRuns(SCIP *scip)

SCIP_RETCODE SCIPincludeTable(SCIP *scip, const char *name, const char *desc, SCIP_Bool active, SCIP_DECL_TABLECOPY((*tablecopy)), SCIP_DECL_TABLEFREE((*tablefree)), SCIP_DECL_TABLEINIT((*tableinit)), SCIP_DECL_TABLEEXIT((*tableexit)), SCIP_DECL_TABLEINITSOL((*tableinitsol)), SCIP_DECL_TABLEEXITSOL((*tableexitsol)), SCIP_DECL_TABLEOUTPUT((*tableoutput)), SCIP_TABLEDATA *tabledata, int position, SCIP_STAGE earlieststage)

SCIP_Real SCIPgetSolvingTime(SCIP *scip)

SCIP_Real SCIPinfinity(SCIP *scip)

SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

int SCIPgetNSiblings(SCIP *scip)

int SCIPgetNChildren(SCIP *scip)

SCIP_RETCODE SCIPgetOpenNodesData(SCIP *scip, SCIP_NODE ***leaves, SCIP_NODE ***children, SCIP_NODE ***siblings, int *nleaves, int *nchildren, int *nsiblings)

SCIP_RETCODE SCIPgetChildren(SCIP *scip, SCIP_NODE ***children, int *nchildren)

SCIP_NODE * SCIPgetFocusNode(SCIP *scip)

int SCIPgetNLeaves(SCIP *scip)

SCIP_Bool SCIPwasNodeLastBranchParent(SCIP *scip, SCIP_NODE *node)

int SCIPsnprintf(char *t, int len, const char *s,...)

SCIP_Bool SCIPstrToRealValue(const char *str, SCIP_Real *value, char **endptr)

memory allocation routines

#define BMSfreeMemory(ptr)

#define BMSduplicateMemoryArray(ptr, source, num)

#define BMSclearMemory(ptr)

#define BMSallocMemoryArray(ptr, num)

#define BMSfreeMemoryArray(ptr)

#define BMSclearMemoryArray(ptr, num)

#define BMSfreeMemoryArrayNull(ptr)

#define BMSallocMemory(ptr)

BMS_BLKMEM * SCIPblkmem(SCIP *scip)

propagator for symmetry handling

public methods for displaying runtime statistics

public methods for managing events

wrapper functions to map file i/o to standard or zlib file i/o

struct SCIP_File SCIP_FILE

public methods for message output

public data structures and miscellaneous methods

public methods for branch and bound tree

public methods for display handler plugins

public methods for event handler plugins and event handlers

public methods for memory management

public methods for message handling

public methods for nonlinear relaxation

public methods for numerical tolerances

public methods for SCIP parameter handling

public methods for variable pricer plugins

public methods for solutions

public methods for querying solving statistics

public methods for statistics table plugins

public methods for timing

public methods for the branch-and-bound tree

SCIP_Bool usetrendinlevel

SCIP_Longint nodelastsplit

SCIP_PQUEUE ** subtreepqueues

SCIP_HASHMAP * nodes2info

SCIP_Longint nminnodeslastsplit

DECL_TIMESERIESUPDATE((*timeseriesupdate))

SCIP_Real smoothestimation

TREEPROFILESTATS lastestimatestats

type definitions for displaying runtime statistics

type definitions for managing events

struct SCIP_EventhdlrData SCIP_EVENTHDLRDATA

#define SCIP_EVENTTYPE_NODEBRANCHED

#define SCIP_EVENTTYPE_NODEDELETE

type definitions for message output methods

type definitions for miscellaneous datastructures

type definitions for return codes for SCIP methods

enum SCIP_Retcode SCIP_RETCODE

type definitions for problem statistics

type definitions for displaying statistics tables


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4