Learn the mathematics behind quantum computing and explore the high-level quantum language Silq to take your quantum programming skills to the next level
Key Features
• Harness the potential of quantum computers more effectively using Silq
• Learn how to solve core problems that you may face while writing quantum programs
• Explore useful quantum applications such as cryptography and quantum machine learning
Book Description
Quantum computing is a growing field, with many research projects focusing on programming quantum computers in the most efficient way possible. One of the biggest challenges faced with existing languages is that they work on low-level circuit model details and are not able to represent quantum programs accurately. Developed by researchers at ETH Zurich after analyzing languages including Q# and Qiskit, Silq is a high-level programming language that can be viewed as the C++ of quantum computers! Quantum Computing with Silq Programming helps you explore Silq and its intuitive and simple syntax to enable you to describe complex tasks with less code.
This book will help you get to grips with the constructs of the Silq and show you how to write quantum programs with it. You’ll learn how to use Silq to program quantum algorithms to solve existing and complex tasks. Using quantum algorithms, you’ll also gain practical experience in useful applications such as quantum error correction, cryptography, and quantum machine learning. Finally, you’ll discover how to optimize the programming of quantum computers with the simple Silq.
By the end of this Silq book, you’ll have mastered the features of Silq and be able to build efficient quantum applications independently.
What you will learn
• Identify the challenges that researchers face in quantum programming
• Understand quantum computing concepts and learn how to make quantum circuits
• Explore Silq programming constructs and use them to create quantum programs
• Use Silq to code quantum algorithms such as Grover's and Simon’s
• Discover the practicalities of quantum error correction with Silq
• Explore useful applications such as quantum machine learning in a practical way
Who This Book Is For
This Silq quantum computing book is for students, researchers, and scientists working on the latest quantum computing techniques and software development. Quantum computing enthusiasts who want to explore this futuristic technology will also find this book useful. Beginner-level knowledge of any programming language as well as mathematical topics such as linear algebra, probability, complex numbers, and statistics is required.
Author(s): Srinjoy Ganguly, Thomas Cambier
Edition: 1
Publisher: Packt Publishing
Year: 2021
Language: English
Commentary: Vector PDF
Pages: 310
City: Birmingham, UK
Tags: Machine Learning; Algorithms; Parallel Programming; Quantum Computing; Fourier Transform; Quantum Cryptography; Silq
Cover
Title Page
Copyright and Credits
Dedication
Contributors
Table of Contents
Preface
Section 1: Essential Background and Introduction to Quantum Computing
Chapter 1: Essential Mathematics and Algorithmic Thinking
Introducing linear algebra for quantum computing
Vectors and vector spaces
Inner products and norms
Matrices and their operations
The eigenvalues and eigenvectors of an operator
Tensor products
Coordinate systems, complex numbers, and probability
Introducing coordinate systems
Complex numbers and the complex plane
Probability
Defining computational thinking
Decomposition
Pattern recognition
Data representation and abstraction
Introducing computer algorithms
Defining an algorithm
The linear search algorithm
The calculation of the time and space complexity of algorithms
Time and space complexity
Notation for time and space complexity
Calculation and analysis of the complexity of algorithms
Summary
Further reading
Chapter 2: Quantum Bits, Quantum Measurements, and Quantum Logic Gates
Introducing single quantum bits – qubits and superposition of qubits
Learning about the Bra-Ket notation for qubits
Superposition of qubits
Illustrating qubits in different bases
Bloch sphere representation of qubits
The Z basis states — |0> and |1>
The X basis states —  and 
The Y basis states –  and 
Introducing quantum measurements
Mathematics of projective measurements
Quantum logic gates
Pauli gates
The Hadamard gate – the quantum H gate
The S gate
The S (S dagger) gate
The T gate –  gate
The T (T dagger) gate
The  gate
The  gate
The  gate
Summary
Further reading
Chapter 3: Multiple Quantum Bits, Entanglement, and Quantum Circuits
Introducing multiple quantum bits
The wonder of quantum entanglement
Exploring the Bell states system
Verifying entanglement of quantum states
Exploring multi-qubit quantum logic gates
The quantum CX or CNOT gate
The quantum CZ or CPHASE gate
The quantum SWAP gate
The quantum CCX or CCNOT gate – Toffoli gate
The quantum CSWAP gate – Fredkin gate
Quantum teleportation
Quantum superdense coding
Summary
Chapter 4: Physical Realization of a Quantum Computer
Criteria for quantum computation existence
Depicting quantum information
Unitary transformation capability
Reference initial quantum states preparation
Output measurement capability
Superconducting qubit-based quantum computers
Superconducting qubits
NISQ era
Quantum annealing-based quantum computers
Ion-trap quantum computers
Nuclear magnetic resonance
Optical photonics-based quantum computers
Summary
Further reading
Section 2: Challenges in Quantum Programming and Silq Programming
Chapter 5: Challenges in Quantum Computer Programming
A brief history of classical computers
The challenges of today's classical computers
Understanding the assembly language
HLLs for classical computers
Low-level circuit programming of quantum computers
Introducing quantum programming languages
The IBM Qiskit quantum programming language
The Microsoft Q# quantum programming language
The Google Cirq quantum programming language
The challenges of quantum programming
Summary
Further reading
Chapter 6: Silq Programming Basics and Features
Technical requirements
Introducing Silq and its special features
Introducing Silq
Installing Silq
Installing Microsoft Visual Studio Code
Installing the Silq plugin
Introducing Silq data types
Defining variables in Silq
Control flow in Silq
Functions and iterations in Silq
Introducing Silq annotations
Introducing classical type annotations – !
The qfree annotation
The mfree annotation
The const annotation
The lifted annotation
Simple example programs using Silq
Summary
Further reading
Chapter 7: Programming Multiple-Qubit Quantum Circuits with Silq
Technical requirements
Exploring multi-qubit quantum logic gates in Silq
The quantum CX or CNOT gate
The quantum CZ or CPHASE gate
The quantum SWAP gate
The quantum CCX or CCNOT gate – the Toffoli gate
The quantum CSWAP gate – the Fredkin gate
Constructing quantum circuits with quantum logic gates using Silq
Implementing Bell states in Silq
Decomposing the CX gate
Implementing the GHZ state using Silq
Implementing a classical half adder circuit in Silq
Quantum teleportation
Quantum superdense coding
Summary
Section 3: Quantum Algorithms Using Silq Programming
Chapter 8: Quantum Algorithms I – Deutsch-Jozsa and Bernstein-Vazirani
Technical requirements
Introducing quantum parallelism and interference
Quantum parallelism
Quantum interference
Implementing the Deutsch-Jozsa algorithm
Problem statement
Classical solution
Quantum solution
Silq implementation
Designing a more concise version of the algorithm
Implementing the Bernstein-Vazirani algorithm
Problem statement
Classical solution
Quantum solution
Silq implementation
Summary
Chapter 9: Quantum Algorithms II – Grover's Search Algorithm and Simon's Algorithm
Technical requirements
Introducing search algorithms
Getting started with Grover's search algorithm
Grover's search for one solution using Silq programming
Grover's search for multiple solutions using Silq programming
Mathematical treatment of Grover's search for multiple solutions
Silq implementation of Grover's search for multiple solutions
Grover's search for an unknown number of solutions using Silq programming
Silq implementation of Grover's search for an unknown number of solutions
Introducing Simon's algorithm
The Silq implementation of Simon's algorithm
Summary
Further reading
Chapter 10: Quantum Algorithms III – Quantum Fourier Transform and Phase Estimation
Technical requirements
Introducing the classical Discrete Fourier Transform (DFT)
Exploring the QFT
Implementing the QFT using Silq
Getting started with the phase estimation algorithm
Implementing phase estimation using Silq
Summary
Further reading
Section 4: Applications of Quantum Computing
Chapter 11: Quantum Error Correction
Technical requirements
Introducing classical error correction technique
Redundancy and majority vote
Linear codes
Understanding quantum error correction
Working with bit-flip code
Working with phase-flip code
Working with Shor code
Summary
Chapter 12: Quantum Cryptography – Quantum Key Distribution
Technical requirements
Introducing classical cryptography techniques
The basics of cryptography
Overviewing the main types of encryption algorithms
Understanding quantum key distribution
Describing the quantum key distribution protocol
Implementing the quantum key distribution in Silq
Summary
Chapter 13: Quantum Machine Learning
Introducing classical machine learning
Types of learning
The K-means clustering algorithm
Artificial neural networks
Kernel support vector machines (SVMs)
Getting started with quantum machine learning
Encoding classical data into a quantum state
Kernel-based quantum machine learning models
Learning about the quantum K-means algorithm
Exploring variational circuits
Variational quantum classifier (VQC)
Variational quantum eigensolver (VQE)
Quantum approximate optimization algorithm (QAOA)
The latest developments in the field of quantum machine learning and quantum computing
Summary
Further reading
About Packt
Other Books You May Enjoy
Index