當前位置:
首頁 > 知識 > 不要再說你會打遊戲了,你會打量子計算機遊戲嗎?

不要再說你會打遊戲了,你會打量子計算機遊戲嗎?

詹姆斯·沃頓(James Wootton)是一名量子計算研究人員,剛剛離開瑞士巴塞爾大學,加入了IBM蘇黎世研究實驗室量子計算團隊。

開發量子計算機開發遊戲,是探索與測試量子計算機功能的一種重要互動方式,詹姆斯·沃頓(James Wootton)寫道。

撰文| James Wootton翻譯|劉靜怡校譯|楊嶺楠

要購置一台計算機通常寓示著你需要長時間死死地盯著一串串的參數。當你試著權衡處理器速度與內存,或者硬碟空間和屏幕尺寸,其實你會發現自己在設想用這台計算機做什麼事情,而計算機又能在多大程度上滿足這些需求。

量子計算機目前也面臨著這個問題。每過幾個月新的原型計算機就會發布。而每次量子比特(qubit)的數量都穩佔頭條,但是要弄明白這些量子比特發揮多大作用,它們到底是用來做什麼的,就沒那麼容易量化了。通常情況下,這意味著你還得再回過頭長時間盯著那些參數。

但這並不是了解一台量子計算機的唯一辦法——也可以通過試用來認識它。我們可以運行程序挑戰量子計算機的功能極限,以相關的方式去了解它們的性能。這樣一來我們就有了體驗,而不是僅僅掌握了一串數字。

至於要運行哪種類型的程序,就要回顧一下數字計算的早期階段了。1961年,麻省理工(MIT)的科學家們收到了一台新的計算機模型:PDP-1模型機。在模型機安裝之前,大家就已經開始摩拳擦掌,研究如何使用它,要用它做什麼事了。尤其是史帝夫﹒羅素(Steve Russell)、馬丁﹒格拉茲(Martin Graetz)和韋恩﹒威特奈(Wayne Wiitanen),三人立志開發一個程序,以達到三個目的:將模型機的性能發揮到極限,每次運行表現都能不同,並要能以遊戲的形式來運行。

他們開發的遊戲名叫《太空大戰!》,這是第一款,不只是一款尋常棋盤遊戲的奢華版的計算機遊戲。兩個玩家遊戲開始時各自操縱一艘太空船,他們離自己的星球都極近。第一個挑戰就是要對抗星球的引力,一旦成功進入了較為穩定的軌道,目標就是追捕和摧毀對手。

這款遊戲不僅讓玩家體驗了如何使用PDP-1,還讓他們更深入了解了軌道力學知識。玩家很快就明白了引力並不能輕易逃脫,必須要與它合作。制勝之道在於找到你想要的軌道以及抵達這條軌道的方法。這是一種首創性的理念,此後多為大家所常見——遊戲讓人們有機會利用日常生活體驗之外的物理學知識,寓教於樂,邊玩邊學。

《太空大戰!》遊戲系統(上圖)在加利福尼亞計算機歷史博物館裡的PDP-1模型機上運行。

史帝夫﹒羅素(Steve Russell),遊戲的共同開發者之一,正在展示《太空大戰!》最初的控制器。

《太空大戰!》的這些特性正是我們了解和認識量子計算機時所需要的特性。我們需要類似程序的範例,讓新用戶通過試用代碼來學習。這樣的程序可以充分利用計算機性能,展現計算機的種種優勢和劣勢,還能夠使用戶直接體驗物理學中高深的領域,學習物理學原理,並且利用物理學解決遊戲問題。


量子戰艦

這樣的理念成為驅使我著手開發量子計算機遊戲的部分動力。經過幾次嘗試性的試驗後,第一款符合要求的遊戲誕生了,這款遊戲叫《部分非門戰艦》(Battleships with partial NOT gates)。我的戰艦跟傳統版本的戰艦遊戲一樣,也在網格上戰鬥,網格上的每個點可能就是一艘戰艦藏匿的位置(圖1)。網格根據遊戲設備進行定製。在構建網格的時候,唯一可以使用的設備是一台IBM五量子比特原型量子處理器,所以我設計的戰艦遊戲所用的網格有五個點,每個點對應一個量子比特。要讓戰艦在這台真機上運行起來,需要用IBM開源Qiskit軟體包來編寫量子程序。

圖1 命中和脫靶

a 圖中文字:按回車鍵查看玩家1的戰艦情況。這是戰艦遭轟炸後的受損比例。戰艦受損比例達到95%或以上則已被摧毀。

(a)《半非門戰艦》的屏幕截圖,顯示一艘已半損毀的戰艦。

(b)IBM五量子比特遊戲設備。量子比特位於五個黑色方塊內。

這款遊戲需要兩個玩家,每個玩家必須從他的五個量子比特里選擇三個來扮演戰艦的角色。對於每個選好的量子戰艦,我們用量子比特狀態0來代表完好的戰艦,用1來代表被摧毀的戰艦。然後另一個玩家必須通過把每個0轉變成1來嘗試擊沉這些戰艦。在標準計算里,這項操作被稱為非門。這是支持所有數字計算的邏輯門中最簡單的一種。在我們的遊戲中,它只是起到了一次成功攻擊的作用。

現在我們加進來一些量子。眾所周知,量子比特可以存在於0或1以外的狀態,也可以存在於無限個量子疊加態的其中一個狀態,這些疊加態中有一些更接近0,而另一些更接近1。但是如果我們去實際測量這些疊加態量子比特中一個量子比特的狀態,我們就迫使它在這兩個二元選項之間隨機選擇。疊加態的偏向決定了每一個量子比特的最終狀態。

因為量子計算機可以訪問量子疊加態,所以量子計算機可以執行通用邏輯門的部分動作。例如,我們可以讓量子計算機執行一半的非門。讓一個在0態的量子比特執行半非門,會讓它進入一個介於0和1之間的疊加態。如果我們執行多次同樣的操作,每次都測量量子比特的狀態,我們會發現0和1出現的概率相同。對應在遊戲中的結果,就是戰艦處於半損毀狀態。

相反,如果我們在做測量前執行兩次半非門,會發生迥異的事情。第一個半非門會選取量子態0並將其置於0和1之間的某一個疊加態。然後第二個半非門會在這個疊加態上繼續進程。結果就會產生一個1態的量子比特和一艘損毀的艦船。

這就是量子疊加態和單量子比特旋轉在遊戲中的表現形式:對入門者而言並非哲學難題或晦澀的概念,而是表現為半損毀的艦船和半失效的武器。我們利用量子程序的新奇元素在遊戲中完成普通的任務。當我們揭開了它的神秘面紗,再去思考用它做什麼就變得容易多了。

這就是我們開發遊戲《部分非門戰艦》的目的。《部分非門戰艦》正如《太空大戰!》一樣,旨在拋磚引玉,為其他人提供一個編程的例子。讓人們看到這個遊戲後也可以說:「我也能開發這樣的遊戲」,因為你確實做得到,而且其實你還能做得更好。


卓越量子

《部分非門戰艦》的運行只用到了五個量子比特中的三個。而對於這些量子比特,我們只應用了一種量子運算。顯然我們並沒有將這台計算機的性能發揮到極限。因此,要找到一款能接替《太空大戰!》的遊戲,我們必須另擇他法。

量子計算機的所有威力就來自於它探索量子比特完整「狀態空間」的能力。對於單一量子比特來說,意味著能夠實現0態、1態以及所有可能的疊加態。對於兩個量子比特來說,可用空間變得更加複雜。這一系統有四個基礎態——00、01、10和11——在這些基礎態之上我們可以創造更多種疊加態。隨著加入更多量子比特,這個系統變得愈發複雜。對於n個量子比特來說,就有2n個基礎態可添加到疊加態中——可能性呈指數級增長。

大多數可能發生的多量子比特狀態將表現出某種程度的糾纏——這是量子力學的一個標誌性特徵。量子糾纏允許信息在量子比特間進行非本地存儲,愛因斯坦把它產生的作用稱為「幽靈超距作用」。以可控的方式創造和操縱糾纏,其難度眾所周知。在過去的幾十年中,創造和研究幾個量子比特的特定糾纏態輕輕鬆鬆就能為你贏得一個博士學位。但是構建一台量子計算機的難度就令人望而生畏了。這台設備要能夠穩定地將任意數量的量子比特創造出我們想要的任意糾纏態。

要測試計算機是否達到標準,方法之一就是開發和運行隨機量子程序。隨機量子程序,顧名思義,就是把量子計算機所有能做的運算隨機地運用到一個程序里。這個操作通常是在一堆初始態為0態的量子比特上進行的:既沒有疊加也沒有糾纏。隨著程序的運行,疊加態出現,糾纏也開始形成。如果程序運行的時間足夠長,對於量子比特的無限個可能狀態,無論狀態有多複雜或多糾纏,最終都能得到其中一個狀態的一個完全隨機的例子。然後你就只需要測量你的量子比特,做一些統計,證明用你運行的程序達到了預期的狀態。這也是谷歌期望運行的部分測試,而這項測試就可以為原理的證明提供證據,證明量子計算機能做到常規計算機幾乎不可能做到的事情。

我們把這個理念引入到遊戲里。假設我們的對手開發了一個隨機量子小程序,程序要求隨機選取成對量子比特以隨機的方式進行糾纏,然後運轉這個程序,而我們要分析一下結果。我們的目標是弄清對手做了什麼,然後在程序里加入幾行額外的代碼來阻擊它。遊戲的基本概念有點像俄羅斯方塊,你作為玩家,必須和混亂的力量進行對抗。遊戲里任意出現的隨機事件你都要接招,然後竭盡所能去拆招。如果你身手不錯,你就有能力長時間維持秩序。如果你身手不行,基本上你自身就會變成另外一個隨機性的來源,遊戲將很快難以為繼。

遊戲玩家能力的不足,加上對手編寫的隨機量子程序,需要量子計算機持續不斷地製造和操縱複雜的糾纏態。這就為計算機提供了一場真實的測試,測試甚至也可以被用於實驗一部分,證明量子計算的能力。我們給這個遊戲命名為《卓越量子》。

從短期來看,《卓越量子》的遊戲經驗不免會受制於人,這個效果並不那麼受歡迎。量子比特會與它們的環境相互作用,這不可避免,而我們進行的運算也從不完美。當這些錯誤隨著量子程序的長時間運行累積起來,我們得到的結果將會大幅偏離我們需要和預期的結果。最終,每個量子比特的狀態將無異於拋硬幣的概率,與任何其他量子比特都無關,與所運行的程序也無關。任何複雜的疊加態早已互不相干。

然而也不是一事無成,起碼還有一線希望,《卓越量子》還可以讓我們切身感受一下計算機內部的雜訊情況。當我們觀察到遊戲能堅持多少回合才最終崩潰時(試想想玩俄羅斯方塊的時候也是一樣,如果操作不當,會導致封堵和失誤隨著遊戲的進行變得越來越多,閃爍不止的屏幕更是讓情況雪上加霜),也會對量子程序能正常運行多久有一個概念。

《卓越量子》也可讓我們從另一個角度去比較不同的計算機。在量子計算機里,糾纏是通過量子比特對的交互產生的。但並不是所有量子比特對都可以直接被交互。每台計算機有一個連通圖,圖中列出的所有量子比特對都能夠運行一個特定的二量子比特運算。一台計算機的連通性越好,它在開發量子程序時的靈活性和適配性就越高,也能越快速地創建複雜的疊加態。

在《卓越量子》里,連通圖變成了玩遊戲的棋盤。計算機的連通越好,對手和玩家雙方可用的招數就越多。這些使量子處理器更有價值的特性也使它運行的《卓越量子》遊戲更具吸引力。

圖2 《卓越量子》遊戲網格:(a)IBM16比特設備無誤差模擬(b)真實物理系統。

圖2展示了一個IBM開放可用的16位量子比特計算機《卓越量子》棋盤,它有自己的梯狀連通圖。在每個圖像中,彩色的圓圈指代量子比特。圓圈中的數字顯示每個量子比特的糾纏程度,這個數字是由測量結果計算得來的。對手讓隨機選擇的量子比特對發生糾纏。玩家的工作,就是利用每個量子比特對中的兩個量子比特的數字應該相等的事實,找出哪些量子比特對發生了糾纏。

在一個假想的完美無噪的量子計算機里,這項工作並不難。這可以從圖2a中看出來。此圖是由16量子比特計算機的無誤差模擬得出的。每對的兩個量子比特有剛好相等的數字,因此很容易把它們找出來。此圖中的量子比特對有A、C、E、G、P、R、T和V。

當我們在真機上運行這個遊戲的時候,情況就更棘手了。一次運行的結果如圖2b所示。雜訊使我們測量的糾纏態並不完全準確,因此每對的兩個量子比特的數字可能不同。這就可能造成模糊性,需要費些力氣去解決。例如,右下角的63是否應該和相鄰的59配對?或者是應該和58配對?儘管59在數值上更接近63,但是當查看臨近的這些數字時,我們就能發現其實量子比特對V才是正確的。這裡的量子比特對有C、G、H、I、L、M、R和V。


最早的量子黑客

《太空大戰!》的發展促進了黑客文化(最開始是褒義)的興起。遊戲代碼是自由共享的,這就意味著其他人都能夠學習和改編這款遊戲。新的功能特徵添加到遊戲里,遊戲的變體出現了,這個遊戲還被沿用到了(現在仍然如此)很多不同的系統里。

量子編程這一初生領域也正朝著同樣欣欣向榮的方向在發展著。如果你想用真正的量子計算機編程謀生,你可以使用IBM的Qiskit、Rigetti的Forest或蘇黎世聯邦理工學院的ProjectQ。所有這些開源項目都鼓勵人們參與其中,同樣也鼓勵人們使用軟體有所建樹。無論對於遊戲,還是最終得以發表論文的科學研究,很多源代碼都可以線上獲取,它們的文檔化也已經很完善——可供初學者學習、改編和使用。

幾年之前,只有工作人員才能在具備條件的實驗室中進行試驗性的量子計算,同一領域的理論專家甚至也很少能接觸到量子計算。現在,多虧IBM和Rigetti線上的設備,所有人都可以接觸和使用真正的量子硬體。你都可以穿著睡衣坐著進行試驗。你也可以試驗自己的一個新想法,根本無需編寫一份冗長的資金申請書,更無需說服風險資本家,讓他們相信你的新想法可以幫他們掙到大筆金錢。

你甚至可以自己開發遊戲。

原文鏈接:https://physicsworld.com/a/game-on/

更多內容:http://www.zhishifenzi.com

本頁刊發內容未經書面許可禁止轉載及使用

公眾號、報刊等轉載請聯繫授權

copyright@zhishifenzi.com

商務合作請聯繫

business@zhishifenzi.com


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 知識分子 的精彩文章:

一段轉基因公案上:槽點滿滿的研究

TAG:知識分子 |