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

control-aware noise model application

Đang mở
#1,336 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
373
Fork
195
Merge trung bình
4 ngày 15 giờ
Pull request đã merge (30 ngày)
8

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.