SCIP_VARSTATUS_FIXED
was wrongly handlednon-overlapping
bilinear terms onlypropagating/pseudoobj/maxcands
to propagating/pseudoobj/minuseless
(see prop_pseudoobj.c) due to revision of the pseudo objective propagatorheuristics/undercover/coverbd
and heuristics/undercover/fixingorder
SCIP_DIDNOTRUN
SCIP_STAGE_TRANSFORMED
to call SCIPaddVarLocks() (i.e. to lock variables in initialization methods)SCIP_HASHMAP
now works also without block memorySCIP_DECL_DELVARS
callback that should remove variables from the constraints; at the moment, only the linear, the setppc and the knapsack constraint handler support this callback; furthermore, when using this feature, all used plugins have to capture and release variables they store in their data, this is currently only done for the aforementioned constraint handlers as well as the and, the varbound and the logicor constraint handler; for more details about this feature, see the FAQSCIP_VARTYPE_INTEGER_CHAR
removeConstraintsDueToNegCliques
in locigor constraint handler which updates logicor constraints to setppc constraints if a negated clique inside this constraint exist, by default is off#
in the outputSolving Time
is now spitted into presolving, solving and reading timeAddCons
which states the number of added constraintPropagator Timing
which shows the time spend in different callbacks of the propagatorMaxNumber
which the maximum number of active constraint of a certain constraint handlerTime-0-It
and Calls-0-It
in the LP section which states the number of LP call and time spend for solving LPs with zero iterations (only refactorization)lp/clearinitialprobinglp
)SCIP_PROPTIMING_BEFORELP
, SCIP_PROPTIMING_DURINGLPLOOP
and SCIP_PROPTIMING_AFTERLPLOOP
for all propagation callbacks (see propagators and constraint handlers) which lead to calling the propagation methods of a propagator before the lp is solved, during the lp loop and after the lp solving loopseparate
to conflict handler callback method SCIP_DECL_CONFLICTEXEC() that defines whether the conflict constraint should be separated or not.NULL
. If this method gets implemented you should iterate over all constraints of the constraint handler and delete all variables that were marked for deletion by SCIPdelVar().New parameters isunbounded
and isinfeasible
for presolving initialization (SCIP_DECL_CONSINITPRE(), SCIP_DECL_PRESOLINITPRE(), SCIP_DECL_PROPINITPRE()) and presolving deinitialization (SCIP_DECL_CONSEXITPRE(), SCIP_DECL_PRESOLEXITPRE(), SCIP_DECL_PROPEXITPRE()) callbacks of presolvers, constraint handlers and propagators, telling the callback whether the problem was already declared to be unbounded or infeasible. This allows to avoid expensive steps in these methods in case the problem is already solved, anyway.
Note, that the C++ methods
nnewaddconss
and naddconss
were added to the constraint handler callback method SCIP_DECL_CONSPRESOL() and the presolver callback method SCIP_DECL_PRESOLEXEC(). These parameters were also added to corresponding C++ wrapper class methods (scip_presol() in objconshdlr.h and scip_exec() in objpresol.h)global
to indicate whether the global problem or a local version is copied.SCIP_STAGE_SOLVED
, since LP is still availableSCIP_NEWROUND
has been added, it allows a separator/constraint handler to start a new separation round (without previous calls to other separators/conshdlrs).branchdir
, which defines the type of branching that was performed: upwards, downwards, or fixed.active
to indicate whether the upgrading method is active by default.cutoff
, which is a pointer to store whether a cutoff was found.SCIP_SOL
that is linked to the solution of the current NLP relaxationmonomial
and polynomial
in nonlinear expressions (nlpi/∗expr*); results in many renamings of types, structs and methods.nlpiproblem
, which is a pointer to store the NLP solver interface problem.timelimit
and memorylimit
were removed from SCIPapplyRens().global
to indicate whether the global problem or a local version is copied.type
that indicates whether the variable type should be written or not.endptr
that is filled with the position where the parsing stopped.delimiter
that defines the character which is used for delimitation.success
that will be FALSE if method is called after problem creation stage and no hash map is given or no image for the given variable is contained in the given hash map.deleted
, which stores whether the variable was successfully marked to be deleted.SCIP_Real
value and to copy a substring.SCIP_HASHTABLE
of variablesNULL
write nlp
to write current NLP relaxation to a filechange freetransproblem
to free transformed problem in the interactive shell before changing the problemnodeselection/restartdfs/selectbestfreq
100branching/pscost/strategy
from bri
to cdsu
: default is now u
, i.e., to estimate the LP gain by a branching for external branching candidates (esp. continuous variables) the same way as their pseudo costs are updatedd
for constraints/soc/nlpform
to choose a convex division form for SOC constraint representation in NLPconstraints/quadratic/linearizenlpsol
to constraints/quadratic/linearizeheursol
and do linearizations in every solution found by some heuristicconstraints/quadratic/mincutefficacyenfo
to constraints/quadratic/mincutefficacyenfofac
and interpret it as a factor of the feasibility toleranceseparating/gomory/maxroundsroot
to 10separating/gomory/maxsepacutsroot
to 50heuristics/subnlp/nlpsolver
, use nlp/solver
insteadbranching/delaypscostupdate
to delay the update of pseudo costs for continuous variables behind the separation round: default is TRUEbranching/lpgainnormalize
to set the strategy how the LP gain for a continuous variable is normalized when updating the variables pseudocosts: default is to divide LP gain by reduction of variable's domain in sibling nodebranching/pscost/nchildren
and branching/pscost/nary*
to enable and customize n-ary branching on external branching candidates (e.g., in spatial branching for MINLP)conflict/bounddisjunction/continuousfrac
which defines the maximum percantage of continuous variables within a conflict create by the bounddisjunction conflict handlerconflict/separate
which enables or disables the separation of conflict constraintsconstraints/{nonlinear,quadratic,soc,abspower}/sepanlpmincont
to specify minimal required fraction of continuous variables in problem to enable linearization of convex constraints in NLP relaxation solution in rootconstraints/indicator/forcerestart
and constraints/indicator/restartfrac
to control forced restart in cons_indicatorconstraints/indicator/generatebilinear
to generate bilinear (quadratic) constraints instead of indicator constraintsconstraints/indicator/maxconditionaltlp
to enable a quality check for the solution of the alternative LPconstraints/indicator/removeindicators
to remove indicator constraints if corresponding vub has been addedconstraints/linear/nmincomparisons
and constraints/linear/mingainpernmincomparisons
to influence stopping criterium for pairwise comparison of linear constraintsconstraints/pseudoboolean/decompose
, for pseudoboolean constraints to transform pseudoboolean constraints into linear- and and-constraintsconstraints/quadratic/binreforminitial
to indicate whether linear (non-varbound) constraints added due to reformulation of products with binary variables in a quadratic constraints should be initial (if the quadratic constraint is initial), default is FALSEconstraints/quadratic/checkfactorable
to disable check for factorable quadratic functions (xAx = (ax+b)*(cx+d)) in quadratic constraints and not to use of this information in separation (generates lifted tangent inequalities according to Belotti/Miller/Namazifar if also linear vars are present)constraints/quadratic/disaggregate
to split a block-separable quadratic constraint into several quadratic constraintconstraints/quadratic/maxproprounds
and constraints/quadratic/maxproproundspresolve
to limit the number of propagations rounds for quadratic constraints within one propagation round of SCIP solve or during SCIP presolveconstraints/varbound/presolpairwise
that allows pairwise presolving of varbound constraints, default is TRUEheuristics/shiftandpropagate/onlywithoutsol
to switch whether the heuristic should be called in case a primal solution is already presentlimit/maxorigsol
which defines the size of the solution candidate store (default value is 10)lp/resolverestore
controlling how LP solution is restored after diving: if TRUE by resolving them, if FALSE by buffering them; if lp/freesolvalbuffers
is TRUE, we free the buffer memory each time (FALSE by default)lp/clearinitialprobinglp
to clear LP state at end of probing mode, if LP was initially unsolvedlp/resolveitermin
and lp/resolveiterfac
to limit the number of LP iterations in resolving calls: resolveiterfac is a factor by which the average number of iterations per call is multiplied to get the limit, but the limit is at least resolveitermin; default is -1 (no limit) for resolveiterfac and 1000 for resolveiterminlp/resolverestore
and lp/freesolvalbuffers
possibility to buffer and restore LP solution after diving without having to resolve the LP; currently turned off, because performance impact is unclear;misc/improvingsols
which states whether only solutions which have a better (or equal) primal bound as the best known are checked; this is of interest if the check of a solution is expensive; default value is FALSEmisc/resetstat
which state if the statistics should be reseted if the transformed problem is freed (in case of a benders decomposition this parameter should be set to FALSE) default value is TRUEnodeselection/restartdfs/countonlyleafs
in node selector restart dfs which can be used to select the counting process of processed nodespresolving/donotaggr
to deactivate aggregation of variables globallypricing/delvars
and pricing/delvarsroot
that define, whether variables created at a node / the root node should be deleted when the node is solved in case they are not present in the LP anymorepropagating/s/maxprerounds
for all propagators which allows to change to maximal number of rounds of presolving where this propagator participates inpropagating/s/presoldelay
for all propagators which allows to change if the presolving call of the given propagator should be delayedpropagating/s/presolpriority
for all propagators which allows to change the priority of calling the given propagatorpropagating/pseudoobj/propfullinroot
for allowing to propagate all variables in the root node, instead of stopping after maxcands
which is set by a parameter as wellreading/gmsreader/bigmdefault
and reading/gmsreader/indicatorreform
reader_gms is now able to write indicator constraints (reformulated either via big-M or sos1)reading/gmsreader/signpower
to enable writing sign(x)abs(x)^n as the rarely used gams function signpower(x,n)separating/closecuts/maxunsucessful
to turn off separation if we can not find cutstiming/reading
to add reading time to solving timePARAMEMPHASIS
from PARAMSETTING
(in pub_paramset.c/paramset.c)SCIP_STAIRMAP
testgams
in MakefileVALGRIND=true
to enable running the SCIP checks (make test) through valgrind; valgrind errors and memory leaks are reported as failsPARASCIP=true
as a Makefile
option it is possible to compile SCIP threadsafe in DEBUG-mode, (in OPT-mode it's only necessary if non-default messagehandler or CppAD is used)make
parameter PARASCIP=true
leads to threadsafe message handlers where you need to call SCIPcreateMesshdlrPThreads() and SCIPmessageSetHandler()/SCIPmessageSetDefaultHandler() and SCIPfreeMesshdlrPThreads(); therefore we need to link with pthread library(un)install
in Makefile, support for valgrind in testing environmentmake libs
which compiles only the librariesinstall
performs make
and copies using the install command the include headers, binary, and librariesuninstall
removes libraries, binary and include headers form INSTALLDIR
lintfiles
, this target is now imitated by the lint
target and a none empty variable FILES
SCIP_MAXSTRLEN
Changes between version 2.0 and 2.1
in the doxygen documentation.