量子計算 Quantum Computing 1 IBM-Q套件庫Qiskit介紹與安裝教學

Kevin Yin
Jan 19, 2019

2019/1/16~1/18參加了NTU-IBM Q的推廣活動,8位 IBM成員來到台大推廣 Qiskit套件庫。教得非常細緻,收穫滿滿,也來跟大家分享一下。

上一篇文章介紹量子計算的基本概念。

IBM Q是目前IBM公司負責開發量子電腦的團隊(官網),並在世界各地進行推廣活動。

Qiskit是由IBM Q團隊所開發的Python套件庫,有在Github上開源。可以用來開發量子程式,並且可以丟到IBM量子電腦上,遠端使用他們的量子電腦來執行您寫的程式(免費,但是要排隊執行,計算準確度不高,可以玩玩看)。或是您不想排隊的話,也可以直接使用傳統電腦來模擬(simulate)量子電腦執行您的程式(下面會介紹)。

您可以透過pip install -U qiskit 來獲得最新版的qiskit。( Python 版本>=3.6)

而且Qiskit也非常適合初學者當作踏入量子計算世界的工具,用來學習量子計算的原理,點進github可以看到在qiskit-tutorials中有詳細的量子計算概念教學以及程式開發教學,還可以看到知名量子演算法的實作(Shor's Algorithm、Grover’s Algorithm、 Deutsch_jozsa等等)。

基本的量子電路程式(模擬GHZ State)

目前Qiskit擁有非常多的使用者以及星星,並已有超過數百篇科學文章使用qiskit套件,是頗為成熟的社群,開放大家去貢獻。有任何問題可以去Qiskit的Slack上發問,裡面有很多熱心的開發者。

目前 Qiskit是以包含4個部分組成,使用4個傳統元素的拉丁單字。分別是Terra(土)、Aqua(水)、Ignis(火)、Aer(空氣)。

Qiskit的4個元素(picture from Qiskit website)

Terra

Terra建立了整個Qiskit套件庫的基底架構。
使得開發者可以利用程式碼來設計量子電路、量子閘。而在後端則負責執行觸發量子電腦的微波脈衝(OpenPulse arxiv.org/abs/1809.03452)。也負責量子處理器的優化。

Aqua

Aqua則是包含許多量子演算法應用的Library( VQE, EOH, QPE等等),並可以在量子電腦上進行化學、AI、最佳化和金融模型的加速運算。目前化學領域做的最完整,還有提供GUI 使用者介面。

Aqua上的化學實驗

Aer

Aer則提供高性能的量子模擬器(simulator)。量子模擬器就是用傳統電腦來模擬量子電腦執行後的結果(所以速度上並沒有提升,還是傳統電腦的速度 ,但是準確度接近100%)。模擬的過程是先在Terra編譯完量子電路之後,使用C++所寫的模擬器在後端執行。並且有一套產生noise模型的工具,真實模擬量子電腦執行時發生的計算誤差。

Ignis

Ignis是用於降低量子電腦noise和error的發生,改進量子閘的運作。並提供量子錯誤糾正碼(Quantum Error Correction)的設計。但是目前尚未完整開發,所以有一小部分目前在Terra裡面,之後將會有一個獨立版本。

目前Qiskit還在如火如荼的發展之中,量子計算的世界也還有許多未探索的領域等著我們去發掘。

下篇文章將探討量子計算的基本線性代數(Linear Algebra)和Dirac Notation。

--

--