Saturday, May 14, 2022
In 1928, David Hilbert, a German Mathematician asked a problem whether there exists a general algorithm a mathematician can follow which would let them figure out if any given mathematical statement is provable.
Hilbert hoped for a pen and paper algorithm like that of multiplying two numbers. In this case the input would not be the two numbers but a mathematical problem and after following a series of steps, you would know if the conjecture is provable or not.
Alan Turing tried solving this problem by describing the well known 'Turing machine' - a single, universal programmable computing device that could perform any algorithm whatsoever. Turing argued that a single device could emulate any algorithm, provided it is correct. Turing’s machine became the gold standard: An algorithm was what we could perform on a Turing machine. However there was a little discomfort in Turing's analysis as observed by English physicist David Deutsch who suggested a deeper approach in defining algorithm.
Deutsch pointed out that every algorithm is carried out by a physical system. He then asked the question if there is a (single) universal computing device which can efficiently simulate any other physical system? If there was such a device, you could use it to perform any algorithm whatsoever, because algorithms have to be performed on some kind of physical system. And so the device would be a truly universal computer.
Everyday classical computers are inefficient in simulating quantum mechanics. They are really slow at quantum simulations. Hence came the need of QUANTUM COMPUTERS. They can do everything a conventional computer does, but also simulates quantum calculations.
In the classical computers (that we use today), the fundamental unit of information is a bit. We have been taught since day 1 that computers understand the language of 0's and 1's. Every algorithm, every instruction is basically some pattern of 0 and 1 which it understands. However in the real world, not in the mathematical world, there should be a way of storing these bits in the real system. In the classical computers this is done in a variety of ways. They are stored in the form of electric charges on your computer's memory chip. Old-fashioned hard disks take a different approach, using tiny magnets to store bits. However as a programmer we do not observe such subtle ways of storing the bits. Though programmers working on high performance algorithms do take care of how the bits are stored physically.
As the conventional computers are build of 0 and 1, quantum computers are build of QUANTUM BITS(QUBITS). Just like a state of a bit is 0 or 1, state of a qubit is a 2-D column vector.
This representation is known as the KET notation and is represented as: |0>
There are 2 special quantum states corresponding to the 0 and 1 states of classical bits. These are |0> and |1>
|0> and |1> are just two possible states out of the many states of qubit. Remember it is a 2-D vector and hence we can have a linear combination of the two simple states -
β |0> + δ |1> is a quantum state. Here β and δ are known as amplitudes and can be imaginary as well.
The amplitudes follow a constraint that is the sum of their square is always equal to 1. (β^2) + (δ^2) = 1 This is called the normalization constraint.
Summing up all these ideas in one sentence: the quantum state of a qubit is a vector of unit length in a two-dimensional complex vector space known as state space.
Quantum computing also makes it possible to break the current encryption schemes which basically means quantum computing has the power to disrupt the current way internet runs.
See you next Saturday, until then have a great weekend :)
Cheers!
Here are the last three posts if you were too occupied to read them: