7

That's a very interesting question, I haven't thought about it before, thanks for that! Now, the way I see this, you have 2 different potential paths to investigate. 1 The first one would be the same as the other answer, meaning you look independently at each result by using marginal_counts : raw_res0 = marginal_counts(results, indices=[0]) raw_res1 = ...


5

The issue is that you are using noisy hardware with imperfect operations and measurements. In particular, the most likely problem here is that after you prepare a qubit it immediately begins decaying towards the ground state $|0\rangle$ via interactions with the environment. Each qubit will be slightly more likely to be measured as 0 instead of 1 than you'd ...


4

One thing you can do is zero noise extrapolation. The idea of the technique is to deliberately add noise to your circuit (by stretching the duration of the pulses of your circuit: Extending the computational reach of a noisy superconducting quantum processor or by adding extra gates that do nothing: Option Pricing using Quantum Computers) and then ...


3

Unfortunately, the Qiskit textbook does not cover this topic correctly. In general you do get negative values when inverting the calibration matrix. These are called quasiprobabilities. You can use these directly for computing expectation values. Alternatively you can use a bounded least squares method to get the maximum likelihood estimate for the nearest ...


3

Measurement error, as the name says, is the error that is added to the qubits when you try to measure them. In this paper Mitigating measurement errors in multi-qubit experiments you can find different methods for measurement error mitigation. The logic behind these methods is to measure a circuit prepared in a certain known state and see the results. For ...


3

In general, measurement errors do not change on timescales as fast as you are implying here. The data for the readouts is populated once a day or so, and is quite good over that time frame. There are internal health checks that get run, but this is my no means frequent or "live" in the sense that you are probably looking for here. So, in short, ...


3

There are many factors that going into this, but most of them are boiled down together into a metric that IBM called Quantum Volume (QV). ibmq_vigo has a QV of 16: Where as ibmq_16_melbourne as QV of 8: You can read more about QV here: https://qiskit.org/textbook/ch-quantum-hardware/measuring-quantum-volume.html


3

"what are the advantages and disadvantages in the determination of the calibration matrix each time that we do an experiment and mitigate its error?" Advantage: The noise matrix will be a more accurate description of the current noise situation. My understanding is that each day, the qubtis are cooled from 300K all the way down to about 15mK, and ...


3

Yes, if we have fixed backend, number of qubits, and noise model (e.g., Basic device noise model in https://qiskit.org/documentation/stubs/qiskit.providers.aer.noise.NoiseModel.html#qiskit.providers.aer.noise.NoiseModel), we would have a fixed calibration matrix. I think the advantage is that once we have this calibration matrix, we can use it to perform ...


3

I tried to run your code with the same backend as you, ibmq_ourense, and also got the same kind of bad results. Although, I also tried on other backends, first the ibmq_qasm_simulator and I got the exact expectation value, so I assume there is no bug on your code since it is right with the ideal machine. I also tried with ibmq_vigo, which has a better ...


3

Yes! You would need 3 times the number of classical registers to store each measurement. Please see this. simp_counts1 = marginal_counts(simp_job.result(), indices=[0]).get_counts() simp_counts2 = marginal_counts(simp_job.result(), indices=[1]).get_counts() simp_counts3 = marginal_counts(simp_job.result(), indices=[3]).get_counts() The for each measurement ...


3

As mentioned above, there're 4 types of data that match the requirement. The results in this case obtained from the job manager is not the same as the results shown in the tutorial since it contains a set of results from different quantum circuits. (I'm still confused why this is not considered as a qiskit result, i.e Form 4 above.) As I tried to print the ...


3

I think in this case you can split the experiments into multiple jobs. The idea is that you split measurement calibration circuits generated by complete_meas_cal into a number of batches, execute the first batch and use the corresponding results to initialize a measurement correction fitter with CompleteMeasFitter. Then you can use the CompleteMeasFitter....


3

You can achieve this by providing a seed to the transpiler which guarantees that the layout will be the same every time you run it. This can be done as follows job = execute(my_circuit, seed_transpiler=123) Alternatively, if you would like to specify the layout yourself, you can do this by providing an initial_layout to the transpiler, and then setting the ...


2

I will provide some general comments concerning noise in quantum computers. Noise in quantum systems is normal phenomena as these systems are probabilistic by nature. Under current state of development, quantum computers unfortunately does not allow to build complex deep circuits. You can of course use additional qubits to introduce error correction which ...


2

Almost all error mitigation methods (including CDR) help reduce errors in expectation values and are not suitable to mitigate single-shot experiments. So, in the context of a quantum variational circuit associated to a MaxCut problem, error mitigation can be used only for better approximating the cost function improving: The variational optimization process....


1

I think what you could do is measure the bits, and then possibly flip the answer based on whether a drawn random number is less than the error rate associated with the outcome, i.e the error rates of measuring 0 but really given a 1, and measuring 1 but really given a 0. However, doing this on actual HW is a bit more tricky. Namely all of the logic needs ...


1

So yeah it is not the best choice. My guess is the individual who programmed it did not think about the physics of the problem. In short, it is best to use the raw input data as the starting point when measurement errors are small. In practice this gives you much faster convergence.


1

Yes, I think this can be done through redefine a new meas_fitter that is a subset of the original one. fig, ax = plt.subplots(figsize=(10, 10)) subset_meas_fitter = meas_fitter.subset_fitter([0,1,2]) #defining new meas_fitter for a set of qubits subset_meas_fitter.plot_calibration(ax) subset_meas_fitter.plot_calibration(ax) Which should give you something ...


1

One naive way is based from this paper, Cloud Quantum Computing of an Atomic Nucleus, by adding odd number of CNOTs gate to the circuit and do extrapolation. It is kinda hand wavy and you hope that it will gives you something closer to the true result. So let's say your original circuit is: Here you have 1 CNOT gate. Then you would perform another execution ...


1

The set $G_N$ of all $N$-fold tensor products of the identity and Pauli gates $X$, $Y$ and $Z$ is a basis of the real vector space $L_H$ of Hermitian operators on $N$ qubits. Therefore, $K(t)\in L_H$ can be written as a linear combination of elements in $G_N$ $$ K(t) = \sum_\alpha J_\alpha(t) P_\alpha\tag1 $$ where $P_\alpha\in G_N$ and $J_\alpha(t)\in\...


1

You have assigned 2 virtual qubits to the same physical qubit, both qreg[0] and qreg[5] are assigned to physical qubit 12. If you change one of these to be a different physical qubit, it should work.


1

As Martin Vesley has mentioned in his answer, there are some error correction techniques that require additional qubits and gates resources, and how we know the resources of nowadays QCs are limited, and that's why those techniques are not so useful today. But in 2017 new error correction techniques were proposed that don't require additional gates/qubits. ...


1

The user has to create the error mitigation calibration matrix for their experiments. You could always just create the matrix for the subset of qubits you are experimenting on if you are sending your experiment to a larger device.


Only top voted, non community-wiki answers of a minimum length are eligible