# Quantum Computation and Simulation: A Beginners Guide

Quantum Computation in a nutshell

In recent years, the search for topological states of matter became one of the major subjects of research in the condensed matter physics community. The rapid growth of interest in this field has many reasons. For one, there is an intellectual appeal to it. If the predictions of the theory are true, it will be an example of how powerful and abstract mathematical concepts can be used to describe the behavior of a certain class of physical systems. Secondly, there is a practical interest in the field, since it constitutes the backbone of a potential topological quantum computer. As for myself, some of my colleagues in the Spin-Nano network do fundamental research on topics with potential application in quantum computation, which is why I want to give a brief introduction to how a quantum computer works and why it could be useful in this blogpost.

Firstly, how does a classical computer work? In a classical computer, information is stored in a binary fashion, and the smallest unit of information is called a binary digit or short – bit. The state of a bit is either 0 or 1. In a computer, any number or letter is represented by a string of bits. The task of a computer is then to take a string of bits as input, perform some action on it, e.g. adding two strings of bits, and then give back some output also in the form of bits.

Physically, most bits are represented by an electrical voltage or current pulse. Complex electrical circuits allow for a manipulation of these bits by the implementation of logical gates (AND, OR, NOT, etc.). As the data that is being manipulated gets bigger and the manipulations more complex, the computation time increases. This problem is tackled by using ever more circuits. In order for the physical size of the computer not to become the size of a house or even larger, the circuits are required to get smaller and smaller. Nowadays, on a typical computer chip of about 100 million transistors are packed into 1 mm2, and the distance between two transistors is around 10 nanometers. It is apparent that one day, a fundamental limit will be reached, where transistors cannot get any smaller, and therefore the computational power we can achieve has an upper bound.

A quantum computer works fundamentally differently to a classical computer, and based on theoretical considerations it is expected that it will able to solve certain mathematical problems much more efficiently. Let’s first have a look at the basic idea behind a quantum computer. As the name suggests, a quantum computer exploits the peculiar laws of quantum physics. In a quantum computer, the smallest unit of information is stored in a so-called quantum bit – or qubit for short.

In the abstract formalism of quantum mechanics, the state of a system is represented by a vector in an n-dimensional vector space. The dimension of this vector space is given by the properties of the system. A popular example is the spin of a free electron, i.e. an electron in empty space. The value of the spin projection on a given axis is quantized to two values and thus, the vector space is two-dimensional. In this vector space, there exist two mutually orthogonal (state) vectors associated to the two possible values of the spin projection. The laws of quantum mechanics state, that the system doesn’t have to be exclusively in one of the two states, but can be in any linear combination of the two. Systems with states in a two-dimensional vector space are called two-level systems, and these take on a central role in quantum computation: a qubit is a quantum mechanical two-level system. Now, in a classical computer, the bit is either in one of two possible states, 0 or 1. As stated above, a qubit can be in a superposition of two distinct states, i.e. 0 and 1 at the same time. In the quantum circuit model, the working principle of a quantum computer is similar to that of a classical computer: take a string of qubits as input, by a combination of logical gates (so-called quantum gates) manipulate the qubits, read out the result in the form of qubits. There are at least two tasks a quantum computer can do more efficiently than a classical computer: integer factorization of large numbers and quantum simulation. In the last part of this post, we will focus on quantum simulation.

Quantum Simulation and engineering of new drugs

Whenever physicists make predictions about physical systems, they first develop a model that describes this system to a certain degree of accuracy, i.e. the complexity is reduced and maybe, due to our ignorance, some properties are neglected. Then, in order to know how the model behaves, mathematical equations have to be solved. In the case of quantum mechanics, the underlying equation is the Schrödinger equation: In this formalism, ψ (psi) represents the state of the system and H is called the Hamiltonian, which is the central entity of every quantum mechanical system. Let’s assume one is interested in the properties of a molecule consisting of several atoms. The Hamiltonian contains information on the mass and charge of the atoms, and how the atoms interact with each other. Solving the Schrödinger equation then allows to predict how, once its initial state is specified, the molecule evolves with time and what energetic states it can be in. The problem is that, only for the simplest problems, such as e.g. the hydrogen atom and the quantum harmonic oscillator, exact solutions are available. For more complex physical systems physicists have to make approximations and solve the Schrödinger equation numerically with classical computers. Already describing a relatively small system, as e.g. a system consisting of thirty particles with spin-1/2, requires the manipulation of 230 x 230 matrices, which exceeds the capability of current supercomputers. Since the quantum computer itself is a quantum mechanical system, its temporal evolution also follows the laws of quantum mechanics and it could be used to simulate the dynamics of another quantum system. The reason thereof is the fact that any physically relevant Hamiltonian can be mapped to a Hamiltonian of a number of qubits. The number of qubits is usually larger than the number of physical particles that one intends to simulate. Schematically, the steps for simulating a quantum system is as follows:

1.) Represent the Hamiltonian of the system by the Hamiltonian of n qubits, this includes fine tuning interactions between the qubits in order for them to represent the original system faithfully.

2.) Choose an initial state of the system that shall be simulated, translate it to the qubit system and prepare the qubits accordingly.

3.) Let the qubit system evolve in time.

4.) Read out the final state and translate it back to the original system.

Of course, this is very schematic and a lot of challenges have to be overcome in order to build a universal quantum simulator, but as illustrated, the basic idea is rather simple. As it offers so many new possibilities, the expectations in such a device are high. For example, when designing new drugs, a quantum simulator could potentially allow for a faster production and the development of more precise drugs causing less side effects. A quantum simulator could simulate how the new drug interacts with cells of a tumour on a molecular level, eliminating the need of guessing a model that describes the working principle.

A universal quantum simulator that can simulate large physical systems is still not in near reach, but a lot of effort is put in its development and we have witnessed several breakthroughs over the last years.

By Yanick Volpez, PhD student at the Condensed Matter and Quantum Computing group at the University of Basel, Basel, Switzerland