lava.lib.optimization.solvers.generic.scif

lava.lib.optimization.solvers.generic.scif.models

digraph inheritancef6a1e0ee6e { bgcolor=transparent; rankdir=TB; size=""; "ABC" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Helper class that provides a standard way to create an ABC using"]; "AbstractProcessModel" [URL="../../lava/lava.magma.core.model.html#lava.magma.core.model.model.AbstractProcessModel",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Represents a model that implements the behavior of a Process."]; "ABC" -> "AbstractProcessModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AbstractPyProcessModel" [URL="../../lava/lava.magma.core.model.py.html#lava.magma.core.model.py.model.AbstractPyProcessModel",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Abstract interface for Python ProcessModels."]; "AbstractProcessModel" -> "AbstractPyProcessModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "AbstractPyProcessModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PyLoihiProcessModel" [URL="../../lava/lava.magma.core.model.py.html#lava.magma.core.model.py.model.PyLoihiProcessModel",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="ProcessModel to simulate a Process on Loihi using CPU."]; "AbstractPyProcessModel" -> "PyLoihiProcessModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PyModelAbstractScifFixed" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.models.PyModelAbstractScifFixed",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Abstract fixed point implementation of Stochastic Constraint"]; "PyLoihiProcessModel" -> "PyModelAbstractScifFixed" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PyModelCspScifFixed" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.models.PyModelCspScifFixed",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Concrete implementation of Stochastic Constraint Integrate and"]; "PyModelAbstractScifFixed" -> "PyModelCspScifFixed" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PyModelQuboScifFixed" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.models.PyModelQuboScifFixed",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Concrete implementation of Stochastic Constraint Integrate and"]; "PyModelAbstractScifFixed" -> "PyModelQuboScifFixed" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PyModelQuboScifRefracFixed" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.models.PyModelQuboScifRefracFixed",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="***Deprecated*** Concrete implementation of Stochastic Constraint"]; "PyLoihiProcessModel" -> "PyModelQuboScifRefracFixed" [arrowsize=0.5,style="setlinewidth(0.5)"]; }
class lava.lib.optimization.solvers.generic.scif.models.PyModelAbstractScifFixed(proc_params)

Bases: PyLoihiProcessModel

Abstract fixed point implementation of Stochastic Constraint Integrate and Fire (SCIF) neuron for solving QUBO and CSP problems.

a_in = LavaPyType(cls=<class 'lava.magma.core.model.py.ports.PyInPortVectorDense'>, d_type=<class 'int'>, precision=8)
cnstr_intg: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
noise_ampl: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=5)
noise_prec: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=5)
run_spk()

Function that runs in Spiking Phase

Return type:

None

s_sig_out = LavaPyType(cls=<class 'lava.magma.core.model.py.ports.PyOutPortVectorDense'>, d_type=<class 'int'>, precision=8)
s_wta_out = LavaPyType(cls=<class 'lava.magma.core.model.py.ports.PyOutPortVectorDense'>, d_type=<class 'int'>, precision=8)
spk_hist: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=8)
state: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
step_size: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
sustained_on_tau: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
theta: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
class lava.lib.optimization.solvers.generic.scif.models.PyModelCspScifFixed(proc_params)

Bases: PyModelAbstractScifFixed

Concrete implementation of Stochastic Constraint Integrate and Fire (SCIF) neuron for solving CSP problems.

Derives from PyModelAbstractScifFixed.

implements_process

alias of CspScif

implements_protocol

alias of LoihiProtocol

required_resources: ty.List[ty.Type[AbstractResource]] = [<class 'lava.magma.core.resources.CPU'>]
tags: ty.List[str] = ['fixed_pt']
class lava.lib.optimization.solvers.generic.scif.models.PyModelQuboScifFixed(proc_params)

Bases: PyModelAbstractScifFixed

Concrete implementation of Stochastic Constraint Integrate and Fire (SCIF) neuron for solving QUBO problems.

Derives from PyModelAbstractScifFixed.

cost_diagonal: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
implements_process

alias of QuboScif

implements_protocol

alias of LoihiProtocol

required_resources: ty.List[ty.Type[AbstractResource]] = [<class 'lava.magma.core.resources.CPU'>]
tags: ty.List[str] = ['fixed_pt']
class lava.lib.optimization.solvers.generic.scif.models.PyModelQuboScifRefracFixed(proc_params)

Bases: PyLoihiProcessModel

*Deprecated* Concrete implementation of Stochastic Constraint Integrate and Fire (SCIF) neuron for solving QUBO problems.

a_in = LavaPyType(cls=<class 'lava.magma.core.model.py.ports.PyInPortVectorDense'>, d_type=<class 'int'>, precision=8)
cost_diagonal: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
implements_process

alias of QuboScif

implements_protocol

alias of LoihiProtocol

noise_ampl: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=1)
noise_shift: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
required_resources: ty.List[ty.Type[AbstractResource]] = [<class 'lava.magma.core.resources.CPU'>]
run_spk()

Function that runs in Spiking Phase

Return type:

None

s_sig_out = LavaPyType(cls=<class 'lava.magma.core.model.py.ports.PyOutPortVectorDense'>, d_type=<class 'int'>, precision=8)
s_wta_out = LavaPyType(cls=<class 'lava.magma.core.model.py.ports.PyOutPortVectorDense'>, d_type=<class 'int'>, precision=8)
spk_hist: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=8)
state: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
step_size: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
sustained_off_tau: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
sustained_on_tau: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)
tags: ty.List[str] = ['fixed_pt']
theta: ndarray = LavaPyType(cls=<class 'numpy.ndarray'>, d_type=<class 'int'>, precision=24)

lava.lib.optimization.solvers.generic.scif.process

digraph inheritance2c65fedc21 { bgcolor=transparent; rankdir=TB; size=""; "AbstractProcess" [URL="../../lava/lava.magma.core.process.html#lava.magma.core.process.process.AbstractProcess",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="The notion of a Process is inspired by the Communicating Sequential"]; "AbstractScif" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.process.AbstractScif",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Abstract Process for Stochastic Constraint Integrate-and-Fire"]; "AbstractProcess" -> "AbstractScif" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CspScif" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.process.CspScif",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Stochastic Constraint Integrate-and-Fire neurons to solve CSPs."]; "AbstractScif" -> "CspScif" [arrowsize=0.5,style="setlinewidth(0.5)"]; "QuboScif" [URL="../lava-lib-optimization/lava.lib.optimization.solvers.generic.scif.html#lava.lib.optimization.solvers.generic.scif.process.QuboScif",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Stochastic Constraint Integrate-and-Fire neurons to solve QUBO"]; "AbstractScif" -> "QuboScif" [arrowsize=0.5,style="setlinewidth(0.5)"]; }
class lava.lib.optimization.solvers.generic.scif.process.AbstractScif(*, shape, step_size=1, theta=4, sustained_on_tau=0, noise_amplitude=0, noise_precision=0, init_value=0, init_state=0)

Bases: AbstractProcess

Abstract Process for Stochastic Constraint Integrate-and-Fire (SCIF) neurons.

property shape: Tuple[int, ...]
class lava.lib.optimization.solvers.generic.scif.process.CspScif(*, shape, step_size=1, theta=4, sustained_on_tau=-5, noise_amplitude=0, noise_precision=8)

Bases: AbstractScif

Stochastic Constraint Integrate-and-Fire neurons to solve CSPs.

class lava.lib.optimization.solvers.generic.scif.process.QuboScif(*, shape, cost_diag, theta=4, sustained_on_tau=0, noise_amplitude=0, noise_precision=8)

Bases: AbstractScif

Stochastic Constraint Integrate-and-Fire neurons to solve QUBO problems.