Quantum-Codebooks

←←Back to Homepage

Quantum Computing Resources

Welcome to this repository, which contains comprehensive solutions and walkthroughs for various popular quantum computing packages and platforms. Quantum computing is a rapidly growing field that has the potential to revolutionize a wide range of industries, from finance and healthcare to logistics and machine learning.

The packages and platforms that are covered in this repository include:

( medium articles will be added soon)

Table

Contents

The repository is organized by resource, with each resource having its own subdirectory containing the solutions and walkthroughs. The subdirectories are named after the specific quantum computing package or platform and contain detailed explanations and examples of how to use it. The repository will be regularly updated with new solutions and walkthroughs as new quantum computing packages and platforms are released.

Xanadu Codebook

Introduction

This folder contains solutions to the introductory module of the Xanadu Quantum Codebook. The solutions are written in python and aim to provide a solid understanding of the concepts of quantum computing.

Serial Number Title Links Medium
I1 All About Qubits Open In Colab Medium
I2 Quantum Circuits Open In Colab Medium
I3 Unitary Matrix Open In Colab Medium
I4 X and H Open In Colab Medium
I5 It’s just a Phase Open In Colab Medium
I6 From a different angle Open In Colab Medium
I7 Universal gate sets Open In Colab Medium
I8 Prepare Yourself Open In Colab Medium
I9 Measurements Open In Colab Medium
I10 What did you expect? Open In Colab Medium
I11 Multi-Qubit Systems Open In Colab Medium
I12 All tied up Open In Colab Medium
I13 We’ve got it under control Open In Colab Medium
I14 Multi-qubit gate challenge Open In Colab Medium
I15 Quantum Teleportation Open In Colab Medium

Algorithms

Introduction to quantum Algorithms

Serial Number Title Links Medium
A1 No exponential Magic Open In Colab Medium
A2 The Magic 8-ball Open In Colab Medium
A3 Pair Programming Open In Colab Medium
A4 Making and breaking promises Open In Colab Medium
A5 Hadamard Transform Open In Colab Medium
A6 Deutsch Josza Open In Colab Medium

Fourier

In this node, we will change gears and discuss the basics of the classical Discrete Fourier transform (DFT), which has made a significant impact in the field of signal processing for transforming data from the time domain to the frequency domain and back. The DFT is a unitary transformation, which makes it a good candidate for quantum computers

Serial Number Title Links Medium
F1 Changing Perspectives Open In Colab Medium
F2 Quantum Fourier Transform Open In Colab Medium
F3 Connecting the Dots Open In Colab Medium

Quantum Phase Estimation

In this module we are going to learn about an algorithm that helps us estimate the eigenvalue of a given unitary operator. The eigenvectors of a unitary operator form an orthonormal basis set. Applying the unitary operator on one of its eigenvectors multiplies it by a global phase (the eigenvalue). For unitary operators, the eigenvalues have magnitude and can be written in the form , where is called the eigenphase corresponding to the eigenvalue.

Serial Number Title Links Medium
P1 Catch the Phase Open In Colab Medium
P2 It’s not just a Phase Open In Colab Medium
P3 Let’s be rational Open In Colab Medium
P4 A mixed bag Open In Colab Medium

Shor’s algorithm

Modular arithmetic is a fundamental concept of basic mathematics. We say that two integers are equivalent modulo if the difference between them is a multiple of , that is, there exists an integer such that . In order to understand this type of equivalence it is common to work with a “clock”-like picture, which will have hours instead of . We will say that two numbers are equivalent if they mark the same hour on the clock.

Serial Number Title Links Medium
S1 Modular arithmetic Open In Colab Medium
S2 Classical factorization Open In Colab Medium
S3 Period finding Open In Colab Medium
S4 Shor’s algorithm Open In Colab Medium
S5 The RSA system Open In Colab Medium

G, Grover’s algorithm

In module A, we sped up the lock-breaking process by testing states in pairs. This told us when the solution was present, but not which state it was. Our goal now will be to try and figure out the state directly, and our broad strategy will be to start in the uniform superposition and somehow “pump” amplitude from the other states into , so that we measure the solution with high probability. This strategy is called amplitude amplification. Let’s start by exploring what happens to amplitudes when we apply the oracle.

Serial Number Title Links Medium
G1 Introduction to Grover Search Open In Colab Medium
G2 Searching with Geometry Open In Colab Medium
G3 Searching with circuits Open In Colab Medium
G4 Steps and SpeedUps Open In Colab Medium

H, Hamiltonian simulation

Fundamentally, quantum computing is different from classical computing because of the physical laws working “under the hood” of the computer. To understand quantum computing in this light, it’s useful to treat Nature as a sort of black box. It takes an initial condition as an input, evolves it using physical laws, and outputs experimental data (aka measurements) at the end. We can try to infer the laws of Nature from looking at the pattern of input conditions and output measurements.

Serial Number Title Links Medium
H1 Simulating Nature Open In Colab Medium
H2 Unitaries Open In Colab Medium
H3 Hamiltonians Open In Colab Medium
H4 Energy in quantum systems Open In Colab Medium
H5 Approximating Exponentials Open In Colab Medium
H6 Linear Combination of Unitaries Open In Colab Medium
H7 Generalizing PREPARE and SELECT Open In Colab Medium
H8 Comparing Methods Open In Colab Medium
H9 Qubitization Open In Colab Medium

E, Error Correction

Serial Number Title Links Medium
E1 Got Errors? Open In Colab Medium
E2 No Flip Flopping Allowed Open In Colab Medium
E3 Are you Shor this works? Open In Colab Medium

Qiskit Textbook

Prerequisites

Learn about the software used to write the Qiskit (Python and Jupyter Notebooks), and set up your environment to reproduce the experiments.

Serial Number Title Links Medium
1 Checking versions and installing Open In Colab Medium
2 Complex Arithmetic Open In Colab Medium
3 A very basic intro to Linear Algebra Open In Colab Medium

Quantum States and Qubits

This chapter introduces the computing concepts that we’ll explore in later chapters, then introduces basic quantum concepts.

Serial Number Title Links Medium
1 Atoms of Computation Open In Colab Medium
2 Representing Qubit States Open In Colab Medium
3 Single Qubit Gates Open In Colab Medium

Multiple Qubits and Entanglement

With the basics down, this chapter explores the consequences of these new quantum effects, and sets us up with tools to understand quantum algorithms.

Serial Number Title Links Medium
1 Multiple Qubits and Entanglement Open In Colab Medium
2 Phase Kickback Open In Colab Medium
3 Basic Circuit Identities Open In Colab Medium

Quantum Protocols and Quantum Algorithms

In this chapter, we use quantum effects to build powerful algorithms, starting from simple proof-of-concept algorithms, through to Shor’s famous factoring algorithm (and beyond).

Serial Number Title Links Medium
1 Quantum Circuits Open In Colab Medium
2 Deutsch Jozsa Algorithm Open In Colab Medium
3 Bernstein-Vazirani Algorithm Open In Colab Medium
4 Simons Algorithm Open In Colab Medium
5 Quantum Fourier Transform Open In Colab Medium
6 Quantum Phase Estimation Open In Colab Medium

Investigating Quantum Hardware Using Microwave Pulses

In this chapter, we get a level closer to the real quantum machines. Learn about the physics of these devices, and how to program them at the level of microwave pulses.

Serial Number Title Links Medium
1 TBA Open In Colab Medium

Quantum Algorithms for Applications

If algorithms are the solution, then what is the problem? In this chapter, we look at how we can take general algorithms and apply them to more specific situations.

Serial Number Title Links Medium
1 TBA Open In Colab Medium

Investigating Quantum Hardware Using Quantum Circuits

All circuit-based quantum devices share some similar characteristics and challenges. In this chapter, we explore how quantum circuits perform on modern quantum computers, and ways to improve performance.

Serial Number Title Links Medium
1 TBA Open In Colab Medium

QuTiP Codebook

Visualizations

Serial Number Title Description Links Medium
1 Bloch Sphere Animation Introduction to basic concepts in linear algebra Open In Colab Medium

Google Cirq

Serial Number Title Description Links Medium
1 Scalars, vectors, matrices and tensors Introduction to basic concepts in linear algebra Open In Colab Medium

Microsoft Q#

Serial Number Title Description Links Medium
1 Scalars, vectors, matrices and tensors Introduction to basic concepts in linear algebra Open In Colab Medium

Getting Started

To use this repository, simply clone it to your local machine using the following command:

git clone https://github.com/MonitSharma/Quantum-Codebooks.git

Contributing

If you would like to contribute to this repository, please submit a pull request. We welcome any additions or improvements to the existing solutions and walkthroughs. We are also open to suggestions for new quantum computing packages and platforms that should be covered in this repository.

Contact

If you have any questions or issues with this repository, please don’t hesitate to reach out to us by opening an issue on this repository or contact us via email.

The repository is designed to be a valuable resource for anyone interested in learning about quantum computing and working with quantum computing packages and platforms. Whether you are a quantum computing researcher, a developer looking to build quantum applications, or just someone interested in learning more about quantum computing, this repository has something for you.

We encourage you to explore the solutions and walkthroughs provided in this repository and try them out for yourself. With the resources provided in this repository, you will have everything you need to start working with quantum computing packages and platforms and building your own quantum applications.

Thank you for visiting this repository and we hope you find it useful in your journey to learn about quantum computing.