11/14/18

Quantum computing: an introduction

A very very very short introduction on Quantum computers


(I'll be updating this post regularily based on the proceedings of our #wednesdayeveningtrainings)

As progress on processing speed and miniaturization continues, we stuble on the phycical limits of modern binary digital electronic computers based on transistors. Using quantum physics, however, we can increase processing speed drastically. In digital computing data is encoded into binary digits (bits), each of which is always in one of two definite states (0 or 1). A quantum computer works with particles that can be in superposition. Quantum computers use Quantum Bits or Qubits, which can take on the value 0, or 1, or both simultaneously. This drastically speeds up processing. This, however, also poses other challenges.

For quantum computers to work, you'll need them to work in a super-cooled condition. Also, calculation results may not be accurate. You'll need software to determine whether the result is correct.

Also, not all problems can be solved using Quantum computers. Quantum computers can solve complex problems in which all possibilities must be considered and a conclusion must be drawn from them. Consider very intensive applications such as simulations, route optimization and artificial intelligence.
See "More on Computing and problem solving power of computers" below for more on this.

Also, to "feed" Quantum computers with data and to "get" the results you will still need classic computing power. This could form a bottleneck.

Are there any Quantum Computers available yet?

Yes... there are... but they are experimental and you can't yet buy them in the store nor can you online. IBM, Microsoft, Google, Apple and other companies are already building devices (see the resources below).  These computers still have limited power. At this moment, you can use online simulators to experiment with. Also see the resources below for a few examples.

More on Computing and problem solving power of computers

Automatons, or abstract machines, abstract computers, are theoretical models of a computer hardware or software systems. They form the theoretical background of all modern computers. Using these models, we can say something about the type of problems that computers can solve, and how (efficiently) they can do that. There are multiple classes of automata, varying from primitive to powerful. The most commonly known are Combinational logic, Finite-state Machines, Pushdown automatons and Turing Machines. Turing Machines are the most powerful and they form the theoretical basis of our modern computers.

Non-computable problems

First of all, there are classes of problems that cannot be solved at all (non-computable problems). A good example of a non-computable problem is the Halting Problem. Given a description of a Turing machine and its initial input, it cannot be determined whether the program, given it's input, ever completes.
Let's put these aside for the moment. Let's focus on computable problems.

Computable problems

Turing Machines are able to solve multiple classes of (mathematical, computable) problems in a more or less efficient way. And there are classes of problems that Turing Machine based are not able to solve at all. There is a problem class that a classical Turing Machine based computer can never solve, but a Quantum Computer can. An example of a problem in that class is the "Forrelation problem". See "Finally, a Problem That Only Quantum Computers Will Ever Be Able to Solve" for more on this.

Further reading

Do you want to read more on Quantum Computing? Here are some links…

On the basics of quantum physics:
Quantum Computing Expert Explains One Concept in 5 Levels of Difficulty (an excellent way to start!): https://www.youtube.com/watch?v=OWJCfOvochA
My YouTube list on Quantum Computing: https://www.youtube.com/playlist?list=PLSiMhBs48YvWecXqKP00NGuiP5UD6RoCk
How it Works: Quantum Computing: https://www.youtube.com/watch?v=WVv5OAR4Nik
Qubit (the basic unit of quantum information): https://en.wikipedia.org/wiki/Qubit
Quantum information (information that is held in the state of a quantum system): https://en.wikipedia.org/wiki/Quantum_information
Quantum system: https://en.wikipedia.org/wiki/Quantum_system
Quantum mechanics: https://en.wikipedia.org/wiki/Quantum_mechanics
Quantum Computing Primer: https://www.dwavesys.com/tutorials/background-reading-series/quantum-computing-primer
Quantum Computing basics: What is Quantum Computing?: https://www.microsoft.com/en-us/quantum/what-is-quantum-computing
Quantum Computing Technology: https://www.microsoft.com/en-us/quantum/technology

On the basics of the underlying math:
The Mathematics of Quantum Computers | Infinite Series: https://www.youtube.com/watch?v=IrbJYsep45E
Automata theory: https://en.wikipedia.org/wiki/Automata_theory
Turing machine: https://en.wikipedia.org/wiki/Turing_machine
Computational complexity theory: https://en.wikipedia.org/wiki/Computational_complexity_theory
Theory of computation | Computable and non-computable problems: https://www.geeksforgeeks.org/theory-of-computation-computable-and-non-computable-problems/
Finally, a Problem That Only Quantum Computers Will Ever Be Able to Solve: https://www.quantamagazine.org/finally-a-problem-that-only-quantum-computers-will-ever-be-able-to-solve-20180621
Complex conjugate: https://en.wikipedia.org/wiki/Complex_conjugate
Invertible matrix: https://en.wikipedia.org/wiki/Invertible_matrix
Unitary matrix: https://en.wikipedia.org/wiki/Unitary_matrix
Hadamard transform: https://en.wikipedia.org/wiki/Hadamard_transform
Hadamard_product: https://en.wikipedia.org/wiki/Hadamard_product_(matrices)
Tensor product: https://en.wikipedia.org/wiki/Tensor_product
Bra–ket notation: https://en.wikipedia.org/wiki/Bra%E2%80%93ket_notation
Quantum Mechanics Concepts: 1 Dirac Notation and Photon Polarisation: https://www.youtube.com/watch?v=pBh7Xqbh5JQ
Conjugate transpose: https://en.wikipedia.org/wiki/Conjugate_transpose
What are theta, phi and lambda in cu1(theta, ctl, tgt) and cu3(theta, phi, lam, ctl, tgt)? What are the rotation matrices being used? https://quantumcomputing.stackexchange.com/questions/2707/what-are-theta-phi-and-lambda-in-cu1theta-ctl-tgt-and-cu3theta-phi-lam
Grover - A fast quantum mechanical algorithm for database search: http://arxiv.org/abs/quant-ph/9605043

On quantum computer hardware:
IBM Q initiative to build commercially available universal quantum computers: https://www.research.ibm.com/ibm-q
Introduction to the D-Wave Quantum Hardware: https://www.dwavesys.com/tutorials/background-reading-series/introduction-d-wave-quantum-hardware

On Quantum computer software development:
Software Architecture & environment: https://www.dwavesys.com/software
Qiskit (an open-source quantum computing framework for leveraging today's quantum processors in research, education, and business): https://qiskit.org/
What is Qconfig in QISKit and how do I set it up?https://quantumcomputing.stackexchange.com/questions/2062/what-is-qconfig-in-qiskit-and-how-do-i-set-it-up
Quantum information: https://en.wikipedia.org/wiki/Quantum_information
Quantum computing: https://en.wikipedia.org/wiki/Quantum_computing
Quantum circuit: https://en.wikipedia.org/wiki/Quantum_circuit
Quantum logic gates: https://en.wikipedia.org/wiki/Quantum_logic_gate
Quantum circuit: https://en.wikipedia.org/wiki/Quantum_circuit
Qubit: https://en.wikipedia.org/wiki/Qubit
Microsoft Quantum Development Kit: https://www.microsoft.com/en-us/quantum/development-kit and https://docs.microsoft.com/en-us/quantum/?view=qsharp-preview
The Q# Programming Language: https://docs.microsoft.com/en-us/quantum/quantum-qr-intro?view=qsharp-preview
Download Quantum Studio: http://quantum-studio.net/#download_qs
Qiskit: https://github.com/Qiskit

On quantum computer simulators:
IBM: https://quantumexperience.ng.bluemix.net/qx/editor
The QX Simulator: http://quantum-studio.net
Ready-to-use Linux Ubuntu Virtual Machine with QX installed: http://quantum-studio.net/#download_vm
Quantum Computing Playground: http://www.quantumplayground.net
QCEngine - active QC simulator: http://machinelevel.com/qc/
List of Quantum computer simulators: https://quantiki.org/wiki/list-qc-simulators
Another list of Quantum computer simulators: http://www.vcpc.univie.ac.at/~ian/hotlist/qc/simulation.shtml
Quantum computer simulator: https://qcsimulator.github.io/

Other resources:
Microsoft's Quantum Computing portal: https://www.microsoft.com/en-us/quantum
Microsoft's Quantum Computing, technologies (Physics, Materials, Devices, Control, Runtime): https://www.microsoft.com/en-us/quantum/technology
IBM Q Experience! Guides, demo's etc.: https://quantumexperience.ng.bluemix.net/qx/experience
Microsoft Quantum: https://www.microsoft.com/en-us/quantum
Microsoft Research on Quantum Computing: https://www.microsoft.com/en-us/research/lab/quantum/
Hello Quantum - Explore the building blocks of quantum mechanics through puzzles: http://helloquantum.mybluemix.net
Microsoft Quantum Development Kit Samples: https://github.com/Microsoft/Quantum
Microsoft Quantum Lab Delft: https://www.microsoft.com/en-us/research/group/microsoft-quantum-delft/

No comments:

Post a Comment