Introduction to Quantum Computing with Q# and QDK

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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. 

Author(s): Filip Wojcieszyn
Series: Quantum Science and Technology
Publisher: Springer
Year: 2022

Language: English
Pages: 296

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