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

control-aware noise model application

Ouverte
#1,336 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
373
Forks
195
Merge moyen
4 j 15 h
PR mergées (30 j)
8

Description

**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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.