Book Image

A Practical Guide to Quantum Machine Learning and Quantum Optimization

By : Elías F. Combarro, Samuel González-Castillo
4.5 (2)
Book Image

A Practical Guide to Quantum Machine Learning and Quantum Optimization

4.5 (2)
By: Elías F. Combarro, Samuel González-Castillo

Overview of this book

This book provides deep coverage of modern quantum algorithms that can be used to solve real-world problems. You’ll be introduced to quantum computing using a hands-on approach with minimal prerequisites. You’ll discover many algorithms, tools, and methods to model optimization problems with the QUBO and Ising formalisms, and you will find out how to solve optimization problems with quantum annealing, QAOA, Grover Adaptive Search (GAS), and VQE. This book also shows you how to train quantum machine learning models, such as quantum support vector machines, quantum neural networks, and quantum generative adversarial networks. The book takes a straightforward path to help you learn about quantum algorithms, illustrating them with code that’s ready to be run on quantum simulators and actual quantum computers. You’ll also learn how to utilize programming frameworks such as IBM’s Qiskit, Xanadu’s PennyLane, and D-Wave’s Leap. Through reading this book, you will not only build a solid foundation of the fundamentals of quantum computing, but you will also become familiar with a wide variety of modern quantum algorithms. Moreover, this book will give you the programming skills that will enable you to start applying quantum methods to solve practical problems right away.
Table of Contents (27 chapters)
1
Part I: I, for One, Welcome our New Quantum Overlords
4
Part II: When Time is Gold: Tools for Quantum Optimization
10
Part III: A Match Made in Heaven: Quantum Machine Learning
16
Part IV: Afterword and Appendices
17
Chapter 13: Afterword: The Future of Quantum Computing
19
Bibliography
20
Index
Appendix A: Complex Numbers
Appendix E: Production Notes

Appendix C
Computational Complexity

An algorithm is a finite answer to an infinite number of questions
— Stephen Kleene

Computational complexity theory is the branch of theoretical computer science that is concerned with quantifying the resources needed to solve problems with algorithms. It asks questions such as “How much time is needed to multiply two integer numbers of bits each?”, “Do you need more memory space to solve a problem than to check its solution?”, or “Is randomness useful in computational tasks?”.

In this brief introduction to computational complexity, we will focus mainly on the concepts involved in estimating how much time is required to solve certain problems. For a thorough treatment of this and other topics (including space or memory complexity, the role of randomness in computation, approximation algorithms, and other advanced matters), you can check standard computational complexity books such as the ones by Sipser...