# How to use dimod - 10 common examples

## To help you get started, we’ve selected a few dimod examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

dwavesystems / dimod / tests / test_binary_quadratic_model_convert.py View on Github
``````def test_to_qubo_spin_to_qubo(self):
"""Spin model's to_qubo method"""
linear = {0: .5, 1: 1.3}
offset = 1.2
vartype = dimod.SPIN

Q, off = dimod.to_qubo(model)

for spins in itertools.product((-1, 1), repeat=len(model)):
spin_sample = dict(zip(range(len(spins)), spins))
bin_sample = {v: (s + 1) // 2 for v, s in spin_sample.items()}

# calculate the qubo's energy
energy = off
for (u, v), bias in Q.items():
energy += bin_sample[u] * bin_sample[v] * bias

# and the energy of the model
self.assertAlmostEqual(energy, model.energy(spin_sample))``````
dwavesystems / dimod / tests / test_bqm.py View on Github
``````def test_to_ising_binary_to_ising(self, name, BQM):
linear = {0: 7.1, 1: 103}
offset = 0.3
vartype = dimod.BINARY

model = BQM(linear, quadratic, offset, vartype)

h, J, off = model.to_ising()

for spins in itertools.product((-1, 1), repeat=len(model)):
spin_sample = dict(zip(range(len(spins)), spins))
bin_sample = {v: (s + 1) // 2 for v, s in spin_sample.items()}

# calculate the qubo's energy
energy = off
for (u, v), bias in J.items():
energy += spin_sample[u] * spin_sample[v] * bias
for v, bias in h.items():
energy += spin_sample[v] * bias``````
dwavesystems / dimod / tests / test_clipcomposite.py View on Github
``````def test_instantiation_smoketest(self):
sampler = ClipComposite(NullSampler())
dimod.testing.assert_sampler_api(sampler)``````
dwavesystems / dimod / tests / test_fixedpolyvariablecomposite.py View on Github
``````def test_instantiation_smoketest(self):
sampler = PolyFixedVariableComposite(ExactPolySolver())

dtest.assert_composite_api(sampler)``````
dwavesystems / dwave-hybrid / tests / test_composers.py View on Github
``````def test_single(self):
bqm = dimod.BinaryQuadraticModel({}, {'ab': 1}, 0, dimod.SPIN)

states = States(State.from_sample({'a': 1, 'b': -1}, bqm))

state = MergeSamples().run(states).result()

self.assertEqual(state, states[0])``````
dwavesystems / dwave-hybrid / tests / test_samplers.py View on Github
``````def test_tabu_problem_sampler_initialization(self):
bqm = dimod.BinaryQuadraticModel({}, {'ab': 1}, 0, 'SPIN')
sampleset = dimod.SampleSet.from_samples_bqm([{'a': 1, 'b': -1},
{'a': -1, 'b': 1}], bqm)
state = State(problem=bqm, samples=sampleset)

# with timeout=0, TabuSampler should just return the initial_states
result = TabuProblemSampler(timeout=0).run(state).result()
expected = sampleset.record.sample

self.assertTrue(np.array_equal(result.samples.record.sample, expected))
self.assertEqual(len(result.samples), 2)

# test input samples are tiled
initial_states_generator="tile").run(state).result()

expected = np.tile(sampleset.record.sample, (2,1))``````
dwavesystems / dimod / tests / test_binary_quadratic_model.py View on Github
``````def test_remove_offset(self):
linear = {v: v * -.43 for v in range(10)}
quadratic = {(u, v): u * v * -.021 for u, v in itertools.combinations(linear, 2)}
offset = -1.2
vartype = dimod.BINARY

bqm.remove_offset()

self.assertAlmostEqual(bqm.offset, 0.0)``````
dwavesystems / dimod / tests / test_binary_quadratic_model.py View on Github
``````def test_relabel_typical_copy(self):
linear = {0: .5, 1: 1.3}
offset = 1.2
vartype = dimod.SPIN

mapping = {0: 'a', 1: 'b'}
newmodel = model.relabel_variables(mapping, inplace=False)
self.assertIsNot(model, newmodel)
self.assertIsNot(model.linear, newmodel.linear)

# check that new model is the same as old model
linear = {'a': .5, 'b': 1.3}
offset = 1.2
vartype = dimod.SPIN

self.assertEqual(newmodel, testmodel)``````
dwavesystems / dimod / tests / test_binary_quadratic_model.py View on Github
``````def test_binary_property(self):
linear = {0: 1, 1: -1, 2: .5}
quadratic = {(0, 1): .5, (1, 2): 1.5}
offset = -1.4
vartype = dimod.BINARY

self.assertIs(model, model.binary)

#

# create a binary model
linear = {0: 1, 1: -1, 2: .5}
quadratic = {(0, 1): .5, (1, 2): 1.5}
offset = -1.4
vartype = dimod.SPIN

binary_model = model.change_vartype(dimod.BINARY, inplace=False)

self.assertEqual(model.binary, binary_model)``````
dwavesystems / dimod / tests / test_spin_transform.py View on Github
``````def test_typical(self):
sampler = dimod.SpinReversalTransformComposite(dimod.ExactSolver())
Q = {('a', 'a'): -1, ('b', 'b'): -1, ('a', 'b'): 2}
response = sampler.sample_qubo(Q, num_spin_reversal_transforms=100, spin_reversal_variables={'a'})

## dimod

A shared API for binary quadratic model samplers.

Apache-2.0