In 1981, the Nobel laureate Richard Feynman asked, “What kind of computer are we going to use to simulate physics?”
Nature isn’t classical, dammit, and if you want to make a simulation of Nature, you’d better make it quantum mechanical, and by golly it’s a wonderful problem, because it doesn’t look so easy.
Richard Feynman speech can be used to see how powerful quantum computing can be into letting us understand more about our universe, since quantum physics tries to explain and interpret how our universe is built from the deepest subatomic dimensions to huge macroscopic phenomena. This can lead us to ask ourselves if our classical computers are going to be able to deal with problems that nature by its essence shows us to be a quantum complex behavior, where most of them are exponential problems, which are unfeasible for classical computers to solve nowadays at a scalable time.
So the question is, how quantum computers could solve these kinds of problems someday?
This repository is focused discussing topics about Quantum Computing and Quantum Information Theory, from the understanding of Quantum Computing and Quantum Information Theory, where we'll discuss Algorithms, Cryptography Protocols, Machine Learning, Approximation Optimization Algorithms, and Information Behavior of graphs throughout Quantum Walks and Algebraic Combinatorics concepts, from the theoretical aspects till Quantum Programming with the IBM Qiskit, PennyLane and Q#.
In the following notebooks we will see detailed Quantum Computing concepts, from well-known aspects so as like Quantum Superposition and Entanglement, too simple and more complex Quantum Algorithms and its implementations in Qiskit.
This last section is focused on Quantum Information and Algebraic Combinatorics
Further, you'll also be able to find my code from Quantum Programming Competitions hosted by Microsoft here