Open nonhermitian opened 3 years ago
For an 8Q X-stabilizer on a GHZ, the CTMP over corrects from the expected value of 1.0 to about 1.33 on ibmq_dublin. Standard tensored mitigation corrects to ~0.95.
ibmq_dublin
import numpy as np from qiskit import * from qiskit.providers.aer import QasmSimulator, noise from qiskit.ignis.mitigation import (expectation_value, expval_meas_mitigator_circuits, ExpvalMeasMitigatorFitter) IBMQ.load_account() pro= IBMQ.get_provider(project='internal-test') sim = QasmSimulator() backend = pro.backends.ibmq_dublin # Test Circuit Measure <XXXXXXXX> stabilizer # Eight qubit stabilizer qubits=[1, 4, 7, 10, 12, 2, 3, 5] qc = QuantumCircuit(8, 8) qc.h(0) qc.cx(0, 1) qc.cx(1, 2) qc.cx(2, 3) qc.cx(3, 4) qc.cx(0, 5) qc.cx(5, 6) qc.cx(6, 7) qc.h(range(8)) qc.measure(range(8), range(8)) shots = 8192 #Get ideal result and raw counts from backend result_target = execute(qc, sim, shots=shots, initial_layout=qubits).result() result_noise = execute(qc, backend, shots=shots, initial_layout=qubits).result() counts_target = result_target.get_counts(0) counts_noise = result_noise.get_counts(0) circuits1, metadata1 = expval_meas_mitigator_circuits(len(qubits), method='tensored') job_cal1 = execute(circuits1, backend, shots=8192, initial_layout=qubits) result_cal1 = job_cal1.result() ctmp_mitigator = ExpvalMeasMitigatorFitter(result_cal1, metadata1).fit() print('CTMP mitigated:', expectation_value(counts_noise, meas_mitigator=ctmp_mitigator)[0])
gives
CTMP mitigated: 1.3377458081929379
Informations
What is the current behavior?
For an 8Q X-stabilizer on a GHZ, the CTMP over corrects from the expected value of 1.0 to about 1.33 on
ibmq_dublin
. Standard tensored mitigation corrects to ~0.95.Steps to reproduce the problem
gives
What is the expected behavior?
Suggested solutions