I am the first to admit that a deep understanding of quantum physics is not something I have, and my goal ( or your goal ) of becoming a quantum developer does not necessarily need it. No more do you need to know the inner workings of transistors or microchips in order to be a classical developer using java, the same applies for quantum. However, let us delve into some basics, that will help us with the nomenclature of the software libraries we will use.
The Nobel prize-winning physicist Richard Feynman is attributed to the quote “If you think you understand quantum mechanics, then you don’t understand quantum mechanics”, and he was the leading physicist in the area, so let’s not get too caught up if we don’t fully understand everything. Try and develop a sense of meaning, as if you were going to try and explain it to someone else.
The noun superposition is defined as “the action of placing one thing on or above another, especially so that they coincide.” Quantum superposition means that any two quantum states can be added together (superposed) and a valid quantum state will result. Or, that any quantum state can be defined by one of more quantum states.
Now … using this idea of superposition , let us take the example of sets of coins. We write out their states ( H – heads, T – tails) first…
2 coins – HH, TT, HT , TD – 4 results
3 coins – HHH, HHT, HTH, HTT, THH, THT, TTH, TTT – 8 results
4 coins – … – 16 results
5 coins – … – 32 results
So, as we add a coin each time the number of results that we can have are 2^n .
Whereas the n (classical) coins are in only one of the 2^n possible results, n qubits can be in a superposition of all 2^n possible results. ( we will dig into qubits later )
The Probability Difference
In the case of a set of coins, the state that they can be in is a 2^n space. And they can only hold that one particular state, even if we don’t know what that is. As we explained above on superposition , quantum computers can hold superpositions of 2^n distinct logical states, which means they can solve problems potentially exponentially faster. These values can be positive, negative or complex numbers unlike probabilities which are positive or zero.
Where does superposition come into developing quantum algorithms. If you take sound waves for example, one is noise and the other is a cancellation tone to remove noise like in noise cancelling headphones, then the principle of superposition and interference is used to result in cancelled noise.
In the quantum circuit below, which we will develop, the same principles apply. We start with a superposition and then we apply an algorithm by creating a quantum circuit to apply interference on the superposition to result in our solution.
When we are talking about quantum development using qiskit.org for example we are talking about developing these quantum circuits. Next up, entanglement.
My Quantum challenge ?
It’s time to become a quantum developer. And yes I will update my linkedin profile to say that! 😉 I will endeavour to learn everything I can in the area of quantum development using IBM’s resources and its software libraries. Where possible I will share all the links out and you can follow along. My “beginners mind” is set and ready to go ( Shoshin) .
Shoshin : It’s the open-minded attitude of being ready to learn; without preconceived notions, judgement or bias.
To follow along then keep an eye out on my blog or follow me on linkedin https://www.linkedin.com/in/andrewpenrose/ where I will share the blog post links and updates.