2026.5.28
Bug fixes
Serious fix in initialization that led to BARON ignoring variable bounds, although rarely affecting problems.
2026.5.27
Platform and packaging
- Cleaned up all build and packaging scripts.
- New
LICENSESfolder andTHIRD-PARTY-LICENSESfile in the distribution. - Contact address for the BARON manual and software updated to
info@minlp.com.
2026.4.12
New features
- First implementation of an SOCP relaxation for convex MINLPs.
Algorithmic improvements
- Improved violation transfer for bilinears.
- Enhanced performance of RLT cuts.
- Tightened limits for aggregation, CMIR, and Gomory cuts.
Bug fixes
- Serious fix in presolve for reformulations of products based on linear relationships.
- Fix in time-file reporting so that the calculated dual bound is returned even when bounds are missing.
- Fix in the power-reduction routine.
- Several fixes for
NUMSOL=-1handling in solution and feature reporting.
Platform and packaging
All libraries compiled with position-independent code and hidden visibility.
2026.2.10
New features
- First implementation of hierarchical RLT cuts.
- First implementation of a repeated-SOC relaxation.
- Hash tables now used to avoid duplicate lifting operations in the bilinear cut generator.
Bug fixes
- Fixed memory-allocation issues in FilterSD that had led to false valgrind reports and to issues with changing problem dimensions.
- Fix in the FilterSD AD interface.
2026.1.7
Bug fixes
Multiple fixes in presolve and related modules.
Documentation
Updated the EPSR entry in the manual to reflect the relative-gap calculation in use.
2025.12.10
Algorithmic improvements
- Major fix and improvements to CMIR cuts for problems with general integer variables.
- Improvements to Gomory cuts to avoid numerical issues for MINLPs.
- Bound substitution information is now cleared between cut-generation iterations.
- Calculation of relative gap is now done in agreement with the GAMS relative-gap formula.
Bug fixes
- Fix in CMIR cuts with fixed variables.
- Serious bug fix in the use of marginals-based tests during probing of the objective: these are now applied only to safe LPs.
Documentation
Updated opening screen. Removed the term "demo" from the software page.
2025.12.5
Algorithmic improvements
Enhanced CMIR and Gomory cuts: more variables are now complemented to increase the fractionality of the right-hand side.
Bug fixes
Fix in presolve and corrections to the default value of the times file documented in the manual.
2025.11.28
New features
- Enhanced LP-based strong branching.
Algorithmic improvements
- Further updates to option auto-adjustment for QPs.
- Improvements in CMIR cuts.
- BARON no longer performs risky presolve disaggregations when CBC is used as the MIP subsolver.
Documentation
Improved messaging when the CPLEX library cannot be loaded, including under AMPL when no license is available.
2025.11.17
In addition to bug fixes, this version provides duals for more problem classes and comes with improved algorithms for integer programs and quadratic programs.
New features
- Cut selection is now based on a combined score of efficacy, orthogonality, and objective parallelism. Dominated, parallel, and non-orthogonal cuts are filtered out.
Algorithmic improvements
- Enhanced CMIR cuts.
- The MIQP subsolver call is now disabled for problems with no more than 20 constraints.
Bug fixes
- Fixes in cut generation, recursive I/O, memory management, and dual calculations.
- Fix in the range-reduction routine that addressed failures reported by the SECQUOIA testing framework.
2025.10.15
Bug fixes
- Fixes to ensure correct primal and dual solution reporting.
- Fixes in solver-exit and best-feasible-solution routines to avoid segmentation faults in cases of abnormal termination.
2025.10.10
Bug fixes
Fixes in new-solution and solver-exit routines to return correct primal and dual solutions.
Platform and packaging
Updated patchelf to version 0.18 in the ARM build environment.
2025.10.5
Bug fixes
- Fix in solution-reporting routines so that BARON returns postprocessed solutions without further computation in cases of Ctrl-C and segmentation faults.
- Fix in two-dimensional array resizing.
2025.9.30
Bug fixes
- Fixes in the calculation of probe time and HSL time.
- Fix in the MIP aggregator.
2025.9.29
Algorithmic improvements
- Reactivated Gomory cuts, now using linked lists and hash tables for the row-similarity structure.
- New hash table for filtering redundant cuts (parallel, duplicate, dominated).
- New capability to generate cuts over cuts in the aggregator.
- Limits added to aggregation; fixes and improvements to CMIR and MIR cuts.
Bug fixes
Fix in monotonicity-based presolve for variable upper-bounding constraints.
2025.9.15
Bug fixes
Removed extraneous "calculating dual" printing.
2025.9.13
New features
- Strong Chvátal-Gomory (SCG) cuts are now enabled by default.
- Enhanced Gomory cuts.
- BARON now retrieves the basis inverse from CPLEX and CBC for Gomory cut generation.
- Reporting of CPLEX MIP tentative primal bound during MIP calls (for MIPs).
Algorithmic improvements
- Added limits to the aggregator and corrected several issues in its logic.
- Improved clique cut generation: cuts are now restricted to children nodes whose binary variable set matches the root node, avoiding a crash for certain models.
Bug fixes
- Fix in presolve for a case where an infeasible LP was declared feasible.
- Modifications to obtain dual values through dual-switching.
- Fix in CPLEX interface to handle thread-safety in Gomory cut generation.
2025.8.12
Algorithmic improvements
- Updated the embedded IPOPT to match version 3.14.18.
- Changes in hash, presolve, and other modules to eliminate valgrind warnings.
Platform and packaging
ARM64 build now reduces GLIBC dependencies from 2.38 to 2.17.
2025.8.5
In addition to bug fixes, this version comes with the first release of an ARM64 build of BARON.
Platform and packaging
- First ARM64 build of BARON.
- METIS now compiled with BARON's own makefiles on all platforms.
2025.7.29
In addition to bug fixes, this version comes with links to IPOPT 3.14.17 and CBC 2.10.12 on all platforms.
Algorithmic improvements
- Linked to IPOPT 3.14.17 on Windows.
- Linked to CBC 2.10.12 on all four platforms.
- Reset CLP's primal-column-steepest pricing to its original version after testing showed no benefit from modifications.
Bug fixes
- Bug fix in problem-storage initialization.
- Improved robustness of relaxation constructors by avoiding outer approximations when the bounds are very tight.
- Fixes in dual calculations.
Platform and packaging
- IPOPT now available on macOS Apple Silicon for the first time.
- Windows: now using Visual Studio 2022 and Intel Compilers 2025; switched from
xilibtollvm-libin all makefiles; fixed pthreads, IPOPT, and CBC build issues. - EV-signed Windows executable.
2025.7.16
Bug fixes
Fix in convexity recognition identified during a run with GNU compilers.
Platform and packaging
- Eliminated floating-point exception traps from the makefile.
- Added a Windows zip archive to the distribution.
- Built macOS Apple Silicon version with
MACOSX_DEPLOYMENT_TARGET=13.0and macOS Intel withMACOSX_DEPLOYMENT_TARGET=10.12.
2025.7.10
In addition to bug fixes, this version comes with improvements in presolve and cutting planes for integer optimization problems, links to IPOPT 3.14.17 on Linux and macOS, and increased robustness for numerical operations throughout the code.
New features
- Controlling the complexity of probing.
- Improvements to Gomory cuts.
- BARON now updates implications dynamically during presolve.
- Additional conflict detection, probing, and redundant-elimination-based tightening in presolve.
- BARON now returns
BARSTATUS = 9in case of a segmentation fault.
Algorithmic improvements
- Updated to IPOPT 3.14.17 on Linux and macOS.
- Local identification of binary variables during the branch-and-bound tree, with updates to cut generators accordingly.
- Improvements in presolve for empty/monotonic columns.
- Decoupled options for MIP presolve and MIP cuts.
Bug fixes
- Fixed overflows in monomial reduction that had led to incorrect infeasibility claims for ALAMO-generated models with poor numerical scaling.
- Fix in best-objective printing for large objective values.
- Fix in lower-bounding range reduction to account for feasibility tolerances.
- Multiple fixes in presolve, including redundant-bound tightening and clique detection.
Platform and packaging
Linux build chain transitioned from icc/ifort to icx/ifx.
Licensing
A new subscription-based pricing model was launched.
2025.3.19
In addition to bug fixes, this version comes with improvements in integer presolve and the generation of cutting planes for integer optimization problems.
Algorithmic improvements
- Improvements in presolve for linear pure-binary rows: coefficient reduction, variable elimination, aggregation, and clique merging.
- Expanded integer presolve for mixed-integer rows.
- Presolve now performs simple probing (fixing binary variables to 0 and 1, then performing lower-bounding-based tightening).
- Clique-based coefficient strengthening for knapsack rows.
Bug fixes
- Restricted CONOPT calls to a single thread for determinism.
- Multiple fixes in presolve to address infeasibility reports.
- Fix in progress-estimate calculation.
- Range reduction made more conservative in response to a customer infeasibility report.
Documentation
Added an IIS warning to the manual.
2025.2.1
In addition to bug fixes, this version comes with improvements in integer presolve and the generation of cutting planes for integer optimization problems.
Algorithmic improvements
- Reactivated identification of implied knapsack constraints in cut generation.
- Reactivated clique merging in presolve.
- Improved clique merging.
Bug fixes
- Fixes in convexity recognition and the LP-preprocessor.
- Aggregation cuts disabled for mixed-integer rows.
2024.12.21
In addition to bug fixes, this version comes with improvements in memory management, convexity identification, branching, and new relaxation and reduction strategies for certain quadratic and concave programs.
New features
- Convex QCQP relaxations now applied to quadratic problems that are almost convex except for concave terms in the objective.
- New QUBO roof-duality implementation.
- New PXTRMDO implementation; concave minimization over polytopes is now recognized.
Algorithmic improvements
- More aggressive and accurate implementation of
DELTATERM. - Auto-selection between eigenvalue calculation routines based on problem size.
- More accurate total-memory estimation throughout.
- Improvements in stability of the dual bound, now independent of
ABSCONFEASTOL. - Updates to the AD module to deal directly with divisions by zero and avoid NaN propagation.
- More aggressive probing for bilinear problems (extended pooling).
- Now using variable-classification information, significantly cutting memory requirements for problems with implied binary/integer variables.
Bug fixes
- Fix in safe-LP routine.
- Fixes in MIP and MIQCP call routines related to objective adjustment.
- Fix in piecewise-relaxation handling.
- Fix in evaluation-of-objective routine to order terms by magnitude before summation.
2024.10.10
Algorithmic improvements
Default value of ABSCONFEASTOL changed to 1e-6, matching the standard value used in published comparisons.
Bug fixes
Bug fixes in implied-bound-tightening control flags and presolve.
2024.10.2
In addition to bug fixes, this version comes with better scaling algorithms. Users who want a dual at the end of the run should consult the manual for the WANTDUAL option and the newly introduced DUALBUDGET option.
New features
- New nonlinear scaling, enabled by default.
- New options
PRIMALCSTOL,DUALCSTOL,DUALFEASTOL,ECTOL, andDUALBUDGET.
Algorithmic improvements
Improved scaling throughout.
Bug fixes
Fix in AD to avoid returning NaN for gradients of square root and other powers when evaluated at zero.
2024.9.14
Bug fixes
Fixes in presolve and lower-bounding-based tightening identified during testing.
2024.9.12
In addition to bug fixes, this version comes with a large number of improved algorithms, including improvements in convexity identification, convexification, branching, and a more sophisticated presolve for linear, integer, and nonlinear problems.
New features
- New printing of memory usage in the iteration log.
- New cuts for constraints identified dynamically as convex/concave during the branch-and-bound tree.
- New identification of implied knapsack constraints.
Algorithmic improvements
- Expanded certain variable disaggregation techniques to constraints in addition to the objective.
- Edge-concave relaxations reactivated after multiple fixes.
- Multiple fixes to facilitate convexity identification in presolve.
- Presolve no longer disaggregates square terms involved in absolute functions or powers, since this destroys convexity recognition.
- Presolve now allows more aggressive substitution and aggregation for affine functions feeding bilinear products.
- Postprocessing fixes for models reduced to empty in presolve.
Bug fixes
- Fix in row-based bound tightening.
- Numerical fixes in presolve.
2024.5.8
In addition to bug fixes, this version comes with a large number of improved algorithms, including improvements in convexity identification, facilities for handling quadratic programs, scaling for numerically challenging problems, and range reduction via Fourier-Motzkin elimination. The random seed is now an option, allowing users to control starting points used for local search across different runs.
New features
- Extended Fourier-Motzkin elimination to certain integer-variable cases.
Bug fixes
Fix in the parser for powers of different multiples of the same variable, such as those that appear in the palmer7e problem.
2024.4.6
New features
- Expanded convexity recognition to identify additional NLP cases.
- New Cholesky factorization routine.
Algorithmic improvements
Replaced linked lists by compressed arrays in QUBO-based bound tightening.
2024.3.10
Bug fixes
- Fix to accurately report the lower bound at termination.
- Fix to ensure consistent printing of objective function values.
- Fix in the reformulator to address a customer report.
- Fix in the cleanup of RLT cut generation so empty cuts are not produced.
- Fix in the SOS-relaxation routine that had led to a segmentation fault for certain large problems.
2024.3.1
Bug fixes
- Fix in NLP convexity detection in relation to SOCPs that CPLEX does not recognize.
- Improvements in Fourier-Motzkin elimination implementation.
- Fix in dual calculation.
2024.2.29
Bug fixes
- Fix in the SOCP recognition routine for a customer-reported model.
- Fix in range reduction for a customer-reported QCQP model.
- Updates in the quadratic relaxation module and lower-bounding-based tightening to improve performance on dense QCQPs.
- Fix in the RLT routine to reduce the number of unsafe cuts.
2024.2.21
New features
- Host name is now printed in the listing file.
- New row-based rank-bound-tightening routine.
- New eigenvalue-solver auto-selection algorithms.
- Convexity recognition now identifies generalized entropy functions and certain log-product families.
- New domain reduction for ratios of sums of affine functions.
- Careful ordering of rows in lower-bounding-based tightening.
2024.1.30
Bug fixes
Tuning of the maximum-probing-iteration limit.
2024.1.27
In addition to bug fixes, this version comes with a large number of improved algorithms for NLPs, MIQPs, and MINLPs, including local search, reformulations, relaxations, cutting planes, and presolve.
New features
- First implementation of SOS-row relaxation.
- MA57 now invoked from BARON's eigenvalue routine.
Algorithmic improvements
- Improvements in QP relaxations.
- Speedups in convexity identification.
- Reduced memory requirements of convexity identification for eigenvalue calculations from O(n²) to O(n).
- Tuning of the maximum-probing-iteration limit and prefix probing.
Bug fixes
Fixes in presolve and reformulator, especially affecting MIQPs.
2024.1.5
Bug fixes
- Fix in the convex quadratics module.
- Fix in the flowers module identified through a customer-reported problem.
- Bug fix in the postsolve/reformulator path.
2023.12.16
Algorithmic improvements
- Speedup in presolve by reducing the frequency of dependency-checking calls.
- Activated row-based bound tightening (
ROWBBT). - Fixes to power and bilinear bound tightening, footer writing, and presolve term reformulation.
2023.11.13
Bug fixes
Fixes in maximum-probing-iteration implementation and in option-file generation for GAMS subsolvers.
2023.11.10
New features
- CONOPT4 is now used exclusively, replacing CONOPT3.
2023.11.4
In addition to bug fixes, this version comes with a large number of improved algorithms for integer linear and nonlinear programs, including local search, reformulations, relaxations, cutting planes, and integer presolve.
New features
- New cMIR cuts.
- New aggregation cuts.
- Subsolver option files are now generated for GAMS environments.
- Termination via Ctrl-C now prints the BARON footer.
Algorithmic improvements
- Improvements in disaggregation and handling of relaxation-only equations.
- Reactivation of flow-cover and GUB-cover cut generators after multiple fixes.
- Improvements in CBC-based MIP relaxations and Fourier-Motzkin elimination.
- Improvements in MIP solution pool handling.
- Improvements in basis updates in BARON's LP interface.
- Implementation of rounds of cutting planes with MIPs.
- Scaling improvements for the affine row pool and for cuts.
- More conservative reduction based on marginals.
- Less aggressive LP-solver feasibility-tolerance switching.
Bug fixes
- Fix in violation calculations involving logarithmic and exponential functions to eliminate NaNs.
- Multiple fixes in IIS computation and CBC interface.
2023.6.23
Algorithmic improvements
Set LPALG to -1 (auto).
2023.6.22
New features
- Improvements in the piecewise relaxation module.
- First implementation of column-based bound tightening in the KKT module.
Bug fixes
- Fix in LP-solver routine that was affecting branching when safe-LP was disabled.
- Fix in solution-point initialization when an improved solution is identified.
2023.6.15
In addition to bug fixes, this version comes with improvements in BARON's presolve and the first release of BARON's new reformulator.
New features
First release of BARON's reformulator. Trilinear product disaggregation is now supported. Expanded piecewise relaxation.
Algorithmic improvements
Improvements in violation calculations for relaxations and probing; improved reformulator.
2023.5.23
Bug fixes
Bug fixes throughout.
2023.5.8
New features
- New reduction algorithms added.
- New relaxations for QPs.
2023.4.28
Bug fixes
Fixes in the ALLOWXPRESS, ALLOWCPLEX, ALLOWCBC, and ALLOWHSL options.
2023.4.27
In addition to bug fixes, this version comes with improvements in BARON's facilities for quadratic programs and integer presolve.
New features
- New
ALLOWXPRESS,ALLOWCPLEX,ALLOWCBC, andALLOWHSLoptions to control subsolver availability. - Hash tables now used to speed up presolve.
Algorithmic improvements
- Marginals-based reduction of eliminated but not fixed variables in presolve.
- Fixes in the quadratic relaxation module's marginals.
- Fix in the CPLEX interface that had caused local search to stall during heuristic search.
- New heuristics for MIP-call algorithm selection.
Bug fixes
- Memory-leak fixes in the parser; freed memory allocations in the solver.
- Reformulator now handles complementarities correctly.
Documentation
Updated manual with instructions for silent installation on Windows.
Platform and packaging
Changes in makefiles to support an ARM compiler.
2023.3.11
Bug fixes
Fixes in signal handling so that BARON correctly captures Ctrl-C and terminates cleanly; updated CPLEX library version numbers for Windows.
2023.2.27
Algorithmic improvements
- Implemented new convex cuts.
- Reformulation of certain perspectives with binaries to convex form.
- Fixes in the CPLEX QP interface.
Platform and packaging
- Build environment upgraded: CentOS 7 to 8 on Linux build hosts; macOS 10 to 13 on macOS build host; Visual Studio 2017 to 2022 on Windows; Intel Compilers updated.
- Switched from
icltoicxon Linux and Windows.
2023.1.5
In addition to bug fixes, this version comes with significant improvements in BARON's facilities for quadratic programs, tree-management strategies, and integer presolve. In comparison to the September 2022 version, the average speedup on the entire MINLPlib is approximately 1.7x in geometric mean.
New features
- New and refined relaxed-SOC implementation.
- New algorithms for calling CPLEX to solve MIQCQP relaxations.
- Parser now reports the line number in which a power expression error occurs.
2022.12.18
New features
- SOCP constraint recognition expanded.
Algorithmic improvements
- Improvements in the safe-LP implementation.
- Fix in CPLEX interface to eliminate informational callbacks, enabling CPLEX's dynamic search algorithm for MIPs.
- Improvements for probing during application to large-scale problems.
- Strong branching is now performed on variables at bounds.
- Fixes in presolve and lower-bounding-based tightening for numerically sensitive problems.
Bug fixes
- Major fix in violation calculations that had previously zeroed out violations for variables at bounds.
- Better handling of numerical issues in relaxation constructors.
2022.11.3
New features
- New probing algorithms.
- New cut-generator algorithms, plus per-cut-family enablements.
- Improved node selection algorithms.
Algorithmic improvements
- Improvements in dual calculation.
- Expanded type-of-variable recognition to identify integrality of variables in constraints with integers only.
- Expanded MC-binary-QP recognition to products between binary and non-binary variables.
2022.9.30
In addition to bug fixes, this version comes with significant improvements in BARON's core range-reduction routines, making them more robust and effective. Additionally, it includes improved relaxations for binary quadratic programs, improved branching strategies for integer programs, and an improved integer presolve.
New features
- New algorithms to recognize problems whose only nonlinearities are products of binary variables.
Algorithmic improvements
- More aggressive tightening in NLP presolve.
- Fix in to enforce branching on integers for convex problems.
- Improvements in lower-bounding-based tightening for numerically sensitive rows.
2022.9.1
In addition to bug fixes, this version comes with significant improvements in BARON's CPLEX, CBC, and IPOPT interfaces, better treatment of convex and quadratic problems, improved cutting, reduction, and branching strategies, and much-improved continuous and integer presolve algorithms.
New features
- New algorithms to control scaling in identification.
- Aggressive probing at the root node in case of missing bounds.
- Integer scaling of the objective function.
Algorithmic improvements
- Streamlined lower-bounding-based tightening tolerances.
- Better handling of CBC unbounded LPs.
- Fixes in unbounded-LP handling and reporting.
Bug fixes
Major fix in presolve that was generating NaNs for integer programs.
2022.7.23
Algorithmic improvements
- Moved CBC and CLP event handlers to
.cppfile for more reliable cut and dual extraction. - Eliminated calls to solver strong-branching routines in favor of BARON's own implementation.
- Added the infeasible-LP case to strong-branching calculations.
2022.7.22
New features
- New
RELGAPTYPEoption. - New
PROBLEMISCONVEXoption.
Algorithmic improvements
- Improvements in mishap handling during relaxation construction.
- New integer-presolve tests.
- CBC and CLP presolve disabled.
2022.6.4
New features
- New node selection algorithms.
2022.6.2
New features
- Capability for multiple presolve rounds within a single iteration.
- Implementation of new integer-presolve techniques such as simple probing.
Algorithmic improvements
- Updated NLP-relaxation routines to account for presolve reductions when determining the starting point for NLP subproblems of MINLPs.
- Reactivated AIMMS and AMPL subnlp solver calls.
2022.4.20
Bug fixes
- Fixes in extended interval-arithmetic operations.
- Improvements in safe-LP routines.
- Fixes in presolve.
2022.3.21
Bug fixes
- Further improvements in safe-LP routines.
- Now reading the GAMS license-checker status and terminating in case of errors.
- Fixes in presolve initialization options.
2022.3.17
Bug fixes
- Re-enabled use of previous solution for warm-starting convex problems.
- Major fixes in NLP-presolve to address issues affecting convex subproblems and previously non-monotonic sequences of lower bounds.
- Major bug fix to correct signs of prices from external solvers for maximization problems.
- Improvements in safe-LP routines.
2022.2.12
Bug fixes
- Fixes in NLP-presolve and writing of the time file.
- Fixes in presolve for doubly-sided inequalities.
2022.1.19
A large number of changes since the previous release:
- Improved interfaces to CBC.
- Improved control over the effects of floating-point round-off errors.
- Faster hashing routines.
- New lift-and-project implementation extends BARON's previous RLT implementation to generic NLPs and MINLPs, leading to substantial reduction of duality gaps for difficult problems.
- Parser now accepts variable names up to 128 characters in length.
- More classes of SOCPs are now recognized by BARON.
- Improved tree management, including restarts of branch-and-bound search.
- BARON's embedded FilterSD algorithm is now off by default.
- Improvements to the IPOPT interface.
- Improved branching routines for the identification of most-important branching variables.
- Dynamic LP algorithm selection improves robustness for numerically difficult problems.
- New presolve implementation with novel techniques for linear and nonlinear optimization problems improves performance for many problem classes.
The new version leads to orders-of-magnitude speedups for difficult problems supplied by customers. Problems in standard test libraries such as MINLPlib and GlobalLib are not affected as much.
BARON 21.1.7 — 21.1.13 (January 2021)
Performance improvements include an improved interface to IPOPT for local search. The default value of BARON's relative optimality tolerance (EPSR) is now 1e-6. The default value of LPSOL is now -1: CPLEX will be loaded if available; otherwise, CBC will be used for BARON's LP and MIP subproblems.
New features
- New post-solve module.
- Unified numerical-parameter and cut-checking routines.
Algorithmic improvements
- IPOPT interface now exploits linearity.
- Improved fixes in IPOPT build and install.
BARON 20.10.16 — 20.10.25 (October 2020)
Performance improvements include faster automatic differentiation, improved probing, improved local search, and improvements in BARON's cutting-plane routines. BARON now provides duals by default. Linked to CBC 2.10.5 and CPLEX 20.10.
New features
- Binary search trees in AD for faster gradient and Hessian evaluation.
- Parser improvements: now handles
(-1/x)^fractionwithout an explicit unary-minus token.
Algorithmic improvements
- Major bug fix in AD that had affected MINOS and SNOPT.
- Speedups in AD for LPs, MIPs, and QCQPs.
- Updated to CBC 2.10.5 and CPLEX 20.10.
- Improvements in IIS computation.
BARON 20.4.14 (April 2020)
Performance improvements include improved local-search strategies, a more effective cut-pool manager, new relaxations for MIQPs, and a new LP subsolver based on HSL's LA04 with option LPSOL=15.
New features
- New
LPSOL=15option: HSL LA04 LP subsolver. - New dynamic LP-algorithm selection.
- Multithreaded barrier for LP subproblems.
BARON 19.7.9 — 19.12.7 (July—December 2019)
New features
- New
LOCFREQoption for better control of local search during branch-and-bound. - New presolve compatible with nonlinear problems.
- New module with QCP relaxations for MIQPs.
Algorithmic improvements
- Improved automatic differentiation; eliminated valgrind errors.
- Linked to CPLEX 12.10.
- Replaced MC19 with the better MC29.
Bug fixes
- Fix in calculation of pre-solve time.
- Multiple fixes in presolve.
- Fixes in dual calculation routines.
- Fix in MATLAB/BARON interface (version 1.89) to allow real values for
MAXTIME.
BARON 19.3.21 — 19.3.24 (March 2019)
New features
- New
FIRSTLOCoption for first-locality control of local search. - New BARON model files via
BARWRITEMODELand trace viaBARTRACE.
Algorithmic improvements
- Implemented new node selection strategies.
- Reduction based on forward fixing with fixed variables.
- New efficient initialization of AD work arrays.
- Compiled with MKL.
- Updated CPLEX interface to work with CPLEX 12.9.0.
- Linked to new Intel compilers.
Bug fixes
- Multiple fixes in safe-LP, presolve, and reformulator.
- Fix in BARON wall-clock-time calculation (negative-time issue resolved).
- Fix in convexity detector.
BARON 18.5.8 — 18.12.26 (May—December 2018)
New features
- Developed native Windows build with Intel compilers.
- New integer heap data structures; storage of LIFO heap as an integer heap.
- Linked to MUMPS 5.1.2, IPOPT 3.12.8, and CBC 2.9.9.
- Replaced MUMPS by HSL57 for IPOPT.
- Multithreaded CBC via pthreads.
- Dropped all 32-bit versions.
Algorithmic improvements
- Used
-fp-model consistentto improve consistency between runs on the same or different platforms. - Improvements in cvx, isconvex, and bilinear modules.
Bug fixes
- Fixed a serious bug in identification of integers in the type-of-variable routine that had been introduced in 2013.
- Fix to enforce bounds on integer variables that do not violate the system maximum integer.
- Multiple fixes in relaxation constructors.
- Multi-threaded race-condition fix using
pthread_mutexto avoid simultaneous calls to same BARON routines from OSI/CPLEX/Xpress interfaces.
BARON 17.1.2 — 17.10.16 (January—October 2017)
New features
- Activated RLT relaxations.
- Extended
DELTATERMimplementation to enforce time limits on subsolvers. - Hessian-based AD.
- FilterSQP added as a local solver.
- Improvements in Hessian calculations.
Algorithmic improvements
- Significant speedups for convex inequality-constrained quadratic programs.
- Refined NLP solver-selection strategies.
- Fixes to identify more perspective and SOC structures.
- Replaced recursive tree-variable traversal with a pointer-stack approach (eliminated segfaults for a class of problems).
- Compilation with new Intel compilers resolved issues with segfaults on Arch Linux.
Bug fixes
- Multiple fixes in envelope calculations, including for division by zero.
- Fix in NLP-presolve for the case of maximizing LPs with objective shifts.
Platform and packaging
Compiled on RHEL6 (GLIBC 2.12) and eliminated GLIBC 2.11 dependency for Linux libraries.
BARON 16.3.4 — 16.12.7 (March—December 2016)
New features
- New AD routine.
- New edge-concave relaxations.
- New heuristics for integer programs.
- New
WANTDUALoption.
Algorithmic improvements
- Strong branching implemented natively in BARON (no longer relying on solver routines); enables solution-correctness checks and provides duals.
- Improved cut manager: eliminates duplicates and similar cuts.
- Recognition of complementarity and complementary-slackness problems.
- Enhanced presolve to eliminate rows and columns.
Bug fixes
- Multiple fixes in flow-cover and GUB-cover cut generators.
- Multiple fixes in IPOPT interface.
BARON 15.0.0 — 15.9.22 (January—September 2015)
New features
- Improvements in IIS (irreducible inconsistent set) computation, activated by default with refined ordering.
- Renamed
SUBPARAtoTHREADS; wall-clock timing used forTHREADS > 1. - Parallel CBC enabled on Windows via pthreads.
- Linked to CBC 2.9.0 (later 2.9.5) and IPOPT 3.12.3.
- Compiled OSX libraries with Intel compilers.
Algorithmic improvements
- MIP-related improvements; better handling of integer-related range reduction.
Bug fixes
- Multiple fixes in NLP-solver assignment.
- Fixes in cut-manager memory initialization.
- Fixes in LP interface, FilterSQP, and Ipopt build for Windows 10.
BARON 14.0.0 — 14.4.0 (July—December 2014)
New features
- Revamped LP interfaces and safe-LP procedures. Cuts are now available in row-major form.
- New link to OSI interface and CBC 2.8.9.
- Pseudocosts, strong branching, and reliability branching for integer programs.
- Default
MAXTIMEchanged to 1000. - Parsing and reformulation times reduced by up to 90% for many medium and large problems.
- New parser: up to an order of magnitude reduction in parsing times.
- New IIS implementation.
- Dynamic loading of CPLEX and XPRESS.
- Linked to XPRS 26.01.04 and IPOPT 3.11.9.
Algorithmic improvements
- Refined cutting-plane implementations for integer programs.
Documentation
TOF code distributions are now archived as zip archives starting with BARON 13.
BARON 12.0.0 — 13.2.0 (February 2013—May 2014)
New features
- Dynamic memory allocation throughout BARON.
- New automatic LP/NLP-subsolver detection and switching.
- Refined convexity-recognition modules.
- Reduced memory requirements for convexity recognition by orders of magnitude.
- Linked to Clp 1.14.8.
- New BARON-IIS via
BARIIS; new MIP coefficient-reduction and probing options. - New flow-cover and GUB-cover cuts.
- Updated to LAPACK/BLAS 3.5.0.
- Link to FilterSD.
Algorithmic improvements
- Reduced screen printing; introduced systematic IIS-feature obeying
MAXTIME. - Improvements in implication cuts.
- Automatic adjustment of number of reduction passes.
- Multiple LP-interface improvements for CPLEX, XPRESS, and CLP.
Bug fixes
- Multiple fixes in convexity identification modules.
- Multiple fixes in barlp/add routines for safety and correctness in feasibility checks.
BARON 11.0.0 — 11.9.1 (June 2012—February 2013)
A major release introducing new branching, relaxation, convexity-exploitation, local-search, and range-reduction techniques. Systematic treatment of missing bounds through safe relaxations.
New features
- Extended interval arithmetic for range reduction of ratios.
- New
BOXTOLhandling for preprocessing. - New aggregator routine identifies multiples among introduced variables.
- Dive-and-round heuristic for integer programs.
- Automatic local-solver selection and switching based on problem characteristics.
- Dynamic memory allocation in MINOS, SNOPT, and IPOPT interfaces.
- Linked to CPLEX 12.5, METIS 5.0.2, MUMPS 4.10, IPOPT 3.10.2, MINOS 5.51, and SNOPT 7.2-12.
Algorithmic improvements
- Introduced reduction based on quadratics with univariates and multivariates.
- Vectorized large portions of the code.
- Refined routines for additional function recognition.
- Segfault catcher and improved interrupt catcher.
BARON 10.0.0 — 10.3.3 (October 2011—May 2012)
A major release introducing cutting planes for convexity exploitation across a variety of functions, including products and ratios, perspectives, norms, and quadratic functions. Polyhedral convexification routines have been rewritten and are now more efficient and numerically robust.
New features
- Relaxations based on inferred bilinear relationships (first-order RLT).
- Convexity recognition extended for many additional functions.
- Product disaggregation in bilinear programming.
- Dropped support of MINOS/SNOPT for solution of LP subproblems (still used as NLP solvers).
- Linked to CLP and IPOPT (with MUMPS and METIS).
- Cuts based on product disaggregation.
BARON 9.0.0 — 9.3.2 (August 2009—September 2011)
New features
- Multilinear relaxations.
- 64-bit version introduced.
- Compiled with GCC/GFortran on Linux.
- Windows 32-bit version with MinGW; later 64-bit Windows with MinGW.
- Initial Windows 64-bit version under AIMMS.
Algorithmic improvements
- Increased default work-array size from 32 MB to 96 MB.
- Multiple improvements to the multilinear relaxation module.
- More aggressive preprocessing LPs for all variables.
BARON 8.0 — 8.2 (May 2007—August 2009)
New features
- Interface to XPRESS-MP.
- Updating of preprocessing LPs via row updates only when a new upper bound is found.
- External CONOPT support via GAMS link.
- Multiple bug fixes in cuts, branching, and NLP-subsolver interfaces.
BARON 7.0 — 7.9 (early 2004—April 2007)
A major release line. BARON 7.2 introduced branch-and-cut based on cutting planes from supporting hyperplanes of convex functions, as well as convex relaxations of nonconvex functions. Subsequent patch releases added the AIMMS link, refined monomial range reduction (extended to negative domains), introduced new options for LP/NLP-subsolver control, and added the AMPL interface.
New features
- Branch-and-cut based on cutting planes from supporting hyperplanes of convex functions.
- Interface to AIMMS.
- New
LOCBOUNDS,PRTIMEFREQ, and many other options. - Range reduction for monomial functions extended to negative domains.
- Fail-safe checks for numerical exceptions in monomial range reduction.
Bug fixes
- Multiple fixes in bound-crossing handling.
- Multiple fixes in secant-method monomial reduction and relaxation construction (these were major bugs, identified through customer test cases).
- Fix in cutoff option and BARON's maximization objective handling.
BARON 6.0 (2002–2003)
Following extensive testing of BARON 5.0 by external groups, BARON 6.0 incorporated those fixes and added several improvements, including reduced memory requirements, more aggressive probing, fine-tuning of many options, more precise handling of tolerances, aggressive control of evaluation errors in the calculation of nonlinear functions and derivatives, accurate timing of NLP subsolvers, and much faster gradient and function evaluation.
BARON 5.0 (1999–2000)
Support for semidefinite programming relaxations was included. The mixed-integer semidefinite-programming module was developed in collaboration with Matthew Wilkins. The fractional-programming module was made independent of the LP solver, and all modules were made solver-independent. The code compiled under Sun/OS, HP-UX, and Microsoft Fortran 90 on Windows 98.
BARON 4.0 (1997–1998)
Compressed data storage and fast tree-traversal techniques were incorporated. The factorable NLP module allowed an entirely linear-programming-based solution approach and utilized faster gradient evaluation. The separable convex quadratic and indefinite quadratic solvers were merged into a single module capable of handling mixed-integer positive definite, negative definite, and indefinite objectives. Modules could now interface with CPLEX and SNOPT in addition to OSL and MINOS.
BARON 3.0 (1996–1997)
A major release. BARON 3.0 offered more efficient memory management techniques, a specialized code for factorable nonlinear programming problems, an easy-to-use parser, and a detailed manual.
BARON 2.0 (1994–1995)
The FORTRAN 77 version, approximately 10,000 lines of code. Incorporated additional range-reduction techniques and was applied to polynomial and multiplicative programs, robust controller design, separable concave minimization, fixed-charge and concave minimization problems, and multiperiod planning. First made publicly available through anonymous FTP on 2 March 1995.
BARON 1.0 (1991–1993)
The first version of BARON was approximately 1,800 lines of code written in the GAMS modeling language. The code was initially applied to standard engineering design problems, the design of just-in-time manufacturing systems, circuit layout and compaction, and chemical process planning.