量子電腦編程 從入門到實踐 (全彩印刷) Programming Quantum Computers: Essential Algorithms and Code Samples

[美] 埃里克·R. 約翰斯頓 [英] 尼古拉斯·哈里根 [西] 梅塞德絲·希梅諾·塞戈維亞

  • 量子電腦編程 從入門到實踐 (全彩印刷)-preview-1
  • 量子電腦編程 從入門到實踐 (全彩印刷)-preview-2
量子電腦編程 從入門到實踐 (全彩印刷)-preview-1

商品描述

量子計算被譽為下一代編程範式。隨著一些量子計算平臺和模擬器向公眾開放,普通程序員也可以嘗試編寫量子計算程序,感受前沿科技的無窮魅力。《量子電腦編程:從入門到實踐》不會解釋晦澀的量子力學理論,而會採用直觀的圓形表示法描繪量子比特,並從實踐角度展示如何編寫有趣的量子計算程序。通過《量子電腦編程:從入門到實踐》提供的在線實驗室網站,你可以動手運行書中的JavaScript示例代碼。全書分為四大部分,分別介紹量子電腦編程的核心概念、原語、應用和發展趨勢。你將瞭解量子隱形傳態、量子算術運算、量子傅里葉變換和量子相位估計等知識,以及量子搜索、量子超採樣、量子機器學習等高級主題。

作者簡介

【作者簡介】
埃里克.R.約翰斯頓(Eric R. Johnston)畢業於美國加州大學伯克利分校,他創造了量子計算模擬器QCEngine,目前在矽谷擔任高級量子工程師。


尼古拉斯.哈里根(Nicholas Harrigan)是英國倫敦帝國理工學院博士,他在量子力學方面的研究工作勉強使他相信,當他不看月亮時,月亮仍在那裡。


梅塞德絲.希梅諾–塞戈維亞(Mercedes Gimeno-Segovia)從英國倫敦帝國理工學院取得博士學位後,加入了PsiQuantum公司,致力於設計通用量子計算機。


【譯者簡介】
從事醫療與前沿ICT技術結合的相關研發工作,密切關注人工智能、量子計算等領域,另譯有《詳解深度學習》《圖解機器學習算法》等技術書。

目錄大綱

譯者序xi
前言xiii
第1章入門1
1.1所需背景1
1.2何謂QPU 2
1.3動手實踐3
1.4原生QPU指令6
1.4.1模擬器的上限7
1.4.2硬件的上限7
1.5 QPU與GPU的共同點8

第2章單個量子比特11
2.1物理量子比特概覽12
2.2圓形表示法15
2.2.1圓的大小15
2.2.2圓的旋轉16
2.3 2 2批QPU指令17
2.3.1 QPU指令:NOT 17
2.3.2 QPU指令:HAD 18
2.3.3 QPU指令:READ和WRITE 19
2.3.4實踐:完全隨機的比特20
2.3.5 QPU指令:PHASE(θ) 23
2.3.6 QPU指令:ROTX(θ)和ROTY(θ) 23
2.4 22:缺失的指令24
2.5組合QPU指令24
2.6實踐:量子監聽檢測27
2.7小結30

第3章多個量子比特31
3.1多量子比特寄存器的圓形表示法31
3.2繪製多量子比特寄存器34
3.3多量子比特寄存器中的單量子比特運算34
3.4可視化更多數量的量子比特37
3.5 QPU指令:CNOT 38
3.6實踐:利用貝爾對實現共享隨機性41
3.7 QPU指令:CPHASE(θ)和CZ 42
3.8 QPU指令:CCNOT 45
3.9 QPU指令:SWAP和CSWAP 46
3.10構造任意的條件運算50
3.11實踐:遠程控制隨機53
3.12小結55

第4章量子隱形傳態56
4.1動手嘗試56
4.2程序步驟61
4.2.1步驟1:創建糾纏對61
4.2.2步驟2:準備有效載荷62
4.2.3步驟3.1:將有效載荷鏈接到糾纏對62
4.2.4步驟3.2:將有效載荷置於疊加態63
4.2.5步驟3.3:讀取Alice的兩個量子比特64
4.2.6步驟4:接收和轉換64
4.2.7步驟5:驗證結果65
4.3解釋結果66
4.4如何利用隱形傳態67
4.5著名的隱形傳態事故帶來的樂趣67

第5章量子算術與邏輯71
5.1奇怪的不同71
5.2 QPU中的算術運算73
5.3兩個量子整數相加76
5.4負整數77
5.5實踐:更複雜的數22算78
5.6更多量子運算79
5.6.1量子條件執行79
5.6.2相位編碼結果80
5.7可逆性和臨時量子比特82
5.8反計算84
5.9 QPU中的邏輯運算86
5.10小結88

第6章振幅放大89
6.1實踐:在相位和強度之間相互轉換89
6.2振幅放大迭代92
6.3更多迭代?93
6.4多個標記值95
6.5使用振幅放大100
6.5.1作為和估計的AA與QFT 100
6.5.2用AA加速傳統算法100
6.6 QPU內部101
6.7小結103

第7章量子傅里葉變換104
7.1隱藏模式104
7.2 QFT、DFT和FFT 106
7.3 QPU寄存器中的頻率106
7.4 DFT 110
7.4.1實數DFT輸入與復數DFT輸入111
7.4.2 DFT一切113
7.5使用QFT 117
7.6 QPU內部122
7.6.1直觀理解124
7.6.2逐步運算124
7.7小結128

第8章量子相位估計129
8.1了解QPU運算129
8.2本徵相位揭示有用信息130
8.3相位估計的作用131
8.4如何使用相位估計132
8.4.1輸入132
8.4.2輸出134
8.5使用細節135
8.5.1選擇輸出寄存器的大小135
8.5.2複雜度136
8.5.3條件運算136
8.6實踐中的相位估計136
8.7 QPU內部137
8.7.1直觀理解138
8.7.2逐步運算139
8.8小結141

第9章真實的數據145
9.1非整型數據146
9.2 QRAM 147
9.3向量的編碼150
9.3.1振幅編碼的局限性153
9.3.2振幅編碼和圓形表示法154
9.4矩陣的編碼155
9.4.1 QPU運算如何表示矩陣155
9.4.2量子模擬156

第10章量子搜索160
10.1相位邏輯161
10.1.1構建基本的相位邏輯運算163
10.1.2構建複雜的相位邏輯語句163
10.2解決邏輯謎題166
10.3求解布爾可滿足性問題的一般方法170
10.3.1實踐:一個可滿足的3-SAT問題170
10.3.2實踐:一個不可滿足的3-SAT問題173
10.4加速傳統算法175

第11章量子超採樣177
11.1 QPU能為計算機圖形學做什麼177
11.2傳統超採樣178
11.3實踐:計算相位編碼圖像179
11.3.1 QPU像素著色器180
11.3.2使用PHASE畫圖181
11.3.3繪製曲線184
11.4採樣相位編碼圖像185
11.5更有趣的圖像187
11.6超採樣188
11.7量子超採樣與蒙特卡羅採樣190
11.8增加顏色195
11.9小結196

第12章舒爾分解算法197
12.1實踐:在QPU上應用舒爾分解算法198
12.2算法說明199
12.2.1我們需要QPU嗎200
12.2.2量子方法201
12.3逐步操作:分解數字15 203
12.3.1步驟1:初始化QPU寄存器204
12.3.2步驟2:擴展為量子疊加態205
12.3.3步驟3:條件乘2 207
12.3.4步驟4:條件乘4 209
12.3.5步驟5:QFT 211
12.3.6步驟6:讀取量子結果213
12.3.7步驟7:數字邏輯214
12.3.8步驟8:檢查結果216
12.4使用細節216
12.4.1求模216
12.4.2時間與空間217
12.4.3除了2以外的互質217

第13章量子機器學習218
13.1求解線性方程組219
13.1.1線性方程組的描述與求解219
13.1.2用QPU解線性方程組220
13.2量子主成分分析228
13.2.1傳統主成分分析228
13.2.2用QPU進行主成分分析230
13.3量子支持向量機233
13.3.1傳統支持向量機233
13.3.2用QPU實現支持向量機236
13.4其他機器學習應用238

第14章保持領先:文獻指引243
14.1從圓形表示法到復向量243
14.2與術語有關的一些細節和注意事項245
14.3測量基246
14.4門的分解與編譯247
14.5隱形傳態門248
14.6 QPU名人堂248
14.7競賽:量子計算機與傳統計算機249
14.8基於oracle的算法研究249
14.8.1 Deutsch-Jozsa算法250
14.8.2 Bernstein-Vazirani算法250
14.8.3 Simon算法250
14.9量子編程語言251
14.10量子模擬的前景252
14.11糾錯與NISQ設備252
14.12進一步學習252
14.12.1出版物253
14.12.2課程講義253
14.12.3在線資源253

關於作者254
關於封面254