我們都經常聽到量子電腦(Quantum computer)是未來的趨勢,但量子電腦究竟是什麼?CS Dojo YouTube頻道創辦人YK Sugi參觀了知名量子電腦公司D-Wave Systems後,提出一個簡單例子,讓不熟悉量子物理或電腦科學的人也能理解量子電腦的概念。
不論傳統電腦或量子電腦,包含數字、文字、圖片等所有訊息都使用一系列0和1表示並儲存。傳統電腦中,最小儲存單位稱為位元(bit),而量子電腦中,最小儲存單位稱為量子位元(qubits)。
但除了名稱差異,量子位元和位元究竟有何不同?讓我們這麼說吧;每個位元都是0或1,但每個量子位元都可以是0和1。如果還是難以理解,我們不妨從以下的數學例子來理解兩者的差異。
假設你經營一家旅行社,必須安排團員從一個地方移動至另一個地方,為此你預訂了2輛計程車,現在必須規劃如何分配座位。為了確保旅程氣氛和樂,你希望透過座位分配達成兩個目標:最大化同輛車的朋友數量,同時最小化同輛車的敵人數量。
為了保持題目單純,讓我們先假設團員只有3個人──Alice、Becky和Chris,而你所知道的3人關係如下:
- Alice和Becky是朋友
- Alice和Chris是敵人
- Becky和Chris是敵人
在如此單純的條件下,許多人大概不需要電腦就能隨手算出最好的分配解答,儘管如此,我們還是先來看看傳統電腦和量子電腦解決問題方面的差異。
計程車分配問題:傳統電腦
要說明傳統電腦如何解決這個問題,我們就必須先理解電腦如何用位元儲存訊息。
首先,我們將兩台計程車分別設定為「#1」和「#0」,這樣就能用3個位元表示分配座位的各種情況。當不考慮計程車搭乘人數的上限和下限,每個人都有2個選擇,因此共有2的3次方=8種方法將這組人分成兩輛車。
為了確定哪種組合是最佳解決方案,我們必須先定義如何計算每項組合的「分數」,才能比較每個方案達到目標的程度。這裡我們先簡單地定義分數如下:
- (朋友共享同一輛車)-(敵人共用同一輛車)=得分
在這個定義下,假設3人都進入出租車#1(位元表示為111),配置的總分便為1(Alice和Becky)-2(Alice和Chris、Becky和Chris)= -1。
使用傳統電腦時,你基本上需要列出並計算完所有組合,確定哪個得最高分才能獲得最佳解答。在這個問題中,所有組合的分數情況如下:
由於問題相對簡單,傳統電腦很快就能解決,但如果人數增加呢?3個人有2的3次方種組合,4個人就需要2的4次方種組合,不考慮計程車能否容納的問題之下,如果有100個人,我們就需要2的100次方種組合,傳統電腦無法解決這種問題。
但如果使用量子電腦呢?解釋如何處理100個人的問題之前,我們先回到將3人安排分搭2輛計程車的情況。
計程車分配問題:量子電腦
正如先前提到的,這個問題有8種組合,運用一般電腦時,3個位元一次只能代表一種可能性(像是001、101),但使用量子電腦,只要3個量子位元就可以同時代表8種可能性。
簡單來說,當你將第一個量子位元設定為0和1時,就有點像創造2個平行世界。其中一個世界,量子位元為0,另一個世界量子位元為1,當你再將第二個量子位元設為0和1時,這就像創造了 4 個平行世界。
這種思考方式或許有些奇怪,但能稍微解釋量子位元在現實世界的行為方式。
與傳統電腦用位元列出所有 8 種可能性的情況不同,當您對這 3 個量子位元應用某種運算時,實際上是同時在 8 個平行世界應用相同計算,同時計算所有方案的得分。
當然,你還是得讓量子電腦學會用量子位元表示所有潛在解決方案,同時將每個潛在解決方案轉換為分數,一但做到這兩件事,量子電腦便能在幾毫秒內提供最佳解決方案之一。在3人計程車問題,答案便是001或110。
然而儘管理論上來說,量子電腦每次運算都會提供最好解決方案之一,但量子電腦實際運算有一些錯誤。它可能提供第二好或第三好的解答,隨著問題越來越複雜,這些錯誤也就變得更明顯。
因此實用時,你可能必須在量子電腦進行相同運算數十次或數百次,然後從獲得的眾多結果選出最好的一個。
處理大量計算的優勢
儘管有這些錯誤,量子電腦還是有強大的優勢。因為和傳統電腦不同,面對需要龐大計算量的問題時,量子電腦並不會有擴展問題。
由於量子電腦同時計算所有組合搭配的分數,因此當有3個人時,需要執行的次數為1,4個人時次數仍為1,即使數字增加至100人,操作次數仍然是1。透過一次操作,量子電腦會同時計算所有2,100種組合的分數。
當然因為有前述提到的問題,實際應用時為了得出最佳結果,最好還是操作量子電腦數十次或數百次,並從眾多結果中選擇最好的一個。
儘管有些麻煩,但仍比傳統電腦運算相同問題,得重複與結果數相同的計算次數要好得多。以100人計程車問題來說,這個數字大概是1百穰次。
本文授權轉載自:科技新報