Skip to content

Population Annealing QPU

Population Annealing uses a sequential Monte Carlo method to minimize the energy of a population. The population consists of walkers that can explore their neighborhood during the cooling process. Afterwards, walkers are removed and duplicated using bias to lower energy. Eventually, a population collapse occurs where all walkers are in the lowest energy state.

Note

This solver is only available for commercial and academic licenses.

Compatible Backends

Backend Default
DWaveQpu

Initialization

Python
from luna_quantum.algorithms import PopulationAnnealingQpu
from luna_quantum.solve.parameters.algorithms.base_params import (
    Decomposer,
    QuantumAnnealingParams
)

algorithm = PopulationAnnealingQpu(
    backend=None,
    num_reads=100,
    num_retries=0,
    max_iter=20,
    max_time=2,
    fixed_temp_sampler_num_sweeps=10000,
    fixed_temp_sampler_num_reads=None,
    decomposer=Decomposer(
        size=10,
        min_gain=None,
        rolling=True,
        rolling_history=1.0,
        silent_rewind=True,
        traversal='energy'
    ),
    quantum_annealing_params=QuantumAnnealingParams(
        anneal_offsets=None,
        anneal_schedule=None,
        annealing_time=None,
        auto_scale=None,
        fast_anneal=False,
        flux_biases=None,
        flux_drift_compensation=True,
        h_gain_schedule=None,
        initial_state=None,
        max_answers=None,
        num_reads=1,
        programming_thermalization=None,
        readout_thermalization=None,
        reduce_intersample_correlation=False,
        reinitialize_state=None
    )
)

Usage

from luna_quantum.algorithms import PopulationAnnealingQpu

algorithm = PopulationAnnealingQpu()
solve_job = algorithm.run(model, name="my-solve-job")