1. 程式人生 > >舉個例子丨什麼是量子計算機?比常規計算機強在哪裡?

舉個例子丨什麼是量子計算機?比常規計算機強在哪裡?

作者:YK Sugi

譯者:趙磊

原文連結:http://t.cn/EZAElk0

本文作者訪問了加拿大溫哥華的一家名為 D-Wave System 的製造尖端量子計算機的公司,並在那裡學習了很多關於量子計算機的知識。

在這篇文章中,作者將通過一個簡單地例子讓沒有物理或電腦科學知識地小夥伴也能搞懂什麼是量子計算機,歡迎分享~

 

1.什麼是量子計算機

量子計算機是一種使用量子力學原理進行計算的計算機,它能比常規計算機更有效地執行特定型別的計算。

聽的是不是有點雲裡霧裡?不是說好了沒有物理學或電腦科學知識也能聽懂嗎?別急,這裡將通過一個簡單的例子來告訴大家,它到底是什麼。

為什麼解釋什麼是量子計算機,首先就需要解釋一下常規(非量子)計算機。

2.儲存資訊方式有何不同

一臺普通的計算機以 0 和 1 的 序列儲存資訊,不同型別的資訊,如數字、文字和影象都可以使用這種方式表示,這種由 0 和 1 組成的序列中的每個單元都被成為位元位,所以,位元位可以設定為 0 或 1。

量子計算機不使用位元位來儲存資訊,相反,它使用一種叫量子位的東西,每個量子位不僅可以設定為 1 或 0,還可以設定為 1 和 0。那這到底意味著什麼呢?這裡用一個簡單的例子來解釋這個問題:

假設我們在經營一家旅行社,需要把一群人從一個地方搬到另一個地方。

為了簡單起見,假設現在只需要移動3個人—— Alice、Becky 和 Chris。我們為此預定了兩輛計程車,但想知道誰上了哪輛計程車。另外我們也得到了關於誰和誰是朋友,誰和誰是敵人的資訊。

這裡我們假設:

  • Alice 和 Becky 是朋友

  • Alice 和 Chris 是敵人

  • Becky和 Chris 是敵人

我們的目標是把這3個人分成兩組並實現以下兩個目標:

  • 最大限度地增加共享同一輛車的朋友對的數量

  • 最大限度地減少共享同一輛車的敵人對的數量

這是這個問題的基本前提。我們首先考慮如何用常規計算機解決這個問題。

3.用常規計算機去解決問題

要用普通的非量子計算機解決這個問題,首先需要弄清楚如何用位元儲存相關資訊。

我們把這兩個計程車標記為計程車 1 號和計程車 0 號。

然後,可以用3個位元位表示誰進入哪輛車。

例如,我們可以通過將這3位設為0、0 和 1 來表示:

  • Alice 在 0 號計程車

  • Becky 在 0 號計程車

  • Chris 在 1 號計程車

因為每個人有兩種選擇,所以有 2x2x2 = 8 種方法將這群人分到兩輛車上。

這裡列出了所有可能的情況:

A | B | C

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

使用3個位元位,就可以表示這些組合中的任何一種。

計算每個配置的得分:

現在,使用常規計算機,我們如何確定哪種配置是最好的方案呢?

為此,我們需要定義如何計算每個配置的得分。這個分數將代表每個解決方案達到我前面提到的兩個目標的程度:

  • 最大限度地增加共享同一輛車的朋友對的數量

  • 最大限度地減少共享同一輛車的敵人對的數量

我們簡單定義分數如下:

給定配置的分數 = 共享同一輛車的朋友對數 - 共享同一輛車的敵人對數

例如,假設 Alice、Becky 和 Chris 都乘坐計程車1號。用三個位元表示為 111。

在這種情況下,只有一對朋友共用一輛車—— Alice 和 Becky。

但是卻有兩對敵人共用一輛車——Alice 和 Chris 以及 Becky 和 Chris。

所以,這個配置的總分為 1 - 2 = -1。

解決問題:

有了這些,我們終於可以著手解決這個問題了。

對於一臺普通的計算機,要找到最好的配置,需要遍歷所有配置,看看哪個達到了最高分。

構建的表格如下:

A | B | C | Score

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- 最佳解決方案之一

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- 另一個最佳解決方案

1 | 1 | 1 | -1

這裡有兩個正確的答案——001 和 110,都達到了 1 分。

這個問題相當簡單。但是隨著越來越多的人蔘與到這個問題中來,用一臺普通的電腦很快就會變得難以解決。

可以看到如果是3個人,需要遍歷8種可能的配置。

如果有4個人呢?我們需要遍歷 2x2x2x2 = 16 個配置。

對於n個人,我們需要通過遍歷2的n次方個配置來找到最佳解。

所以,如果有100個人,我們需要遍歷:

2¹⁰⁰ ~= 10³⁰ 個配置

因此這是常規計算機根本無法解決的問題。

4.用量子計算機去解決問題

那麼如果我們用量子計算機來解決這個問題呢?

讓我們回到把3個人分到兩輛計程車的例子。

正如我們前面看到的,這個問題有8種可能的解決方案:

A | B | C

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

用一臺普通的計算機,用3個位元位,一次只能表示其中一個解——例如 001。

然而,使用量子計算機,通過3個量子位,我們可以同時表示所有8個解。

關於這個說法的確切含義存在爭議,但作者的看法是這樣的:

首先,來看這3個量子位中的第一個量子位。當將其設定為 0 和 1 時,就好像建立了兩個並行世界。

在其中一個平行世界中,量子位被設定為 0,而在另一個平行世界中為1。

現在,如果再把第二個量子位也設為 0  和 1 呢?就像是創造了4個平行世界。

在第一個平行世界中,兩個量子位被設定為 00,第二個平行世界中是 01,第三個平行世界中是 10,第四個平行世界中是 11。

類似的如果將這三個量子位都設定為 0 和 1 ,就會建立8個平行世界——000、001、010、011、100、101、110 和 111。

雖然這是一種奇怪的思考方式,但它是解釋量子位元在現實世界中的行為的正確方式之一。

現在,當對這三個量子位進行某種計算時,實際上是在同時對這8個平行世界進行同樣的計算。

因此,我們可以同時計算所有解的分數,而不是按順序遍歷所有這些可能的解。

有了這個特殊的例子,理論上量子計算機可以在幾毫秒內找到最好的解——001 或 110,正如我們之前看到的:

A | B | C | Score

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- 最優解之一

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- 另一個最優解

1 | 1 | 1 | -1

實際上,要解決這個問題只需要讓量子計算機去做兩件事:

  • 所有可能的解都用量子位表示

  • 將每個可能的解轉化成分數的函式。在本例中,這個函式計算共享同一輛車的朋友對和敵人對的數量。

具備了上述兩個條件,量子計算機將在幾毫秒內給出其中一個最好的解決方案。在本例中,分數為 1 的是 001 或 110。

現在從理論上講量子計算機每次執行都能找到最好的解。

然而,實際上在執行量子計算機時有可能存在錯誤。所以,它可能會找到次優解,次次優解,等等。

隨著問題變得越來越複雜,這些錯誤變得越來越突出。

因此,在實踐中可能需要在量子計算機上執行相同的運算元十次或數百次。然後從結果中選出最優解。

量子計算機的改進之處:

即使有一些缺陷,但量子計算機也不會遇到常規計算機那樣的計算規模問題。

當有3個人需要分到兩輛車上時,需要在量子計算機上執行的運算元是1。這是因為量子計算機同時計算所有情況的分數。

當有4個人的時候,操作的次數仍然是 1。

當有100人的時候,操作的次數仍然是 1。僅僅一次操作,量子計算機就能同時計算出2¹⁰⁰ ~ = 10³⁰ 種情況的分數。

而正如之前所說,在實踐中最好執行量子計算機幾十次或幾百次,然後從得到的結果中選出最好的結果。

5.總結      

D-Wave Systems 最近推出了一個與量子計算機互動的雲環境。

如果你是一名開發人員,並且想使用量子計算機,可以嘗試這種簡單的方法:

  • 名稱:Leap

  • 地址:https://cloud.dwavesys.com/leap

可以免費使用它來解決很多問題,並且在註冊後還可以看到很多關於量子計算機的相關教程。

備註:在本文中,作者使用術語“常規計算機”來指代非量子計算機。然而,在量子計算行業中,非量子計算機通常被稱為經典計算機。

 

轉自公眾號:TalkingData