為什么選擇QPanda

QPanda是由本源量子開發的開源量子計算編程框架,它可以用于構建、運行和優化量子算法。QPanda作為本源量子計算系列軟件的基礎庫,OriginIR、Qurator、量子計算服務提供核心部件。 用戶API參考文檔參見

對接不同平臺

a片无限看在线超碰Docking different platforms

QPanda可對接不同的量子計算平臺,它可把QPanda編寫的量子程序編譯到不同量子計算平臺的對應的量子語言,目前已支持QASM、OriginIR、Quil等多種量子語言

優化/轉換工具

a片无限看在线超碰Optimizing/Conversion Tools

a片无限看在线超碰QPanda可根據真實量子計算機的數據參數,提供量子線路優化/轉換工具,方便用戶探索NISQ裝置上有實用價值的量子算法

量子虛擬機

a片无限看在线超碰Quantum Virtual Machine

QPanda提供本地的部分振幅、單振幅、全振幅、含噪聲量子虛擬機,并可直接連接到本源的量子云服務器,運行量子程序

量子算法

量子算法是量子計算落地實用的最大驅動力。好的量子算法設計將更快速推動量子計算的發展
Q
QAOA算法
多項式時間算法
尋最優解決方案
查看詳情
V
VQE算法
量子經典混合算法
求解分子基態能量
查看詳情
S
Shor算法
快速質因分解
破解RSA加密
查看詳情
多項式時間算法,尋最優解決方案
量子近似優化算法(QAOA),是由Farhi, Goldstone和Gutmann開發的一個多項式時間算法,用于尋找“最優化問題的一種‘好’的解決方案”。對于給定的NP-Hard問題,近似算法是一種多項式時間算法,QAOA算法以期望的一些質量保證來解決每個問題實例。品質因數是多項式時間解的質量與真實解的質量之間的比率。

NP-Hard Problem

最大切割問題(MAX-CUT)是原始量子近似優化算法論文中描述的第一個應用。此問題類似于圖形著色。給定節點和邊的圖形,將每個節點著色為黑色或白色,然后對有不同顏色節點的邊給定一個分值。目的是找到得分最高的著色點。 更正式地說,問題是將圖的節點劃分為兩組,使得連接相對組中的節點的邊的數量最大化。

例如,杠鈴圖

a片无限看在线超碰有4種方法將節點分為兩組:

a片无限看在线超碰我們僅對連接不同集合中的節點時才會繪制邊。帶有剪刀符號的線條表示我們要計算的切割邊。對于杠鈴圖,有兩個相等的權重分區對應于最大切割(如上圖,右側兩個分區),將杠鈴切成兩半。我們可以將集合S或$\vec{S}$中的節點表示為 0或1,組成一個長度為N的比特串 。上圖的四個分區可以表示為 {00, 11, 01, 10} 其中最左邊的比特對應節點 A,最右邊的比特對應節點B。用比特串來表示使得表示圖的特定分區變得很容易。每個比特串具有相關聯的切割權重。 對任意一個圖中,節點分割所使用的比特串長度總是N。可分割的情況總數是$2^{n}$。例如,方形環見下圖:

有16個可能的分區($2^{4}$)。以下是兩種可能的節點分區方式:

與每個分區相關聯的比特串如上圖所示,其中最右邊的比特對應節點A,最左邊的比特對應節點D。

量子經典混合算法,求解分子基態能量
變分量子特征值求解算法(Variational-Quantum-Eigensolver,簡稱VQE)是用于找到一個矩陣H(通常是一個較大矩陣)的特征值的量子與經典混合算法。當這個算法用在量子模擬時,H就是某系統的哈密頓量(Hamiltonian)。在這個混合算法中,量子子程序是在經典優化回路內部運行。
這里的量子子程序有兩個基本的步驟:
  • 制備量子態∣Ψ($\vec{θ}$);
  • 測量期望值 ﹤Ψ($\vec{θ}$)∣H∣Ψ($\vec{θ}$)

a片无限看在线超碰由變分原理(variational principle)可知,這個期望值不小于 的最小特征值。這個限定使得我們能夠運行循環優化(optimization loop)的經典計算方法來找特征值:

  • 運用經典的非線性優化器通過改變參數θ ?來最小化期望值.
  • 不斷迭代,直到收斂.

事實上,VQE的量子子程序等價于基于參數θ ?的集合來制備一個狀態,并在適當的基上進行一系列的測量。在這個算法中參數化的狀態的制備是比較困難的,并且參數化狀態的制備顯著地影響到算法的工作性能。

利用VQE計算基態

了解了VQE算法的原理之后,我們可以使用VQE算法計算分子的基態。

下面我們對此步驟進行詳細說明:

1.我們可以調用Psi4計算包,利用量子化學里面的各種理論和近似得到的分子或原子的哈密頓量。這個哈密頓量是通過升降算符描述的,我們稱之為FermionOperator;

a片无限看在线超碰2. 將分子的哈密頓量轉換為用泡利算符表示的哈密頓量。這個通常是使用JW變換或者BK變換進行的。變換后的哈密頓量我們稱之為PauliOperator。

a片无限看在线超碰3.制備試驗態。在這個算法中,試驗態是通過UCC理論制備的。UCC的形式可見后面的拓展介紹。UCC中包含一組未定的參數(UCC($\vec{θ}$))。我們先將量子比特制備到某個態上(例如基態或全部執行Hadamard門后的疊加態),之后將UCC作用在這個態上,得到一個含參數($\vec{θ}$)的試驗態。

4.計算試驗狀態對PauliOperator的期望值。通過量子期望估計方法實現。

5. 根據計算出的期望值,放入到經典計算機的優化器程序中(例如基于梯度的優化器,或者不基于梯度的優化器)。如果沒有收斂,或者達到優化最大步驟,優化器會修改這個參數$\vec{θ}$,再從3開始進行重復。否則,我們就得到了當前狀態下的最優化期望值,即該分子的基態能量。

快速質因分解,破解RSA加密
舒爾算法,即秀爾算法(Shor算法),以數學家彼得?秀爾命名,是一個在1994年發現的,針對整數分解這題目的的量子算法(在量子計算機上面運作的算法)。它解決如下題目:給定一個整數N,找出他的質因數。
在一個量子計算機上面,要分解整數N,秀爾算法的運作需要多項式時間(時間是logN的某個多項式這么長,logN在這里的意義是輸入的檔案長度)。更精確的說,這個算法花費O((logN))的時間,展示出質因數分解問題可以使用量子計算機以多項式時間解出,因此在復雜度類BQP里面。這比起傳統已知最快的因數分解算法,普通數域篩選法還要快了一個指數的差異。
秀爾算法非常重要,因為它代表使用量子計算機的話,我們可以用來破解已被廣泛使用的公開密鑰加密方法,也就是RSA加密算法。RSA算法的基礎在于假設了我們不能很有效率的分解一個已知的整數。就目前所知,這假設對傳統的(也就是非量子)電腦為真;沒有已知傳統的算法可以在多項式時間內解決這個問題。然而,秀爾算法展示了因數分解這問題在量子計算機上可以很有效率的解決,所以一個足夠大的量子計算機可以破解RSA。這對于建立量子計算機和研究新的量子計算機算法,是一個非常大的動力。
將兩個質數乘起來,例如907*641=581387,是一件小學生都能做到的事情,用計算機去處理,看起來也沒有什么難度。但是如果我給你581387,讓你去找它的質因數,問題就變得很復雜了。也許你可以用計算機一個一個的去嘗試,但是當數字變得更大,達到成百上千位的時候,就連計算機也無能為力。世界上面有很多問題都是這樣,難以找到答案,但是一旦找到答案就很容易去驗證。類似的問題我們稱之為NP問題。NP問題之所以難于處理,是因為它的時間復雜度往往具有指數級別。這意味著隨著問題規模的線性擴大,需要的時間卻是指數增長的。利用這個原理,人們創造了RSA算法,它利用大數難以分解,但是易于驗證的原理,對數據進行有效的加密。
量子計算機有將問題指數加速的能力,那是否意味著能攻克所有的NP問題呢?很遺憾,不能。但是幸運的是,我們有能力把“質因數分解”的時間復雜度降低到多項式級別,使大數分解問題的解決變為可能。這就是Shor算法。Shor算法的提出意味著RSA密鑰的安全性受到了挑戰。

資源與社區支持

我們致力于培養一個開放、熱情的量子交流社區,每個用戶都可以在上面書寫、發布量子相關信息和看法
量子社區
用戶可以在上面發表自己對于量子計算的看法或疑問,也可選擇性瀏覽相關帖子增長自己對量子計算的了解。
Github
QPanda2的github地址,可以參閱QPanda2的正在進行、計劃和已完成開發活動的詳細信息。
readthedocs
包含QPanda的基礎介紹、深入學習、工具組件、算法組件等

合作案例

本源與合作伙伴一起致力于量子計算在各類場景的應用開發,努力實現更多核心技術的突破,共同推進量子計算產業經濟的發展

下載中心

多版本可供選擇,
QPanda
版本:2.0
適用系統:Windows Linux Mac版
安裝命令pyQPanda
pip install pyqpanda