lava-nc / lava-optimization

Neuromorphic mathematical optimization with Lava
https://lava-nc.org/optimization.html
BSD 3-Clause "New" or "Revised" License
51 stars 26 forks source link

[QUBO] correct local cost, separate annealing neuron, single flips per time step #272

Closed phstratmann closed 9 months ago

phstratmann commented 10 months ago

Objective of pull request:

This PR resolves 3 issues in the QUBO solver:

  1. Calculate correct local cost, in order to decide on switching binary variables.
  2. Separate out the temperature annealing into a separate neuron model. This allows to save CX state in the NEBM0-SA neuron, to have 16bit temperature resolution, and to save 1 ucode pass for all NEBM-SA neurons per time step.
  3. Prevent conflicting variable switches. Initially, all neurons could switch simultaneously, which may substantially worsen the overall network state. This has previously been removed using refractive periods, which was merely a hack. The new neuron model allows, on average, only a single flip of variables that have conflicting cost terms.

Older neuron models will get removed with this PR.