- Python量子計算實踐:基于Qiskit和IBM Quantum Experience平臺
- (美)哈西·諾倫
- 1776字
- 2024-05-24 18:03:11
前言
使用IBM Quantum Experience(IBM量子計算云平臺)和Qiskit可以搭建一個簡單易用又廣受青睞的量子計算平臺。它們不但可以用于通過云端訪問IBM的量子計算機硬件并進行編程,也可以用于在本地模擬器和云端模擬器上運行代碼。
本書旨在借助簡單示例和高級示例來介紹在Python環境中實現量子編程的方法。基于Python構建的Qiskit(Quantum Information Science Toolkit,量子信息科學工具包)軟件可以安裝在本地,是當今最容易使用的量子計算學習工具之一。
本書將從最基本的概念(比如安裝和升級Qiskit、查看Qiskit的版本號)開始,逐步介紹Qiskit的類和方法,然后介紹創建和運行量子程序所需的組件,以及如何將這些Qiskit組件集成到混合的量子程序和經典程序中,以利用Python強大的編程功能。
本書將使用模擬器和真實的硬件來探索、比較和對比嘈雜中型量子(Noisy Intermediate-Scale Quantum,NISQ)計算機和通用容錯量子(universal fault-tolerant quantum)計算機。其間會仔細探究嘈雜后端的模擬、在真實硬件上緩解噪聲和誤差的方法,以及使用Shor算法對單個量子比特進行量子糾錯。
本書最后將介紹量子算法,并比較量子算法與經典算法的不同之處。本書將仔細研究Grover算法的代碼實現,然后使用Qiskit Aqua運行不同版本的Grover算法和Shor算法,以展示如何在Qiskit代碼中直接復用這些已經構建好的算法。本書是對IBM公司的量子信息科學工具包Qiskit及其組成(Terra、Aer、Ignis和Aqua)的一次全面介紹。
本書還將使用在線的IBM Quantum Experience用戶界面,通過拖放操作進行量子計算。本書中的所有內容和拓展方法都可以在IBM Quantum Experience的云端進行編碼。
本書每章都包含代碼示例,用于解釋每個操作配方中相應的原理。
讀者對象
本書適合希望了解如何使用Qiskit和IBM Quantum Experience實現量子解決方案的開發人員、數據科學家、研究人員以及量子計算愛好者閱讀。讀者最好具備量子計算的基礎知識,并且有一定的Python語言編程基礎。
本書內容
本書采用以解決問題為導向、以探索方法為基礎的寫作方法,借助IBM Quantum Experience、Qiskit和Python來介紹量子計算機編程中的細節。
第1章介紹將Qiskit作為Python 3.5的擴展包安裝到本地工作站的方法,以及在IBM Quantum Experience上進行注冊、獲取API密鑰和示例代碼的步驟。
第2章展示如何使用Python編寫簡單的腳本,引導讀者了解經典比特和量子比特的概念,以及在沒有Qiskit和IBM Quantum Experience的情況下,量子門[1]是如何運行的。
[1] 原文中quantum gate(量子門)是quantum logic gate(量子邏輯門)的簡稱。——譯者注
第3章介紹IBM Quantum Experience、IBM Quantum Experience在線版,以及基于云的交互式量子計算機編程工具。在本章中,我們將編寫一個簡單的程序,并學習在Qiskit和IBM Quantum Experience之間進行交互的方法。
第4章介紹一系列基本的量子程序或量子線路,以深入研究概率計算、疊加和糾纏等基本概念。在本章中,我們將在一臺真實的IBM量子計算機上運行我們的第一個量子程序。
第5章著眼于IBM Quantum后端,主要介紹影響量子程序輸出結果的各種物理因素。
第6章簡單介紹Qiskit以開箱即用的方式提供的量子門,使讀者了解量子門對量子比特的作用。本章還介紹了構成其他量子門基礎的通用量子門,并從單量子比特門擴展雙量子比特門、3量子比特門以及更多量子比特門(更先進的量子線路中會用到這些量子門)。
第7章幫助讀者在一系列本地模擬器或云端模擬器上運行自己的量子線路。讀者甚至可以將模擬器設置為模擬IBM Quantum后端的行為,以在自己的本地設備上實地測試自己的量子線路。
第8章介紹如何通過理解量子比特的行為來清理測量結果,并探討如何使用降噪電路(如Shor碼)來糾正噪聲。
第9章搭建Grover搜索算法。Grover算法是經典搜索算法的二次加速。本章還將用到一個名為量子相位反沖的獨特的量子工具,并搭建幾個不同版本的算法,以在模擬器和IBM Quantum后端運行。
第10章介紹Grover搜索算法和Shor因子分解算法的Qiskit Aqua預制版本,還簡要介紹了Qiskit Aqua算法庫。
如何充分利用本書
為了充分利用本書,讀者應該對量子計算的基本概念有一些了解。但本書不會花費過多筆墨證明相關概念,也不會深挖概念中的細節。如果讀者還具備Python編程技能,則在本書構建一些稍微復雜的混合量子程序和經典程序時,更容易掌握相應內容。讀者還需要對線性代數中的向量和矩陣乘法有基本的了解,這對于理解量子門的工作方式大有幫助,不過本書仍將使用Python和NumPy[2]來完成這項艱巨的工作。
[2] NumPy是用于科學計算的Python擴展包,底層使用C語言編寫,可以直接存儲數據,而不是存儲對象指針。因此,在進行大型矩陣和高維數組的存儲、運算時,NumPy比Python自身的嵌套列表更為高效。——譯者注
Qiskit支持Python 3.5及以上版本。本書中的代碼示例在Anaconda 1.9.12(Python 3.7.0)上使用Anaconda捆綁的Spyder編輯器、Qiskit 0.21.0和在線的IBM Quantum Experience Code Lab環境進行了測試。建議讀者使用相同版本的軟件進行測試。

- Java語言程序設計
- Web前端開發技術:HTML、CSS、JavaScript(第3版)
- LabVIEW2018中文版 虛擬儀器程序設計自學手冊
- Java 開發從入門到精通(第2版)
- ASP.NET Core 5.0開發入門與實戰
- iOS開發實戰:從零基礎到App Store上架
- Learning Selenium Testing Tools(Third Edition)
- SQL Server 2016數據庫應用與開發
- C++新經典
- Clojure for Java Developers
- RESTful Web Clients:基于超媒體的可復用客戶端
- Java7程序設計入門經典
- Instant GLEW
- 精益軟件開發管理之道
- 編寫高質量代碼之Java(套裝共2冊)