def test_SingleSpinFlip_Polynomial_Binary(self): system_size = 5 self.polynomial = G.Polynomial(system_size) self.polynomial[0] = +1 self.polynomial[0, 1] = -1 self.polynomial[0, 2] = +1.5 self.polynomial[0, 3] = -1.6 self.polynomial[0, 4] = -1.7 self.polynomial[1, 3] = +2.3 self.polynomial[1, 4] = -0.3 self.polynomial[2, 3] = +3.4 self.polynomial[2, 4] = +3.7 self.polynomial[3, 4] = -0.8 self.polynomial[0, 1, 2] = -0.5 self.polynomial[1, 2, 3] = -1.0 self.polynomial[2, 3, 4] = +0.9 #classial ising (Polynomial) system = S.make_classical_ising_polynomial( self.polynomial.gen_binary(), self.polynomial, "BINARY") #schedulelist schedule_list = U.make_classical_schedule_list(0.1, 100.0, 200, 200) #anneal A.Algorithm_SingleSpinFlip_run(system, self.seed_for_mc, schedule_list) #result spin result_spin = system.variables #compare self.assertAlmostEqual(-3.1, self.polynomial.calc_energy(result_spin))
def test_SingleSpinFlip_TransverseIsing_Sparse_WithEigenImpl(self): #classial ising (sparse) system = S.make_transverse_ising(self.dense.gen_spin(self.seed_for_spin), self.dense, 1.0, 10) #schedulelist schedule_list = U.make_transverse_field_schedule_list(10, 100, 100) #anneal A.Algorithm_SingleSpinFlip_run(system, self.seed_for_mc, schedule_list) #result spin result_spin = R.get_solution(system) #compare self.assertTrue(self.true_groundstate == result_spin)
def test_SingleSpinFlip_ClassicalIsing_Sparse_WithEigenImpl(self): #classial ising (sparse) system = S.make_classical_ising_Eigen(self.sparse.gen_spin(self.seed_for_spin), self.sparse) #schedulelist schedule_list = U.make_classical_schedule_list(0.1, 100.0, 100, 100) #anneal A.Algorithm_SingleSpinFlip_run(system, self.seed_for_mc, schedule_list) #result spin result_spin = R.get_solution(system) #compare self.assertTrue(self.true_groundstate == result_spin)
def test_SingleSpinFlip_Polynomial_Spin(self): system_size = 5 self.polynomial = G.Polynomial(system_size) self.polynomial = self.gen_testcase_polynomial(self.polynomial) #classial ising (Polynomial) system = S.make_classical_ising_polynomial(self.polynomial.gen_spin(), self.polynomial, "SPIN") #schedulelist schedule_list = U.make_classical_schedule_list(0.1, 100.0, 200, 200) #anneal A.Algorithm_SingleSpinFlip_run(system, self.seed_for_mc, schedule_list) #result spin result_spin = system.variables #compare self.assertAlmostEqual(self.true_energy, self.polynomial.calc_energy(result_spin))