(二)最常用的量子計算模型 量子線路

2021-10-06 17:47:18 字數 2122 閱讀 2404

量子線路

量子線路,即對量子位元進行操作的線路,它由量子邏輯門組成。

不同於傳統電路是用金屬線所連線以傳遞電壓訊號或電流訊號。在量子線路中,線路是由時間所連線,亦即量子位元的狀態隨著時間自然演化,過程中按照哈密頓運算子指示,一直到遇上邏輯門而被操作。

由於組成量子線路的每乙個量子邏輯門都是乙個酉矩陣,所以整個量子線路也是乙個大的酉矩陣。

量子演算法線路圖

在目前的量子計算理論研究中,各種量子演算法常用量子線路表示,比如下方列出的量子演算法中的hhl演算法量子線路圖。

介面介紹

在qpanda 2中,qcircuit類是乙個僅裝載量子邏輯門的容器型別,它也是qnode中的一種,初始化乙個qcircuit物件有以下兩種:

c++風格

qcircuit cir = qcircuit();

c語言風格

qcircuit cir = createemptycircuit();

你可以通過如下方式向qcircuit尾部填充節點。

qcircuit << qnode;

或者qcircuit.pushbacknode(qnode);

qnode的型別有qgate、qporg、qif、measure等等,但對於qcircuit而言,僅能插入qgate型別和qcircuit。所以qcircuit類是乙個qgate物件和另一些qcircuit物件的集合。

同時,你也可對目標線路施加轉置共軛和受控操作。qcircuit型別有兩個成員函式可以做轉置共軛操作:dagger、setdagger。

setdagger的作用是根據輸入引數更新當前量子線路的dagger標記,在計算時後端會根據dagger判斷當前量子邏輯門是否需要執行轉置共軛操作。舉個例子:

qcircuit cir;

cir.setdagger(true);

該函式需要乙個布林型別引數,用來設定當前邏輯門是否需要轉置共軛操作。

dagger的作用是複製乙份當前的量子線路,並更新複製量子線路的dagger標記。舉個例子:

qcircuit cir;

qcircuit cir_dagger = cir.dagger();

除了轉置共軛操作,你也可以為量子線路新增控制位元。qcircuit型別有兩個成員函式用於新增控制位元:control、setcontrol。

setcontrol的作用是給當前的量子線路新增控制位元。例如:

qcircuit cir;

cir.setcontrol(qvec);

control的作用是複製當前的量子線路,並給複製的量子線路新增控制位元。例如:

qcircuit cir;

qcircuit cir_control = cir.control(qvec);

上述都需要接收乙個引數,引數型別為qvec,qvec是qubit的vector容器型別。

註解

向qcircuit中插入qporg,qif,measure不會報錯,但執行過程中可能會產生預料之外的錯誤。

乙個構建好的qcircuit不能直接參與量子計算與模擬,需要進一步構建成qprog型別。

例項

以下例項,主要展現了qcircuit型別介面的使用方式。

1、初始化虛擬機器環境:使用init介面初始化乙個量子虛擬機器,向量子虛擬機器申請4個量子位元和4個經典暫存器;

2、構建量子線路:呼叫createemptycircuit構建乙個量子線路circuit,通過 << 操作符把量子邏輯門插入到circuit中,設定circuit的轉置共軛操作為true。

3、構建量子程式:呼叫createemptyqprog介面構建乙個量子程式prog,通過 << 操作符把circuit和量子邏輯門插入到prog;

4、執行量子程式:呼叫runwithconfiguration測量執行介面,讓量子程式執行1000遍,量子程式執行完後,就可以得到計算結果了。

執行結果:

0000, 510

1000, 490

量子計算 量子門 量子計算中幾個常用的邏輯門

希爾伯特空間 hilbert space 其定義是在乙個複數向量空間上的給定的內積。簡單來說就是復向量內積空間。複數向量的概念高中就有學過,而所謂內積空間則是兩個向量上的函式並返回乙個標量的二元運算,它的結果是歐幾里得空間的標準內積。兩個向量的點積寫作a b,數量積及標量積。相信學過高數的同學應該不...

量子計算 如何理解量子中的疊加態

如果看了我入門第一篇文章的 量子計算 量子計算常用高頻詞匯集的同學應該會感到很疑惑,到底疊加態是個什麼鬼。根據上文的解釋 態疊加原理 superposition principle 假若乙個量子系統的量子態可以是幾種不同量子態中的任意一種,則它們的歸一化線性組合也可以是其量子態。稱這線性組合為 疊加...

量子計算 對量子的波動方程進行傅利葉變換研究

量子計算中的不確定性 在經典力學中,乙個系統的配置或狀態由乙個點 x,p 給出 座標空間和動力矩。這完全指定了系統中的其他所有內容 確定性的方式,因為任何可以表示為y x,p 的可觀察y都可以找到,和任何不能無關的。然而,正如我們已經看到電子的衍射那樣 無法準確地知道電子在每個點上的位置和動量沿著軌...