In recent years, quantum computing (QC) has become one of the hottest topics in the field of physics research. Currently, the main focus of development is on making quantum computing hardware more stable, and researchers with backgrounds in physics are leading this effort. In addition to physicists, mathematicians are also researching new quantum computing algorithms that leverage quantum properties to solve problems that traditional computers cannot effectively solve. Electrical and computer engineering researchers are studying the development of traditional computers to accelerate the development of software, hardware, compilers, and quantum computing architectures needed for QC. This will help narrow the gap between the hardware requirements for executing quantum programs and the quantum computers we actually have. Researchers in other fields, such as chemistry, finance, oceanography, meteorology, and astronomy, are also developing new quantum applications in their respective fields. The development of QC is now accelerating rapidly in a cross-disciplinary manner.

## Table of Contents

## The principle of quantum computing

Quantum computing operates using the principles of quantum superposition and quantum entanglement in quantum physics. While traditional computers represent a bit’s value using 0 or 1, a quantum computer uses a quantum bit or qubit, which can be both 1 and 0 during operations.

### Quantum Superposition

Since a qubit can exist in a superposition state during operations, the Bloch sphere is often used to visualize its state. The qubit’s state can be imagined as a vector distributed on the surface of the sphere, which is composed of two vectors, \(|0\rangle\) and \(|1\rangle\). The qubit’s state can be represented as a vector, \(|\psi \rangle =\alpha |0\rangle +\beta |1\rangle\), where \(\alpha, \beta \in \mathbb {C}\), and \(|\alpha|^2+|\beta|^2=1\). This implies that during operations, a qubit can be both 0 and 1. The probabilities of obtaining 0 or 1 when observing the qubit are represented by \(|\alpha|^2\) and \(|\beta|^2\), respectively.

If a system has two qubits, we have four possibilities: 00, 01, 10, and 11. During operations, we perform these four scenarios simultaneously. Adding a qubit doubles the operation space. With N qubits, we calculate the probability of \(2^N\) possible results. This demonstrates the power of quantum superposition.

### Quantum Entanglement

When N qubits are entangled with each other, their values can interact and affect each other. For example, we can create an entangled state between qubit A and qubit B. If we observe qubit A and find it to be 1, qubit B will also be 1. Conversely, if qubit A is 0, qubit B will also be 0.

## Simulate a quantum computer using a classical computer

Simulating quantum computing processes using traditional computers is possible after understanding the principles of quantum computing. Supercomputers with MPI can assist in simulations. Each vector coefficient or amplitude in quantum physics is a complex number that needs real and imaginary parts to describe. It takes 16 bytes to describe one amplitude if each floating-point number is 8 bytes (Double Precision). A qubit, with two bases of |0> and |1>, needs two amplitudes for its state, requiring a total of 32 bytes.

Assuming N qubits are present, the quantum state can be described using \(2^N\) amplitudes, with each amplitude requiring 16 bytes. Therefore, \(2^{N+4}\) bytes are needed to describe the N-qubit state. This means that 1 MB of memory can simulate 16 qubits, 1 GB can simulate 26 qubits, 1 TB can simulate 36 qubits, and 1 PB can simulate 46 qubits. This is why it’s generally believed that quantum supremacy can be achieved with a quantum computer with over 50 qubits, as the most powerful traditional computers have memory capacities of around 2 PB. While there are other ways to simulate quantum computers using time in exchange for space, such as Tensor Network Contraction or Feynman Path Integral, they still can’t match the speed or capacity of a genuine quantum computer with over 50 qubits.

## Quantum Gate

The essence of quantum computing can be said to be composed of linear algebra. Each gate has a corresponding matrix as its operator. Some gates only act on a single qubit, while others act on multiple qubits. We commonly use single-qubit gates and two-qubit gates to express a quantum program. By using single-qubit gates and two-qubit gates, we can complete a universal gate set, which can be used to construct all necessary programs. You can refer to Wiki for commonly used gates. In addition to single-qubit gates and two-qubit gates, there is also a lot of research on multi-qubit gates, which can greatly reduce the total number of quantum gates required, shorten the length of quantum programs, and achieve greater efficiency and higher accuracy. However, creating a perfect multi-qubit gate is very difficult, so most actual quantum computers only run up to two-qubit gates.

## Quantum Circuit

A Quantum Program is often referred to as a Quantum Circuit, because when we put these Gates together, the resulting expression is similar to a circuit. So when people see a Quantum Circuit, it refers to a Quantum Program. The depth of a circuit, which is the length of the circuit, is often used to describe the complexity of a Quantum Program. Due to the short lifetime of Qubits, the longer the circuit depth, the less accurate the results. Therefore, much of current quantum computing research is focused on how to design more efficient Quantum Circuits to reduce the circuit depth.

*[Related Resource] Applied Quantum Computers: Learn about the Concept, Architecture, Tools, and Adoption Strategies for Quantum Computing and Artificial Intelligence*

## Summary

In conclusion, quantum computing is based on the principles of quantum physics and uses linear algebra for computations. The design of quantum computing programs aims to increase the probability of obtaining the correct answer through observations. Since all computations involve probability, practical applications often require running the same program thousands or even millions of times to obtain a statistically significant result. It is essential to consider the limitations of qubit lifetime and circuit depth when designing quantum circuits to ensure the accuracy of the results.