Professional Documents
Culture Documents
臺北市量子電腦教材_資訊篇
臺北市量子電腦教材_資訊篇
臺北市高中職
量子電腦教材 資訊篇
資訊篇
一本專為高中職生設計的量子科技入門手冊
臺北市高中職
量子電腦教材
資訊篇
市長序
臺北市為全臺首善之都,擁有豐富的人文資源及完善的科技建設,
因應市府各類巨量資料,為快速彙整資訊、精確分析數據及預測未來
趨勢,我們擬定數據資產,輔助施政策略,以科技整合跨局處資源,
提供市民便捷、智慧化的生活環境,打造友善、永續、創新、共融的
智慧城市。
教育、元宇宙等科技教育計畫,豐富學生資訊及新興科技課程內容,
展趨勢!
針對量子電腦,我們將從高等教育向下扎根,分階段推動高中職、
國中小量子教育課程,鼓勵學生從科技體驗開始,逐步認識量子物理
及量子計算等量子電腦基礎原理,整合學科知識,進行跨領域學習,
啟發學生投入量子科技之興趣,以因應未來世界變遷趨勢,成為新興
科技產業人才。
本市與鴻海教育基金會共編《高中職量子電腦教材》,感謝專業
編輯群教師撰寫及專家學者的指導,使本教材順利出版,提供師生使
用!在面對全球網路及資訊科技快速變遷的時代,我們將持續精進智
慧及資訊科技教育政策,透過產官學研合作,強化教學品質,極力彰
顯教育價值與趨勢的掌握,以利孕育優質的未來人才,確保全球競爭
優勢。
臺北市長 謹誌
中華民國 112 年 6 月
局長序 臺北市政府教育局為培養學生資訊、科技教育素養,推動生活科
技、程式教育、人工智慧 AI 、機器人操作應用、虛實整合科技(擴增
鼓勵所屬各級學校將資訊科技元素,融入各學習領域,提升北市學子
面對未來的競爭力。
量子電腦科技作為下一代計算機革命產物,其巨量資料運算能力,
將徹底改變現有各種演算法與數據分析應用技術,加速實現順暢交通、
數位金融、 AI 醫療、能源管理及治安分析等未來世界願景,儼然為全
球產業重點項目,此一技術和概念,應扎根於教育系統中,讓學生及
早瞭解未來世界趨勢。
臺北市高中職量子電腦教材,是全國第一本專為高中職撰寫,彙
段必修內容,以螺旋式課程概念進行編輯,完成這本跨學科及年級的
教材範本。期待協助高中物理、數學及資訊教師以跨域合作方式,建
立學生量子電腦科技應用基礎知能,也為未來有意投入量子相關領域
學生,提早建立量子科技知識地圖。
本教材研發,衷心感謝鴻海教育基金會汪用和執行長全力協助,
亦感謝臺灣大學張慶瑞教授、傅昭銘教授,中原大學張元翔教授、黃
琮暐助理教授的悉心專業指導,也感謝永春高中 3A 教學基地中心召集
本市優良教師撰寫教材,使「臺北市高中職量子電腦教材」順利出版。
並期盼在各高中職推廣應用,讓北市師生成為未來科技世代的主人,
展現臺北市科技教育的能量!
臺北市政府教育局局長 謹誌
中華民國 112 年 6 月
執行長序 若要選出當今最夯且勢將對人類生活帶來重大影響的十大關鍵新
科技,「量子科技」應會名列其中,尤其有句話「得量子者得天下」
更充分說明了「量子科技」的重要性。但是,如此至關重要的科技,
我們有沒有培養了足夠多的人才來支持量子科技研究、發展呢?
馬克.祖格柏的孩子才一個月大,就已經在聽爸爸為他唸「寶寶的量
子力學」時,我們認識到,讓臺灣的高中生能夠普遍開始學習量子絕
量子營。但畢竟一個營隊能容納的名額有限,所以我們也與縣市教育
局合作開辦高中職量子師培營,以求老師自己就可以在校內開課,希
望讓學生不分地域、無論貧富,都可以很方便地在校內就能學習到這
個重要的新興知識,而臺北市就是第一個與我們合作的單位。
要在校內開課,除了老師要有專業知識外,也需要有教科書,因
此,有了這本教科書的發想與誕生。這本書能夠成形出版要感謝許多
人,包括上課老師們竭盡心力地將師培營所學轉化成高中生可接受的
文字,包括所有在此過程中大力支持協助的專家學者與北市教育局夥
伴們。
「有您真好」是鴻海教育基金會想對貢獻心力於這本書的朋友們
說的,也期盼高中生們有一天會說「有這本教科書真好」,甚至希望
台灣的科技界有一天會說「台灣從高中開始就有量子教育真好」!
當然還有最重要的,就是,有您看這本書,真好!
鴻海教育基金會執行長 謹誌
中華民國 112 年 6 月
目錄
第1章 量子電腦的發展史
1-1 什麼是量子電腦 2
1-2 量子電腦的起源 2
1-3 量子電腦的研究歷史 4
1-4 量子電腦的展望 7
第2章 量子電腦的原理與架構
2-1 一般電腦與硬體 10
2-2 量子電腦的硬體 12
2-3 量子電腦的技術挑戰 19
第3章 量子位元(qubit)
3-1 古典位元 24
3-2 量子位元 26
3-3 狄拉克表示法 ( Dirac notation ) 28
3-4 量子位元的狀態表現 32
第6章 量子的算術與邏輯運算
6-1 古典邏輯閘介紹 98
6-2 使用量子閘模擬古典邏輯閘 99
6-3 半加器 104
6-4 全加器 105
6-5 二選一多工器 106
6-6 N = N + 1 運算 108
6-7 組合邏輯 111
6-8 一位元比較器 115
6-9 A+=B 電路 118
6-10 記憶體 121
contents
01
chapter
量子電腦的發展史
先備知識
在學習量子電腦前,讓我們先認識電腦科學之父艾倫 ・ 圖靈(Alan Turing),
他是第一個提出機器模擬人類各種計算與邏輯思維過程之抽象概念的科學家,即
為「 圖 靈 機 理 論 」 及「 圖 靈 測 試 」 的 概 念( 史 稱 圖 靈 機(Turing machine) 或
圖 靈電腦)。並於 1945 到 1949 年間,確立了現今電子電腦的邏輯基礎, 即 為
EDVAC(electronic discrete variable automatic computer), 採 用 二 進 制
進行運算。
學習目標
自 1900 年馬克斯·普朗克(Max Planck)提出「黑體輻射定律」開始,在物
理學家們 20 年間的努力下,量子力學的基本原理逐步建立,應用也擴散至其他科
學與技術領域,促使電晶體、積體電路與雷射等科技的發明,以及半導體與光電產
業的蓬勃發展,此現象在物理史被稱為「第一次量子電腦革命」。
1980 年代,科學家將資訊理論與量子力學原理結合的構想,讓人類迎來「第
二次量子電腦革命」時代。在本篇教材,我們將帶領學生認識什麼是量子電腦?量
子電腦跟現行一般電腦有何差別?量子電腦是怎麼樣誕生的?它的研究發展歷史過
程為何?量子電腦的應用與未來展望為何?
資訊篇
1-1 什麼是量子電腦
當使用一般電腦處理量子問題時,一般電腦面臨資料過於龐大時,處理
時間便會巨大到無法估算。而量子電腦則是應用量子力學理論,實現高速數
學和邏輯運算、儲存及處理量子資訊的物理裝置。一般電腦的運算靠控制積
體電路 0 與 1 執行,而量子電腦的運算則靠控制原子、分子的量子態執行。
當某個裝置處理和計算的是量子資訊,執行的是量子演算法時,它即可被稱
為量子電腦。
1-2 量子電腦的起源
量子電腦的概念源於可逆電腦的研究,其研究目的是為了解決電腦中的
耗電問題。研究發現,計算機耗電來自計算過程中不可逆的操作,當我們在
邏輯閘單一面向上進行操作,我們將只知道它的輸出值,不可能知道原先的
輸入值,因此,一般電腦數位邏輯操作是不可逆的。於是科學家們開始思考,
是否所有計算過程都必須用不可逆操作才能完成呢?有沒有一種方法可實現
計算機可逆操作,還不影響機器的運算能力?
由 此, 科 學 家 想 到 在 量 子 力 學 中, 有 名 為 向 量 的 么 正 轉 換(unitary
transformation,又名酉轉換)的特性,並可進一步運用到量子電腦中。么正
矩陣(unitary matrix,又名酉矩陣)是基本的物理概念:如果有一個 n 階方
陣,它的列向量組成一組標準正交基底,那麼這個矩陣就是么正矩陣,由么
正矩陣所表示的轉換則稱為么正轉換。
2
Chapter 01 量子電腦的發展史
在 一 般 電 腦 中, 基 本 資 訊 單 位 為 位
疊加態
元(bit),運算物件是各種位元序列。 Q
當一個量子位元處於疊
在量子電腦中,基本資訊單位是量子位
加態時,它同時處於多個狀
元(qubit),運算物件是量子位元序列。 態的疊加中,換言之,一個
兩者不同處在於,量子位元序列不但可 量子位元不單純只能處於 0
處於各種正交態的疊加態,而且還可以 或 1 的兩個狀態中的其中一
個,它還可以處於 0 和 1 這
處於糾纏態上。這些特殊的量子態,提
兩個狀態的疊加中,因此,
供了量子平行計算的可能,大幅減少電 它使得量子計算能夠在同一
腦處理巨量資料所需時間。 時間內進行多個運算。
量子電腦是一種遵循量子力學規律,進行高速數學和邏輯運算、儲存及
處理量子資訊的物理裝置,它的基本定律包含不確定原理、對應原理和波耳
理論等。早期的量子電腦(約 1980 年代前),是將量子力學轉化為程式語
言的嘗試,其實仍是語言描述的一般電腦,其元件並沒有用到運用量子力學
的物理特性,如量子態的疊加性或糾纏態等。事實上,量子電腦對每一個疊
加分量實現的轉換,都相當於一種傳統計算,不但能在同時間完成大量傳統
電腦計算,同時也按一定的機率振幅進行疊加,列出所有的運算結果,這是
3
量子電腦的重要特性之一。
資訊篇
1-3 量子電腦的研究歷史
接著,秀爾再提出大數因數分解的量子演算法,吸引了許多研究者的目
光,以大數因數分解的難度,確保了 RSA 公鑰密碼體系的安全。此時,大
家才意識到量子電腦的超強運算能力,特別是破解編碼的能力,也讓更多學
者加入這方面的研究。
2009 年 11 月 15 日,世上第一臺可程式化的通用量子電腦正式在美國誕
生。同年,英國布里斯托爾大學(University of Bristol)的科學家研製出以
量子光學為基礎的量子電腦晶片,可執行秀爾提出的量子演算法。
4
Chapter 01 量子電腦的發展史
2011 年 4 月,一個來自澳洲和日本的科學研究團隊成員在量子通訊方面
取得突破,實現了量子資訊的完整傳輸。同年 9 月,科學家證明量子電腦可
用馮.諾依曼(現代計算機之父)的架構加以實現。
5
資訊篇
2016 年歐盟發布的量子宣言摘要
0~5年 5 ~ 10 年 >10 年
• 點對點安全量子通 • 融合量子與傳統一
訊 般通訊
模擬器 設計 子力學和化學反應
• 量子模擬器與網路 • 量子磁性與電性多 機制之模擬器
新演算法 方面的模擬器
0∼5年
0∼5年
0∼5年
• 小型的量子感測器 • 更 大 量 的 應 用( 如 • 量子感測器微縮到
量子感測器
• 量子電腦新演算法 量子電腦處理化學
• 有意義的小型量子 和材料科學的難題
處理器 • 量子積體電路和低
溫的傳統控制硬體
資料來源: 〈歐盟量子科技推動簡介〉原文網址:https://portal.stpi.narl.org.tw/index/
article/10505
6
Chapter 01 量子電腦的發展史
1-4 量子電腦的展望
量子電腦是實現量子計算的機器,以處於量子狀態的原子作為中央處理
器和記憶體,應用的是可以同時處於量子疊加態、糾纏態等多種狀態的量子
位元。
迄今為止,世界各地許多實驗室正在以極大的熱情追尋研究更強大的量
子電腦。
科學家們對實現量子計算已提出許多構想,但在實務上對微觀量子態的
進行操縱確實太困難了。目前已經提出的方案主要為利用原子和光腔相互作
用、冷阱束縛離子、電子或核自旋共振、量子點操縱、超導量子干涉等。由
於不同方案各有優缺點,因此,還很難說哪一種方案更有前景,或更適合實
現量子電腦商業化及普及化。
依人類現行的科技水準,尚只能製造單一量子邏輯閘,遠未達到實現計
算所需要的邏輯閘網路。科學家也只能同時控制約 10 量子位元,但量子電
腦至少需要數十量子位元才能解決現實世界中的問題,適合量子電腦的新技
術、新材料,仍待科學家們未來持續努力。
實現量子計算的另一個困難點是可整合性的問題,其核心不單是幾個量
子位元的組裝,尚有能否同步操控這些量子位元的問題。此外,量子位元系
統要有相當長的同步時間,基本的閘操作精度要能夠達到容錯量子計算的設
定值之內,只有實現這些最關鍵的技術,才能實現真正意義上的多位元量子
電腦。
研究量子電腦的目的不是用它來取代現有的電腦,而是運用量子電腦的
特性,處理現行一般電腦難以解決的問題。量子電腦的發展,或多或少讓人
們在原子層面對物質狀態進行模擬成為可能,進一步可以重塑新材料技術。
量子電腦也可以透過無窮的計算能力,破解現有的任何加密演算法,重新定
義網路安全,量子電腦也能夠透過對巨量資料的有效處理,來增強人工智慧
等新興科技的水準。
7
資訊篇
課後測驗
( ) 1. 以下何者非量子電腦與一般電腦的差異?
(A) 基本運算單位為 Qubit
(B) 能夠表示既是 0 又是 1 的多重狀態
(C) 可以做任意的么正轉換
(D) 使用一般的「真空管材料」製作
( ) 2. 發明量子電腦的目的主要為何?
(A) 取代一般電腦
(B) 解決部分一般電腦無法解決的問題
(C) 運用超強的計算能力
(D) 實現人類的夢想
( ) 3. 第二次量子革命包括下列何者?
(A) 量子通訊 (B) 量子模擬 (C) 量子感測器 (D) 以上皆是
( ) 4. 首先揭開「第二次量子革命」的為下列何者?
(A) 美國 (B) 中國 (C) 歐盟 (D) 日本
( ) 5. 當今全世界有在進行量子電腦研發的企業不包括下列何者?
(A) Google (B) D-Wave (C) Apple (D) IBM
( ) 6. 下列何者為量子電腦可運用的領域?
(A) 藥物開發 (B) 密碼破解 (C) 人工智慧 (D) 以上皆是
( ) 7. 下列何者是量子電腦的優勢?
(A) 擁有超強的運算能力
(B) 可以同時解決多個問題
(C) 加密方式難以破解
(D) 以上皆是
( ) 8. 要實現量子計算的困難點不包括下列何者?
(A) 可整合性的問題
(B) 將幾個量子位元組裝到一起
(C) 能同步地操控這些量子位元
(D) 基本的閘操作的精度要能夠達到容錯量子計算的設定值之內
8
02
chapter
量子電腦的原理
與架構
先備知識
量子電腦有別於通用型電腦運用「真空管材料」及「CMOS 材料」進行製作,並
以「通電」與「斷電」兩種狀態,來表示基礎運算單元「位元」(bit)0 與 1;科學
家運用「控制能量」相關技術操控特殊物理材料,實現量子電腦量子位元「量子疊加
態 」(quantum superposition)、「 量 子 糾 纏 態 」(quantum entanglement)
等多重狀態(既是 0 又是 1 的 qubit),讓 qubit 保有類似 0 與 1 的 物 質 波 狀 態,
以利進行類似但超越現行一般電腦的 0 與 1 運算。這種利用物質波狀態當作電腦運
算原理的計算機,具有現行電腦沒有的先天優勢,就是當量子電腦處理週期性或龐
大的數據運算時,運算量會呈指數性運算成長速度,同時有賴疊加態與糾纏態的物
理特性,也讓量子電腦可以單獨作業,獨立完成平行運算。
學習目標
帶領學生認識量子電腦與一般電腦的不同。量子電腦的基本單位稱為量子位元,
或稱作 Q 位元(qubit)。典型的量子硬體技術包括:超導體、量子點、囚禁離子、
拓樸量子位元、鑽石空缺等。經過科學家們的努力,量子電腦已有初步理論基礎,
但在實務上,量子電腦仍有許多軟硬體技術問題需要克服。
資訊篇
2-1 一般電腦與硬體
一般電腦硬體的基本元件被稱為電晶體(transistors)。電晶體的發明,
取代真空管在電路中的角色與功能,成為一般電腦的主要元件。在一般電腦
中,電晶體其實是扮演「電子開關」的角色,並以電路符號表示關(off)
或開(on)兩種狀態。換言之,電晶體可以用來表示 0 或 1 的數位資料,也
可以代表假(false)或真(true)的邏輯狀態。它的基本的單位稱作為位元
(bit)。
隨著計算機應用領域日益擴展,如何將大量的電晶體整合進單一的矽晶
片,成為半導體技術的發展重點,市面上也因此產生不同規模的積體電路。
10
Chapter 02 量子電腦的原理與架構
根據摩爾定律,積體電路可以容納的電晶體數量,每隔兩年將會增長為
兩倍。然而,隨著積體電路微型化的發展,當電晶體的尺寸小於 25 奈米以
下,傳統的平面場效應管的尺寸已經無法再縮小了。
Drain
Gate
Source Fin
▲圖 2-1 鰭式場效電晶體(FinFET)示意圖
11
資訊篇
2-2 量子電腦的硬體
• 量子位元數
• 量子位元的相干時間(量子產生糾纏態等狀態所需時間,在這種狀態下才
能進行量子運算,可視為「量子位元的壽命」)
• 量子操作所需的時間
• 量子操作、測量操作時的錯誤率
• 量子位元的結合數
其中最容易理解的應該是量子位元數。當量子位元數越多,就越可能進
行大規模計算。然而,如果只有量子位元數多,尚不能稱該量子電腦為高性
能。量子位元具有量子性的時間,亦即「相干時間」,必須足以支持電腦進
行量子操作。同時,操作量子位元時的錯誤率必須非常低。不同材料製作(實
現)的量子電腦性能的比較重點,即是瞭解這些「相干時間」等性能指標。
量 子 電 腦 的 基 本 單 位 稱 為 量 子 位 元(quantum bit), 或 稱 作 Q 位 元
(qubit)。近年來,全世界有許多電腦軟硬體公司,相繼投入研究人力與資
源,期望尋找可以實現量子位元的材料與硬體技術。
典型的量子硬體技術包括:
1. 超導體(supuerconductor);
2. 量子點(quantum dot);
3. 冷阱束縛離子(trapped ion);
4. 拓樸量子位元(topological quantum bit);
5. 鑽石空缺(diamond vacancy);
6. 光子量子位元(photons as qubits)。
12
Chapter 02 量子電腦的原理與架構
以下將分別介紹這些量子硬體技術:
一、超導體(supuerconductor)
INSULATOR NIOBIUM COIL
當某種金屬冷卻至極低溫時,會成
為電阻為 0 的超導態。超導態是只能以
CURRENT
量子力學解釋的現象,以該狀態的金屬
製作的電子電腦稱為超導電路。
JOSEPHSON
JUNCTIONS
超導體技術是目前量子電腦中最 NIOBIUM
WASHER
Intel、Microsoft 等公司皆有所研究。日
常生活中,超導體也常被用作磁浮列車
鐵軌的材料。超導體金屬在極低溫(接
近絕對 0 度,或攝氏零下 273 度)且沒
有通電的狀態下,電流可以通過超導迴
路無限期存在(不會損耗且能流通),
若在超導體上外加磁場,超導體則會排
除磁場,使磁力線完全不能通過,磁浮
列車就是運用這個原理在磁場引導下
▲圖 2-3 IBM 超導體量子晶片
「浮空」前進。
現今的半導體技術足以實現量子位
元雛型,計算速度也相當快。然而,超導
體的量子狀態極其容易崩潰(collapse),
同時必須隨時保持在極低溫下,才能穩
定工作。若使用超導體技術來開發量子
電腦,冷卻系統就成為量子電腦普及化
首先必須克服的技術問題。
▲ 圖 2-4 陽 明 交 通 大 學 物
理 研 究 所 的「 超 導 量 子 干
涉儀」
13
資訊篇
二、量子點(quantum dot)
使用半導體材料(如矽和砷化鎵)來實現量子點技術,可以將激子束縛
在三個空間方向上,並將其應用在現代計算機領域。這種半導體奈米結構技
術已經非常成熟,可以很好地與電晶體製造技術相結合,特別是在矽的微細
加工和集成化技術方面。所謂「量子點」,是藉由在固體中將一個電子與外
部隔離,排除其他電子影響的機制。和超導體電腦一樣,將隔離的電子冷卻
至極低溫,即可實現穩定的量子位元。使用半導體來製作量子點,是利用電
子的「自旋」性質作為量子位元,讓兩種半導體(GaAs 砷化鎵與 Al-GaAs
砷化鋁鎵)的邊界貼合,電子便能在這個邊界面上自由移動。接著,在其上
附加電極做出電磁場的壁面(電位),可將電子四面八方都封閉住,藉以操
作電子點。
量子點的量子狀態相對穩定,加上現今成熟的半導體技術,也足以支持
IBM、Intel 等科技大廠運用此類技術製造量子位元。然而,量子點技術也有
它的侷限性,目前量子點技術只能做到兩個量子位元的量子糾纏,且必須保
持在極低的溫度下,才能穩定工作。
▲圖 2-5 量子點
14
Chapter 02 量子電腦的原理與架構
三、囚禁離子(trapped ion)
所有的物質都是由原子組成的。原子由帶正電荷的原子核與帶負電荷的
電子所組成,正負電荷相同時稱為「中性原子」,相異時稱為「離子」。囚
禁離子是指以無線電頻率陷阱捕獲離子,並使用雷射控制離子集體行動來進
行量子計算。這項技術是在空間中成列囚禁離子,並個別以雷射光照射來進
行量子操作,透過整個離子列產生的集體振動現象,可使各個離子與其他所
有離子交互作用,目前以 IonQ 公司的技術最具代表性。囚禁離子的穩定性
很不錯,且量子閘的穩定性極高,每次產生機率運算結果也具信賴度。但是,
囚禁離子的運算速度慢,而且須搭配大型雷射系統方能操作,於量子電腦開
發上亦有所不便。
15
資訊篇
A t B
b
= d a
C D
1 2 3 4
▲圖 2-7 拓樸線量子計算
五、鑽石空缺(diamond vacancy)
鑽石空缺是利用氮原子中電子與電洞所形成的能
階作為量子位元。鑽石(碳的結晶)就是將碳原子
整齊地排列,變得非常堅硬(穩定)的晶體結構,
如果 將 本 來 屬 於 碳 的 位 置 替 換 為 氮 原 子, 其 鄰
接位置會出現既非碳也非氮的空位,
這個空位就稱為「氮空位中
心 」(nitrogen-vacancy
center,簡稱 NV 中心)。
如此一來,即使在室溫下也
能使電子自旋或核自旋來實現
▲圖 2-8 鑽石空缺示意圖(部分碳原
穩定的量子位元。 子被氮(N)取代晶格空缺(V))
16
Chapter 02 量子電腦的原理與架構
理論上,鑽石氮空位中心能在室溫下長時間維持穩定的量子態,可應用
於量子通訊的量子記憶體和量子中繼器(quantum repeater)。然而,正因
鑽石具有極度穩定堅硬的架構,因此在生成電洞的操作上也非常困難,同時
也不易藉電子自旋或核自旋達成糾纏態。目前該技術以 Quantum Diamond
Technologies Inc. 公司最具代表性。
六、光子量子位元(photons as qubits)
「 光 」 本 身 也 能 扮 演 量 子 位 元 的 角 色。 在 室 溫 下, 藉 由 組 合 矽 光 子 學
(silicon photonics)的光波導(optical waveguide)晶片製造技術及光纖等
光通訊技術,即可實現量子電腦。
在量子力學裡,光既是波,也是粒子,而光的微粒子可稱為「光子」。
中國大陸 2020 年推出的「九章量子電腦」即是以光作為量子位元的電腦,
使用光子作為量子位元,從單位子源釋放出的光子,能將光的振動方向(偏
光)作為量子位元使用,藉由輸入光源的電子電路進行量子操作,以此實現
量子計算,但要實現高效率單光子源光源釋放並不容易。
▲圖 2-9 中國大陸的「九章量子電腦」
17
資訊篇
▲圖 2-10 九章量子計算原型機光路系統原理圖
• 主流量子電腦硬體開發技術、量子位元形式及優缺點一覽表如下:
現有公司 Qubit 型式 優點 缺點
IonQ 穩定,邏輯閘信 運 算 速 度 慢, 且 須
囚禁離子量子計算機
NIST 賴度高 搭配大型雷射系統
IBM
Google 實現快速,目前 量子位元容易崩潰,
超導體量子計算機
D-wave 效果明顯 環境必須保持低溫
Intel
Quantum
鑽石中氮原子空缺
Diamond 可在室溫下操作 不易達到糾纏態
中心量子計算機
Technology
穩定性高,具有 必 須 保 持 低 溫, 不
Coldquanta 冷原子量子計算機
很高的擴展性 易達到糾纏態
資料來源:黃琮暐(2021)。量子電腦教師培訓課程。
18
Chapter 02 量子電腦的原理與架構
2-3 量子電腦的技術挑戰
雖然科學家們陸續提出各項量子電腦的理論,但在量子電腦開發上,仍
有許多技術問題尚待克服。
一、低溫與封閉環境
為了使量子狀態保持穩定,量子電腦須處於極低溫(絕對 0 度或攝氏零
下 273 度)環境,才不會導致量子狀態崩潰。然而,冷卻系統的體積相當龐
大,嚴重影響量子電腦的微型化與普及化。此外,量子電腦還須處於完全封
閉的環境,任何微小的物理干擾,都可能破壞量子疊加態,導致量子計算結
果產生錯誤。
二、雜訊與錯誤更正
與 一 般 電 腦 不 同, 量 子 電 腦 的 計 算 過 程 與 量 子 力 學 的 隨 機 特 性 息 息 相
關。為使量子電腦能適當運作,開發者們必須針對量子隨機特性可能衍生的
錯誤進行更正。這些錯誤主要源自安排不當的量子邏輯閘元件,或肇因於
量子位元受到周遭環境雜訊干擾,導致量子位元在很短的時間內失去相干
性(coherence)。開發具有容錯(fault-tolerant)能力的量子電腦,是量子
電腦領域中相當重要的研究議題。因此,在量子計算領域中,量子錯誤更正
(quantum error correction, QEC)成為一項重要的技術,目的為避免量子位
元因去相干性(decoherence)或量子雜訊(quantum noise)而發生資訊遺
失或計算錯誤的狀況。
三、量子演算法
雖然近年來出現許多具有代表性的量子演算法,例如 Grover 演算法、
Shor 演算法等,然而與量子運算的複雜性相比,目前研究成果仍相當有限,
亟需更多量子電腦科學家加入研發的行列,開發具有實用價值的量子演算
法,進而運用量子電腦解決量子現象等領域的複雜問題。
19
資訊篇
也許總有一天,量子電腦發展歷程也會如現今一般電腦相似,從大型電
腦、工作站逐漸朝微型化與普及化發展,迎向人手一臺搭載量子運算功能平
板電腦、智慧手機的時代。只是以當今技術,開發量子電腦仍有許多技術挑
戰,需要各國投入大量人力物力和科技研發資源來克服。
20
Chapter 02 量子電腦的原理與架構
課後測驗
( ) 1. 量子電腦所要面對的挑戰有哪些?
(A) 低溫與封閉環境 (B) 雜訊與錯誤更正
(C) 量子演算法 (D) 以上皆是。
( ) 2. 製作量子電腦的技術不包含下列何者?
(A) 超導迴路 (B) 鑽石空缺 (C) 離子井 (D) 真空管。
( ) 3. 下列何者非囚禁離子量子電腦的描述?
(A) 穩定性佳 (B) 量子閘的信賴度高 (C) 運算速度慢 (D) 以上皆非。
( ) 4. 下列何者為發展拓樸量子電腦技術缺點的正確敘述?
(A) 使用的粒子稱為任意子 (B) 穩定性高
(C) 可以大幅降低錯誤率 (D) 僅有理論,不容易實現。
( ) 5. 下列對於採用鑽石空缺實現的量子電腦的敘述何者正確?
(A) 氮原子空缺中心不易操作 (B) 它的量子狀態非常穩定
(C) 可以在室溫下操作 (D) 以上皆是。
( ) 6. 常見的量子電腦製作材料有哪些?
(A) 超導體電路材料 (B) 化學特殊材料(砷化鎵晶體等)
(C) 人造鑽石 (D) 以上皆是。
( ) 7. 近年來,世界各國有許多大公司爭相投入量子電腦的研發,下列哪一家公司
不在其中?
(A) IonQ (B) IBM (C) Facebook (D) Google。
( ) 8. 大多數製作量子電腦的技術都需要在超低溫下運行,下列何者不包括在內?
(A) 光量子電腦 (B) 超導體量子電腦
(C) 鑽石空缺量子電腦 (D) 離子井量子電腦。
( ) 9. 量子電腦的性能指標有哪些?
(A) 量子位元數 (B) 量子位元的相干時間
(C) 量子操作所需的時間 (D) 以上皆是。
( ) 10. 下列哪些公司是以超導電腦開發量子電腦的主要企業?
(A) Google (B) IBM (C) Intel (D) 以上皆是。
21
資訊篇
22
03
chapter
量子位元(qubit)
先備知識
量子位元(qubit)是量子電腦的基本計算單位,就像薛丁格的貓處於既生又
死的神奇狀態一般,量子位元因具備量子疊加態的特性,故可同時以 0 與 1 的狀
態存在。
學習目標
將帶領學生認識量子電腦與傳統電腦不同,整合數學篇所學概念,從現行一般
電腦古典邏輯及電路設計概念,學習量子電路設計原理。
資訊篇
3-1 古典位元
古典位元與量子位元在計算機科學應用的表現不同,但基礎觀念是相通
的,在認識量子位元前,我們可以先從古典位元開始探討。為了區隔兩者,
本教材將當今大眾普遍所用,以二進位制(0/1,ture/false)邏輯為根基處理
資訊的電腦稱為一般電腦,資訊最小單位稱之為古典位元,簡稱位元(bit)。
傳統電腦 量子電腦
以位元(bit)的形式處理資料 以量子位元(qubit)的形式處理資料
10% 的 1 + 90% 的 0
1 量子位元 35% 的 1 + 65% 的 0
位元狀態 疊加態 80.3% 的 1 + 19.7% 的 0
只有兩種
0
無限多種 22.6% 的 1 + 77.4% 的 0
…
▲圖 3-1 量子位元與古典位元的比較(簡鈺璇,108)
24
Chapter 03 量子位元(qubit)
無正負號 有正負號
1 0 0 0 1 1 1 1 159 -15
0 0 1 0 1 0 1 1 27 +27
( a ) 可用 1 與 0 表達開與關 ( b ) 用多位元表達數字
'1' 0×31 49 0 0 1 1 0 0 0 1
'2' 0×32 50 0 0 1 1 0 0 1 0
'A' 0×41 65 0 1 0 0 0 0 0 1
'B' 0×42 66 0 1 0 0 0 0 1 0
( c ) 用多位元表達文字、數字
▲圖 3-2 使用古典位元表達各種資料
25
資訊篇
3-2 量子位元
量子位元與古典位元只存在於兩極 +z
|0 >
的狀態不同,它是存在於一個球面的自
由空間,以球心為原點拉一條半徑長度 θ 量子狀態
的直線到球面,直線可以繞著球心指向
+y
球 面 的 任 何 位 置, 意 為 指 向 球 面 任 意 φ
位 置 的 指 向 狀 態, 稱 之 為 量 子 狀 態,
+x
這 個 表 示 法 稱 之 為 布 洛 赫 球 面(Bloch
|1 >
sphere),如圖 3-3 所示。
▲圖 3-3 布洛赫球面
量子位元習慣採用狄拉克符號來表達量子位元狀態,|ψ〉(讀作 ketpsai)
為量子狀態符號,是量子位元主要操控 ϕ 及 θ 來表達其量子狀態。在球面上
北極為 |0〉 與南極為 |1〉(讀作 ket0 與 ket1),代表在量子位元中 100% 指向
0 或 1 的狀態。|ψ〉 則為任意指向的量子位元表現在 |0〉 與 |1〉 的向量總和。
|0 > |0 >
| ψ>
量子狀態 |ψ〉 接近 量子狀態 |ψ〉 接近
|0〉 測量後成為 |0〉 |1〉 測量後成為 |0〉
的機率大於 |1〉 的 的機率小於 |1〉 的
機率 | ψ> 機率
|1 > |1 >
26
Chapter 03 量子位元(qubit)
練習一下 1
( ) 1. 布洛赫球面的 +z 代表量子狀態為何?
2 2
(A) |0〉 (B) |1〉 (C) | 0〉 (D) | 1〉
2 2
( ) 2. 布洛赫球面的 –z 代表量子狀態為何?
2 2
(A) |0〉 (B) |1〉 (C) | 0〉 (D) | 1〉
2 2
( ) 3. 在布洛赫球面上調整量子狀態的 θ 其意義在於?
(A) 出現在 +x 或 –x 的機率
(B) 出現在 +y 或 –y 的機率
(C) 出現在 +z 或 –z 的機率
( ) 4. 在布洛赫球面上調整量子狀態的 ψ 角度意義在於調整量子狀態何者?
(A) 環繞 x 軸的角度 (B) 環繞 y 軸的角度 (C) 環繞 z 軸的角度
27
資訊篇
上圖使用布洛赫球面可以用立體的球體來描述量子的狀態,能讓初學者
較容易理解量子位元基礎運算原理,但如果遇到複雜運算問題,則需使用數
學的模型來解決。量子計算比較常被使用的是狄拉克表示法,公式如下:
上一節所提到的布洛赫球面 θ 主要是用來 +z
1 − cos θ θ
令 α = P|0〉 = = cos
2 2
1 + cos θ θ
β = P|1〉 = = sin
28 2 2
Chapter 03 量子位元(qubit)
θ θ α2 + β2 =1
所以 |ψ 〉 = cos | 0〉 + sin | 1〉
2 2 β
θ
α
2 |1 >
註: 上述的公式只有考慮到 x-z 平面,但以
立體球面來說還要考慮到 x-y 平面相位
角 ϕ。
▲圖 3-7
|α| 2 + |β| 2 = 1
|1 > |1 >
100% |0 > 0%
64% z 36%
| ψ> =0.8 | 0 > +0.6 | 1 >
50% 50%
x
0 |1 > 100%
▲圖 3-8 量子位元在疊加態時的 |0〉 與 |1〉 機率
29
資訊篇
該是一整個布洛赫球面的架構,所以還有一個 量子狀態
θ
x-y 的 平 面,|ψ〉 與 z 軸 的 夾 角 為 θ,|ψ 〉 投 影
+y
在 x-y 平面上的投影與 x 軸的夾角為 ϕ,一個 φ
完整的量子狀態,應該考慮到 ϕ 的存在,所以
+x
完整的量子狀態公式如下:
|1 >
▲圖 3-9
θ θ
|ψ 〉 = cos | 0〉 + eiϕ sin | 1〉
2 2
z z z z
|0 > |0 > |0 > |0 >
狀態 y y y y
x x x x
1 1
|ψ〉 |0〉 |1〉 (| 0〉 − | 1〉 ) (| 0〉 + | 1〉 )
2 2
z z z z
|0 > |0 > |0 > |0 >
狀態 y y y y
x x x x
1 1
|ψ〉 (| 0〉 − i | 1〉 ) (| 0〉 + i | 1〉 ) α |0〉 + β |1〉 α |0〉 + β |1〉
2 2
30
Chapter 03 量子位元(qubit)
練習一下 2
3 1
1. 有一個量子狀態 |ψ〉 = α|0 〉 + β|1 〉,若 α = 、 β = ,則在這個量子狀態
2 2
中 |0〉 及 |1〉 的出現機率分別為多少?與 z 軸的夾角為何?
2. 若有一個量子狀態跟 z 軸的夾角為 45 度,則它的 α 與 β 各為多少?而 |0〉
及 |1〉 的出現機率各為何?
31
資訊篇
3-4 量子位元的狀態表現
量子位元有數位資料、信號強度及相位三種狀態表現,相較於單一古典
位元同一時間只能表現 0 或 1 的狀態,單一量子位元能傳達的訊息更為豐富,
也因此可推導出數位及類比的運算。
一、數位資料
1 一個量子位元同時具有 |0〉 與 |1〉 二種狀態。
就是有 2 3 種狀態。
練習一下 3
1. 若有三十個量子位元,則在數位資料上可以表達最大的資料量為何?
2. 如果想用數個量子位元表示大小寫英文字母及阿拉伯數字符號,則至少
要多少量子位元?
二、機率強度(信號強度)
量子位元的每筆數位資料都有各自的產生機率,而個別的數位資料產生
機率總和為 1。數位資料的產生機率可能大小不一,可視為信號的「振幅」
或「強度」,也可以稱之為「機率振幅」或「機率強度」。
32
Chapter 03 量子位元(qubit)
n −1
3 N 個 量 子 位 元, |ψ 〉 = a0 | 0〉 + a1 | 1〉 + a2 | 2〉 + + an −1 | 2 − 1〉 = ∑ ai | 2 − 1〉 。
N i
i =0
以下的舉例採用三個量子位元將疊加態控制成如下圖狀態。
V(t)
a0 2 a1 2 a22 a32
0.25
a4 2 a5 2 a6 2 a72
t
|0 > |1 > |2 > |3 > |4 > |5 > |6 > |7 >
▲圖 3-11 某個三量子位元的所有狀態
練習一下 4
( ) 1. 量子位元的機率強度主要為調整布洛赫球面的哪個參數調整?
(A) φ (B) β (C) |0〉 (D) |1 〉
( ) 2. 機率強度的震幅總和為何?
(A) 0 (B) 1 (C) 100 (D) 1000
( ) 3. 有三個量子位元,每個位元的機率強度都相同,機率強度為多少?
(A) 0.125 (B) 0.25 (C) 0.5 (D) 0.75
33
資訊篇
三、相位
由布洛赫球面,在 X-Y 平面上繞行 Z 軸的旋轉角 φ,可以調控量子位元
的相位變化。下圖由正北極俯視觀察,以正 X 軸為 0 度,正 Y 軸為 90 度,
負 X 軸為 180 度,負 Y 軸為 270 度。
z z z z
|0 > |0 > |0 > |0 >
原圖 y y y y
x x x x
+y +y +y +y
俯視圖
+x +x +x +x
0˚ 90˚ 180˚ 270˚
34
Chapter 04 量子閘 (quantum gate)
04
chapter
量子閘
(quantum gate)
先備知識
藉由布洛赫球面輔助學習,已知量子位元是透過操控 φ 及 θ 來操作量子狀態,
利用不同量子元件的這兩個角度來達成運算目的。
學習目標
認識量子閘的符號及量子位元參數設定,透過真值表來理解其運算後的結果。
所有量子閘都有屬於自己的轉換矩陣來簡化運算的模型。本章將透過布洛赫球面瞭
解各種量子閘操作後量子狀態 φ 及 θ 如何改變,藉此瞭解各種量子閘的作用。
35
資訊篇
H 閘為典型疊加態量子閘,全名為阿達馬閘(Hadamard gate),H 閘可
以控制量子位元處於 0 與 1 出現機率各為 50%的狀態。H 閘在預設輸入為
|0〉 及 |1〉 的狀態下可控制其量子狀態指向 +X 或 –X 軸的方向。其量子閘的
符號、真值表及轉換矩陣如圖 4-1 所示。
+z
|0>
紅色區域是 θ = 90˚ 的量子狀態範圍
依 | ψ 〉 = α |0〉 + β |1〉
+y
1
分量:α = β = (| 0〉 − | 1〉 )
2
+x 1
機率:|α| 2 = | β| 2 =
|1> 2
▲圖 4-1 在布洛赫球面狀態圖
輸入 輸出
1
|0〉 (| 0〉 + | 1〉 ) 1 1
H 2 H =
1 − 1
1
|1〉 (| 0〉 − | 1〉 )
2
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-2 H閘的真值表及轉換矩陣
1 1 2
就是 α 及 β 都是 ,由機率來看 0 與 1 的機率強度各為 ( ) = 0.5。
2 2
36
Chapter 04 量子閘 (quantum gate)
問題與討論
如果想用一個單位量子閘得到一個 0 與 1 出現機率各為一半,則應該用
哪個量子閘來調控?
1
量子狀態如圖 4-3 所示的長條圖表示法。0 與 1 各為一個 高度的長條
2
棒,代表狀態向量(statevector),兩條長條棒的顏色代表具正負向相反相
位差(或稱之為相移)。以下的例子藍色代表 0 與 1 的相移 0 度,所以係數
1 1 2
為+ ,其機率強度為 ( ) = 0.5;|1〉 是正紅色則代表相移 180 度 (π),
2 2
1
其係數為 − 。瞭解圖表資料與運算結果的關係,就可由長條圖高度瞭解狀
2
態向量的強度,顏色瞭解相位的變化,藉此驗證量子運算的結果是否正確。
0.8
|0>
0.6
Amplitude
1
(| 0〉 + | 1〉 )
0.4
0.2 2
0
0 1
Computational basis states |1>
0.8
|0>
0.6
Amplitude
0.4
1
0.2
(| 0〉 − | 1〉 )
2
0
0 1
Computational basis states
|1>
▲圖 4-3 H 閘的量子狀態圖表與運算式及布洛赫圖的關係
37
資訊篇
0.8
0.6
0.6
Amplitude
Amplitude
0.4
0.4
0.2
0.2
0 0
0 1 0 1
Computational basis states Computational basis states
1
▲圖 4-4 量子狀態為 (| 0〉 + | 1〉 ) 時指向 +X 軸
2
1
2 當量子狀態輸入為 |1〉 輸出的量子狀態為 (| 0〉 − | 1〉 ) ,此時指向 –X 軸。
2
1
0.8
0.8
0.6
0.6
Amplitude
Amplitude
0.4
0.4
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
1
▲圖 4-5 量子狀態為 (| 0〉 − | 1〉 ) 時指向 –X 軸
2
由上述輸入或所得輸出的量子狀態,乍看之下像輸入量子狀態經過 H 閘
調控,會將量子狀態順 Y 軸逆時針轉 90 度。然而事實上,如果試著將量子
狀 態 指 向 +X 及 –X,H 閘 將 調 控 量 子 狀 態 逆 時 針 轉 90 度, 則 結 果 應 該 是
+X 轉向 –Z,–X 應該轉向 +Z,將推論經過驗證如下。
1
• 輸入狀態 (| 0〉 + | 1〉 ) ,輸出為 |0〉,此時結果不是逆時針旋轉。
2
0.8 1
0.8
0.6
Amplitude
0.6
Amplitude
0.4
0.4
0.2
0.2
0 0
0 1 0 1
Computational basis states Computational basis states
1
▲圖 4-6 輸入狀態為 (| 0〉 + | 1〉 ) 經 H 閘還原 |0〉
2
38
Chapter 04 量子閘 (quantum gate)
由結果來看,H 閘的調控動作與調控角度完全無關,也不能用逆時針、
順時針轉 90 度來解釋,要更瞭解 H 閘轉換的狀態,必須從轉換矩陣來理解。
0.8 0.8
0.6 0.6
Amplitude
Amplitude
0.4 0.4
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
▲圖 4-7 H 閘轉換的狀態
由上述的比較實例,可以發現兩個 H 閘串連將會還原回原來的量子狀
態。這就是量子閘的可逆性,同理,連續使用同一個量子閘,就能把原來的
輸入狀態還原。
練習一下 1
( ) 1. 經 H 閘的調控後,量子狀態是?
(A) 0 (B) 1 (C) 0 或 1 其中之一 (D) 0 與 1 同時存在
1
( ) 4. 當H閘的輸入為 (| 0〉 + | 1〉 ) 時,輸出指向哪一軸?
2
(A) +X (B) –X (A) +Z (B) –Z
1
( ) 5. 當H閘的輸入為 (| 0〉 − | 1〉 ) 時,輸出指向哪一軸?
2
(A) +X (B) –X (A) +Z (B) –Z
輸入 輸出
X
|0〉 |1〉 0 1
或 X =
|1〉 |0〉 1 0
α | 0〉 + β | 1〉 β | 0〉 + α | 1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-8 X 閘的電路圖、真值表及轉換矩陣
X 閘經操控基本狀態如古典位元 0 → 1 或 1 → 0,而其他量子狀態意義
上是 |0〉 及 |1〉 係數的互換,以下針對各種狀態進行說明。
Amplitude
0.6 0.6
0.2 +x 0.2
0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states
Amplitude
0.6 0.6
0.2 0.2
0
0 1
|1> |1> 0
0 1
Computational basis states Computational basis states
40
Chapter 04 量子閘 (quantum gate)
1 由於量子狀態正指向 +X 軸,所以經過轉向後量子狀態不會改變。
0.8 0.8
+z
0.6 |0> |0> 0.6
Amplitude
Amplitude
0.4
1 1 0.4
+y — ( |0 + |1 ) X — ( |0 + |1 )
�2 > > �2 > >
0.2
+x 0.2
|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states
▲圖 4-11 量子狀態不改變
上下鏡射。
0.8
|0> |0> 0.8
0.6 0.6
Amplitude
Amplitude
0.4
α |0> + β |1> X β |0> + α|1> 0.4
0.2 0.2
0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states
0.6
Amplitude
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
41
資訊篇
練習一下 2
( ) 1. X 閘的操控是將量子狀態以 X 為軸轉幾度?
(A) 90 (B) 135 (C) 180 (D) 225
( ) 2. X 閘的輸入為 1 時,輸出狀態為?
(A) 0 (B) 1 (C) 0 或 1 (D) 0 與 1 同時存在
1
( ) 5. 當 X 閘的輸入為 (| 0〉 + | 1〉 ) ,則輸出為?
2
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2
1
( ) 6. 經 X 閘操控後輸出為 (| 0〉 + i | 1) ,則原輸入量子狀態指向哪一軸?
2
(A) +X (B) –X (C) +Y (D) –Y
42
Chapter 04 量子閘 (quantum gate)
|1>
輸入 輸出
1 0
Z |0〉 |0〉 Z =
0 −1
|1〉 –|1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-14 Z 閘的電路圖、真值表及轉換矩陣
以下說明將針對不同的量子狀態送入 Z 閘,經調控後輸出的量子狀態。
態不變。
1 1
0.8 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
43
資訊篇
0.8 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
0.6 0.6
Amplitude
Amplitude
0.4 0.4
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
▲圖 4-17 經 Z 閘相位翻轉狀態圖
0.6 0.6
Amplitude
Amplitude
0.4 0.4
0.2 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
▲圖 4-18 設定 Z 時量子狀態
44
Chapter 04 量子閘 (quantum gate)
練習一下 3
( ) 2. Z 閘是調控量子狀態的?
(A) 機率強度 (B) 數位資料 (A) 相位 (B) 速度
( ) 3. 下列那個量子狀態輸入 Z 閘後,輸出的量子狀態完全不會改變?
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2
1
( ) 5. 經 Z 閘操控後輸出為 (| 0〉 + i | 1〉 ) ,則量子狀態會變為?
2
1 1
(A) (| 0〉 + | 1〉 ) (B) (| 0〉 − | 1〉 )
2 2
1 1
(C) (| 0〉 + i | 1〉 ) (D) (| 0〉 − i | 1〉 )
2 2
45
資訊篇
y 軸是虛數軸,與 +y 與 +x 相位差 90 度, +x
度相位差。Y 閘的符號、真值表及轉換矩陣如
圖 4-19 所示。
輸入 輸出
0 −i
Y |0〉 i |1〉 Y =
i 0
|1〉 – i |0〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-19 Y 閘的電路圖、真值表及轉換矩陣
0.6
Amplitude
0.6
0.2 +x 0.2
0 0
|1> |1>
0 1 0 1
Computational basis states Computational basis states
0.8
|0> |0>
0.8
0.6 0.6
Amplitude
Amplitude
|0> y –i |1>
0.4 0.4
0.2 0.2
|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states
1
3 輸入量子狀態為 (| 0〉 + | 1〉 ) 時,因量子狀態朝向 +X 軸,所以經 Y 閘調
2
0.6
|0> |0>
0.6
Amplitude
Amplitude
0.4 1 –i |0> +i |1> 0.4
+y — ( |0> + |1> ) y —
�2 �2
0.2
+x 0.2
|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states
練習一下 4
1
( ) 3. 將 (| 0〉 − i | 1〉 ) 的量子狀態輸入 Y 閘後,輸出的量子狀態變為?
2
1 1
(A) (| 0〉 − i | 1〉 ) (B) (−i | 0〉 + i | 1〉 )
2 2
1 1
(C) (| 0〉 + i | 1〉 ) (D) (− | 0〉 + i | 1〉 )
2 2
P 閘 是 相 位 控 制 閘,P 閘 可 以 任 意 控 制 +z
|0>
布 洛 赫 球 面 上 的 相 位 角, 也 就 是 以 Z 為 軸
的旋轉角度 φ,在前面介紹的 Z 閘,也是繞
+y
著 Z 軸旋轉的量子閘,然 Z 閘每次都是旋轉 φ
180 度,我們可稱之為反相或者稱之為相位 +x
P 閘的符號、真值表及轉換矩陣如下:
輸入 輸出
1 0
P |0〉 |0〉 P (ϕ ) = iϕ
0 e
|1〉 e iφ |1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-23 P 閘的電路圖、真值表及轉換矩陣
e iφ 歐拉公式,是用來表達在實數及虛數座標上相位旋轉的數學式。
e iφ = cosφ + isinφ
Im
i eiφ=cosφ+isinφ
sinφ
φ
0 cosφ 1 Re
iφ
▲圖 4-24 e 歐拉公式座標圖
48
Chapter 04 量子閘 (quantum gate)
i
(1) φ = 0 時,e 0 = 1
π i
π
π π
(2) φ = 時, e 2
= cos + i sin = i
2 2 2
iπ
(3) φ = π 時,e = cosπ + isinπ = –1
3π i
3π
3π 3π
(4) φ = e
時, 2 = cos + i sin = −i
2 2 2
π i
π
π π 1 + 3i
(5) φ = 時, e 3
= cos + i sin =
3 3 3 2
看沒有造成任何改變。
1 +z 1
0.8
|0> |0> 0.8
Amplitude
0.6
Amplitude
0.6
0.2 +x 0.2
0 0
0 1
Computational basis states |1> |1> 0 1
Computational basis states
0.8 0.8
Amplitude
0.6
Amplitude
0.6
0.2 0.2
|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states
49
資訊篇
1
3 輸入量子狀態為 (| 0〉 + | 1〉 ) 時,P 閘 調 控 旋 轉 90 度 時, 則 狀 態 仍 指 向
2
+Y 閘,也就是正虛數軸。
0.8 0.8
|0> |0>
0.6 0.6
Amplitude
1 1
Amplitude
P( π2 )
0.4
— ( |0 + |1 ) — ( |0 + i |1> )
�2 > > �2 >
0.4
0.2 0.2
0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states
1
▲圖 4-27 輸入量子狀態為 (| 0〉 + | 1〉 ) 時,P 閘調控旋轉 90 度時狀態
2
1
4 輸入量子狀態為 (| 0〉 − | 1〉 ) 時,P 閘調控旋轉 270 度(–90 度)時,則
2
狀態仍指向 –Y 閘,也就是正虛數軸。
0.8 0.8
|0> |0>
0.6 0.6
Amplitude
1 1
Amplitude
P( 3π )
0.4
— ( |0 + |1 ) — ( |0 – i |1> )
�2 > > �2 >
0.4
2
0.2 0.2
0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states
1
▲圖 4-28 輸入量子狀態為 (| 0〉 − | 1〉 ) 時,P 閘調控旋轉 270 度(–90 度)時狀態
2
練習一下 5
( ) 1. P 閘主要是調控量子狀態的?
(A) 資料 (B) 相位 (C) 機率強度 (D) 頻率
π
( ) 2. P 閘調控 量子狀態 |0〉 與 |1〉 的機率強度會?
2
(A) 增強 (B) 衰減 (C) 消失 (D) 不變
π
( ) 3. 初始狀態為指向 +X 軸,經 P 閘調控 ?
2
1 1
(A) (| 0〉 − i | 1〉 ) (B) (−i | 0 + i | 1)
2 2
1 1
(C) (| 0〉 + i | 1〉 ) (D) (− | 0〉 + i | 1〉 )
2 2
50
Chapter 04 量子閘 (quantum gate)
輸入 輸出
θ θ
θ θ cos 2 −i sin
|0〉 cos | 0〉 − i sin | 1〉
Rx Rx (θ ) = 2
2 2
−i sin θ cos
θ
θ θ 2 2
|1〉 −i sin | 0〉 + cos | 1〉
2 2
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-29 Rx 閘的電路圖、真值表及轉換矩陣
從布洛赫球面上來說即是以 X 為軸旋轉某個角度。舉例來說,若原始狀
態指向 +Z 軸,也就是 |0〉 的狀態,當角度設定為 90˚,則量子狀態會轉向 –
Y 軸。
|0〉 Rx ( 90˚ )
▲圖 4-30 Rx(90°)閘的電路圖
z z
|0> |0>
90˚
y y
x x
|1> |1>
▲圖 4-31 在布洛赫球面狀態圖
51
資訊篇
輸入 輸出
θ θ
θ θ cos 2 − sin
|0〉 cos | 0〉 − sin | 1〉
Ry 2 2 Ry (θ ) =
2
− sin θ cos
θ
θ θ 2 2
|1〉 − sin | 0〉 + cos | 1〉
2 2
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-32 Ry 閘的電路圖、真值表及轉換矩陣
從布洛赫球面上來說,即是以 Y 為軸旋轉某個角度。舉例來說,若原始
狀態指向 +Z 軸,也就是 |0〉 的狀態,當角度設定為 90º,則量子狀態會轉向
+X 軸。
|0〉 Ry ( 90˚ )
▲圖 4-33 Ry(90°)閘的電路圖
z z
|0> |0>
90˚
y y
x x
|1> |1>
52
Chapter 04 量子閘 (quantum gate)
輸入 輸出
e − iϕ 0
Rz |0〉
–iφ
e |0〉 Ry (θ ) = iϕ
0 e
|1〉 e iφ |1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-35 Rx 閘的電路圖、真值表及轉換矩陣
與 P 閘比較,Rz 閘與 P 閘功能似乎有點接近,但仔細比較一下真值表
或轉換矩陣,會發現 Rz 會對 |0〉 進行相位變化,而 P 閘對 |0〉 相位不會有任
何變化。
從布洛赫球面上來說即是以 Z 為軸旋轉某個角度。舉例來說,若原始狀
態指向 +X 軸,當角度設定為 270º,則量子狀態會轉向 –Y 軸。
|0〉 Rz ( 270˚ )
▲圖 4-36 Rz(270°)閘的電路圖
z z
|0> |0>
270˚
y y
x x
|1> |1>
|1〉 |1〉
( a ) 原始狀態指向 +X 軸 [ 0.707 , 0.707 ] ( b ) 經 Rz(270°)調控指向 –Y 軸,
[ 0.707i , –0.707i ]
▲圖 4-37 在布洛赫球面狀態圖 53
資訊篇
輸入 輸出
|A〉 |B〉 |A〉 |A ⊕ B〉 1 0 0 0
|A〉 |A〉 |0〉 |0〉 |0〉 |0〉
0 1 0 0
CNOT =
|B〉 |A ⊕ B〉 |1〉 |0〉 |1〉 |1〉 0 0 0 1
|0〉 |1〉 |0〉 |1〉 0 0 1 0
然而,多輸入的量子閘,其輸入的部分仍會保留到輸出,如 |A〉,因為
量子閘的輸出會列舉所有的「量子狀態」,所以不會只有 |A ⊕ B 〉 這個輸出,
這點就與古典電腦輸入與輸出單向而不可逆的結果不太ㄧ樣,量子電路的運
算特性即量子電路輸出是可逆的,可以回推到輸入的狀態。
54
Chapter 04 量子閘 (quantum gate)
1.0
|0> H q0
0.5
|0> CX q1
0 0 01 10 11
q1 q0
( a ) 量子電路 ( b ) 狀態向量圖
▲圖 4-39 使用 H 閘控制端的輸入產生的狀態
CNOT 閘運算推演如下:
1 1
0.8
A> 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states
1 1
0.8
A> 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states
1 1
0.8
A> 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states
1 1
0.8
A> 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states
| 1〉 + | 0〉
3 當 | A〉 = 、|B〉 = |0〉 時,輸出 |A ⊕ B 〉 對輸入 |B〉 進行 X 閘的運算。
2
0.8 0.8
A>
0.6 0.6
Amplitude
Amplitude
0.4 0.4
0.2 0.2
B>
0 0
00 01 10 11 00 01 10 11
Computational basis states Computational basis states
| 1〉 + | 0〉
▲圖 4-42 當 | A〉 = 、|B 〉 = |0〉 狀態圖
2
56
Chapter 04 量子閘 (quantum gate)
| 1〉 + | 0〉
4 當 | A〉 = 、|B〉 = |1〉 時,輸出 |A ⊕ B 〉 對輸入 |B〉 進行 X 閘的運算。
2
1 1
0.8
A> 0.8
Amplitude
Amplitude
0.6 0.6
0.4 0.4
0.2 0.2
0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states
| 1〉 + | 0〉
▲圖 4-43 當 | A〉 = 、|B 〉 = |0〉 狀態圖
2
此 外, 量 子 狀 態 的 呈 現 方 法 中,「 圓 標 記 法 」 可 以 呈 現 向 量 強 度、 機
率強度及相位,是一種很直觀的表示方法。本教材主要採用 IBM Quantum
Composer 的表示法,但在此還是將這種優秀的表示法介紹給各位,若讀者
以後在其他文章中看到此類標記法,可以快速理解。
向量強度 0_
相位(0度)
機率強度 1_
Final amplitudes
_0
_1
▲圖 4-44 使用圓標記法呈現的量子狀態
57
資訊篇
練習一下 6
( ) 1. CX 閘有控制端及受控端兩個輸入,當控制端為 0 的時候,受控端經過運算
後會如何?
(A) 反相 (B) 相位會改變 (C) 頻率改變 (D) 保持不變
控制端
受控端 輸出端
( ) 5. CX 的邏輯運算是哪一種?
(A) OR (B) AND (C) XOR (D) NOT
( ) 6. CX 在控制端為 0 的輸出狀態?
(A) 00、11 (B) 10,11 (C) 01,10 (D) 01,00
58
Chapter 04 量子閘 (quantum gate)
輸入 輸出
|A〉 |B〉 |C〉 |A〉 |C〉 | AB ⊕ C 〉
|0〉 |0〉 |0〉 |0〉 |0〉 |0〉
|0〉 |0〉 |1〉 |0〉 |0〉 |1〉
| A〉 | A〉
|0〉 |1〉 |0〉 |0〉 |1〉 |0〉
| B〉 | B〉
|0〉 |1〉 |1〉 |0〉 |1〉 |1〉
|C〉 | AB ⊕ C 〉
|1〉 |0〉 |0〉 |1〉 |0〉 |0〉
|1〉 |0〉 |1〉 |1〉 |0〉 |1〉
|1〉 |1〉 |0〉 |1〉 |1〉 |1〉
|1〉 |1〉 |1〉 |1〉 |1〉 |0〉
( a ) 符號 ( b ) 真值表
▲圖 4-45 CCNOT 閘的真值表、電路圖及轉換矩陣
輸入 |C〉 的狀態。
2 當 |AB〉 = |11〉,則輸出 |AB ⊕ C 〉 才會對輸入 |C〉 進行 X 閘的運算。
59
資訊篇
練習一下 7
A 控制端 0
B 控制端 1
C 受控端 輸出端
( ) 3. CCX 是邏輯運算的?
(A) AND (B) OR (C) XOR (D) NOT
60
Chapter 04 量子閘 (quantum gate)
課後測驗
( ) 1. H 閘在輸入端為 |0〉 的狀態如右圖時,輸出的狀態為何?
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2
1
( ) 2. H 閘在輸入端為 (| 0〉 − | 1〉 ) 的狀態時,輸出的狀態
2
為何?
1
1 1 (| 0〉 − | 1〉 )
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 ) 2
2 2
( ) 5. 下列哪個量子閘可以用於反相(複選)?
(A) X 閘 (B) Y 閘 (C) RX 閘 (D) H 閘
61
資訊篇
1
( ) 9. 若要操控量子狀態成為 (| 0〉 + | 1〉 ) ,以下有那幾種組合可以完成(複
2
選)?
(A) 輸入 |0〉 的 H 閘
(B) 輸入 |0〉 的 H 閘再經 X 閘操控
(C) 輸入 |0〉 的 H 閘再經 Z 閘操控
(D) 輸入 |1〉 的 H 閘再經 Z 閘操控
( ) 10. 在任何可能的輸入狀態下,經調控後可能會改變機率強度的有那些量子閘
(複選)?
(A) X 閘 (B) Y 閘 (C) Z 閘 (D) H 閘
62
Chapter 05 量子電路
05
chapter
量子電路
(quantum circuit)
先備知識
量子電腦可透過量子電路建立演算法,進行量子問題相關運算,但量子電腦不
適合像一般電腦一樣進行文書處理、影像處理、上網購物、社群軟體等作業,因此
量子電腦無法完全取代通用型電腦,兩者間應是相輔相成的關係。透過一般電腦協
助資料編輯、儲存、決策、分析,將量子運算交給量子電腦執行,再回到一般電腦
呈現結果,成為量子電腦目前的運行模式。
學習目標
為 協 助 讀 者 進 一 步 瞭 解 量 子 運 算, 本 章 節 將 透 過 範 例 介 紹 如 何 使 用 IBM
Quantum Composer 進行量子電路圖形化編輯,或利用 Qiskit 及 Python 進行程
式編輯,以利量子電路設計。
63
資訊篇
5-1 量子電路的基本架構
量子電腦基本運算單位為量子位元,透過量子閘操控量子位元數位資料
的振幅及相位,以構成具有特定目的、功能及演算法的量子電路。在量子電
路中,每條橫線代表一個量子位元,也可以稱之為量子暫存器。基本的量子
電路具有初始態、量子操作及測量三個基本流程。
初始態 量子操作 測量
▲圖 5-1 典型單一量子位元的量子電路
上圖為一個基本的單一量子位元的量子電路,基本流程標示說明如下:
z z
|0> |0>
y y
x x
|1> |1>
▲圖 5-2 初始態的布洛赫球面狀態圖
64
Chapter 05 量子電路
2 量子操作:採用「量子閘」調控量子狀態,以產生不同的機率振幅及相位,
透過量子閘調控量子狀態(紅色箭頭)指向球面的任何方向。以下圖為
例,若有個量子閘可以讓量子狀態繞 y 軸旋轉 90 度,當初始態指向 |0〉 時,
調控後則指向 +x 軸;當初始態指向 |1〉 時,調控後則指向 –x 軸。每個量
子閘都有其調控的意義,下圖的例子所採用的量子閘是 H 閘,採用布洛
赫球面表示的量子狀態變化,淡紅為初始狀態,正紅為調控後的狀態。
其狀態變化分別正對 +x 軸及 –x 軸,也就是 90 度的位置。
z z
|0> |0>
y y
x x
|1> |1>
▲圖 5-3 經 H 閘操作後的布洛赫球面狀態
3 測量:在圖 5-1,右端採用一個測量表的符號,代表對每個量子位元的測
量,在量子的理論中,量子的狀態被測量前,皆無法確定它的狀態,但
一旦經過測量則會崩塌在 0 或 1 其中一個狀態中,且每次測量可能會呈
現 0 或 1 的狀態。但如果經過多次的測量,則會發現 0 與 1 出現的機率
其實是有規律的,出現機率與量子狀態跟 z 軸的夾角有關。關於機率與
量子狀態的關係,為更清楚地呈現與說明,在此暫且省去 y 軸並將布洛
赫球面旋轉成 x-z 面,以圖 5-4 為例。
65
資訊篇
z z z
|0> |0> |0>
θ 90˚
θ
x x x
( a ) θ < 90º 測量指向較接近 |0〉 ( b ) θ > 90º 測量指向較接近 |1〉 ( c ) θ = 90º 測量指向 |0〉 與 |1〉
的狀態。 的狀態。 各 50% 狀態。
0.60
0.505 0.495
0.45
Probabilities
0.30
q | 0> H
0.15
c
0 0.00
0 1
▲圖 5-5 經過多次測量出現機率可以反應量子操作的結果
66
Chapter 05 量子電路
前 面 的 例 子 是 只 操 作 一 個 量 子 位 元, 但 實 際 可 以 拿 來 運 算 的 量 子 電
路,當然不會只有一個量子位元那麼簡單。如圖 5-6 是使用 IBM Quantum
的 Composer 製 作 兩 量 子 位 元 的 電 路, 是 一 個 被 稱 之 為 Grover 的 演 算 法
(Grover's algorithm),可用以在一個數列中搜尋正確的資料,在窮舉、資
料庫及量子演算問題上,可發揮極大的價值。
初始態 量子操作 測量
▲圖 5-6 兩量子位元的量子電路
67
資訊篇
5-2 量子程式設計
上述的量子電路,可以透過程式設計的方式來完成,本單元將利用 IBM
Quantum 的 Composer(作曲家)及 Lab(實驗室)練習量子電路。
一、IBM Quantum
IBM Quantum 採 用 雲 端 運 算 的
架構,免費提供量子電路學習資源給
大眾使用。您可以在這個平臺上運用 建議用 Google 申請
模擬器執行量子電路程式,也可以將
您 設 計 的 量 子 電 路, 透 過 IBM 放 置
在世界各地的量子電腦進行運算。 ▲圖 5-7 IBM Quantum 的首頁
2. 在畫面上方量子閘工具箱,挑選量子閘並拖曳到量子電路上。
3. 以圖 5-9 為例,拖曳 H 閘及 CNOT 閘到量子電路之後,即同時出現具有
68 00 及 11 狀態的向量。
Chapter 05 量子電路
›
量子閘 z +
| 0> if Y RX RY U RXX RZZ +Add
Open in Quantum Lab
�X �X
1 from qiskit import QuantumRegister,
ClassicalRegister, QuantumCircuit
q0 H 2 from numpy import pi
3
量子電路 q1 4 qreg_q = QuantumRegister(2,̀q́)
+ 5 creg_c = ClassicalRegister(2,̀ć)
c2 6 circuit = QuantumCircuit(qreg_q,
creg_c)
7
Statevector Q-sphere 8 circuit.h(qreg_q[0])
›
›
9 circuit.cx(qreg_q[0], qreg_q[1])
0.8
Amplitude
0.6
狀態向量 0.4
0.2
π/2 可將量子電路
0
00 01 10 11 π Phase 0 轉譯成的程式
Computational basis states
3π/2 State Phase angle
圖 5-9 可 以 看 到 狀 態 向 量(statevector) 有 00 及 11 兩 個 狀 態, 量 子 電
腦的運算模式可以一次提供所有運算結果,多次的測量結果計算 00 或 11 的
出現次數,統計出現的比例則得到出現機率。
如果將狀態向量(statevector)切換成機率(probabilities)如圖 5-9,我們
1 2
將透過向量狀態的平方獲得結果 00 與 11 的出現機率,也就是 ( ) = 0.5 ,即
2
50% 的機率(probability),藉由 Composer 的模擬得證(如圖 5-10)。
Statevector i Probabilities i
›
1
Statevector 100
0.8 80
Probabilities
Probabilitiy(%)
Amplitude
0.6 60
0.4 40
0.2 20
0 0
00 01 10 11 00 01 10 11
Computational basis states Computational basis states
▲圖 5-10 將向量狀態切換成機率
學會判讀量子電路模擬執行後產生的狀態向量或是機率,是學習量子運
算很重要的技術及步驟。
69
資訊篇
›
z
| 0> if X+ Y RX RY U RXX RZZ +Add
Open in Quantum Lab
X
1 from qiskit import QuantumRegister,
ClassicalRegister, QuantumCircuit
q0 z
低位元 H 2 from numpy import pi
3
q1 z
低位元 4 qreg_q = QuantumRegister(2,̀q́)
+ 5 creg_c = ClassicalRegister(2,̀ć)
c2 6 circuit = QuantumCircuit(qreg_q,
0 1 creg_c)
7
Statevector Q-sphere 8 circuit.h(qreg_q[0])
›
9 circuit.cx(qreg_q[0], qreg_q[1])
1
10 circuit.measure(qreg_q[0], creg_c[0])
0.8
Amplitude
11 circuit.measure(qreg_q[1], creg_c[1])
0.6
0.4 產生左方量子電路的
0.2 π/2
0
00 01 10 11 π Phase 0
1 從 Qiskit 載入三個模組如下,分別為:
70
Chapter 05 量子電路
• QuantumCircuit : 由量子暫存器及古典位元暫存器構成,用來建構量子電路的
模組。
2 定義量子暫存器、古典位元暫存器及量子電路如下。共有三個步驟:
3 接下來開始設計量子電路,量子閘的設定與程式碼有先後的關係,前面
程式碼所設定的量子閘為前,後面量子閘為後,從以下程式可見,H 閘
先執行結果會影響到 CX 閘,CX 閘不能影響到 H 閘。
circuit.h(qreg_q[0])
circuit.cx(qreg_q[0], qreg_q[1])
circuit.measure(qreg_q[0], creg_c[0])
circuit.measure(qreg_q[1], creg_c[1])
四、使用實體的量子電腦運算
IBM Quantum 的 Composer 及 Lab 這兩套工具,可以協助使用者快速且
即時地檢視量子電路運算後的狀態,但現實中的量子電腦實際上是無法做到
這一點的,因為量子位元「經過觀測後,量子狀態就會消失」,因此最後只
能看到古典邏輯的狀態結果。目前沒有通用型的量子電腦,通常會使用傳統
程式搭配量子程式,將量子電腦的運算結果交給傳統程式處理,呈現給使用
者運算的結果,如圖 5-12 所示。
量子傳統程式 量子程式
▲圖 5-12 目前的量子程式是傳統程式與量子運算混用
72
Chapter 05 量子電路
▲圖 5-13 設定實體的量子電腦運算
2. 任 意 選 取 一 臺 量 子 電 腦, 例 如 圖 中 使 用
者選取的是 ibmq_manila,(請注意是否
online),還有可以使用的 Qubits(量子
位元)的數量。
3. 前面提到,量子位元每次執行的狀態都不
一 樣, 所 以 設 定 執 行 1,024 個 shots, 也
就是讓量子電路運算 1,024 次。
4. 命名 Job name 為 one_qubits_entanglement,
Tags 為 entaglement, 按 下 Run on ibmq_
manila (名字視選取的量子電腦而定),接
著進入量子運算排程。
5. 排 程 經 過 一 段 時 間 後, 如 圖 5-14, 運 算
是在 40 分 51 秒後得到結果,最後可以看
到圖 5-9 的長條圖 00 跟 11 都有明顯的出 ▲圖 5-14 實體量子電腦運算的結果
現次數,而且接近相等。可以認定 00 跟 11 是這個量子電路運算後的狀態。
依據實際量子電路運算的結果,現實中的量子電腦基於量子特性「量子
電路只要測量,就會崩塌在 0 與 1 的古典位元狀態」,必須要執行多次「射
擊(shot)」,使量子電路產生一次又一次的運算及測量,最後依據多次射
擊的測量結果,統計各種狀態出現機率,以推測運算結果。
73
資訊篇
5-3 單量子位元電路設計
實作練習 1
Statevector i Probabilities i
›
0.8 α β 100
80
α2 β 2
0.6
q 0 H
Probabilitiy(%)
60
Amplitude
+ 0.4
c1 40
0.2
20
0 0
0 1 0 1
Computational basis states Computational basis states
( a ) 量子電路 ( b ) 狀態向量 ( c ) 機率
▲圖 5-15 IBM Quantum Composer 量子電路、狀態向量及機率
實作練習 2
74
Chapter 05 量子電路
(2) 在量子位元上放置一個 H 閘。
q H
(3) 下列程式目的為運算及觀察量子電路的狀態向量(statevector)。
H 閘的狀態式定義為 |ψ〉 = α|0 〉 + β|1 〉,由結果來看 α = β = 。
觀察下列程式執行結果 0j 代表 H 閘的狀態沒有 軸的成分。
▲圖 5-18 0j 代表 H 閘的狀態圖
▲圖 5-19 使用布洛赫球面觀察狀態圖 75
資訊篇
實作練習 3
1 1
0.8 0.8
q 0 q 0
Amplitude
Amplitude
0.6 0.6
+ 0.4 + 0.4
c1 0.2
c1 0.2
0 0
0 1 0 1
Computational basis states Computational basis states
( a ) 未放置任何量子閘初始態為 0 ( b ) 放置 X 閘後狀態轉為 1
▲圖 5-20 狀態向量圖
實作練習 4
76
Chapter 05 量子電路
(2) 在量子位元上放置一個 X 閘。
q H
下 列 程 式 主 要 目 的 是 要 運 算 及 觀 察 量 子 電 路 的 狀 態 向 量(statevector)。
X 閘 的 初 始 狀 態 為 |0〉 , 量 子 狀 態 定 義, 經 執 行 後 結 果 α = ,
β= 。
(4) 使用布洛赫球面觀察狀態向量,X 閘
的狀態是指向 ________ 軸。
挑 戰 看 看, 將 上 述 的程 式 初 始 態 改
成 |1〉, 量 子 電 路 的 初 始 態 為 |0〉, 可 以
用一個 X 閘轉態,程式設定及電路如下
圖,則輸出狀態為何?布洛赫球的狀態
為何?請進行實作練習並觀察。 ▲圖 5-21 布洛赫球面觀察狀態
q X H
77
資訊篇
實作練習 5
狀態向量(statevector):根據 H 閘的狀態,所以 α = 、β = ,
相位角(phase angle)= 。
0.8 100
80
α2 β 2
0.6
Probabilitiy(%)
q 0 H Z
60
Amplitude
0.4
+ 40
c1 0.2
20
0 0
0 1 0 1
Computational basis states Computational basis states
( a ) 量子電路 ( b ) 狀態向量 ( c ) 機率
▲圖 5-22 IBM Quantum Composer 量子電路、態向量及機率
實作練習 6
π
用 Qiskit 編輯量子電路在 H 閘後面多加了一行 P 閘,執行 90 度( )的相
2
位旋轉,觀察其狀態向量及布洛赫球面的變化。
q H Z
(1) 編寫可以查看上述量子電路狀態向量的程式 [α , β] = [ , ]。
(2) 編寫觀察上述量子電路的布洛赫球的程式,可看到狀態指向 軸。
=________。
實作練習 7
0.8 100
80
α2 β 2
0.6
Probabilitiy(%)
q 0 H P 60
Amplitude
(pi/2) 0.4
+ 40
c1 0.2
20
0 0
0 1 0 1
Computational basis states Computational basis states
( a ) 量子電路 ( b ) 狀態向量 ( c ) 機率
▲圖 5-24 IBM Quantum Composer 量子電路、狀態向量及出現機率
狀態向量(statevector):
根據 H 閘的狀態 |ψ〉 = α|0 〉 + β|1 〉,
所以 α = 、β = ,相位角(phase angle)= 。
機率(probabilities):
參考狀態向量 |ψ〉 = α|0 〉 + β|1 〉,
所以每個狀態的機率為 | α | 2 = | β | 2 = 。
使 用 P 閘 可 操 控 量 子 狀 態 繞 著 Z 軸 旋 轉, 也
因 為 繞 著 Z 軸 旋 轉, 所 以 會 有 Y 軸, 也 就 是
虛 數 軸 的 成 分 會 有 所 變 化。 因 此 在 Composer ▲圖 5-25 狀態長條圖
79
資訊篇
實作練習 8
q H P
π/2
▲圖 5-27 量子狀態模擬圖
80
Chapter 05 量子電路
▲圖 5-28 布洛赫球面上狀態圖
(4) 量子電路是藉由統計多次運算結果各個狀態出現的比例,來表現各個量
子位狀態及強度。使用 plot_histogram,用 get_counts() 統計狀態出現比
例,資料採用 JSON 的格式表達。
(5) 使 用 P 閘 可 改 變 相 位, 但 如 果 從
上圖 5-28 的布洛赫球面看,其實
單一量子位元電路出現在 0 或 1
的 機 率, 跟 H 閘 一 樣 是 均 等, 也
就是機率都是接近 0.5,如圖 5-30
所示。
▲圖 5-30 機率強度狀態圖
81
資訊篇
Q JSON 是什麼?
JSON 是一種程式語言可採用的資料交換格式,可用於表達結構化
資料,主要是由物件、陣列及資料對三種元素構成:
JSON 中可以用的資料包括:數值、字串、布林值、陣列、物件。範例如下:
數值:數值資料不需要雙引號,如:"mony": 30000, "rate":34.5。
字串:用雙引號包起的就是字串資料,如:"name": "JohnsonWang",
"city":"Taipei"。
布林值:只有 true 跟 false,如:"agree":true,"sad":false,。
陣列:"tools":["hammer","ruler","cutter"]。
物件:"users":{"name":"David Liu","birthday":"1988/8/8"}。
實作練習 9
請參考上述的電路進行實作,呈現輸入、輸出狀態相反的疊加態。請問下圖
空白框格中,應該放入哪種量子閘,才能產生如圖 5-31 的狀態?
0.8
0.6
Amplitude
0.4
0.2
0
00 01 10 11
Computational basis states
▲圖 5-31 量子電路狀態
82
Chapter 05 量子電路
5-4 疊加態的運算
一、單一量子位元
單一量子位元的疊加態,可以使用方程式來表達,另外也可採用矩陣進
行更簡潔的表達:
1 0
| 0〉 = 、 |1〉 =
0 1
1 0 α
可寫成 |ψ 〉 = α + β =
0 1 β
二、多量子位元
使用兩個以上的量子位元如下圖所示。初始態皆為 |0 ,採用 H 閘調控
量子狀態,再分別測量後得到最後的結果。
|ψ 0〉 = α|0 〉 H
|ψ 1〉 = α|0 〉 H
▲圖 5-32 兩個量子位元的量子電路
在上述量子電路中,由於兩個量子位元分別經過 H 閘調控,因此在測量
前會同時存在 00、01、10 及 11 四種狀態,也就是高位元會包含低位元的狀
態,在此以下圖 5-33 來協助讀者理解。
|ψ 1〉 0 1
|ψ 0〉 0 1 0 1
|ψ 1 ψ 0〉 00 01 10 11
▲圖 5-33 高位元 |ψ1〉 包含低位元 |ψ0〉 狀態的樹狀圖
83
資訊篇
如圖 5-33,高位元的狀態已包含低位元的狀態,是一種「你中有我,我
中有你」的狀態。因此經過測量表測量後,兩個位元會得到 00、01、10 及
11 其中一種狀態,又因為上圖使用的是 H 閘,因此這四種狀態的出現機率
1
應該相當相近。若由方程式來看 |ψ 0 〉 = |ψ 1 〉 = (| 0〉 + | 1〉 ) ,當兩者進行疊加,
2
則可得到下列的結果。
1 1
|ψ 1ψ 0〉 = (|0〉 + |1〉) (|0〉 + |1〉)
2 2
量子疊加時各結果出現機率,可以用張量積來運算,張量積的運算符號
為 ⊗,其運算結果可以貼切地表達兩個量子位元的疊加態,舉例來說,有兩
個陣列 A、B,分別為:
c ac
a *
a c d ad
A = , B = ,則 A ⊗ B = bc [
= = ac ad bc bd ]
b
d c
b *
d bd
以上述 H 閘的疊加為例子:
1 1
2 2
|ψ 0 〉 = , |ψ 1 〉 =
1 1
2 2
1
1 2
*
2 1 1 / 2 0.5
2 1 / 2 0.5
|ψ 1ψ 0 〉 = |ψ 1 〉 ⊗ |ψ 0 〉 = = = = [ 0.5 0.5 0.5 0.5]
1 1 / 2 0.5
1 2 1 / 2 0.5
*
2 1
2
84
Chapter 05 量子電路
以上的計算結果以二進位列式,也可以採用 10 進位表示如下:
實作練習 10
0.6 0.8
若 |ψ 0 〉 = , |ψ 1 〉 = 則 |ψ1〉 與 |ψ0〉 疊加後狀態為何?
0.8 0.6
0.8 0.48
0.6
0.6 0.36
答: |ψ 〉 = |ψ 1 ψ 0 〉 = |ψ 1 〉 ⊗ |ψ 0 〉 = =
0.8 0.64
0.8
0.6 0.48
驗證結果正確。
85
資訊篇
5-5 疊加態量子電路
1 1 1
子狀態為 (| 0〉 + | 1〉 ) 或可表示為 ,在布洛赫球面上,其位置就是指向
2 2 1
1 1 1
+X 軸; 在 初 始 為 |1〉 時, 其 量 子 狀 態 為 (| 0〉 − | 1〉 ) 或 可 表 示 為 。
2 2 −1
上 述 初 始 態 無 論 為 何, 最 後 出 現 在 |0〉 或 |1〉 的 機 率 都 各 為 一 半, 也 就 是
[0.5 0.5]。
|1>
|1>
86
Chapter 05 量子電路
兩個量子位元從布洛赫球面上看,狀態都指向 +X,從機率狀態看來,
每個狀態都是均等,所以各種狀態的機率為 0.25,如表 5-2 所示。
|1>
|ψ1>
z
|0>
90˚
y
|1>
|ψ0>
|0〉 Ry ( 45 °)
87
資訊篇
45˚
|1>
上述的量子狀態該如何調控呢?我們在前述章節曾提到一種名為 Ry 的
量子閘,即可調控量子狀態旋轉 y 軸的角度,若將一個 H 閘跟 Ry(45°)進
行疊加,會形成怎樣的結果?
|0〉 H
|0〉 Ry ( 45 °)
0.853
0.5
0.146
0.146],透過疊加 搭配出 [0.426 0.073 0.426 0.073] 的機率。最
0.853
0.5
0.146
後形成的結果如下表 5-4:
H 與 Ry ( 45º ) 閘 在 |00〉、|01〉、|10〉
H 閘初始為 |0〉 的量子狀態
及 |11〉 的機率
z z
|0> |0>
45˚
90˚
y y
x x
|1> |1>
|ψ1> |ψ0>
88
Chapter 05 量子電路
實作練習 11
▼表 5-5 量子電路及機率強度關係
序次 量子電路 機率強度
100
q0 | 0> H 80
60
1 q1 | 0> H 40
20
q2 | 0> H
0
000 001 010 011 100 101 110 111
100
q0 | 0> 80
60
2 q1 | 0> H 40
20
q2 | 0> H 0
000 001 010 011 100 101 110 111
100
q0 | 0> 80
60
3 q1 | 0> 40
20
q2 | 0> H
0
000 001 010 011 100 101 110 111
100
| 0> H 80
60
4 q1 | 0> 40
20
q2 | 0> H
0
000 001 010 011 100 101 110 111
89
資訊篇
實作練習 12
0.8
0.729
0.6
circuit =
Probabilities
q0 RY
π/4 0.4
QuantumCircuit(2)
circuit.ry(pi/4,0) q1 RY
π/4 0.2
circuit.ry(pi/4,1) 0.125 0.125
0.021
0
00 01 10 11
Computational basis states
程式 電路 機率分布圖
實作練習 13
使用 H 閘及 P 閘來調控四個量子位元的相位角變化,四個量子位元有 16 種
狀態,每個狀態如果偏移 360/16 = 22.5 度,可以實作出連續十六個狀態的
相角變化,剛剛好可以繞一圈。實作之前可以先試著推算一下,如果每個狀
態會相移 22.5 度,則
90
Chapter 05 量子電路
▼表 5-7 量子電路及狀態向量關係
0.25
0.2
Amplitude
0.15
0.1
q0 | 0> H P
(pi/8) 0.05
q1 | 0> H P 0
(pi/4)
00 0
00 1
00 0
01 1
01 0
01 1
01 0
10 1
10 0
10 1
10 0
11 1
11 0
11 1
11 0
11
1
1
0
0
1
0
0
1
0
0
1
0
0
1
00
Computational basis states
q2 | 0> H P π/2
(pi/2) Output state
π Phase 0 [0.25+0j, 0.231+0.096j,
q3 | 0> H P 0.177+0.177j...
(pi) 3π/2
狀態循序相移的量子電路 狀態向量
91
資訊篇
5-6 糾纏態(entanglement)量子電路
在量子物理中,「當兩個粒子發生糾纏,其中一個粒子的狀態變化,會
同時發生在另一個粒子上」,此即為「糾纏態」。在量子電腦中,如果要做
出一個量子位元的糾纏態,則須將量子調控為以下狀態:
1
|ψ 〉 = (| 00〉 + | 11〉 )
2
▼表 5-8 糾纏態的實現方式
輸入 輸出
|B〉 |A〉 |A ⊕ B〉 |A〉
|0〉 |0〉 |0〉 |0〉
| A〉 | A〉
|0〉 |1〉 |1〉 |1〉 |B〉 |A ⊕ B〉
|1〉 |0〉 |1〉 |0〉
|1〉 |1〉 |0〉 |1〉
q0 z q0 z
| 0> 80 | 0> 80
Probabilitiy(%)
Probabilitiy(%)
q1 z 60
q1 z 60
| 0> | 0>
40 40
20 20
c2 c2
0 1 0
00 01 10 11 0 1 0
00 01 10 11
Computational basis states Computational basis states
上述的狀態呈現,輸入與輸出亦步亦趨的狀態即為糾纏態,也就是說,
一個 CNOT 閘即可完成糾纏態的運算。
0.60
0.505 0.505
q0 z
H 0.45
Probabilities
q1 z
| 0> 0.30
0.15
c2 0.00
0 1 00 11
▲圖 5-34 量子電路狀態及長條圖
使用 Composer 製作一個二量子位元的糾纏態電路。
q0 z
H
0.32
q1 z
H 0.268 0.265
Probabilities
0.228 0.240
0.24
q2 z
| 0>
0.16
q3 z
| 0>
0.08
0
c4
0 1 2 3
00
01
10
11
11
00
01
10
▲圖 5-35 量子電路狀態及長條圖
實作練習 14
小亮、小安跟小麗三個同學受邀參加一場聚會,小亮說他有一半的可能性可
以到,小安則說要是小亮有出席他就會出席,小麗則說如果小亮跟小安都出
席,那他就會出席。請問:
(1) 有哪幾種狀況可能會發生?
(2) 三人都會出席的機率是多少?
93
資訊篇
100
80
60
q0 | 0> H 40
q1 | 0> 20
q2 | 0> 0
000 001 010 011 100 101 110 111
▲圖 5-36 量子電路狀態及長條圖
答:(1) 總 計 有 兩 種 狀 況, 一 種 是 通 通 都 出 席(111), 一 種 是 通 通 不 出 席
(000)。
94
Chapter 05 量子電路
課後測驗
如何將量子狀態(前)透過某個量子閘操作變成量子狀態(後)?請將可用
的量子閘填入量子閘的欄位,請注意可能不只一個答案。
z z z z z
|0> |0> |0> |0> |0>
量子
狀態 y y y y y
x x x x x
(前)
|1> |1> |1> |1> |1>
量子閘 X 閘、Y 閘
z z z z z
|0> |0> |0> |0> |0>
量子
狀態 y y y y y
x x x x x
(後)
|1> |1> |1> |1> |1>
( ) 1. 下列哪個組合經調控後量子狀態與其他的組合不同?
95
資訊篇
( ) 4. 如果要輸出狀態向量(statevector)
如 右 圖,則 可 以 使 用 下 列 一 個 量
子電路完成?
(A) (B)
(C) (D)
( ) 5. 使 用 三 量 子 位 元(qubit)q0、q1 各 一 個 H 閘,再 用 一 個
CCNOT 量子閘將受控端設定為 q2,量子電路圖如下,則
輸出的狀態向量(statevector)為何?
1
(A) (|000〉 + |001〉 + |011〉 + |111〉)
2
1
(B) (|000〉 + |001〉 + |010〉 + |111〉)
2
1
(C) (|000〉 + |010〉 + |011〉 + |111〉)
2
1
(D) (|001〉 + |010〉 + |011〉 + |111〉)
2
96
06
chapter
量子的算術與
邏輯運算
先備知識
對量子位元、量子閘和量子電路設計有基礎瞭解,為本章學習量子算數及邏輯
運算奠基。若您有技術高中電機電子數位邏輯課程基礎,可以用布林代數來理解本
案演算,普通高中同學也可以嘗試從資訊課程所學與本章內容對照,逐步理解一般
電腦及量子電腦運算邏輯。
學習目標
將針對量子算術與邏輯運算進行練習,用數位邏輯的方法去產生各種模擬古典
邏輯的量子電路,訓練自己設計量子電路的能力,也有助進一步學習利用量子閘設
計加法電路、比較器及量子記憶體等應用。
資訊篇
6-1 古典邏輯閘介紹
一 般 電 腦 中 有 許 多 古 典 邏 輯 運 算 法 可 使 用, 下 圖 為 古 典 邏 輯 閘 的 真 值
表,量子電腦並沒有相對應的邏輯閘可以使用,但卻可以透過現有的量子邏
輯閘輕易的組合,以下將探討挑戰:如何用 NOT、CNOT 及 CCNOT 模擬下
列的古典邏輯閘?
▼表 6-1 古典邏輯閘的真值表
A B F A B F A B F A B F A B F A B F
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0
1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0
1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1
A A A A A A
B F B F F F F F
B B B B
在古典邏輯中,通常用布林代數來表達古典邏輯閘的運算,反向通常會在
符號上方拉一條橫線稱之為 Bar,比如說 F = AB,可唸成 F 等於 AB Bar,
代表為 AB 運算的結果反相。AB 若與 1 作互斥運算,則也等同反相,這樣
的運算跟量子閘的習慣比較貼近,所以統一用 F = AB⊕0 表示 F = AB;F =
AB⊕1 表示 F = AB,其他邏輯閘以此類推。
98
Chapter 06 量子的算術與邏輯運算
6-2 使用量子閘模擬古典邏輯閘
AB 若與 1 作互斥運算,則也等同反相。這樣的古典邏輯運算跟量子閘
習慣較為貼近,完全使用 X、CX 或 CCX 組合量子電路,可以組合出各種邏
輯閘,其使用的邏輯以 XOR 為主,推導條列如下:
1. F = AB = AB ♁ 0
2. F = AB = AB ♁ 1
3. F = A+B = A + B ♁ 0 = A ♁ B ♁ AB ♁ 0
4. F = A+B = A + B ♁ 1 = A ♁ B ♁ AB ♁ 1
5. F = A ♁ B = A ♁ B ♁ 0
6. F = A ♁ B = A ♁ B ♁ 1
實作練習 1
0.4
0.3
A q0 H
0.2
B q1 H 0.1
C q2 |0 > F=AB 0 0
000 001 010 011 100 101 110 111
由呈現的輸出結果來看高位元 C = 0,狀態的解析如下:
000 則為 0 ← 00 001 則為 0 ← 01
010 則為 0 ← 10 111 則為 1 ← 11
99
資訊篇
實作練習 2
0.4
0.3
A q0 H
0.2
B q1 H 0.1
C q2 F=AB 1 0
000 001 010 011 100 101 110 111
由呈現的輸出結果來看高位元 C=1,狀態的解析如下:
100 則為 1 ← 00 101 則為 1 ← 01
110 則為 1 ← 10 011 則為 0 ← 11
實作練習 3
0.4
0.3
A H
0.2
B H 0.1
C F=AB 1=A+B 0
000 001 010 011 100 101 110 111
▲圖 6-3 模擬 OR 閘的量子電路及輸出的狀態
100
Chapter 06 量子的算術與邏輯運算
由呈現的輸出結果來看高位元 C=1,狀態的解析如下:
100 則為 0 ← 00 101 則為 1 ← 01
110 則為 1 ← 10 011 則為 1 ← 11
OR 可以採用 F = A + B = A ♁ B ♁ AB 的解法,電路完成後進行測試,結果
如下:
0.5
0.4
0.3
A H
0.2
B H
0.1
C | 0> F=A B AB 0 0
000 001 010 011 100 101 110 111
▲圖 6-4 採用 A ♁ B ♁ AB 模擬 OR 閘的量子電路及輸出的狀態
實作練習 4
0.4
0.3
A H
0.2
B H 0.1
C F=A+B=AB 0 0
000 001 010 011 100 101 110 111
由呈現的輸出結果來看高位元 C=0,狀態的解析如下:
100 則為 1 ← 00 101 則為 0 ← 01
110 則為 0 ← 10 011 則為 0 ← 11
實作練習 5
0.5
0.4
0.3
A H
0.2
B H 0.1
C F=A B 0 0
000 001 010 011 100 101 110 111
由呈現的輸出結果來看高位元 C=0,狀態的解析如下:
000 則為 0 ← 00 101 則為 1 ← 01
110 則為 1 ← 10 011 則為 0 ← 11
實作練習 6
102
Chapter 06 量子的算術與邏輯運算
0.5
0.4
0.3
A H
0.2
B H 0.1
C F=A B 0
000 001 010 011 100 101 110 111
由呈現的輸出結果來看高位元 C=1,狀態的解析如下:
100 則為 1 ← 00 101 則為 0 ← 01
110 則為 0 ← 10 111 則為 1 ← 11
103
資訊篇
6-3 半加器
A
A B S C
S 0 0 0 0
B
0 1 1 0
C 1 0 1 0
1 1 0 1
( a ) 半加器數位邏輯電路 ( b ) 真值表
▲圖 6-8 半加器的電路圖及真值表
實作練習 7
A q0 | 0> H 0.4
0.3
B q1 | 0> H
0.2
q2 | 0> S 0.1
0
q3 | 0> C
00 0
00 1
00 0
01 1
01 0
01 1
01 0
10 1
10 0
10 1
10 0
11 1
00
11 1
11 0
11
1
1
0
0
1
0
0
1
0
0
1
0
1
00
11
▲圖 6-9 模擬半加器的量子電路及輸出的狀態
6-4 全加器
所謂全加器是包含進位輸入的加法電路,其真值表如下所列,A、B 及
Cin 的加總和為 S、進位為 Co。
A A B C in S Co
B 0 0 0 0 0
S 0 0 1 1 0
Ci
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
Co 1 0 1 1 1
1 1 0 0 1
1 1 1 1 1
( a ) 全加器古典數位電路 ( b ) 真值表
▲圖 6-10 全加器的電路及真值表
實作練習 8
設 計 一 個 位 元 相 加, 具 備 加 數 A、 被 加 數 B、 進 位 輸 入 Cin 及 輸 出 的 Cout
全加器量子電路。
XOR AB BC AC
A q0 | 0> H
B q1 | 0> H
Cin q 2 | 0> H
q3 | 0> S=A B C 0
q4 | 0> Cout=AB BC AC
▲圖 6-11 使用量子閘建構的全加器
0.4
0.3
0.2
0.1
0
00 00
00 01
00 10
00 11
00 0
00 01
00 10
01 11
01 00
01 01
01 10
01 11
01 00
01 01
01 10
10 11
10 00
10 01
10 10
10 11
10 00
10 01
10 10
11 11
11 00
11 01
11 10
11 11
11 00
11 01
11 10
1
11
10
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
00
▲圖 6-12 量子全加器的八個輸出狀態
105
資訊篇
6-5 二選一多工器
實作練習 9
A q0 | 0> H
B q1 | 0> H
C q2 | 0> H
q3 | 0> F=AC BC
▲圖 6-14 使用量子閘建構的二選一多工器
106
Chapter 06 量子的算術與邏輯運算
0.4
0.3
0.2
0.1
00 0
00 1
00 0
01 1
01 0
01 1
01 0
10 1
10 0
10 1
10 0
11 1
11 0
11 1
11 0
11
1
1
0
0
1
0
0
1
0
0
1
0
0
1
00
▲圖 6-15 使用量子閘建構的二選一多工器狀態
經上面四個量子位元的量子電路運作後可以得到八個狀態,最左邊的是 F 輸
出,最右邊是 A,狀態符合二選一多工器真值表的運算狀況。
107
資訊篇
6-6 N = N + 1 運算
▼表 6-2 狀態變化真值表
布林代數運算過程
是 F = BA + BA = B ⊕ A
( )
B' = CBA + CBA + CBA + CBA = C + C ( BA + BA )
= BA + BA = B ⊕ A
= C ⊕ BA
108
Chapter 06 量子的算術與邏輯運算
實作練習 10
經由上述的運算後得量子電路如下,由輸入來看,採用一個 H 閘放在第二個
量子位元,所以輸入是 000 與 010 兩個狀態疊加。
0.6
A | 0> A´=A
0.4
C | 0> C´=C BA 0
000 001 010 011 100 101 110 111
▲圖 6-16 加 1 的電路圖及狀態
實作練習 11
設計一個加 2 的量子電路,真值表如下表,請完成布林代數的運算,並設計
出量子電路,輸入 000、001、010 及 011 的疊加狀態來驗證。
▼表 6-3 狀態的變化真值表
0.8
0.6
A | 0> A
0.4
B | 0> H B 0.2
C | 0> C B 0
000 001 010 011 100 101 110 111
▲圖 6-17 量子電路及狀態圖
實作練習 12
設計一個加 3 的量子電路,真值表如下表,請完成布林代數的運算,並設計
出量子電路,請輸入 001 與 011 的疊加狀態來驗證。
▼表 6-4 狀態的變化真值表
+2 +1
q0
q1 H
q2
+
c3
0.8 0.8
0.6 0.6
Amplitude
Amplitude
0.4 0.4
0.2 0.2
0 0
000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Computational basis states Computational basis states
▲圖 6-18 加 3 的運算電路及狀態圖
6-7 組合邏輯
上述的運算,皆可用布林代數,將古典邏輯電路轉換成量子邏輯電路,
以下將舉幾個簡單的例子,將古典組合邏輯轉換成量子邏輯電路。
• F = A+BC
上述的章節有提到 F = A + B = A⊕B⊕AB,如果用這個公式,可以列出
以 XOR 為主的布林代數式如下:
F = A + BC = A⊕BC⊕ABC
接著可依據上述的布林代數式,繪製出一個簡單而單純的量子電路:
F C B A
0 0 0 0
1 0 0 1
g0 A H A 0 0 1 0
g1 B H B
1 0 1 1
0 1 0 0
g2 C H C 1 1 0 1
g3 |0> F 1 1 1 0
A A BC A BC ABC 1 1 1 1
( a ) 電路圖 ( b ) 真值表
▲圖 6-19 F=A+BC 量子電路手繪稿及真值表
111
資訊篇
2. 建 立 四 個 量 子 位 元 的 電 路, 用 qc.h([0,1,2]) 分 別 在 0-2 的 量 子 位 元 暫 存
器上設置三個 H 閘,可以產生出 000 至 111 八種量子狀態。qc.mcx 可以
任意產生多個控制端,可以用這個函數解決 IBM Quantum Composer,
沒 有 多 於 三 個 以 上 控 制 端 的 問 題, 控 制 端 可 以 用 陣 列 來 定 義, 以
qc.mcx([0,1,2],3) 為例,[0,1,2] 是三個控制端,3 則是受控端。
使用 qc.draw() 畫出電路如下:
q0 H
q1 H
q2 H
q3
3. 接 著 再 執 行 backend.run(qc), 執 行 之 後, 從 job.result().get_counts() 得
到最後各個狀態出現的機率。
112
Chapter 06 量子的算術與邏輯運算
經執行後共有八個狀態,每個出現的機率各有 0.125。
{`0000´: 0.125,
`0010´: 0.125,
`0100´: 0.125,
`1001´: 0.125,
`1011´: 0.125,
`1101´: 0.125,
`1110´: 0.125,
`1111´: 0.125}
接 著 來 驗 證 上 列 的 狀 態 是 否 正 確, 以 上 述 結 果 為 例, 四 個 位 數 分 別 是
FCBA,也就是最左邊的是 F,最右邊的是 A。如果比對真值表,可以得到
CBA = 000、010 及 100 時,F 輸出均為 0,其餘狀態皆為 1,驗證完全正確。
使用直條圖顯示,以 plot_histogram 顯示 job.result().get_ counts() 的結果。
顯示狀態長條圖如下圖 6-21:
0.15
0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125
0.12
Probabilities
0.09
0.06
0.03
0
00
10
00
01
11
10
11
0
11
10
11
00
00
01
10
11
▲圖 6-21 狀態長條圖
113
資訊篇
實作練習 13
請依照下列布林代數繪製及實作量子電路。
( 1 ) F = AB ( 2 )F = AB
(3) F = A + B ( 4 )F = A + B
( 5 ) F = AB + BC ( 6 ) F = AB + A BC
114
Chapter 06 量子的算術與邏輯運算
6-8 一位元比較器
輸入 輸出
A B A<B A=B A>B
A < L 0 0 0 1 0
比較器 = E
0 1 1 0 0
B > G
1 0 0 0 1
1 1 0 1 0
( a ) 比較器方塊圖 ( b ) 真值表
▲圖 6-22 比較器的古典邏輯架構圖及真值表
A H A
B H B
L |0> L
E |0> E
G |0> G
▲圖 6-23 一位元比較器的量子電路圖
115
資訊篇
經執行以後得到電路圖如下:
q0 H X X
q1 H X X
q2
q3 X
q4
▲圖 6-24 電路圖
3. 使 用 下 列 的 程 式 執 行 量 子 電 路, 使 用 job.result().get_counts() 取 得 各 狀
態的概率。
116
Chapter 06 量子的算術與邏輯運算
最 後 在 使 用 plot_histogram 顯 示 各 狀 態 機 率 的 長 條 圖, 可 以 更 明 顯 地
看出結果。以長條圖左起的第一個狀態 00101 為例,排列為 GELBA,此時
B=0,A =1,明顯 B<A,此時 L=1 代表小於,其他的狀態也可以依照上述
的方法驗證經過比較器電路運作後狀態是否正確。
0.30
0.250 0.250 0.250 0.250
0.24
Probabilities
0.18
0.12
0.06
0
1
0
01
10
00
01
01
00
01
10
117
資訊篇
6-9 A+=B 電路
q0 q0 q0
q1 q1 q1
q2 q2 q2
▲圖 6-26 加 3 的電路狀態圖
A0
A1 A=A+B
A2
B0
▲圖 6-27 A=A+B 量子電路圖
A0
A1 A=A+B
A2
B0
B1
▲圖 6-28 A=A+B 量子電路圖
118
Chapter 06 量子的算術與邏輯運算
1. 載入所需要的模組。
2. 編寫量子電路程式如下。
}
} q0
A q1 A+=B
q2 H
} q3 H
B
q4 H
c
0 2 1
▲圖 6-29 A+=B 的量子電路圖
119
資訊篇
3. 透過下列程式執行上述的量子電路。
由於每次測量的結果,都只會有一種狀態,所以如果經過連續的測量,
統計各狀態出現的次數,就可知道各狀態的出現機率。
{'101': 98,
'001': 138,
'010': 129,
'110': 135,
'100': 142,
'111': 115,
'000': 120,
'011': 147}
最 後, 使 用 plot_histogram 長 條 圖 顯 示 結 果,A 與 B 使 用 H 閘 設 定 8
種狀態,並且符合預期的結果。雖然每種狀態的出現次數無法精確推測為
0.125,但接近這個理論值。這證實了電路的正確性,並且表明該量子電路
的設計和實現是可行的。
0.16 0.144
0.135 0.139
0.126 0.132
Probabilities
0.117
0.12 0.112
0.096
0.08
0.04
0
0
1
01
11
00
00
01
10
10
11
120
▲圖 6-30 使用 plot_histogram 呈現各種狀態出現的次數及機率
Chapter 06 量子的算術與邏輯運算
6-10 記憶體
有一個電路其資料狀態的真值表如下,當位址為 00 的時候,資料輸出
110;若位址為 11,則資料輸出為 111,其餘位址對應的資料輸出如表所列。
藉由符合下列真值表狀態的電路可以索引對應的資料輸出,其功能便是記憶
體的功能與概念。
資料
A1 A0 D2 D1 D0 A1 < D2
0 0 1 1 0 記憶體 = D1
0 1 0 1 1 A0 > Dn
1 0 1 1 1
1 1 1 0 1
由上述的真值表分析,可以得到每個位元的布林代數如下:
D2 = A1 + A0 = A1 ⊕ A0 ⊕ A1 A0
D1 = A1 + A0 = A1 ⊕ A0 ⊕ A1 A0
D0 = A1 + A0 = A1 ⊕ A0 ⊕ A1 A0
透過上述的分析,使用量子閘組合出量子記憶體如下:
q0 D0
q1 D1
q2 D2
A0 q 3 H A0
A1 q 4 H A1
▲圖 6-31 組成電路圖
測試狀態如下,經檢視與真值表的四個狀態完全符合。
0.5
0.4
Amplitude
0.3
0.2
0.1
0
00 00
00 01
00 10
00 11
00 00
00 01
00 10
01 11
01 00
01 1
01 10
01 11
01 00
01 01
01 10
10 11
10 00
10 01
10 10
10 11
10 00
10 1
10 10
11 11
11 00
11 01
11 10
11 11
11 0 0
11 0 1
11 1 0
1
11
00
121
10
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
00
資訊篇
課後測驗
( ) 1. 兩個輸入的 AND 閘可以用哪個量子閘來實現?
(A) CNOT (B) CZ (C) CCNOT (D) CP
6. 連續數列有三個數位,每個數位只有 0 與 1。若規定相鄰的數位不能相
同,也就是像 110、011 及 111 這三個狀態不允許存在。使用四個量子位
元,q0 ∼ q2 是三個數位,q3 的輸出如果為 1 代表不允許的狀態,如果
是 0 則代表允許的狀態,請問如何用 CCNOT 來實現?
122
臺北市高中職
量子電腦教材
資訊篇
臺北市高中職量子電腦教材—資訊篇
The Quantum Of Computing
出 版 機 關 :臺北市政府教育局
發 行 人 :湯志民
C70 M15 Y15 K0 C0 M80 Y90 K0 C20 M50 Y80 K0
R55 G167 B202 R234 G85 B32 R209 G143 B64
承 辦 單 位 :臺北市立永春高級中學 3A 教學基地中心
指 導 委 員 :陳素慧、鄧進權、廖文靜、陳秉熙、汪用和
諮 詢 委 員 :張慶瑞 、 傅昭銘 、 張元翔 、 黃琮暐 ( 按姓氏筆畫順序排列 )
總 編 輯 :林春煌
執 行 編 輯 :曾慶良
編 輯 群 :王昱珺 、吳健鑫 、 陳昭安 ( 按姓氏筆畫順序排列 ) Type your text
地 址 :11008 臺北市信義區市府路 1 號
網 址 :https://www.doe.gov.taipei/
電 話 :02-2720-8889
設 計 編 排 :台科大圖書股份有限公司
地 址 :242 新北市新莊區中正路 649-8 號 8 樓
電 話 :02-2908-0313
展 / 銷售處
【 國家書店 】( 松江門市 )
地 址 :104 臺北市松江路 209 號 1 樓
電 話 :02-2518-0207
網 址 :http://www.govbooks.com.tw/
【 五南文化廣場 】( 臺中代表總店 )
地 址 :400 臺中市中山路 6 號
電 話 :04-2226-0330
網 址 :http://www.wunanbooks.com.tw/
I S B N :978-626-7250-72-3
G P N :1011200631
出 版 日 期 :112 年 6 月
定 價 :新台幣 330 元
臺北市高中職量子電腦教材
臺北市高中職
量子電腦教材
資訊篇
資訊篇
ISBN 978-626-7250-72-3
G P N 1011200631