Quantum Computing in Simple Words

What problems can Quantum Computers solve?

  • Classical Computing Problems
  • Qubits actually store the superposition of every possible quantum state, so a single qubit can hold two binary values at once, meaning a single operation can be carried out on 2n values simultaneously, where n is the number of qubits. An exemplary one is the Deutsch-Jozsa algorithm. Suppose you have a function that takes in sets of 0s and 1s, and the function may do one of two things: it may be constant (always put out a zero or always put out a one), or it may be balanced (output zero for half the domain and one for half the domain). Your job is to figure out whether the function is constant or balanced. Using a classical computer, you must test just over half of the possible inputs. So, if the function takes in n bits (i.e. a set of n 0s and 1s), then there are 2𝑛 possible inputs, so you have to test 2𝑛−1+1 possible inputs (half of the possible inputs, plus one to get over half) in the worst case. This means you must evaluate the function 2𝑛−1+1 times. That exponential time complexity makes the algorithm very, very slow for even, say, 10 bits. The Deutsch-Jozsa algorithm can measure whether the function is constant or balanced with only a single evaluation of the function, together with a few qubit operations, some of which depend on n in a linear polynomial fashion. That is, you’ve upgraded your algorithm from exponential to polynomial, a huge gain in time for even low values of n but especially at higher values.
  • Chemistry
  • The issue with ordinary computers is that simulating at the atomic level is exponentially costly in the number of particles involved. In contrast, quantum computers are exponentially faster at these atomic-level simulations. A concrete example of where quantum computing is expected to make an impact is the production of nitrogen-based fertilizers, which accounts for a 1–3% of the world’s energy expenses. Our current methods for fertilizer production haven’t changed drastically since the discovery of the famed Haber Process 100 years ago. But if we could mimic nitrogenase, a biological enzyme that produces fertilizer much more efficiently, we could make fertilizer production substantially cheaper and greener. Nitrogenase is a very complicated molecule (pictured below[3]), zillions of times more complicated than what the world’s best supercomputers can solve. But a paper published last year by Microsoft and ETH Zurich demonstrated that a billion-qubit (quantum bit) computer could computationally handle nitrogenase. However, getting to a billion qubits is still an uphill battle—current devices have just ~100 qubits. But a billion doesn’t seem out of range in the coming decades, and moreover, we’ll be able to solve smaller but useful molecules along the way (e.g. finding ground state energies for the cholesterol molecule—only ~1000 qubits needed).
  • Cryptography
  • Many important aspects of IT security rely on encryption and public key cryptography, which are essential for e-commerce and protecting secret electronic information. These techniques are based in turn on mathematical algorithms that are very difficult to “break”. Modern algorithms with suitable key lengths (e.g. AES-128, RSA-2048, ECDSA-256, etc.) are not susceptible to brute force attack – even with massive amounts of computing power, they would take centuries or, in some cases, even longer than the lifetime of the universe to break. However, it is possible to create unique algorithms for quantum computers (e.g. “Shor’s algorithm”) that dramatically reduce the time it takes to break these algorithms. Symmetric algorithms used for encryption, like AES, are still thought to be safe (with sufficient key length – e.g. AES-256 or larger); however, current asymmetric algorithms like RSA and ECDSA will be rendered essentially useless once quantum computers reach a certain scale. This will break nearly every practical application of cryptography in use today, making e-commerce and many other digital applications that we rely on in our daily lives totally insecure. However, Ros Anderson does not believe in Quantum Cryptography.

What is Quantum Computing?

Quantum computing is the use of quantum-mechanical phenomena such as superposition and entanglement to perform computation. Qubits are fundamental to quantum computing and are somewhat analogous to bits in a classical computer. Qubits can be in a 1 or 0 quantum state. But they can also be in a superposition of the 1 and 0 states. However, when qubits are measured the result is always either a 0 or a 1; the probabilities of the two outcomes depends on the quantum state they were in.

3 types of Quantum Computing

Current State of QC

The table below was compiled from Qubit Count. It provides information about companies that generated maximum number of Qubits by every technology
Company Type Technology Number of Qubits Now
Intel Gate Superconducting 49
IQOQI/Univ. Ulm/Univ. Innsbruck Gate Ion Trap 20
Intel Gate Spin 26
Univ. of Wisconsin Gate Neutral Atoms 49
Harvard/MIT Quantum Simulator Rydberg Atoms 51
Univ. of Maryland / NIST Quantum Simulator Ion Trap 53
D-Wave Annealing Superconducting 2048
NTT/Univ. of Tokyo/Japan NII Qtm Neural Network Photonic 2048
Fujitsu Digital Annealer Classical 1024
Alibaba/Univ. of Michigan Software Simulatorr Classical 144

How to install Qiskit?

Qiskit is an open-source quantum computing framework for leveraging today's quantum processors in research, education, and business
1. Install Anaconda on your computer
2. Install Qiskit, Qiskit Aqua and Qiskit Aqua Chemistry
pip install qiskit
3. Create an IBM Q account.
4. Get an API token from the IBM Q website under “My Account” > “Advanced”
5. Take your token, here called MY_API_TOKEN, and pass it to the IBMQ.save_account() function:
from qiskit import IBMQ
6. Explore the tutorials

Programming languages available for quantum computers

The main quantum computing programming languages are Q# and QISKit.