def test_sample_hising_quadratic_range(self): linear = {'a': -4.0, 'b': -4.0, 'c': -4.0} quadratic = {('a', 'b', 'c'): 3.2} offset = 5 ignored_variables, ignored_interactions = _check_params(None, None) comp_parameters = dict(ignored_interactions=ignored_interactions, ignored_variables=ignored_variables, penalty_strength=5., quadratic_range=(-1, 2) ) sampler = ScaleComposite( ScalingChecker(HigherOrderComposite(ExactSolver()), h=linear, J=quadratic, offset=offset, **comp_parameters)) response = sampler.sample_ising(linear, quadratic, offset=offset, **comp_parameters) self.assertAlmostEqual(response.first.energy, -3.8) comp_parameters = dict(ignored_interactions=ignored_interactions, ignored_variables=ignored_variables, penalty_strength=5., quadratic_range=(-1, 0.4) ) sampler = ScaleComposite( ScalingChecker(HigherOrderComposite(ExactSolver()), h=linear, J=quadratic, offset=offset, **comp_parameters)) response = sampler.sample_ising(linear, quadratic, offset=offset, **comp_parameters) self.assertAlmostEqual(response.first.energy, -3.8)
def test_sample_ising_quadratic(self): linear = {'a': -4.0, 'b': -4.0} quadratic = {('a', 'b'): 3.2} offset = 5 ignored_variables, ignored_interactions = _check_params(None, None) comp_parameters = dict(ignored_interactions=ignored_interactions, ignored_variables=ignored_variables) sampler = ScaleComposite(ScalingChecker(ExactSolver(), h=linear, J=quadratic, offset=offset, **comp_parameters)) response = sampler.sample_ising(linear, quadratic, offset=offset) self.assertAlmostEqual(response.first.energy, 0.2)
def test_sample_hising_ignore_variables(self): linear = {'a': -4.0, 'b': -4.0, 'c': -4.0} quadratic = {('a', 'b', 'c'): 3.2} offset = 5 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(HigherOrderComposite( ExactSolver()), h=linear, J=quadratic, offset=offset, **comp_parameters)) response = sampler.sample_ising(linear, quadratic, offset=offset, **comp_parameters) self.assertAlmostEqual(response.first.energy, -3.8)