量子電路圖慣例
有時候,在電路圖中,量子演算法比對等的書面矩陣表示更容易理解。 本文說明如何讀取量子電路圖及其慣例。
如需詳細資訊,請參閱 如何將量子電路圖表可視化。
讀取量子電路圖
在量子電路中,時間從左至右流動。 量子網關是以時間順序排序,最左邊的閘道是第一個套用至量子位的閘道。
以下列量子電路圖為例:
- 量子位緩存器:量子位緩存器會顯示為水平線,每一行都代表量子位。 最上行是標示為 0 的量子位緩存器,第二行是標示為 1 的量子位緩存器,依故。
- 量子網關:量子作業是由量子網關表示。 量子閘道一詞類似於傳統邏輯閘道。 對一或多個量子位緩存器採取行動的蓋茨會表示為方塊。 在此範例中,符號代表 Hadamard 作業。
- 受控網關:受控網關會針對兩個或多個量子位採取行動。 在此範例中,符號代表 CNOT 閘道。 黑色圓圈代表控件量子位,而圓形內的十字代表 target 量子位。
- 測量作業:計量符號代表測量作業。 測量作業會採用量子位緩存器作為輸入和輸出傳統資訊。
套用量子閘道
由於時間從左至右流動,因此最左邊的閘道會先套用,例如,下列量子線路的動作是單一矩陣 $CBA$。
注意
矩陣乘法遵循相反的慣例:最右邊的矩陣會先套用。 不過,在量子電路圖中,最左邊的網關會先套用。 這種差異有時可能會導致混淆,因此請務必注意線性代數表示法與量子電路圖之間的這項顯著差異。
量子電路的輸入和輸出
在量子電路圖中,輸入量子網關的線路代表輸入量子網關的量子位,而結束量子網關的線路則代表量子網關輸出的量子位。
量子閘道的輸入數目等於量子閘道的輸出數目。 這是因為量子運算是一元運算,因此是可逆的。 如果量子閘道的輸出比輸入還要多,則不會反轉,因此不是單一的,這是一個矛盾。
基於這個理由,在電路圖中繪製的任何方塊必須有與結束線路完全相同的電線數目。
多量子位作業
多量子位電路圖遵循類似單一量子位的慣例。 例如,可以將雙量子位單位運算 $B 定義為 $(H S\otimes X),$因此對等的量子$電路如下:
您也可以檢視 $B$ 在單一雙量子位緩存器上執行動作,而不是根據使用線路的內容,對兩個單一量子位緩存器執行動作。
這類抽象電路圖最有用的屬性可能是,它們允許高階描述複雜的量子演算法,而不需要將它們編譯為基本網關。 這表示您可以取得大型量子演算法數據流的直覺,而不需要了解演算法內每個子程式運作方式的所有詳細數據。
受控制的閘門
量子控制閘道是兩個量子位網關,如果控制量子位處於特定狀態,會將單一量子位網關套用至 target 量子位。
例如,假設有一個量子控制的網關,表示 $\Lambda(G),$其中單一量子位的值會控制 G$ 作業的應用程式$。 您可以藉由查看下列產品狀態輸入範例來瞭解受控網關 $\Lambda(G):$
$\Lambda(G) (\alpha{0}\ket{ + ) \ket{\psi}\alpha={0}\ket{\psi}\ket{+ G \beta\ket{1}\beta\ket{{1}\ket{\psi}$
也就是說,受控網關會將 G$ 套用$至包含$\psi$的緩存器,前提是控件量子位接受值 $1$。 一般而言,這類受控制作業會以下列符號在電路圖中描述:
在這裡,黑色圓圈代表控制網關的量子位,而垂直線代表控制量子位接受值 $1$ 時所套用的單位。
針對 G X$ 和 $G==Z$ 的特殊案例$,下列表示法是用來描述受控制的閘道版本(請注意,controlled-X 閘道是 CNOT 閘道):
Q# 提供方法來自動產生受控制版本的作業,這可讓程式設計人員不必手動撰寫這些作業的程序代碼。 範例如下所示:
operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
H(qubit);
}
傳統控制的閘門
量子閘道也可以在測量之後套用,其中測量結果會作為傳統控制位。
下列符號代表傳統控制的閘道,其中 $G$ 會套用在值 $1$ 的傳統控制位上:
度量運算子
測量作業會採用量子位緩存器、測量它,並將結果輸出為傳統資訊。
測量作業是以計量符號表示,而且一律接受輸入量子位緩存器(以實線表示),並輸出傳統資訊(以雙線表示)。 具體來說,測量作業的符號看起來如下:
在 Q#中 Measure
,運算符會實作測量作業。
範例:單一轉換
請考慮單一轉換 $\text{ CNOT}_{01}(H\otimes 1)。$ 此閘道序列對於量子運算具有根本意義,因為它會建立最大糾纏的雙量子位狀態:
$\mathrm{CNOT}_{01}(H\otimes 1)\left=\ket{00}\frac{1}{\sqrt{2}}({00}\ket{ + ), \ket{11}\right$
具有此或更高複雜性的作業在量子演算法和量子誤差修正中無處不在。
準備這個最大糾纏量子狀態的電路圖為:
Hadamard 閘道後面的符號代表 CNOT 閘道,其中黑色圓圈表示控制量子位,而圓形內的十字則 target 表示量子位。 這個量子電路被描述為在兩個量子位上作用(或相當於兩個緩存器,由一個量子位組成)。
範例:Teleportation 電路圖
量子遠端傳送是說明線路元件的最佳量子演算法之一。
量子轉送是一種通訊協定,可讓量子狀態從一個量子位傳輸到另一個量子位,並協助傳送者與接收者之間的共用糾纏狀態,以及它們之間的傳統通訊。
為了學習目的,傳送者稱為Alice,接收者稱為Bob,而要傳送的量子位稱為訊息量子位。 Alice 和 Bob 各保留一個量子位,Alice 有額外的量子位,也就是訊息量子位。
下列電路圖說明遠端通訊協定:
讓我們細分遠端通訊協定的步驟:
- 量子位緩存器 q0 是訊息量子位,量子位緩存器 q1 是 Alice 的量子位,而量子位緩存器 q2 則是 Bob 的量子位。 訊息量子位處於未知狀態,Alice 和 Bob 的量子位處於 $\ket{0}$ 狀態。
- Hadamard 閘道會套用至 Alice 的量子位。 因為量子位處於 $\ket{0}$ 狀態,因此產生的狀態為 $\frac{1}{\sqrt{{2}}(\ket{{0} + \ket{1})$。
- CNOT 閘道會套用至 Alice 和 Bob 的量子位。 Alice 的量子位是控制量子位,而 Bob 的量子位則是 target 量子位。 產生的狀態為 $\frac{{1}{\sqrt{2}}(\ket{00} + \ket{{11})$。 Alice 和 Bob 現在共享糾纏的狀態。
- CNOT 閘道會套用至訊息量子位和Alice的量子位。 由於 Alice 的量子位也會與 Bob 的量子位糾纏,因此產生的狀態是三量子位糾纏狀態。
- Hadamard 閘道會套用至訊息量子位。
- Alice 測量 她的兩個量子位,並將測量結果告知 Bob,這不會反映在電路中。 測量結果為兩個傳統位,可接受值 00、01、10 或 11。
- 兩個傳統控制的Pauli閘道 X 和 Z 會套用至 Bob 的量子位,視值為 1$ 的結果位$而定。 產生的狀態是原始訊息量子位狀態。