amazon-braket / amazon-braket/amazon-braket-sdk-python

control-aware noise model application

Offen
#1,336 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
373
Forks
195
Ø Merge
4 T. 15 Std.
Gemergte PRs (30 T.)
8

Beschreibung

**Describe the feature you'd like**

Add a control-aware flag for `noise_model.apply(circ)`. Let us use the following example to illustrate

```
from braket.circuits import Circuit
from braket.aws import AwsDevice

device = AwsDevice("arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet")
noise_model =device.emulator().noise_model

circ1 = Circuit().cz(1,2)
circ2 = Circuit().z(control=1, target=2)

noisy_circ1 = noise_model.apply(circ1)
noisy_circ2 = noise_model.apply(circ2)

print(noisy_circ1)
print(noisy_circ2)
```

We have

```
T : │ 0 │
┌────────────┐
q1 : ───●───┤ DEPO(0.02) ├─
│ └─────┬──────┘
┌─┴─┐ ┌─────┴──────┐
q2 : ─┤ Z ├─┤ DEPO(0.02) ├─
└───┘ └────────────┘
T : │ 0 │

T : │ 0 │

q1 : ───●────────────────────

┌─┴─┐ ┌──────────────┐
q2 : ─┤ Z ├─┤ DEPO(0.0011) ├─
└───┘ └──────────────┘
T : │ 0 │

```

Clearly `circ2` is unsatisfactory because the application of noise model is not aware of the fact that the "single-qubit Z" is controlled by another qubit.

**How would this feature be used? Please describe.**

Add a flag `noise_model.apply(circ, control_aware=True)` such that `noisy_circ1 = noisy_circ2` for the above example

**Describe alternatives you've considered**
None

**Additional context**
None

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.