Skip to content
Kartikey Purohit
← Course overview

Day 6 — Estimator & Error Mitigation

Question Bank

20 multiple-choice questions. Choose the single best answer. Answers and explanations are in solution-bank.md — no peeking until you've committed to an answer for each.


Q1. What does the Estimator primitive return?

  • A. Bitstring counts for each classical register
  • B. Expectation values ⟨ψ|O|ψ⟩ of observables
  • C. The full statevector of the circuit
  • D. Quasi-probability distributions over basis states

Q2. A developer runs estimator.run([(qc, obs)]) where qc contains qc.measure_all(). What happens?

  • A. The measurements are silently removed and the job succeeds
  • B. The job runs, but evs contains the measurement counts instead
  • C. An error is raised — Estimator circuits must not contain measurements
  • D. The job succeeds only if obs is diagonal in the Z basis

Q3. Which is a valid Estimator PUB for a parameterized circuit pqc with observable obs and parameter values vals?

  • A. (pqc, vals, obs)
  • B. (obs, pqc, vals)
  • C. (pqc, obs, vals)
  • D. (pqc, vals) — observables are passed to run() separately

Q4. Which class is the canonical way to express an Estimator observable such as 0.5·ZZ + 0.3·XI?

  • A. qiskit.quantum_info.Operator
  • B. qiskit.quantum_info.SparsePauliOp
  • C. qiskit.circuit.library.PauliEvolutionGate
  • D. qiskit.quantum_info.Statevector

Q5. After isa_circuit = pm.run(qc) transpiles a 2-qubit circuit onto a 127-qubit backend, what must you do to the 2-qubit observable obs before running the Estimator?

  • A. obs = obs.expand(127 - 2)
  • B. isa_obs = obs.apply_layout(isa_circuit.layout)
  • C. isa_obs = isa_circuit.apply_layout(obs)
  • D. Nothing — EstimatorV2 remaps observables automatically

Q6. You forget the step in Q5 and submit the transpiled 5-qubit circuit with the original 2-qubit observable. What is the outcome?

  • A. ValueError — the qubit counts of circuit and observable do not match
  • B. The observable is padded with identities on the extra qubits
  • C. The job returns evs = nan
  • D. TranspilerError — the circuit is not ISA-compliant

Q7. A PUB contains observables with shape (3, 1) and 4 parameter value sets (shape (4,)). What is the shape of result[0].data.evs?

  • A. (3,)
  • B. (4,)
  • C. (3, 4)
  • D. (12, 1)

Q8. Where do you find the estimated standard error of each expectation value in an EstimatorV2 result?

  • A. result[0].data.stds
  • B. result[0].data.errors
  • C. result[0].stds
  • D. result.metadata["stds"]

Q9. For EstimatorV2, which statement about precision is TRUE?

  • A. Larger precision values mean more shots are used
  • B. Shots scale roughly as 1/precision², so precision 0.01 needs about 10,000 shots
  • C. Precision is only settable globally, never per PUB
  • D. Precision has the same meaning as Sampler's shots option

Q10. What is the default resilience level for the Qiskit Runtime EstimatorV2, and what does it enable?

  • A. Level 0 — no mitigation
  • B. Level 1 — measurement (readout) error mitigation via TREX
  • C. Level 2 — ZNE plus measurement mitigation
  • D. Level 3 — PEC

Q11. Setting estimator.options.resilience_level = 2 enables which combination?

  • A. Only ZNE
  • B. Only PEC
  • C. Everything from level 1 plus ZNE
  • D. Dynamical decoupling plus TREX

Q12. Which option path correctly enables ZNE with custom noise factors on a runtime EstimatorV2 instance est?

  • A. est.options.zne.enable = True; est.options.zne.factors = (1, 3, 5)
  • B. est.options.resilience.zne_mitigation = True; est.options.resilience.zne.noise_factors = (1, 3, 5)
  • C. est.options.mitigation.zne = True; est.options.mitigation.noise_factors = (1, 3, 5)
  • D. est.options.resilience_level = "zne"; est.options.noise_factors = (1, 3, 5)

Q13. Which of the following is a valid value for options.resilience.zne.extrapolator?

  • A. "quadratic"
  • B. "exponential"
  • C. "richardson_cubic"
  • D. "spline"

Q14. How does Qiskit Runtime's ZNE implementation amplify noise by default?

  • A. By adding random Pauli gates after every gate
  • B. By increasing the microwave pulse amplitude
  • C. By digital gate folding — replacing a gate U with sequences like U U†U
  • D. By lowering the qubit T1 time via flux tuning

Q15. Which option enables TREX measurement error mitigation directly (without using a resilience-level preset)?

  • A. options.resilience.measure_mitigation = True
  • B. options.twirling.enable_measure = True
  • C. options.resilience.trex_enable = True
  • D. options.dynamical_decoupling.enable = True

Q16. Which statement about PEC (probabilistic error cancellation) is TRUE?

  • A. It is enabled automatically at resilience level 2
  • B. It gives an unbiased estimate of the expectation value but with a sampling overhead that grows exponentially with circuit depth
  • C. It is a suppression technique applied during pulse scheduling
  • D. It is available for both Sampler and Estimator

Q17. Which list correctly classifies techniques as SUPPRESSION vs MITIGATION?

  • A. Suppression: TREX, ZNE — Mitigation: DD, twirling
  • B. Suppression: DD, Pauli twirling — Mitigation: TREX, ZNE, PEC
  • C. Suppression: DD, PEC — Mitigation: twirling, ZNE
  • D. Suppression: ZNE, PEC — Mitigation: DD, TREX

Q18. What fundamentally distinguishes error suppression from error mitigation?

  • A. Suppression is free; mitigation always costs extra QPU time
  • B. Suppression modifies circuits/pulses before or during execution; mitigation is classical post-processing of results
  • C. Suppression only works on simulators; mitigation only on hardware
  • D. Suppression requires resilience level 2 or higher

Q19. Dynamical decoupling is enabled via estimator.options.dynamical_decoupling.enable = True. When is DD most likely to help?

  • A. When the circuit is densely packed with gates on every qubit at all times
  • B. When circuits contain idle periods where some qubits sit without operations
  • C. Only when combined with PEC
  • D. When the circuit contains mid-circuit measurements only

Q20. Which statement correctly contrasts SamplerV2 and EstimatorV2 options in qiskit-ibm-runtime?

  • A. Both support default_precision and resilience options
  • B. Sampler supports resilience_level 0–2; Estimator supports 0–1
  • C. Estimator has default_precision and resilience options; Sampler has neither (but both support dynamical decoupling and twirling)
  • D. Only Sampler supports dynamical decoupling, since Estimator circuits have no idle qubits