Imaginary-Time Evolution: How Quantum Algorithms Find Ground States
Imaginary-time evolution is a classical numerical technique for finding ground states: replace t with -i*t in the Schrödinger equation, and the wavefunction projects onto the ground state exponentially fast. Quantum analogs — variational imaginary-time evolution (VITE), quantum imaginary time evolution (QITE), and the deep connection to quantum natural gradient (tutorial 40) — are now central to ground-state quantum algorithms. This tutorial covers the math, the algorithms, and the regimes where each variant shines.
Prerequisites: Tutorial 13: Variational Quantum Eigensolver, Tutorial 40: Quantum Natural Gradient
In classical quantum chemistry, the most common technique for finding the ground state of a Hamiltonian is imaginary-time evolution. Replace the time variable in the Schrödinger equation with :
The solution is . As , the lowest-energy component dominates exponentially, and after normalization projects onto the ground state. This is the engine behind density-matrix renormalization group (DMRG), tensor-network ground-state methods, and many other classical algorithms.
The structural problem for quantum computing: is not unitary. Quantum computers can only do unitaries directly. Implementing imaginary-time evolution requires either probabilistic protocols (like LCU, tutorial 59) or variational approximations.
Two main quantum analogs:
- Variational imaginary-time evolution (VITE): evolve the parameters of an ansatz to track imaginary-time-evolved states. Connected directly to quantum natural gradient (tutorial 40).
- Quantum imaginary time evolution (QITE): McArdle-Yamamoto-Yuan-Endo-Benjamin 2019. Use measurement-based reconstruction to apply an effectively non-unitary operation.
This tutorial covers both, the deep connection to quantum natural gradient, and a decision rule for which variant fits which problem.
Classical imaginary-time evolution
For a Hamiltonian with eigendecomposition , the imaginary-time-evolved state is
The component with the lowest energy decays slowest. As grows, all components except the ground-state one decay exponentially relative to the ground state. Convergence is exponential at rate (the gap to the first excited state).
For ill-conditioned Hamiltonians (small gap), convergence is slow. For typical chemistry molecules (gap Hartree), is enough to reach near-ground-state.
VITE: variational imaginary-time evolution
The McLachlan variational principle (1964) gives the best parameter trajectory such that the variational state approximates the imaginary-time-evolved state .
The McLachlan equation:
where:
- — the quantum Fisher information matrix (tutorial 40, divided by 4).
- — the gradient of the energy (tutorial 39 parameter-shift terms).
The connection: the McLachlan equation is exactly the quantum natural gradient flow with the Hamiltonian as the cost function. Solving the McLachlan ODE step by step is exactly running QNG with infinitesimal step size.
This means: QNG-based VQE is, in continuous-time, imaginary-time evolution of the variational ansatz. The two methods are different discretizations of the same continuous flow. QNG with finite step size is a forward-Euler discretization; backward-Euler or adaptive step-size discretizations exist and are sometimes preferred for stiff problems.
QITE: quantum imaginary time evolution
VITE is variational — it works only as well as the ansatz allows. For situations where you want to implement exact imaginary-time evolution on a quantum computer, the McArdle-Yamamoto-Yuan-Endo-Benjamin 2019 paper introduced QITE.
The QITE algorithm:
- Decompose into local terms (e.g., Pauli strings).
- Apply imaginary-time evolution one term at a time: for each in sequence.
- For each step, is non-unitary. Approximate it by a unitary where is a Hermitian operator chosen to match the imaginary-time-evolved state. The choice of is determined by a small linear system involving the local Hamiltonian and current state.
- Apply the unitary to the state. Repeat for all terms.
- After many sweeps, the state approximates the imaginary-time-evolved state.
The key trick: the unitary can be constructed at run-time using measurements of the current state. The measurement step is what allows non-unitary effects on the quantum state.
QITE is exact in the limit of small and small support for . It is more expensive per step than VITE but doesn’t require an ansatz; the state is held in the full Hilbert space.
When to use which
VITE (= QNG-based variational evolution):
- Works with any parameterized ansatz; cheaper per step.
- Limited by ansatz expressivity — won’t reach states the ansatz can’t represent.
- Best for problems where you have a good problem-tailored ansatz (chemistry: UCCSD or ADAPT-VQE).
QITE:
- Works in the full Hilbert space; not limited by an ansatz.
- More expensive per step (measurement-based reconstruction of the unitary).
- Best for problems where ansatz design is hard or where you want exact imaginary-time evolution.
Static VQE (no imaginary-time):
- Just minimizes the energy by gradient descent or other optimizers.
- Doesn’t track an imaginary-time trajectory.
- Often faster to converge in practice if the optimizer is well-tuned.
For most production chemistry work in 2026, static VQE with a problem-tailored ansatz (UCCSD or ADAPT-VQE) is the default. VITE is used when QNG-style optimization stability is needed. QITE is mostly research-stage.
Connection to the broader picture
The deep insight from this tutorial: imaginary-time evolution provides a unifying continuous-time framework for many ground-state algorithms.
- VQE is a discretization of imaginary-time evolution if you use QNG.
- Adiabatic quantum computing is a slow-then-fast version of imaginary-time evolution along a Hamiltonian path.
- Tensor-network methods (DMRG, MERA optimization) are imaginary-time evolution in tensor-network representation.
- Ground-state algorithms based on signal processing (the QSVT-based ground-state preparation) implement imaginary-time evolution exponentials directly via polynomial approximation.
Each method picks a different way to implement the abstract operator. Understanding the imaginary-time-evolution lens gives a unified way to compare them.
A small VITE demonstration
Concrete code that runs VITE on a 2-qubit Hamiltonian using PennyLane’s QNGOptimizer:
import numpy as np
import pennylane as qml
from pennylane import numpy as pnp
n_qubits = 2
dev = qml.device("default.qubit", wires=n_qubits)
H = qml.Hamiltonian(
[1.0, -0.5, 0.5],
[qml.PauliZ(0), qml.PauliZ(0) @ qml.PauliZ(1), qml.PauliX(1)]
)
@qml.qnode(dev, interface="autograd")
def ansatz(weights):
qml.RY(weights[0], wires=0)
qml.RY(weights[1], wires=1)
qml.CNOT(wires=[0, 1])
qml.RY(weights[2], wires=0)
qml.RY(weights[3], wires=1)
return qml.expval(H)
# QNG optimizer is essentially VITE in continuous time.
qng_opt = qml.QNGOptimizer(stepsize=0.1)
weights = pnp.array([0.5, 0.5, 0.5, 0.5], requires_grad=True)
print("Step | Energy")
for step in range(50):
weights, energy = qng_opt.step_and_cost(ansatz, weights)
if step % 10 == 0:
print(f"{step:4d} | {float(energy):.6f}")
print(f"Final energy: {ansatz(weights):.6f}")
print(f"Exact ground-state energy: {min(np.linalg.eigvalsh(qml.matrix(H))):.6f}")
The QNG optimizer converges quickly to the ground-state energy. The trajectory it follows is the discretized imaginary-time evolution of the ansatz.
Common misconceptions
“Imaginary-time evolution doesn’t work on quantum computers.” It works — just not directly as a unitary. VITE and QITE are practical implementations.
“VITE and static VQE are different algorithms.” VITE is QNG-based VQE in continuous-time limit. The difference is the optimizer choice and discretization strategy, not the algorithm.
“QITE is always better than VITE.” It’s exact in the Hilbert space but expensive. For problems with good ansätze, VITE is more efficient.
“Imaginary-time evolution gives exact ground states.” Only in the infinite-time limit. At finite , it’s an approximation. Convergence speed depends on the gap; small-gap problems require long .
Where this goes next
Tutorial 66 covers Hamiltonian variational ansatz design — the discipline of choosing parameterized ansätze that exploit the structure of the target Hamiltonian, often providing better starting points for VITE/VQE. Tutorial 67 covers warm-start strategies that initialize variational algorithms in good regions of parameter space, dramatically improving convergence.