Skip to content

v9.1.1

Compare
Choose a tag to compare
@svigerske svigerske released this 14 Sep 05:12
· 1100 commits to master since this release

Fixed bugs

  • fix bug in separator aggregation that caused incorrect terminations when for an integral objective the objective limit was set to a fractional value
  • fix bug in memory management of doublelex matrices where indices were set beyond array bounds
  • store relevance flags in consdataTightenCoefs() of cons_linear.c to avoid dropping variables unintentionally due to numerical changes
  • fix possible segmentation fault when resetting local and global bounds of original variables after abnormal termination
  • compare coefficient scales to detect parallelism to avoid integral relaxations in detectRedundantConstraints() of cons_linear.c
  • remove coefficient information from linear constraint hashes in order to compare keys with tolerances
  • fixed NULL pointer dereference in SCIPtpiGetNumThreads() of TinyCThread interface if called before SCIPtpiInit(); now returns 0 in this case
  • calling SCIPsolveConcurrent() when SCIP was compiled without a TPI now results in a plugin-not-found error
  • fixed LPI status functions of lpi_cpx if the barrier is called
  • check cuts for redundancy after scaling in cutTightenCoefs() and cutTightenCoefsQuad() of cuts.c
  • maintain definition of artificial integral variables in xor constraints to avoid invalidation of conflict constraints
  • free childless nodes only after the deactivation of the old focus path in treeSwitchPath() of tree.c
  • only normalize rows for column norm evaluations in shift-and-propagate heuristic to avoid unscaled violations
  • expression handler for absolute value computes now also a cut when one of the bounds is infinite as long as the sign of the argument is known
  • check for more data to be freed before modifying nonlinear constraints in SCIPaddExprNonlinear()
  • allow for terms with zero coefficients when checking sum in SCIPexprCheckQuadratic()
  • do not abort writing of constraints to lp/pip files (and forget to free buffer memory) when encountering unsupported nonlinear constraint
  • fixed that strings with names and descriptions of the LPI's were not null-terminated
  • fixed decision on when to enforce nonlinear constraints on relaxation solutions if integer variables are present
  • fixed reading of very long lines (>78000 characters) in FlatZinc reader
  • fixed write of strings with at least 1024 characters when compiling with MSVS 2015 (14.0) or later (still an issue with earlier MSVS, which will not be fixed)
  • keep epsilon coefficients in applyFixings() of cons_linear.c until multiples are merged to avoid loss of relevant contributions
  • fixed that some variable type changes were not accounted correctly in presolve of linear constraints
  • fix constraint sorting in setpp-orbitope upgrade in symmetry code
  • fixed that SCIPnodeGetConsProps() also counted bound changes from propagators
  • use original and-constraints of an untransformed pseudoboolean constraint when copying original problems to avert segmentation faults
  • sort and-constraints of a pseudoboolean constraint with respect to the resultant problem indices to avoid shuffled copies
  • treat pseudoboolean constraints as nonlinear constraints in OPB reader to prevent duplication mistakes

Examples and applications

  • Binpacking example: implement Farkas pricing for packings because branching can actually lead to infeasible restricted master LPs

Testing

  • allow unknown parameters to let tests pass if only optional dependencies are missing

Build system

Cmake

  • fixed compilation and linking with HiGHS; to use HiGHS, cmake now requires to specify the directory containing the highs-config.cmake file via -DHIGHS_DIR
  • extended identification of Ipopt library on Windows to also look for ipopt.dll.lib, as this is used since Ipopt 3.13.0 (2019)

Known Issues

  • recent changes in HiGHS can lead to errors when using HiGHS as LP solver under SCIP (#102)