Lava Optimization Versions Save

Neuromorphic mathematical optimization with Lava

v0.4.0

6 months ago

Lava Optimization v0.4.0 Release Notes

November 9, 2023

What's Changed

New Features and Improvements

  • Three high-level applications that use the QUBO solver to solve the problems:
    • Scheduler:
      • matches a set of tasks with a set of agents.
      • formulates problems as Maximum Independent Set (MIS) problems.
      • Satellite Scheduler:
        • a special case of the Scheduler app.
        • the tasks to be scheduled are earth observation requests and agents performing these tasks are satellites.
    • Clustering application:
      • assigns cluster IDs to a set of points in 2-D space, based on their distance from cluster centroids.
      • assumes that the coordinates of the cluster centroids are given.
    • TSP
      • finds a route connecting way-points in 2-D.
      • currently, does not take the salesman's starting position into account.

Bug Fixes and Other Changes

  • No bug-fixes or other changes in this release.

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • No known issues in this release.

New Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.3.0...v0.4.0

v0.3.0

9 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.2.4...v0.3.0

v0.2.4

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.2.3...v0.2.4

v0.2.3

1 year ago

Lava Optimization v0.2.3 Release Notes

December 14, 2022

New Features and Improvements

  • New neuron model for OptimizationSolver provides substantial performance improvements on QUBO problems. (PR #138 & PR #141 & PR #145 & PR #146).
  • Improved SolverTuner interface and functionality, allowing for arbitrary hyper-parameters search spaces and stopping conditions. (PR #123)
  • Improved profiling utils can now measure energy consumption of OptimizationSolver running on Loihi 2. (PR #131 in lava & PR #137 in lava)

Bug Fixes and Other Changes

Breaking Changes

  • The SolverTuner API has been updated.
  • The QUBO solver now requires a different set of hyperparameters.

Known Issues

  • No known issues in this release.

Thanks to our Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.2.2...v0.2.3

v0.2.2

1 year ago

Lava Optimization v0.2.2 Release Notes

November 4, 2022

New Features and Improvements

  • No new features or improvements in this release.

Bug Fixes and Other Changes

  • Updated dependency on lava-nc from main to version 0.5.1.
  • Fix bug in "time_to_solution" of OptimizationSolver report. (PR #120)-
  • Add unit tests for solution of MISProblem. (PR #122)
  • Bugfix and API change for profiler utils in OptimizationSolver (PR #124)

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • No known issues in this release.

Thanks to our Contributors

  • Intel Labs Lava Developers

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.2.1...v0.2.2

v0.2.1

1 year ago

Lava Optimization v0.2.1 Release Notes

October 31, 2022

New Features and Improvements

  • OptimizationSolver now supports Loihi2 as a backend for Quadratic Unconstraint Binary Optimization (QUBO) problems.
  • A measure_solving_time method on the OptimizatinSolver allows to measure execution time that Loihi 2 required to solve a problem (PR #61).
  • A new type of QP solver, PIPG, with support for CPU (with floating point precision) and Loihi 2 (PR #105).
  • Fully revised QUBO tutorial now shows how to run QUBO solver on Loihi 2 (PR # 106 and #113).
  • A new BayesianSolver constitutes the first community contribution to the library (PR #32).
  • The first version of a SolverTuner allows random search over a user-defined hyperparameters grid and is composed onto the OptimizationSolver via a tune method (PR #66, #110 and PR# 112).
  • New MISProblem utility class allows to formulate maximum independent set (MIS) problems as QUBOs and obtain reference solutions to test OptimizationSolver with QUBO workloads (PR #71).

Bug Fixes and Other Changes

  • Fixed stalling tutorial tests and warning in the QUBO tutorial (PR #56 in lava)
  • Fixed decay rate update bug for GDCC QP solver (Earlier QP solver). Right-shifting is now replaced by division-by-2 (PR # 105)
  • Moving all processes to common process library (#43 and #95 and #83)
  • Refactored multiple redundant connection process and models into a single custom connection process for floating point implementation of GDCC. This connection process does not buffer like the Dense process in Lava and is therefore different in operation. Only to be used with the GDCC QP solver (PR #105)

Breaking Changes

  • The import path for ReadGate, QuboScif and CostIntegrator are changed, they are not longer under lava.proc but under lava.optimization.solvers.generic.

Known Issues

  • No known issues in this release.

Thanks to our Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.2.0...v0.2.1

v0.2.0

1 year ago

The lava-optim library version 0.2.0 provides a new quadratic unconstrained binary optimization (QUBO) solver executing on CPU. Loihi 2 support via the Loihi extension for Lava is coming soon.

Features and Improvements

  • Added new quadratic unconstrained binary optimization (QUBO) solver to Lava-Optim (PR #38).
  • Added a Maximum Independent Set tutorial to demonstrate the use of QUBO solver on CPU. Execution on Loihi 2 will enabled in a few days from initial release.

Bug Fixes and Other Changes

  • No Bug Fixes in this release.

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • No known issues at this point

What's Changed

New Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.1.2...v0.2.0

v0.1.2

2 years ago

Lava Optimization 0.1.2 is a bugfix dot release.

Features and Improvements

  • Added more content to tutorial_01. Some tuning guidelines of learning rates α and β for the QP solver have been added

Bug Fixes and Other Changes

  • Fixed bug affecting accuracy of floating-point QP solver (Issue #9) (PR#69)
  • Achieved speed up of QP solver execution speed by 50x eliminating busy waiting on CSP channel (Issue #16)(lava PR#87)
  • Changed solver interface to return solution values, removed default preconditioning in solver (Issue #15 & PR#14 & PR#19)
  • Corrected typos in tutorials (Issue #15 & PR#14 & PR#19)

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • No known issues at this point

What's Changed

Full Changelog: https://github.com/lava-nc/lava-optimization/compare/v0.1.1...v0.1.2

v0.1.1

2 years ago

Lava Constraint Optimization Library

The BSD-3 licensed lava-optimization library will soon include neuromorphic optimization solvers for linear (LP), quadratic (QP), mixed-integer linear (MILP), mixed-integer quadratic (MIQP) and quadratically constrained quadratic (QCQP) programming, as well as solvers for quadratically unconstrained binary optimization (QUBO) and constraint satisfaction problems (CSP). This first release includes a quadratic programming (QP) solver, following the general design principles of all future solvers in the library. As a first example to demonstrate the basic usage concepts of the solver, we provide a tutorial for solving a LASSO/sparse-coding problem.

This first version is implemented using floating point arithmetic and executes on CPU only. In future releases, we will release additional solvers, with support for Loihi-compatible fixed-point arithmetic on CPU and support for execution on Loihi platforms. The various features and API of the solvers will be described at https://lava-nc.org/optimization.html. In the meantime, we appreciate any feedback on the API design and welcome contributions in areas such as enabling pre-conditioning, pre-solving, heuristics, and meta-heuristics for the solvers where such features are pertinent or interfacing with other packages like PuLP.

New Features and Improvements

  • lava.lib.optimization.solver.qp is a first implementation of QP solver dynamics with equality and inequality constraints as well as unconstrained QPs in LAVA.

Bug Fixes and Other Changes

  • This is the first release of Lava. No bug fixes or other changes.

Breaking Changes

  • This is the first release of Lava. No breaking or other changes.

Known Issues

  • Floating-point solutions from the solver compared to numpy implementation of the same dynamics are a little off (precision falls). However, the behavior is convergent towards the actual solution.
  • The solver dynamics in Lava take longer than the dynamics in pure numpy resulting for the preliminary message passing implementation.
  • The growth-rate of the constraint-correction constant is currently set experimentally. Principled tuning guidelines will be part of the next release. Without this, solution will in most cases show convergent behavior, but convergence will start slowing down/stop away from the optimal solution.

What's Changed

New Contributors

Full Changelog: https://github.com/lava-nc/lava-optimization/commits/v0.1.1