Commit 662ca396 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Restructure demo files:



- Demo 1: simple execution on multiple backends

- Demo 2: runtime pass manager

- Demo 3: FTQC IR execution

Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent b05493c1
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -14,9 +14,6 @@

- Trotter circuit (e.g., 2-3 qubits): print gate count before and after optimization; examine the results (e.g. expectations and simulation runtime with and without optimization). 

- Topology placement: QAOA (max-cut) circuits => hardware mapping. 

- Noise-aware mapping: Bell test (H-CX); select an IBM backend with more qubits; should pick the pair with low CX error rate.

- [Skipped] Topology placement: QAOA (max-cut) circuits => hardware mapping. 

(46.5 KiB)

File moved.

+0 −43
Original line number Diff line number Diff line
# QCOR NISQ Noise Mitigation Demonstration

## Test cases: Identity circuit (no optimization) & VQE Deuteron H2
## Goals

- Demonstrating result post-processing (expectation calculation and noise mitigation).

- NISQ-era algorithms and utilities: QCOR optimizer, variational algorithms, noise mitigation, etc.

## Outline

- Circuit with an Identity sequence: repeating CNOT gates (no optimization), examining the expectation calculation (theoretical = 1.0) with and without noise mitigation. CLI option to enable noise mitigation on any backend (simulator and IBM)

- [Skipped] Sweeping VQE ansatz: showing the energy values with and without noise mitigation.

## Notes:

- Install mitiq: `pip3 install mitiq`

- Install Qiskit: `pip3 install qiskit`

- Make sure `~/.ibm_config` file is present.

- Noise model JSON generation 
(mitiq performs not very well with device noise model. Hence, use theoretical noise model for demonstration purposes)

```
from qiskit.providers.aer.noise import NoiseModel
import json 

# Use a depolarizing noise model.
noise_model = NoiseModel()
noise_model.add_all_qubit_quantum_error(
    depolarizing_error(0.001, 1),
    ["u1", "u2", "u3"],
)
noise_model.add_all_qubit_quantum_error(
    depolarizing_error(0.01, 2),
    ["cx"],
)
  
print(json.dumps(noise_model.to_dict(True)))
```
 No newline at end of file
Loading