Hamiltonian simulation (also referred to as quantum simulation) is a problem in quantum information science that attempts to find the computational complexity and quantum algorithms needed for simulating quantum systems. Hamiltonian simulation is a problem that demands algorithms which implement the evolution of a quantum state efficiently. The Hamiltonian simulation problem was proposed by Richard Feynman in 1982, where he proposed a quantum computer as a possible solution since the simulation of general Hamiltonians seem to grow exponentially with respect to the system size.
Problem statement.
In the Hamiltonian simulation problem, given a Hamiltonian formula_1 (formula_2 hermitian matrix acting on formula_3 qubits), a time formula_4 and maximum simulation error formula_5, the goal is to find an algorithm that approximates formula_6 such that formula_7, where formula_8 is the ideal evolution and formula_9 is the spectral norm.
A special case of the Hamiltonian simulation problem is the local Hamiltonian simulation problem. This is when formula_1 is a k-local Hamiltonian on formula_3 qubits where formula_12 and formula_13 acts non-trivially on at most formula_14 qubits instead of formula_3 qubits. The local Hamiltonian simulation problem is important because most Hamiltonians that occur in nature are k-local.
Techniques.
Product formulas.
Also known as Trotter formulas or Trotter–Suzuki decompositions, Product formulas simulate the sum-of-terms of a Hamiltonian by simulating each one separately for a small time slice. 
If formula_16, then formula_17 for a large formula_18; where formula_18 is the number of time steps to simulate for. The larger the formula_18, the more accurate the simulation. 
If the Hamiltonian is represented as a Sparse matrix, the distributed edge coloring algorithm can be used to decompose it into a sum of terms; which can then be simulated by a Trotter–Suzuki algorithm.
Taylor series.
formula_21 by the Taylor series expansion. This says that during the evolution of a quantum state, the Hamiltonian is applied over and over again to the system with a various number of repetitions. The first term is the identity matrix so the system doesn't change when it is applied, but in the second term the Hamiltonian is applied once. For practical implementations, the series has to be truncated formula_22, where the bigger the formula_23, the more accurate the simulation. This truncated expansion is then implemented via the linear combination of unitaries (LCU) technique for Hamiltonian simulation. Namely, one decomposes the Hamiltonian formula_24 such that each formula_25 is unitary (for instance, the Pauli operators always provide such a basis), and so each formula_26 is also a linear combination of unitaries.
Quantum walk.
In the quantum walk, a unitary operation whose spectrum is related to the Hamiltonian is implemented then the Quantum phase estimation algorithm is used to adjust the eigenvalues. This makes it unnecessary to decompose the Hamiltonian into a sum-of-terms like the Trotter-Suzuki methods.
Quantum signal processing.
The quantum signal processing algorithm works by transducing the eigenvalues of the Hamiltonian into an ancilla qubit, transforming the eigenvalues with single qubit rotations and finally projecting the ancilla. It has been proved to be optimal in query complexity when it comes to Hamiltonian simulation.
Complexity.
The table of the complexities of the Hamiltonian simulation algorithms mentioned above. The Hamiltonian simulation can be studied in two ways. This depends on how the Hamiltonian is given. If it is given explicitly, then gate complexity matters more than query complexity. If the Hamiltonian is described as an Oracle (black box) then the number of queries to the oracle is more important than the gate count of the circuit. The following table shows the gate and query complexity of the previously mentioned techniques.
Where formula_27 is the largest entry of formula_1.
References.
 ;templatestyles src="Reflist/styles.css" / ;