量子計算的開源框架 Cirq 介紹

2018-12-24 12:34:00

我們即將討論的內容正如標題所示,本文通過使用 Cirq 的一個開源視角,嘗試去瞭解我們已經在量子計算領域取得多大的成就,和該領域的發展方向,以加快科學和技術研究。

首先,我們將引領你進入量子計算的世界。在我們深入了解 Cirq 在未來的量子計算中扮演什麼樣的重要角色之前,我們將盡量向你解釋其背後的基本概念。你最近可能聽說過,在這個領域中有件重大新聞,就是 Cirq。在這篇開放科學欄目的文章中,我們將去嘗試找出答案。

在我們開始了解量子計算之前,必須先去了解“量子”這個術語,量子是已知的 亞原子粒子 中最小的物質。量子Quantum 這個詞來自拉丁語 Quantus,意思是 “有多小”,在下面的短視訊連結中有描述:

為了易於我們理解量子計算,我們將量子計算Quantum Computing經典計算Classical Computing(LCTT 譯註:也有譯做“傳統計算”)進行比較。經典計算是指今天的傳統計算機如何設計工作的,正如你現在用於閱讀本文的裝置,就是我們所謂的經典計算裝置。

經典計算

經典計算只是描述計算機如何工作的另一種方式。它們通過一個二進位制系統工作,即資訊使用 1 或 0 來儲存。經典計算機不會理解除 1 或 0 之外的任何其它東西。

直白來說,在計算機內部一個電晶體只能是開(1)或關(0)。我們輸入的任何資訊都被轉換為無數個 1 和 0,以便計算機能理解和儲存。所有的東西都只能用無數個 1 和 0 的組合來表示。

量子計算

然而,量子計算不再像經典計算那樣遵循 “開或關” 的模式。而是,借助量子的名為 疊加和糾纏 的兩個現象,能同時處理資訊的多個狀態,因此能以更快的速率加速計算,並且在資訊儲存方面效率更高。

請注意,疊加和糾纏 不是同一個現象

就像在經典計算中,我們有位元bit,在量子計算中,我們相應也有量子位元qubit(即 Quantum bit)。想了解它們二者之間的巨大差異之處,請檢視這個 頁面,從那裡的圖片中可以得到答案。

量子計算機並不是來替代我們的經典計算機的。但是,有一些非常巨大的任務用我們的經典計算機是無法完成的,而那些正是量子計算機大顯身手的好機會。下面連結的視訊詳細描述了上述情況,同時也描述了量子計算機的原理。

下面的視訊全面描述了量子計算領域到目前為止的最新進展:

嘈雜中型量子

根據最新更新的(2018 年 7 月 31 日)研究論文,術語 “嘈雜Noisy” 是指由於對量子位元未能完全控制所產生的不準確性。正是這種不準確性在短期內嚴重制約了量子裝置實現其目標。

“中型” 指的是在接下來的幾年中,量子計算機將要實現的量子規模大小,屆時,量子位元的數目將可能從 50 到幾百個不等。50 個量子位元是一個重大的量程碑,因為它將超越現有的最強大的 超級計算機暴力破解 所能比擬的計算能力。更多資訊請閱讀 這裡的 論文。

隨著 Cirq 出現,許多事情將會發生變化。

Cirq 是什麼?

Cirq 是一個 Python 框架,它用於建立、編輯和呼叫我們前面討論的嘈雜中型量子(NISQ)。換句話說,Cirq 能夠解決挑戰,去改善精確度和降低量子計算中的噪聲。

Cirq 並不需要必須有一台真實的量子計算機。Cirq 能夠使用一個類似模擬器的介面去執行量子電路模擬。

Cirq 的前進步伐越來越快了,Zapata 是使用它的首批使用者之一,Zapata 是由來自哈佛大學的專注於量子計算的一群科學家在去年成立的。

Linux 上使用 Cirq 入門

開源的 Cirq 庫 開發者建議將它安裝在像 virtualenv 這樣的一個 虛擬 Python 環境 中。在 Linux 上的開發者安裝指南可以在 這裡 找到。

但我們在 Ubuntu 16.04 的系統上成功地安裝和測試了 Python3 的 Cirq 庫,安裝步驟如下:

在 Ubuntu 上安裝 Cirq

Cirq Framework for Quantum Computing in Linux

首先,我們需要 pippip3 去安裝 Cirq。Pip 是推薦用於安裝和管理 Python 包的工具。

對於 Python 3.x 版本,Pip 能夠用如下的命令來安裝:

sudo apt-get install python3-pip

Python3 包能夠通過如下的命令來安裝:

pip3 install <package-name>

我們繼續去使用 Pip3 為 Python3 安裝 Cirq 庫:

pip3 install cirq

啟用 Plot 和 PDF 生成(可選)

可選系統的依賴沒有被 Pip 安裝的,可以使用如下命令去安裝它:

sudo apt-get install python3-tk texlive-latex-base latexmk
  • python3-tk 是 Python 自有的啟用了繪圖功能的圖形庫
  • texlive-latex-base 和 latexmk 啟動了 PDF 輸出功能。

最後,我們使用如下的命令和程式碼成功測試了 Cirq:

python3 -c 'import cirq; print(cirq.google.Foxtail)'

我們得到的輸出如下圖:

為 Cirq 設定 Pycharm IDE

我們也設定了一個 Python IDE PyCharm 去測試同樣的結果:

因為在我們的 Linux 系統上為 Python3 安裝了 Cirq,我們在 IDE 中設定專案直譯器路徑為:

/usr/bin/python3

在上面的輸出中,你可能注意到我們剛設定的專案直譯器路徑與測試程式檔案(test.py)的路徑顯示在一起。退出程式碼 0 表示程式已經成功退出,沒有錯誤。

因此,那是一個已經就緒的 IDE 環境,你可以匯入 Cirq 庫去開始使用 Python 去程式設計和模擬量子電路。

Cirq 使用入門

Criq 入門的一個好的開端就是它 GitHub 頁面上的 範例

Cirq 的開發者在 GitHub 上已經放置了學習 教學。如果你想認真地學習量子計算,他們推薦你去看一本非常好的書,它是由 Nielsen 和 Chuang 寫的名為 《量子計算和量子資訊》

OpenFermion-Cirq

OpenFermion 是一個開源庫,它是為了在量子計算機上模擬獲取和操縱代表的費米系統(包含量子化學)。根據 粒子物理學 理論,按照 費米—狄拉克統計,費米系統與 費米子 的產生相關。

OpenFermion 被稱為從事 量子化學 的化學家和研究人員的 一個極好的實踐工具。量子化學主要專注於 量子力學 在物理模型和化學系統實驗中的應用。量子化學也被稱為 分子量子力學

Cirq 的出現使 OpenFermion 通過提供程式和工具去擴充套件功能成為了可能,通過使用 Cirq 可以去編譯和構造模擬量子電路。

Google Bristlecone

2018 年 3 月 5 日,在洛杉磯舉行的一年一度的 美國物理學會會議 上,Google 發布了 Bristlecone,這是他們的最新的量子處理器。這個 基於門的超導系統 為 Google 提供了一個測試平台,用以研究 量子位元技術系統錯誤率擴充套件性 ,以及在量子 模擬優化機器學習 方面的應用。

Google 希望在不久的將來,能夠製造出它的 雲可存取 的 72 個量子位元的 Bristlecone 量子處理器。Bristlecone 將越來越有能力完成一個經典超級計算機無法在合理時間內完成的任務。

Cirq 將讓研究人員直接在雲上為 Bristlecone 寫程式變得很容易,它提供了一個非常方便的、實時的、量子程式設計和測試的介面。

Cirq 將允許我們去:

  • 量子電路的微調管理
  • 使用原生門去指定 行為
  • 在裝置上放置適當的門
  • 並排程這個門的時刻

開放科學關於 Cirq 的觀點

我們知道 Cirq 是在 GitHub 上開源的,在開源科學社群之外,特別是那些專注於量子研究的人們,都可以通過高效率地合作,通過開發新方法,去降低現有量子模型中的錯誤率和提升精確度,以解決目前在量子計算中所面臨的挑戰。

如果 Cirq 不走開源模型的路線,事情可能變得更具挑戰。一個偉大的創舉可能就此錯過,我們可能在量子計算領域止步不前。

總結

最後我們總結一下,我們首先通過與經典計算相比較,介紹了量子計算的概念,然後是一個非常重要的視訊來介紹了自去年以來量子計算的最新發展。接著我們簡單討論了嘈雜中型量子,也就是為什麼要特意構建 Cirq 的原因所在。

我們看了如何在一個 Ubuntu 系統上安裝和測試 Cirq。我們也在一個更好用的 IDE 環境中做了安裝測試,並使用一些資源去開始學習有關概念。

最後,我們看了兩個範例 OpenFermion 和 Bristlecone,介紹了在量子計算中,Cirq 在開發研究中具有什麼樣的基本優勢。最後我們以 Open Science 社群的視角對 Cirq 進行了一些精彩的思考,結束了我們的話題。

我們希望能以一種易於理解的方式向你介紹量子計算框架 Cirq 的使用。如果你有與此相關的任何反饋,請在下面的評論區告訴我們。感謝閱讀,希望我們能在開放科學欄目的下一篇文章中再見。