量子計算Quantum Computing 3 量子閘-1 Quantum Gate

Kevin Yin
3 min readDec 18, 2018

--

上一篇介紹了 狄拉克符號與一些基本線性代數的概念
本文將接著介紹量子閘(Quantum Gate)以及利用Qiskit實作。

在量子計算中,運算的過程都是將量子位元通過量子閘,利用量子閘來改變量子位元的疊加態。量子閘是量子電路的基礎,就像傳統邏輯閘跟數位電路之間的關係。

量子閘還有一個特色就是他們是可逆的,但是傳統邏輯閘則不行。例如傳統邏輯閘的AND Gate,如果輸入1和0,輸出將得到0。但是沒有辦法從輸出的結果推回去知道輸入究竟是00、01還是10。但是量子閘都是可以逆推導的,這個特色在數學上則使用酉矩陣表示。

酋矩陣(Unitary Matrix):一個n∗n的複數矩陣。若滿足U†U=I。則稱此矩陣為Unitary

目前常見的量子閘有Hadamard gate、Pauli-X gate、Pauli-Y gate、Pauli-Z gate、Swap gate、Toffoli gate、Phase shift gates。讓我來一一介紹。

接下來還會同時使用qiskit來模擬各種量子閘的運作結果。先執行以下程式

import套件以及建立暫存器

Hadamard Gate (H)

有些量子閘Input一個Qubit即可執行,有些則要Input多個Qubit。
Hadamard Gate就屬於只要一個Qubit當Input。
由下圖可看出,H可以將一個basis的量子態(|0>或|1>)變成疊加態,是一個非常實用的Gate。
讀者可以試試計算一下H與H*相乘是不是等於I,也就證實H是一個Unitary matrix。也可以試著計算執行兩次H之後是不是又變回原本帶入的量子態。

右側為|0>與|1>經過gate執行的結果 左側為Hadamard Gate的矩陣表示
輸出為: {‘0’: 513, ‘1’: 511}
再加一行 qcirc.draw(output=’mpl’) 就可以跑出電路圖 mpl也可改成latex 會出現不一樣的樣式

我們先來分析輸出的結果。因為模擬器預設shots為1024,代表模擬器總共會跑1024次,把每次結果累積起來並輸出,共測得513次的’0'bit加上511次的’1'bit。出現的機率差不多是各1/2。
因為在執行完Hadamard Gate之後,把疊加態的係數平方會得到發生|0>的機率和發生|1>的機率分別是1/2和1/2,因此結果513與511接近1/2的機率,與程式結果吻合。

Pauli-X, Pauli-Y, Pauli-Z

Pauli-X gate

Pauli-Y gate

Pauli-Z gate

未完成

--

--