๐”– Scriptorium
โœฆ   LIBER   โœฆ

๐Ÿ“

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

โฌ‡  Acquire This Volume

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


Introduction to quantum computation and
โœ Adriano Barenco (editor), Andrew M Steane (editor), Timothy P Spiller (editor), ๐Ÿ“‚ Library ๐Ÿ“… 1998 ๐Ÿ› World Scientific Publishing Company ๐ŸŒ English

<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

Computing with Cells and Atoms: An Intro
โœ Cris Calude, Gheorghe Paun ๐Ÿ“‚ Library ๐Ÿ“… 2000 ๐Ÿ› CRC Press ๐ŸŒ English

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

Computing with Cells and Atoms: An Intro
โœ Cris Calude, Gheorghe Paun ๐Ÿ“‚ Library ๐Ÿ“… 2000 ๐Ÿ› Crc Pr Inc ๐ŸŒ English

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