Algorithms · Ground-state preparation · variational imaginary time
Quantum imaginary-time evolution
A ground-state preparation method that projects non-unitary imaginary-time evolution onto a parameterized quantum circuit.
Strong empiricalUpdated
Open on the mapView frozen graph
3 steps across 2 wires. Hover a step, or press play to go through them in order.
Expected outcomes
- Lower-energy update80%
- Conditioning / residual20%
- Steps3
- Wires2
- Qubits2 in the ansatz sketch
- Classical stepSolve metric × velocity = force
- TargetLow-energy / ground-state preparation
- Papers1
Imaginary time suppresses higher-energy components exponentially. Quantum imaginary-time evolution replaces the non-unitary operator with a sequence of measurable parameter updates, avoiding the need to implement e^(−τH) directly.
TakesNothingWhat joins here
No input port at this edge: the record publishes no gate sequence and no register, so there is nothing here to read one off — and unlike a declared hole, nothing has been recorded about what belongs here.
Nothing in the Atlas meets this end.
ReturnsNothingWhat joins here
No output port at this edge: the record publishes no gate sequence and no register, so there is nothing here to read one off — and unlike a declared hole, nothing has been recorded about what belongs here.
Nothing in the Atlas meets this end.
This record publishes no gate sequence and no register, so there is nothing here to read an interface off. Absent rather than empty. See all 152 →
Imaginary-time evolution obeys . Because the exponential is non-unitary, a circuit implementation measures a metric and force vector and solves a classical linear system for the parameter velocity. The record therefore treats energy descent as small-instance evidence only: it does not turn a variational proxy into a proof of the exact ground state, and it calls out conditioning and ansatz expressivity as first-class limitations.
TakesNothingWhat joins here
No input port at this edge: the record publishes no gate sequence and no register, so there is nothing here to read one off — and unlike a declared hole, nothing has been recorded about what belongs here.
Nothing in the Atlas meets this end.
ReturnsNothingWhat joins here
No output port at this edge: the record publishes no gate sequence and no register, so there is nothing here to read one off — and unlike a declared hole, nothing has been recorded about what belongs here.
Nothing in the Atlas meets this end.
This record publishes no gate sequence and no register, so there is nothing here to read an interface off. Absent rather than empty. See all 152 →
- Qubits
- 2 in the ansatz sketch
- Classical step
- Solve metric × velocity = force
- Target
- Low-energy / ground-state preparation
- Evolution
- e^(−τH) projected to an ansatz
- Metric
- A(θ) from overlap measurements
- Failure mode
- Expressivity and conditioning
Ansatz RYon q[0], q[1]Entangleon q[0], q[1]Measure A,Con q[0], q[1]
Quantum vs classical
Classical baseline
Classical imaginary-time methods can store a full vector or tensor network but their memory and contraction cost grow with system size and entanglement.
Quantum claim
QITE trades non-unitary state storage for repeated expectation-value measurements and a classical linear solve; it is not automatically cheaper on shallow noisy hardware.
How to compare
Report energy, overlap with a trusted small-system ground state, metric conditioning, and measurement budget together.
Nobody has reviewed this record for gaps yet.
import numpy as np
# One QITE step. The two measurement functions are the parts that come
# from a device or simulator; they are stood in for here with the
# analytic values of a single-qubit RY ansatz under H = -Z, so the whole
# file runs as written. Replace them with real measurements to use it.
def measure_metric(theta):
return np.array([[0.25]]) # Fubini-Study metric of RY(theta) on one qubit
def measure_imaginary_time_force(theta):
# -d<H>/dtheta / 2 for H = -Z, where <H> = -cos(theta), so the step
# descends toward theta = 0 (the ground state) rather than away from it.
return np.array([-0.5 * np.sin(theta[0])])
theta = np.array([0.3])
dt = 0.05
metric = measure_metric(theta)
force = measure_imaginary_time_force(theta)
velocity = np.linalg.solve(metric + 1e-8 * np.eye(len(theta)), force)
theta = theta + dt * velocity
print('theta after one imaginary-time step:', theta)
RESULT = {'theta': [float(v) for v in theta], 'velocity': [float(v) for v in velocity]}Where this sits
This record is named by the layer graph at:
- Quantum imaginary-time evolution Method
Takes A Hermitian reachable as a sum of terms, as sparse-access oracles or as a block-encoding; a way to prepare trial states, and — for the methods that need it — a trial state whose overlap with the ground state is not negligible; a target additive error and a confidence . Returns A scalar estimate of the lowest eigenvalue with a stated additive-error guarantee, plus the run or query budget it consumed. Whether that estimate is also a rigorous upper bound is a property of the method and is not promised by the slot.
Related entries
- Variational quantum eigensolver for ground-state energy
Algorithms
- Transverse-field Ising simulation
Algorithms
- Quantum phase estimation
Algorithms
References
- Determining eigenstates and thermal states on a quantum computer using quantum imaginary time evolution
Mario Motta, Chong Sun, Adrian Teck Keng Tan, Matthew J. O'Rourke, Erika Ye, Austin J. Minnich, Fernando G. S. L. Brandao, Garnet Kin-Lic Chan · 2019
Introduces quantum imaginary-time evolution and discusses ground, excited, and thermal-state preparation.