def test_ignored_interactions(self): bqm = dimod.BQM.from_ising({ 'a': -4.0, 'b': -4.0 }, { ('a', 'b'): 3.2, ('b', 'c'): 1 }, 1.5) with self.assertWarns(DeprecationWarning): sampler = ScaleComposite( dimod.TrackingComposite(dimod.ExactSolver())) sampleset = sampler.sample(bqm, scalar=.5, ignored_interactions=[('b', 'c')]) # check that everything was restored properly dimod.testing.assert_sampleset_energies(sampleset, bqm) self.assertEqual( sampler.child.input['bqm'], dimod.BQM.from_ising({ 'a': -2.0, 'b': -2.0 }, { 'ab': 1.6, 'bc': 1 }, .75))
def test_sample_quadratic_range(self): linear = {'a': -4.0, 'b': -4.0} quadratic = {('a', 'b'): 3.2} offset = 5 ignored_variables, ignored_interactions = _check_params(None, None) bqm = BinaryQuadraticModel.from_ising(linear, quadratic, offset=offset) comp_parameters = dict(ignored_interactions=ignored_interactions, ignored_variables=ignored_variables, quadratic_range=(-1, 2)) sampler = ScaleComposite( ScalingChecker(ExactSolver(), bqm=bqm, **comp_parameters)) response = sampler.sample(bqm, **comp_parameters) self.assertAlmostEqual(response.first.energy, 0.2) comp_parameters = dict(ignored_interactions=ignored_interactions, ignored_variables=ignored_variables, quadratic_range=(-1, 0.4)) sampler = ScaleComposite( ScalingChecker(ExactSolver(), bqm=bqm, **comp_parameters)) response = sampler.sample(bqm, **comp_parameters) self.assertAlmostEqual(response.first.energy, 0.2)
def test_sample_ignore_variables(self): linear = {'a': -4.0, 'b': -4.0} quadratic = {('a', 'b'): 3.2} offset = 5 bqm = BinaryQuadraticModel.from_ising(linear, quadratic, offset=offset) ignored_variables, ignored_interactions = _check_params( ['a'], None) comp_parameters = dict(ignored_interactions=ignored_interactions, ignored_variables=ignored_variables, ignore_offset=True, scalar=0.5) sampler = ScaleComposite(ScalingChecker(ExactSolver(), h=linear, J=quadratic, offset=offset, **comp_parameters)) response = sampler.sample(bqm, **comp_parameters) self.assertAlmostEqual(response.first.energy, 0.2)
def test_ignored_offset(self): bqm = dimod.BQM.from_ising({ 'a': -4.0, 'b': -4.0 }, {('a', 'b'): 3.2}, 1.5) sampler = ScaleComposite(dimod.TrackingComposite(dimod.ExactSolver())) sampleset = sampler.sample(bqm, scalar=.5, ignore_offset=True) # check that everything was restored properly dimod.testing.assert_sampleset_energies(sampleset, bqm) self.assertEqual( sampler.child.input['bqm'], dimod.BQM.from_ising({ 'a': -2.0, 'b': -2.0 }, {('a', 'b'): 1.6}, 1.5))
def test_bias_range(self): bqm = dimod.BQM.from_ising({ 'a': -4.0, 'b': -4.0 }, {('a', 'b'): 3.2}, 1.5) with self.assertWarns(DeprecationWarning): sampler = ScaleComposite( dimod.TrackingComposite(dimod.ExactSolver())) sampleset = sampler.sample(bqm, bias_range=[-2, 2]) # check that everything was restored properly dimod.testing.assert_sampleset_energies(sampleset, bqm) self.assertEqual( sampler.child.input['bqm'], dimod.BQM.from_ising({ 'a': -2.0, 'b': -2.0 }, {('a', 'b'): 1.6}, .75))