Simulators
Solvers
Model | Solvers |
---|---|
Quadratic Unconstrained Binary Optimization (QUBO) | sim.SimulatedAnnealingSampler , sim.RandomSampler |
Simulated Annealing
A simple simulated annealing sampler for testing and debugging code.
Simulated Annealing Sampler Reference
import strangeworks as sw
from strangeworks_optimization import StrangeworksOptimizer
from strangeworks_optimization_models.parameter_models import DwaveSamplerParameterModel
from dimod import BinaryQuadraticModel
sw.authenticate(api_key)
linear = {1: -2, 2: -2, 3: -3, 4: -3, 5: -2}
quadratic = {(1, 2): 2, (1, 3): 2, (2, 4): 2, (3, 4): 2, (3, 5): 2, (4, 5): 2}
model = BinaryQuadraticModel(linear, quadratic, "BINARY")
solver = "sim.dimod_simulated_annealing_sampler"
options = DwaveSamplerParameterModel(num_reads=1000)
so = StrangeworksOptimizer(model=model, solver=solver, options=options)
sw_job = so.run()
print(f"Job slug: {sw_job.slug}")
print(f"Job status: {so.status(sw_job.slug)}")
results = so.results(sw_job.slug)
print(f"Best solution:\n{results.solution.first}")
Random Sampler
A sampler that gives random samples for testing.
import strangeworks as sw
from strangeworks_optimization import StrangeworksOptimizer
from strangeworks_optimization_models.parameter_models import DwaveSamplerParameterModel
from dimod import BinaryQuadraticModel
sw.authenticate(api_key)
linear = {1: -2, 2: -2, 3: -3, 4: -3, 5: -2}
quadratic = {(1, 2): 2, (1, 3): 2, (2, 4): 2, (3, 4): 2, (3, 5): 2, (4, 5): 2}
model = BinaryQuadraticModel(linear, quadratic, "BINARY")
solver = "sim.dimod_random_sampler"
options = DwaveSamplerParameterModel(num_reads=1000)
so = StrangeworksOptimizer(model=model, solver=solver, options=options)
sw_job = so.run()
print(f"Job slug: {sw_job.slug}")
print(f"Job status: {so.status(sw_job.slug)}")
results = so.results(sw_job.slug)
print(f"Best solution:\n{results.solution.first}")
Parameters
from strangeworks_optimization_models.parameter_models import DwaveSamplerParameterModel
options = DwaveSamplerParameterModel(.....)
Name | Type | Description | Default | Values (Range) |
---|---|---|---|---|
num_reads | int | Specifies the number of reads (solutions) to be obtained. | 1 | [1, max_num_reads] |
chain_strength | int | Sets the strength of the chains in the embedding. | Determined by solver | [Depends on system] |
anneal_offsets | List[float] | Provides offsets to annealing paths, per qubit. | No offsets | Specified per qubit |
anneal_schedule | List[List[float]] | Specifies the custom annealing schedule as time and fraction. | Standard schedule | Specified per system |
annealing_time | float | Sets the duration of the annealing process per read. | Default system value | Specified per system |
auto_scale | bool | Automatically rescales h and J values to the QPU's range. | True | [True, False] |
flux_biases | List[float] | Applies manual flux biases for qubit calibration. | No biases | [Depends on system] |
flux_drift_compensation | bool | Compensates for flux drift in qubits. | True | [True, False] |
h_gain_schedule | List[List[float]] | Sets time-dependent gains for qubit biases. | Not specified | [Depends on system] |
initial_state | dict | Sets the initial state for reverse annealing. | Not specified | [Depends on system] |
max_answers | int | Limits the number of answers returned. | num_reads | [1, num_reads] |
num_spin_reversal_transforms | int | Applies spin reversal transforms to reduce noise. | 0 | [0, max_transforms] |
programming_thermalization | float | Time to wait post-programming for thermalization. | 1000 μs | [0μs, max_thermal] |
readout_thermalization | float | Time to wait post-readout for thermalization. | 0 μs | [0μs, max_thermal] |
reduce_intersample_correlation | bool | Adds delays between samples to reduce correlations. | False | [True, False] |
reinitialize_state | bool | Reinitializes to the initial state for each anneal cycle. | False | [True, False] |
embedding_parameters | dict | Specifies the embedding parameters. | False | [True, False] |
Solvers
- dwave.Advantage_system4.1
- dwave.Advantage_system5.4
- dwave.Advantage_system6.4
- dwave.Advantage2_prototype2.5
- sim.SimulatedAnnealingSampler
- sim.RandomSampler