Skip to main content

Simulators

ModelBackends
BinaryQuadraticModelsim.dimod_simulated_annealing_sampler, sim.dimod_random_sampler

Simulated Annealing Sampler

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('your-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"

so = StrangeworksOptimizer(model=model, solver=solver)
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.

Random 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('your-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"

so = StrangeworksOptimizer(model=model, solver=solver)
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}")