コード例 #1
0
    def test_vqe_adapt(self):
        """ VQEAdapt test """
        try:
            # pylint: disable=import-outside-toplevel
            from qiskit import Aer
        except Exception as ex:  # pylint: disable=broad-except
            self.skipTest(
                "Aer doesn't appear to be installed. Error: '{}'".format(
                    str(ex)))
            return

        self.var_form_base = UCCSD(self.num_qubits,
                                   1,
                                   self.num_spin_orbitals,
                                   self.num_particles,
                                   initial_state=self.init_state)
        backend = Aer.get_backend('statevector_simulator')
        optimizer = L_BFGS_B()
        algorithm = VQEAdapt(self.qubit_op,
                             self.var_form_base,
                             optimizer,
                             threshold=0.00001,
                             delta=0.1)
        result = algorithm.run(backend)
        self.assertAlmostEqual(result.eigenvalue.real, -1.85727503, places=2)
        self.assertIsNotNone(result.num_iterations)
        self.assertIsNotNone(result.final_max_gradient)
        self.assertIsNotNone(result.finishing_criterion)
コード例 #2
0
    def test_vqe_adapt(self):
        """ VQEAdapt test """
        try:
            # pylint: disable=import-outside-toplevel
            from qiskit import Aer
            backend = Aer.get_backend('statevector_simulator')
        except ImportError as ex:  # pylint: disable=broad-except
            self.skipTest(
                "Aer doesn't appear to be installed. Error: '{}'".format(
                    str(ex)))
            return

        self.var_form_base = UCCSD(self.num_spin_orbitals,
                                   self.num_particles,
                                   initial_state=self.init_state)
        optimizer = L_BFGS_B()

        warnings.filterwarnings('ignore', category=DeprecationWarning)
        algorithm = VQEAdapt(self.qubit_op,
                             self.var_form_base,
                             optimizer,
                             threshold=0.00001,
                             delta=0.1,
                             max_iterations=1)
        warnings.filterwarnings('always', category=DeprecationWarning)
        result = algorithm.run(backend)
        self.assertEqual(result.num_iterations, 1)
        self.assertEqual(result.finishing_criterion,
                         'Maximum number of iterations reached')

        warnings.filterwarnings('ignore', category=DeprecationWarning)
        algorithm = VQEAdapt(self.qubit_op,
                             self.var_form_base,
                             optimizer,
                             threshold=0.00001,
                             delta=0.1)
        warnings.filterwarnings('always', category=DeprecationWarning)
        result = algorithm.run(backend)
        self.assertAlmostEqual(result.eigenvalue.real, -1.85727503, places=2)
        self.assertEqual(result.num_iterations, 2)
        self.assertAlmostEqual(result.final_max_gradient, 0.0, places=5)
        self.assertEqual(result.finishing_criterion, 'Threshold converged')