用 Pennylane 建立量子邏輯閘

作者:
林昱誠(Yu-Cheng Lin)
閱讀時間:
5
分鐘
# 建立量子邏輯閘 在上一節,我們學了如何用 Pennylane 建立量子電路並執行的基本流程,這節我們將針對量子電路部分,說明各種 quantum gate 的語法,讓你可以用 Pennylane 建立複雜的 circuit。 還不熟悉 quantum gate 的讀者可以先看[量子計算(上)](https://www.entangletech.tw/lesson/basic-algorithm-08)系列文章 ## Single qubit quantum gate 單 qubit quantum gate 的基本語法都是這樣的形式: ```python=+ qml.{gate}(wires = number) ``` 中間 {gate} 代表要放的 quantum gate,後面的 number 是純數字,代表你要把這個 quantum gate 放在哪個 qubit 上。以下介紹常用 quantum gate 的語法 ### I gate ```python=+ qml.Identity(wires = 0) # 對第一個 qubit 做 I gate ```
I gate

I gate 的符號

### X gate ```python=+ qml.PauliX(wires = 0) # 對第一個 qubit 做 X gate ```
X gate

X gate 的符號

### Y gate ```python=+ qml.PauliY(wires = 0) # 對第一個 qubit 做 Y gate ```
Y gate

Y gate 的符號

### Z gate ```python=+ qml.PauliZ(wires = 0) # 對第一個 qubit 做 Z gate ```
Z gate

Z gate 的符號

### H gate ```python=+ qml.Hadamard(wires = 0) # 對第一個 qubit 做 H gate ```
H gate

H gate 的符號

### S gate ```python=+ qml.S(wires = 0) # 對第一個 qubit 做 S gate ```
S gate

S gate 的符號

### T gate ```python=+ qml.T(wires = 0) # 對第一個 qubit 做 S gate ```
T gate

T gate 的符號

## Single qubit rotation gate 以下是 RX, RY 與 RZ gate,可以自訂要旋轉的角度,語法通常是: ```python=+ qml.{gate}(phi = theta, wires = number) ``` 括號中第一個參數 phi 是欲旋轉的角度。 ### RX gate ```python=+ qml.RX(phi = thata, wires=0) # 對第一個 qubit 做 RX gate,旋轉角度 theta ``` 這邊要注意的是,旋轉角度 theta,在矩陣計算的時候,要記得 theta 要除以 2,常常寫程式會忽略這點。 \begin{split} RX(\theta)= \begin{bmatrix} \cos{\frac{\theta}{2}} & -i\sin{\frac{\theta}{2}} \\ -i\sin{\frac{\theta}{2}} & \cos{\frac{\theta}{2}} \end{bmatrix} \end{split}
RX gate

RX gate 的符號

### RY gate ```python=+ qml.RY(phi = thata, wires=0) # 對第一個 qubit 做 RY gate,旋轉角度 theta ```
RY gate

RY gate 的符號

### RZ gate ```python=+ qml.RZ(phi = thata, wires=0) # 對第一個 qubit 做 RZ gate,旋轉角度 theta ```
RZ gate

RZ gate 的符號

## Two qubits quantum gate 語法通常如下: ```python=+ qml.{gate}(wires = [number,number ]) ``` 因為是牽涉兩個 qubits 的 quantum gate,wires 會是一個 list,第一個數字通常都是 control qubit,第二個 qubit 都是 target qubit。 ### CNOT gate ```python=+ qml.CNOT(wires=[control,target]) ```
CX gate
CNOT (CX) gate 的符號

### CY gate ```python=+ qml.CY(wires=[control,target]) ``` ### CZ gate ```python=+ qml.CZ(wires=[control,target]) ```
CZ gate
CZ gate 的符號

### SWAP ```python=+ qml.SWAP(wires=[target,target]) ```
SWAP gate
SWAP gate 的符號

### Controlled RX gate ```python=+ qml.CRX(wires=[control,target]) ``` 其他 Controlled RY/RZ 也是類似的語法,CRY 和 CRZ。 ## Multiple qubits quantum gate ### Toffoli gate ```python=+ qml.Toffoli(wires=[control, control, target]) ```
CCNOT gate
Toffoli (CCNOT) gate 的符號

### Fredlin gate ```python=+ qml.CSWAP(wires=[control, target, target]) ```
CSWAP gate
Fredlin (CSWAP) gate 的符號

圖片有畫錯,待我們更新

課程目錄