Introduction to Quantum Computing with Q# and QDK
โ Scribed by Filip Wojcieszyn
- Publisher
- Springer
- Year
- 2022
- Tongue
- English
- Leaves
- 286
- Series
- Quantum Science and Technology
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
This book introduces the fundamentals of the theory of quantum computing, illustrated with code samples written in Q#, a quantum-specific programming language, and its related Quantum Development Kit.ย Quantum computing (QC) is a multidisciplinary field that sits at the intersection of quantum physics, quantum information theory, computer science and mathematics, and which may revolutionize the world of computing and software engineering.ย ย
The book begins by covering historical aspects of quantum theory and quantum computing, as well as offers a gentle, algebra-based, introduction to quantum mechanics, specifically focusing on concepts essential for the field of quantum programming. Quantum state description, state evolution, quantum measurement and the Bellโs theorem are among the topics covered. The readers also get a tour of the features of Q# and familiarize themselves with the QDK.ย ย
Next, the core QC topics are discussed, complete with the necessary mathematical formalism. This includes the notions of qubit, quantum gates and quantum circuits. In addition to that, the book provides a detailed treatment of a series of important concepts from quantum information theory, in particular entanglement and the no-cloning theorem, followed by discussion about quantum key distribution and its various protocols. Finally, the canon of most important QC algorithms and algorithmic techniques is covered in-depth - from the Deutsch-Jozsa algorithm, through Groverโs search, to Quantum Fourier Transform, quantum phase estimation and Shorโs algorithm.ย ย
The book is an accessible introduction into the vibrant and fascinating field of quantum computing, offering a blend of academic diligence with pragmatism that is so central to software development world. All of the discussed theoretical aspects of QC are accompanied by runnable code examples, providing the reader with two different angles - mathematical and programmatic - of looking at the same problem space.ย
โฆ Table of Contents
Preface
Acknowledgements
Contents
Part I
1 Historical Background
1.1 Historical Development of Quantum Theory
1.2 Entanglement and the Debate About True Nature of Reality
1.3 History of Quantum Computing
References
2 Basics of Quantum Mechanics
2.1 Quantum State
2.2 Two-Level Quantum System
2.2.1 Superposition
2.2.2 Bloch Sphere
2.3 Born Rule
2.4 State Evolution
2.4.1 Unitary Transformations
2.4.2 Beam Splitter
2.4.3 Mach-Zehnder Interferometer
2.5 Observables
2.6 Larger Systems
2.6.1 Tensor Product
2.6.2 Entanglement
2.7 No-Cloning Theorem
2.8 Postulates of Quantum Mechanics
2.9 Bell's Theorem
2.9.1 Bell's Inequality
2.9.2 CHSH Inequality
References
3 Getting Started with QDK and Q#
3.1 Quantum Development Kit
3.1.1 Setting up the QDK
3.1.2 Setting up the IDE
3.2 Q#
3.2.1 Core Language Concepts
3.2.2 Types
3.2.3 Callables
3.2.4 Generic Programming
3.3 Quantum Intermediate Representation
3.4 Azure Quantum
3.5 Quantum Simulators
3.5.1 Full State Simulator
3.5.2 Toffoli Simulator
3.5.3 Resources Estimation
References
Part II
4 Quantum Computing
4.1 Qubits
4.2 Quantum Circuits
4.3 H Gate and the Superposition
4.4 Pauli Gates
4.4.1 I Gate
4.4.2 X Gate
4.4.3 Z Gate
4.4.4 Y Gate
4.4.5 Further Considerations
4.5 Rotation Gates
4.5.1 Rz Gate
4.5.2 S Gate
4.5.3 T Gate
4.5.4 Rx and Ry Gates
4.6 Multi Qubit Gates
4.6.1 Controlled Gates
4.6.2 CNOT Gate
4.6.3 SWAP Gate
4.6.4 CZ Gate
4.6.5 Toffoli Gate
4.7 Gate Universality
4.8 DiVincenzo's Criteria
References
5 Entanglement
5.1 Bell States
5.2 Testing Bell's Theorem
5.2.1 Bell's Inequality in Q#
5.2.2 CHSH Inequality in Q#
5.3 Non-local Games
5.3.1 CHSH Game
5.3.2 GHZ Game
5.4 Teleportation
5.5 Entanglement Swapping
5.6 Superdense Coding
5.7 Entanglement as a Resource
References
6 Quantum Key Distribution
6.1 Key Distribution in Cryptography
6.2 BB84 Protocol
6.3 B92 Protocol
6.4 EPR-Based Quantum Key Distribution
References
Part III
7 Algorithms
7.1 DeutschโJozsa Algorithm
7.1.1 Deutsch's Problem
7.1.2 DeutschโJozsa Generalization
7.1.3 Oracle Definitions
7.1.4 Q# Implementation
7.2 BernsteinโVazirani Algorithm
7.2.1 BernsteinโVazirani Problem
7.2.2 Q# Implementation
7.3 Grover's Algorithm
7.3.1 Grover's Oracle
7.3.2 Inversion About the Mean
7.3.3 Grover Diffusion Operator
7.3.4 Review of Algorithm Steps
7.3.5 Q# Implementation
7.4 Quantum Fourier Transform
7.4.1 Roots of Unity
7.4.2 Discrete Fourier Transform
7.4.3 Quantum Fourier Transform
7.4.4 Q# Implementation
7.5 Quantum Phase Estimation
7.5.1 Core Theory
7.5.2 Q# Implementation
7.6 Shor's Algorithm
7.6.1 Period of a Function
7.6.2 Quantum Order Finding
7.6.3 Summary of Steps
7.6.4 Q# Implementation
References
8 Where to Go Next?
References
Appendix Index
Index
๐ SIMILAR VOLUMES
<span>This book aims to provide a pedagogical introduction to the subjects of quantum information and quantum computation. Topics include non-locality of quantum mechanics, quantum computation, quantum cryptography, quantum error correction, fault-tolerant quantum computation as well as some experim
Presents the main practical results reported so far and the main theoretical developments in DNA computing coverage. The authors discuss Adleman's famous experiment, with subsequent varients as well as many theoretical models: sticker systems and Watson-Crick automata, insertion-deletion systems, sp
1. Prerequisites. 1.1. Preliminary Notions and Notations. 1.2. Operations on Strings and Languages. 1.3. A General Computing Framework. 1.4. Chomsky Grammars. 1.5. Lindenmayer Systems. 1.6. Automata and Transducers. 1.7. Characterizations of Computably Enumerable Languages. 1.8. Universal Turing Ma