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.solve.parameters.algorithms.base_params.decomposer import Decomposer
from luna_quantum.solve.parameters.algorithms.base_params.quantum_annealing_params import QuantumAnnealingParams
from luna_quantum.solve.parameters.algorithms.quantum_annealing.population_annealing_qpu import PopulationAnnealingQpu

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")