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/fixingorderSCIP_DIDNOTRUNSCIP_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_CHARremoveConstraintsDueToNegCliques 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 variablesNULLwrite 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_STAIRMAPtestgams 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 INSTALLDIRlintfiles, this target is now imitated by the lint target and a none empty variable FILESSCIP_MAXSTRLENChanges between version 2.0 and 2.1 in the doxygen documentation.