Skip to content

Releases: hlefebvr/idol

v0.8.1-alpha

27 Aug 12:49
Compare
Choose a tag to compare

News

  • Allow to add new sub-problems on the fly with DantzigWolfeDecomposition optimizer

v0.8.0-alpha

24 Jun 12:59
Compare
Choose a tag to compare

New Features

  • Model::get_var_reduced_cost was created and returns, when applicable, the reduced cost of a variable.
  • Robust::ColumnAndConstraintGeneration can solve two-stage robust problems with bilevel solver for separation and trust-region stabilization.
  • Mosek wrapper now handles rotataed quadratic cone conversions.
  • Universal calback can now be added to Mosek (with features limited by Mosek's own calbacks however, i.e., one cannot add cuts in callbacks).
  • Universal callbacks now have methods best_obj, best_bound and terminate.

Fix

  • Timer was not working on MacOs.
  • dualize was not handling products correctly if required to land in variable space.
  • Remove warning if idol is not linked with coin-or/Osi.
  • Gurobi::read was not reading the objective sense.
  • Default value for "obj bound" and "obj limit" for maximization problems were set to -Inf and Inf instead of Inf and -Inf.
  • coin-or/MibS warpper now uses file communication and is, hence, more stable.

Updates

  • All MIP related classes and functions are now moved in idol/mixed-integer-optimization.

v0.7.0-alpha

07 Feb 16:43
Compare
Choose a tag to compare

New

  • Wrapper for coin-or/MibS to solve bi-level problems with mixed-integer follower
  • Wrapper for coin-or/Osi to solve LPs and MILPs (fully tested with Cplex up to nested branch-and-price)

Fix

  • Handling constant term in objective at creation time in HiGHS and Gurobi
  • Handling custom installation folder for Gurobi

v0.6.12-alpha

16 Jan 10:46
Compare
Choose a tag to compare

Fixes

  • model::fix now also fixes constant in quadratic terms

Updates

  • Maps are now only created in Constant if it is non-numerical. This to reduce memory usage.
  • Gurobi::read_from_file now also reads constraint names

v0.6.11-alpha

14 Dec 10:23
Compare
Choose a tag to compare

Updates

  • Allow to use latest version of Gurobi, version 11

v0.6.10-alpha

14 Dec 10:00
Compare
Choose a tag to compare

Fixes

  • idol::dualize, objective function offset was not added to the dual
  • Moving a model caused SEGV error if optimizer was already built

Updates

  • Improve readibility of std::cout << (Model)
  • read_from_lp_file and read_from_mps_file are moved to GLPK::read_from_file and now throw an exception if parsing fails
  • Added tutorial to documentation

New Features

  • Model::fix now creates a copy of a model and fixes all Param to their value in a given solution
  • Added Gurobi::read_from_file

v0.6.9-alpha

07 Dec 16:31
Compare
Choose a tag to compare

Fixes

  • Logs in DantzigWolfeDecomposition for SP, handle frequency
  • Handle default parameters in DantzigWolfeDecomposition (e.g., time limit, logs, etc.)

Updates

  • Change default values for knapsack cover, improve overall configuration
  • Reorganize logs

News

  • Add idol::dualize function to compute dual of an LP
  • Add idol::read_from_mps to read an MILP from MPS file (requires GLPK)
  • Add idol::read_from_lp to read an MILP from LP file (requires GLPK)

v0.6.8-alpha

24 Nov 11:55
Compare
Choose a tag to compare
  • FIX BranchingWithPriority initialize() was not propagating to sub-rules
  • FIX logger configuration in DW lead to segmentation fault
  • We no longer check heuristic solutions for validity by default
  • Turn off sub-tree exploration by default
  • Remove cutting-plane generators concept, use classic Branch-and-Bound callbacks instead
  • New Cuts::KnapsackCover for LMCI separation
  • New logging system for Branch-and-Bound

v0.6.7-alpha

15 Nov 21:35
Compare
Choose a tag to compare
  • FIX: adding constraint to sub-problem caused segmentation fault because of object moved before used
  • Making branching on constraint available for default nodes and node updator
  • Add initialization step for node updators and branching rules
  • Allow for Var() == Var() to define a TempCtr (used to be forced to Var() == 1. * Var())#
  • In DantzigWolfeDecomposition, write now exports master and sub-problems instead of just master

v0.6.6-alpha

14 Nov 17:17
Compare
Choose a tag to compare
  • Remove dependency on BranchAndBound class for the NodeInfoT::save method
  • Make DantzigWolfe::Formulation annotations accessible
  • Allow for submitting a decomposition by variable in DantzigWolfeDecomposition (to handle the case where only variables should be moved to SP)
  • Fixes bug when removing constraints from a DantzigWolfe::Formulation