One of the most important quantum algorithm design principles is quantum simulation (or Hamiltonian simulation).
Simulating a quantum physical system, which motivated Feynman's proposal
to build a quantum computer [1]}, is by itself an important application of quantum computing [2]}, [3]}.
Later, the idea of quantum simulation was extended to quantum algorithms for other applications, e.g., linear systems [4]}, quantum principal component analysis [5]}, and quantum support vector machine [6]}.
These algorithms involve simulating an artificial quantum system crafted based on the target problem.
In recently developed variational quantum algorithms for near-term quantum computers (e.g., VQE for chemistry [7]} and QAOA for combinatorial optimization [8]}), the program structures are also inspired by
the simulation principle.
