上一篇介紹了 狄拉克符號與一些基本線性代數的概念。
本文將接著介紹量子閘(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來模擬各種量子閘的運作結果。先執行以下程式
Hadamard Gate (H)
有些量子閘Input一個Qubit即可執行,有些則要Input多個Qubit。
Hadamard Gate就屬於只要一個Qubit當Input。
由下圖可看出,H可以將一個basis的量子態(|0>或|1>)變成疊加態,是一個非常實用的Gate。
讀者可以試試計算一下H與H*相乘是不是等於I,也就證實H是一個Unitary matrix。也可以試著計算執行兩次H之後是不是又變回原本帶入的量子態。
我們先來分析輸出的結果。因為模擬器預設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 gate
Pauli-Y gate
Pauli-Z gate
未完成