Пример #1
0
    def test_measure_sampling_with_quantum_noise(self):
        """Test QasmSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        depolarizing = {'u3': (1, 0.001), 'cx': (2, 0.02)}
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))
        for gate, (num_qubits, gate_error) in depolarizing.items():
            noise_model.add_all_qubit_quantum_error(
                depolarizing_error(gate_error, num_qubits), gate)

        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        qobj = assemble(circuits, self.SIMULATOR, shots=shots)
        result = self.SIMULATOR.run(
            qobj, noise_model=noise_model,
            backend_options=self.BACKEND_OPTS).result()
        self.is_completed(result)

        for res in result.results:
            self.assertIn("measure_sampling", res.metadata)
            self.assertEqual(res.metadata["measure_sampling"], False)

        # Test sampling was disabled
        for res in result.results:
            self.assertIn("measure_sampling", res.metadata)
            self.assertEqual(res.metadata["measure_sampling"], False)
Пример #2
0
    def test_measure_sampling_with_quantum_noise(self):
        """Test QasmSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        depolarizing = {'u3': (1, 0.001), 'cx': (2, 0.02)}
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))
        for gate, (num_qubits, gate_error) in depolarizing.items():
            noise_model.add_all_qubit_quantum_error(
                depolarizing_error(gate_error, num_qubits), gate)

        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        qobj = assemble(circuits, self.SIMULATOR, shots=shots)
        result = self.SIMULATOR.run(
            qobj, noise_model=noise_model,
            backend_options=self.BACKEND_OPTS).result()
        self.assertTrue(getattr(result, 'success', False))
        sampling = (self.BACKEND_OPTS.get(
            "method", "automatic").startswith("density_matrix"))
        self.compare_result_metadata(result, circuits, "measure_sampling",
                                     sampling)
Пример #3
0
 def test_measure(self):
     """Test StatevectorSimulator measure with deterministic counts"""
     circuits = ref_measure.measure_circuits_deterministic(allow_sampling=True)
     targets = ref_measure.measure_statevector_deterministic()
     job = execute(circuits, StatevectorSimulator(), shots=1)
     result = job.result()
     self.assertTrue(getattr(result, 'success', False))
     self.compare_statevector(result, circuits, targets)
 def test_measure(self):
     """Test StatevectorSimulator measure with deterministic counts"""
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=True)
     targets = ref_measure.measure_statevector_deterministic()
     job = execute(circuits, self.SIMULATOR, shots=1, **self.BACKEND_OPTS)
     result = job.result()
     self.assertSuccess(result)
     self.compare_statevector(result, circuits, targets)
 def test_measure(self, device):
     """Test StatevectorSimulator measure with deterministic counts"""
     backend = self.backend(device=device)
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=True)
     circuits = transpile(circuits, backend, optimization_level=1)
     result = backend.run(circuits, shots=1).result()
     targets = ref_measure.measure_statevector_deterministic()
     self.assertSuccess(result)
     self.compare_statevector(result, circuits, targets)
Пример #6
0
 def test_measure_deterministic_without_sampling(self):
     """Test QasmSimulator measure with deterministic counts without sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=False)
     targets = ref_measure.measure_counts_deterministic(shots)
     qobj = assemble(circuits, self.SIMULATOR, shots=shots)
     result = self.SIMULATOR.run(
         qobj, backend_options=self.BACKEND_OPTS).result()
     self.is_completed(result)
     self.compare_counts(result, circuits, targets, delta=0)
Пример #7
0
 def test_measure_deterministic_without_sampling(self):
     """Test ExtendedStabilizer measure with deterministic counts without sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=False)
     qobj = assemble(circuits, QasmSimulator(), shots=shots)
     targets = ref_measure.measure_counts_deterministic(shots)
     job = QasmSimulator().run(qobj, backend_options=self.BACKEND_OPTS)
     result = job.result()
     self.assertTrue(getattr(result, 'success', False))
     self.compare_counts(result, circuits, targets, delta=0)
Пример #8
0
 def test_measure_deterministic_with_sampling(self):
     """Test ExtendedStabilizer measure with deterministic counts with sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=True)
     qobj = assemble(circuits, QasmSimulator(), shots=shots)
     targets = ref_measure.measure_counts_deterministic(shots)
     job = QasmSimulator().run(qobj, **self.BACKEND_OPTS_SAMPLING)
     result = job.result()
     self.assertSuccess(result)
     self.compare_counts(result, circuits, targets, delta=0)
 def test_measure_deterministic_without_sampling(self):
     """Test ExtendedStabilizer measure with deterministic counts without sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=False)
     qobj = assemble(circuits, QasmSimulator(), shots=shots)
     targets = ref_measure.measure_counts_deterministic(shots)
     job = QasmSimulator().run(
         qobj, backend_options={"method": "extended_stabilizer"})
     result = job.result()
     self.is_completed(result)
     self.compare_counts(result, circuits, targets, delta=0)
Пример #10
0
 def test_measure_deterministic_without_sampling(self):
     """Test QasmSimulator measure with deterministic counts without sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=False)
     target_counts = ref_measure.measure_counts_deterministic(shots)
     target_memory = ref_measure.measure_memory_deterministic(shots)
     qobj = assemble(circuits, self.SIMULATOR, shots=shots, memory=True)
     result = self.SIMULATOR.run(qobj, **self.BACKEND_OPTS).result()
     self.assertSuccess(result)
     self.compare_counts(result, circuits, target_counts, delta=0)
     self.compare_memory(result, circuits, target_memory)
Пример #11
0
 def test_measure_deterministic_with_sampling(self):
     """Test QasmSimulator measure with deterministic counts with sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=True)
     target_counts = ref_measure.measure_counts_deterministic(shots)
     target_memory = ref_measure.measure_memory_deterministic(shots)
     qobj = assemble(circuits, self.SIMULATOR, shots=shots, memory=True)
     result = self.SIMULATOR.run(
         qobj, backend_options=self.BACKEND_OPTS).result()
     self.assertTrue(getattr(result, 'success', False))
     self.compare_counts(result, circuits, target_counts, delta=0)
     self.compare_memory(result, circuits, target_memory)
     self.compare_result_metadata(result, circuits, "measure_sampling", True)
Пример #12
0
 def test_measure_deterministic_without_sampling(self, method, device):
     """Test AerSimulator measure with deterministic counts without sampling"""
     backend = self.backend(method=method, device=device)
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=False)
     target_counts = ref_measure.measure_counts_deterministic(shots)
     target_memory = ref_measure.measure_memory_deterministic(shots)
     result = backend.run(circuits, memory=True, shots=shots).result()
     self.assertSuccess(result)
     self.compare_counts(result, circuits, target_counts, delta=0)
     self.compare_memory(result, circuits, target_memory)
     self.compare_result_metadata(result, circuits, "measure_sampling",
                                  False)
Пример #13
0
 def test_measure_deterministic_without_sampling(self):
     """Test QasmSimulator measure with deterministic counts without sampling"""
     shots = 100
     circuits = ref_measure.measure_circuits_deterministic(
         allow_sampling=False)
     targets = ref_measure.measure_counts_deterministic(shots)
     qobj = assemble(circuits, self.SIMULATOR, shots=shots)
     result = self.SIMULATOR.run(
         qobj, backend_options=self.BACKEND_OPTS).result()
     self.is_completed(result)
     self.compare_counts(result, circuits, targets, delta=0)
     # Test sampling was disabled
     for res in result.results:
         self.assertIn("measure_sampling", res.metadata)
         self.assertEqual(res.metadata["measure_sampling"], False)
Пример #14
0
    def test_measure_sampling_with_readouterror(self):
        """Test QasmSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))

        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        qobj = assemble(circuits, self.SIMULATOR, shots=shots)
        result = self.SIMULATOR.run(qobj,
                                    noise_model=noise_model,
                                    **self.BACKEND_OPTS).result()
        self.assertSuccess(result)
Пример #15
0
    def test_measure_sampling_with_readouterror(self, method, device):
        """Test AerSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))

        backend = self.backend(method=method,
                               device=device,
                               noise_model=noise_model)
        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        result = backend.run(circuits, shots=shots).result()
        self.assertSuccess(result)
        self.compare_result_metadata(result, circuits, "measure_sampling",
                                     True)
Пример #16
0
    def test_measure_sampling_with_quantum_noise(self):
        """Test QasmSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        depolarizing = {'u3': (1, 0.001), 'cx': (2, 0.02)}
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))
        for gate, (num_qubits, gate_error) in depolarizing.items():
            noise_model.add_all_qubit_quantum_error(
                depolarizing_error(gate_error, num_qubits), gate)

        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        qobj = assemble(circuits, self.SIMULATOR, shots=shots)
        result = self.SIMULATOR.run(qobj,
                                    noise_model=noise_model,
                                    **self.BACKEND_OPTS).result()
        self.assertSuccess(result)
Пример #17
0
    def test_measure_sampling_with_readouterror(self):
        """Test QasmSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))

        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        qobj = assemble(circuits, self.SIMULATOR, shots=shots)
        result = self.SIMULATOR.run(
            qobj, noise_model=noise_model,
            backend_options=self.BACKEND_OPTS).result()
        self.is_completed(result)

        # Test sampling was disabled
        for res in result.results:
            self.assertIn("measure_sampling", res.metadata)
            self.assertEqual(res.metadata["measure_sampling"], True)
Пример #18
0
    def test_measure_sampling_with_quantum_noise(self, method, device):
        """Test AerSimulator measure with deterministic counts with sampling and readout-error"""
        readout_error = [0.01, 0.1]
        noise_model = NoiseModel()
        depolarizing = {'u3': (1, 0.001), 'cx': (2, 0.02)}
        readout = [[1.0 - readout_error[0], readout_error[0]],
                   [readout_error[1], 1.0 - readout_error[1]]]
        noise_model.add_all_qubit_readout_error(ReadoutError(readout))
        for gate, (num_qubits, gate_error) in depolarizing.items():
            noise_model.add_all_qubit_quantum_error(
                depolarizing_error(gate_error, num_qubits), gate)

        backend = self.backend(method=method,
                               device=device,
                               noise_model=noise_model)
        shots = 1000
        circuits = ref_measure.measure_circuits_deterministic(
            allow_sampling=True)
        targets = ref_measure.measure_counts_deterministic(shots)
        result = backend.run(circuits, shots=shots).result()
        self.assertSuccess(result)
        sampling = (method == "density_matrix")
        self.compare_result_metadata(result, circuits, "measure_sampling",
                                     sampling)