How to execute your circuits with error mitigation
In Haiqu SDK, applying error mitigation to your workloads is extremely easy: you just have to toggle the corresponding flaguse_mitigation=True in the haiqu.run function.
Haiqu applies different mitigation strategies depending on your workload type. Specify your circuits with measurements to get a mitigated distribution (bitstring counts), or supply an observable to get a mitigated expectation value. Both modes share the same flag — the SDK detects the right strategy automatically.
Distribution Mitigation
When your circuit includes measurements and you are sampling bitstrings, Haiqu performs noise learning alongside your circuit execution and uses it to correct the returned shot distribution.Prepare your circuit
Define your circuit and add measurements so the backend returns a shot distribution.
Observable Mitigation
When your circuit targets an expectation value — for example in VQE, QAOA, or Hamiltonian ground-state estimation — supply a Pauli observable instead of terminal measurements. Haiqu applies a dedicated mitigation pipeline suited to expectation values. This mode incurs 2× circuit and shot overhead per unique circuit to perform the necessary noise characterization at the observable level.Prepare your circuit and observable
Define your circuit without terminal measurements, and specify the Pauli observable to evaluate.
Fine-Tuning with Error Mitigation Options
Both distribution and observable modes support per-component control through the optional"error_mitigation_options" key inside options. Each flag is a boolean and has a sensible default — you only need to include the flags you want to override.
| Option | Default | Description |
|---|---|---|
"dynamical_decoupling" | True | Insert DD pulse sequences to suppress idle-qubit decoherence during execution |
"readout_mitigation" | True | Correct bitflip errors introduced during qubit measurement |
"noise_tailoring" | False | Apply Pauli twirling to convert coherent noise into stochastic noise, improving the effectiveness of downstream mitigation |
"advanced_mitigation" | True | Enable the full advanced mitigation pipeline |
Error Mitigation Details
| Observable | Distribution | |
|---|---|---|
| Supported backends | IBM QPUs, AWS Braket (TBD) | IBM QPUs, AWS Braket (TBD) |
| Circuit format | Qiskit QuantumCircuit | Qiskit QuantumCircuit |
| Max. qubit number | up to 156 qubits (largest QPU) | up to 156 (diminished efficiency with sampling) |
| Max. circuit depth / gate count | up to 1000 2q gates for up to weight-5 observables, up to 300 2q gates for non-local observables | |
| Circuit overhead | 2x circuit overhead per unique circuit | 2x the number of unique circuits (noise learning) |
| Shot overhead | 2x shot overhead per unique circuit | 2x the number of unique circuits (noise learning) |
| Execution speed | O(1) seconds for QEM + execution time on QPU | O(1) seconds for QEM + execution time on QPU |