Releases: lava-nc/lava-optimization
Lava Optimization 0.5.0
What's Changed
- Debug enablement of Sparse synapses for CostMinimizer by @GaboFGuerra in #253
- Bump tornado from 6.3.2 to 6.3.3 by @dependabot in #254
- Bump cryptography from 41.0.2 to 41.0.3 by @dependabot in #246
- Bump gitpython from 3.1.32 to 3.1.34 by @dependabot in #257
- Bump gitpython from 3.1.34 to 3.1.35 by @dependabot in #258
- Bump cryptography from 41.0.3 to 41.0.4 by @dependabot in #259
- Bump pillow from 10.0.0 to 10.0.1 by @dependabot in #263
- Bump urllib3 from 1.26.16 to 1.26.17 by @dependabot in #262
- Bump gitpython from 3.1.35 to 3.1.37 by @dependabot in #264
- Satellite scheduling app by @srrisbud in #260
- Bump urllib3 from 1.26.17 to 1.26.18 by @dependabot in #267
- added folded_compilation option in SolverConfig by @ymeng-git in #270
- Add Clustering and TSP apps by @srrisbud in #265
- Fix pypi publish in cd.yml by @mgkwill in #274
- [QUBO] correct local cost, separate annealing neuron, single flips per time step by @phstratmann in #272
- changing dependenices back to dev by @PhilippPlank in #279
- Bump cryptography from 41.0.5 to 41.0.6 by @dependabot in #280
- Bump gitpython from 3.1.40 to 3.1.41 by @dependabot in #282
- Bump jinja2 from 3.1.2 to 3.1.3 by @dependabot in #284
- Bump pillow from 10.1.0 to 10.2.0 by @dependabot in #285
- Enable different graph structures in MISProblem generator by @AlessandroPierro in #224
- Bump cryptography from 41.0.6 to 42.0.0 by @dependabot in #288
- Bump cryptography from 42.0.0 to 42.0.2 by @dependabot in #290
- Bump cryptography from 42.0.2 to 42.0.4 by @dependabot in #291
- [QUBO] Minor improvements by @phstratmann in #283
- Bump black from 22.12.0 to 24.3.0 by @dependabot in #292
- Bump pillow from 10.2.0 to 10.3.0 by @dependabot in #293
- Bump idna from 3.6 to 3.7 by @dependabot in #294
- Bump jinja2 from 3.1.3 to 3.1.4 by @dependabot in #296
- Bump requests from 2.31.0 to 2.32.0 by @dependabot in #298
- Bump tornado from 6.3.3 to 6.4.1 by @dependabot in #299
- Bump urllib3 from 2.1.0 to 2.2.2 by @dependabot in #300
- New QUBO Solver tutorial by @srrisbud in #305
New Contributors
- @ymeng-git made their first contribution in #270
Full Changelog: v0.3.0...v0.5.0
Lava Optimization 0.4.0
Lava Optimization v0.4.0 Release Notes
November 9, 2023
What's Changed
- Debug enablement of Sparse synapses for CostMinimizer by @GaboFGuerra in #253
- Bump tornado from 6.3.2 to 6.3.3 by @dependabot in #254
- Bump cryptography from 41.0.2 to 41.0.3 by @dependabot in #246
- Bump gitpython from 3.1.32 to 3.1.34 by @dependabot in #257
- Bump gitpython from 3.1.34 to 3.1.35 by @dependabot in #258
- Bump cryptography from 41.0.3 to 41.0.4 by @dependabot in #259
- Bump pillow from 10.0.0 to 10.0.1 by @dependabot in #263
- Bump urllib3 from 1.26.16 to 1.26.17 by @dependabot in #262
- Bump gitpython from 3.1.35 to 3.1.37 by @dependabot in #264
- Satellite scheduling app by @srrisbud in #260
- Bump urllib3 from 1.26.17 to 1.26.18 by @dependabot in #267
- added folded_compilation option in SolverConfig by @ymeng-git in #270
- Add Clustering and TSP apps by @srrisbud in #265
- Fix pypi publish in cd.yml by @mgkwill in #274
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.
- Scheduler:
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
- @ymeng-git made their first contribution in #270
Full Changelog: v0.3.0...v0.4.0
Lava 0.3.0
What's Changed
- Enable cost tracking with Loihi backend (#212) by @AlessandroPierro in #216
- Update license-metadata in pyproject.toml for pypi compatibility by @mgkwill in #218
- Enable state probing for OptimizationSolver on CPU and Loihi backend by @AlessandroPierro in #217
- Fix refract_counter init in NEBM/NEBMSA by @AlessandroPierro in #223
- Add seaborn to dependencies by @AlessandroPierro in #222
- Bump requests from 2.28.2 to 2.31.0 by @dependabot in #226
- Bump tornado from 6.2 to 6.3.2 by @dependabot in #228
- Bump cryptography from 39.0.1 to 41.0.0 by @dependabot in #231
- Add ReportAnalyzer utility class by @AlessandroPierro in #221
- Fix integer overflow bug by @phstratmann in #235
- Add 1-Layer and 2-Layer LCA Implementations for CPU Backend by @Gavinator98 in #200
- Update QUBO solver to use Sparse synapses by @AlessandroPierro in #237
- [QUBO] SA without linear approximation by @phstratmann in #239
- Dev/qp solv integration by @ashishrao7 in #238
- Bump cryptography from 41.0.0 to 41.0.2 by @dependabot in #240
- Bump pygments from 2.14.0 to 2.15.0 by @dependabot in #242
- Merge satellite scheduler and fix QUBOSolver convergence on CPU by @tim-shea in #241
New Contributors
- @Gavinator98 made their first contribution in #200
- @tim-shea made their first contribution in #241
Full Changelog: v0.2.4...v0.3.0
Lava Optimization 0.2.4
What's Changed
- resolving dependabot warning by @michaelbeale-IL in #154
- Update templates by @PhilippPlank in #166
- NEBM + SCIF merger with SCIF's WTA spikes only when switching states by @srrisbud in #155
- Improved OptimizationSolver API by @AlessandroPierro in #176
- Bump cryptography from 39.0.0 to 39.0.1 by @dependabot in #178
- Update SolverTuner behaviour with hyperparameters passed through SolverConfig by @AlessandroPierro in #180
- Bump ipython from 8.8.0 to 8.10.0 by @dependabot in #181
- Enable tracking of cost value through runtime and retrieval as raw data and plot. by @GaboFGuerra in #177
- Improve unittests for OptimizationSolver by @AlessandroPierro in #183
- Update API to enable Simulated Annealing on NEBM model by @AlessandroPierro in #187
- Explicitly enforce ReadGateCModel by @phstratmann in #190
- Solver explicitly enforces ProcModels for Loihi2 backend by @phstratmann in #191
- Track cost instead of minimum cost when user sets probe_cost = True on SolverConfig. by @GaboFGuerra in #194
- Enable parallel mode for the OptimizationSolver. by @GaboFGuerra in #184
- Repair CICD after merge on lava-optimization side by @GaboFGuerra in #196
- Adjusting Boltzmann/simulated annealing Vars with Loihi implementation by @phstratmann in #199
- Enable Solver Parallelization with Loihi2 Backend by @GaboFGuerra in #197
- Deleting incorrect reference to NcProcModels (Fix Collab unit tests) by @phstratmann in #205
- Implement IQP/ILP problem interface by @AlessandroPierro in #207
- Solve stalling issue on lava-optimization side. by @GaboFGuerra in #208
- Add new SA model: balanced switching, less passes by @phstratmann in #209
- Release 0.2.4 by @mgkwill in #210
New Contributors
- @michaelbeale-IL made their first contribution in #154
Full Changelog: v0.2.3...v0.2.4
Lava Optimization 0.2.3
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
- Updated docstrings for Bayesian solver. (PR #130 in lava)
- Fixed typos in documentation. (PR #134 in lava)
- Automatically cancel older CI runs of a PR if a newer one was started due to a push. (PR #135 in lava)
- Removed unused pre- and post- hook calls in the OptimizationSolver. (PR #144 in lava)
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: v0.2.2...v0.2.3
Lava Optimization 0.2.2
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: v0.2.1...v0.2.2
Lava Optimization 0.2.1
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
- Intel Labs Lava Developers
- Shay Snyder @shaymeister made their first contribution in #32
Full Changelog: v0.2.0...v0.2.1
Lava Optimization 0.2.0
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
- Create ISSUE_TEMPLATE.md & PULL_REQUEST_TEMPLATE.md by @mgkwill in #24
- Update to use poetry, latest lava by @mgkwill in #34
- Doc/auto api by @weidel-p in #36
- Add framework for defining arbitrary optimization problems via variables, cost and constraints. by @GaboFGuerra in #27
- Update README.md by @mgkwill in #35
- Update lava-optimization dependencies by @mgkwill in #37
- Add OptimizationSolver with support for QUBO problems. by @GaboFGuerra in #50
- Version 0.2.0 by @mgkwill in #39
New Contributors
Full Changelog: v0.1.2...v0.2.0
Lava Optimization 0.1.2
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
- Lava-optimization v0.1.1 Changes by @ashishrao7 in #14
- Fixed Location of tutorials folder and fixed broken links to Lava core by @ashishrao7 in #19
- Clean up of explicit namespace declaration by @bamsumit in #18
- Lava Optimization 0.1.2 by @mgkwill in #20
Full Changelog: v0.1.1...v0.1.2
Lava Optimization 0.1.1
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
- V0.1.0 of Lava-optimization
- Removing init.py from lava/lib to avoid module clash across lava libraries by @bamsumit in #12
- Update version to 0.1.1 by @mgkwill in #13
New Contributors
- @bamsumit made their first contribution in #12
- @mgkwill made their first contribution in #1
- @mathisrichter made their first contribution in #8
- @ashishrao7 made their first contribution in #7
Full Changelog: https://github.com/lava-nc/lava-optimization/commits/v0.1.1