Time Evolution¶
Time Evolution in QPE¶
Scope¶
This document describes how time evolution is implemented for Quantum Phase Estimation (QPE) in this repository, including:
construction of the unitary $U = e^{-iHt}$
Trotter decomposition
controlled time evolution
numerical trade-offs and errors
Time evolution is the core computational primitive underlying QPE.
Overview¶
QPE requires implementing:
$$ U = e^{-iHt} $$
where:
$H$ is the molecular Hamiltonian
$t$ is the evolution time
This unitary encodes the energy eigenvalues as phases.
Hamiltonian Structure¶
After fermion-to-qubit mapping:
$$ H = \sum_j c_j P_j $$
where:
$c_j$ are real coefficients
$P_j$ are Pauli strings (e.g. $XZIY$)
Exact Evolution (Ideal)¶
If all terms commute:
$$ e^{-iHt} = \prod_j e^{-i c_j P_j t} $$
However, in general:
$$ [P_i, P_j] \ne 0 $$
so exact factorization is not possible.
Trotter Decomposition¶
To approximate evolution, this repository uses Trotterization.
First-order Trotter formula¶
$$ e^{-iHt} \approx \left( \prod_j e^{-i c_j P_j t / r} \right)^r $$
where:
$r$ = number of Trotter steps
Error Behaviour¶
Trotter error scales as:
$$ \mathcal{O}\left(\frac{t^2}{r}\right) $$
Implications:
increasing
trotter_stepsreduces errorerror grows with total evolution time $t$
Implementation (This Repository)¶
Hamiltonian source¶
Time evolution is built from:
H, n_qubits, hf_state = build_hamiltonian(...)
All Pauli terms in (H) are used to construct evolution.
Pauli exponentials¶
Each term:
[ e^{-i c_j P_j t} ]
is implemented using:
basis rotations
controlled rotations
inverse basis rotations
Controlled evolution¶
QPE requires:
[ U^{2^k} = e^{-iH t 2^k} ]
This is implemented by:
scaling evolution time:
( t \rightarrow t \cdot 2^k )
applying Trotterized evolution
Circuit Structure¶
For each ancilla qubit:
ancilla ──●────────────
│
system ───U^(2^k)────
This controlled evolution is repeated for each ancilla.
Parameters¶
Evolution time¶
--t
Controls:
phase resolution
energy scaling
Trade-offs:
larger (t):
higher precision
risk of phase wrapping
smaller (t):
safer range
lower resolution
Trotter steps¶
--trotter-steps
Controls:
approximation accuracy
circuit depth
Ancilla count¶
--ancillas
Controls:
phase precision
number of controlled evolutions
Combined Trade-offs¶
Parameter |
Effect |
|---|---|
(t) |
↑ precision, ↑ wrapping risk |
trotter_steps |
↓ error, ↑ circuit depth |
ancillas |
↑ resolution, ↑ circuit size |
Noise Effects¶
Under noise:
each Trotter step introduces decoherence
deeper circuits amplify errors
controlled operations are especially sensitive
Practical implication¶
fewer Trotter steps → less noise, more approximation error
more Trotter steps → better approximation, worse noise
Practical Guidance¶
Baseline settings¶
t = 1–2trotter_steps = 2–6
Improve accuracy¶
increase
trotter_stepsincrease
ancillasensure good input state
Reduce noise impact¶
reduce circuit depth (lower trotter_steps)
reduce ancilla count
use smaller (t)
Limitations¶
first-order Trotter only
no higher-order Suzuki formulas
no adaptive Trotterization
no qubitization or advanced Hamiltonian simulation
Summary¶
Feature |
Status |
|---|---|
Trotter decomposition |
First-order |
Controlled evolution |
Implemented |
Shared Hamiltonian |
Yes |
Noise support |
Yes |
Key Takeaway¶
Time evolution in this repository is implemented using Trotterized exponentials of Pauli terms, providing a practical and flexible approximation of (e^{-iHt}) suitable for QPE workflows.
The design prioritizes:
simplicity
compatibility with the shared Hamiltonian pipeline
tunable accuracy via
trotter_steps