PART 1 FOUNDATIONS 1
1 ■ Advantages and challenges of programming quantum computers 3
2 ■ A first look at quantum computations: The knapsack problem 19
3 ■ Single-qubit states and gates 34
4 ■ Quantum state and circuits: Beyond one qubit 69
PART 2 FUNDAMENTAL ALGORITHMS AND PATTERNS 109
5 ■ Selecting outcomes with quantum oracles 111
6 ■ Quantum search and probability estimation 133
7 ■ The quantum Fourier transform 159
8 ■ Using the quantum Fourier transform 186
9 ■ Quantum phase estimation 218
PART 3 QUANTUM SOLUTIONS: OPTIMIZATION AND BEYOND 251
10 ■ Encoding functions in quantum states 253
11 ■ Search-based quantum optimization 276
12 ■ Conclusions and outlook 304
Quantum computing opens a new realm of possibilities for developers working in complex research and business domains like industrial simulation, predictive modeling, drug discovery, and operations research. Building Quantum Software with Python gives you the foundation you’ll need to build the software for the quantum age.
In Building Quantum Software with Python you will learn about:
Quantum computers are rapidly becoming a realistic alternative for complex research and business problems. Building Quantum Software with Python lays out the math and programming techniques you’ll need to apply quantum solutions to real challenges like predictions based on massive data sets and intricate simulations. You will learn which quantum algorithms and patterns apply to different types of problems and how to build your first quantum applications.
Building Quantum Software with Python builds your understanding of quantum computing by relating it to the classical computing concepts you already know. With careful explanations and thoughtful illustrations, it takes you from zero knowledge to creating quantum solutions that run on a simulator or on real quantum hardware. The book utilizes intuitive visualizations of quantum systems with tables and diagrams developers will find instantly familiar, and code implementations that are easier to understand than complex algebra.
As you go, you’ll explore potential applications of quantum computing, including useful probability distributions for truly random sampling, quantum optimization solutions using the knapsack problem, and quantum solutions for unstructured search. All the simulator code you write can be easily converted to run on IBM Quantum hardware.
For developers with basic math and programming skills. No specialist knowledge of quantum computing required.