IBM量子體驗(Quantum Experience)團隊已將量子計算軟件QISKit開源,根據量子計算和信息科學家Jay Gambetta的介紹,QISKit可供開發者使用Python體驗IBM的云端量子處理器。
IBM QISKit包含三個主要組件:
使用Python編寫的官方QISKit API客戶端,可執行pip install IBMQuantumExperience安裝,隨后可按照下列范例使用: api = IBMQuantumExperience("token", config) qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[5]; creg c[5]; h q[0]; cx q[0],q[2]; measure q[0] -> c[0]; measure q[2] -> c[1];' device = 'simulator' shots = 1024 api.run_experiment(qasm, device, shots, name='My First Experiment', timeout=60)QISKit客戶端還可配合Jupyter Notebook使用:
import pipdef install(package): pip.main(['install', package])install('IBMQuantumExperience')一個Python QISKit SDK,其中包含多個由IBM Q工程師提供的用作演示和說明用途的工具。尤其是該SDK可以讓我們了解如何創建進行復雜實驗的多個作業,如狀態層析(State tomography)、隨機基準(Randomized benchmarking),以及糾纏測試(Entanglement test)。
OPENQASM規范,其中詳細介紹了Open Quantum Assembly Language 2.0及其基本資料,可以幫助我們了解由IBM推動的量子計算模型,以及進行量子實驗所需的語法。
在IBM的OPENAQSM模型中,量子計算是通過下列四個步驟實現的:
編譯(Compilation),使用經典計算機將文本模式的量子算法轉換為對應的IR呈現。電路生成(Circuit generation),將IR轉換為一系列量子電路,量子電路則是量子程序的最基本組成部分。量子電路是由基本步驟組成的一種序列,其中不包含任何分支或過程度量。經典控制塊可包含量子電路,并可根據度量結果確定程序的整體控制流,或可即時創建新的量子電路。執行(Execution),該過程在量子計算機上實時進行。執行過程中,由一個高級控制器負責處理輸入或來自量子電路的中間態度量,并將其放入由底層控制器執行的物理操作序列。后續處理(Post-processing),依然在經典計算機上進行,會借助實時量子處理過程中進行的度量創建最終結果。IBM量子體驗旨在通過IBM云平臺連接至IBM的量子計算機,供用戶借此進行實驗或將量子計算能力融入自己的軟件程序。量子計算機與基于晶體管的經典計算機最大的不同在于,經典計算機只能使用兩種狀態,而由于使用了量子位(Quantum bit),量子計算機可以同時疊加更多狀態。根據宣傳,量子計算技術將能輕松解決傳統計算機無法解決的問題,例如可用于大整數分解(密碼學)、量子物理過程模擬、瓊斯多項式(Jones polynomial)逼近、佩爾方程(Pell’s equation)求解等領域。對于這類問題,量子計算機可實現遠超經典計算機的速度,同時也意味著目前棘手的(NP)問題盡管不會變成小菜一碟,但至少量子計算將為我們提供可行的思路。
閱讀英文原文:IBM QISKit Aims to Enable Cloud-basaed Quantum Computation