Double-factorized representation of the molecular Hamiltonian

This page discusses the double-factorized representation of the molecular Hamiltonian.

Double-factorized representation

The molecular Hamiltonian is commonly written in the form

H=σ,pqhpqaσ,paσ,q+12στ,pqrshpqrsaσ,paτ,raτ,saσ,q+constant.

This representation of the Hamiltonian is daunting for quantum simulations because the number of terms in the two-body part scales as N4 where N is the number of spatial orbitals. An alternative representation can be obtained by performing a “double-factorization” of the two-body tensor hpqrs:

H=σ,pqhpqaσ,paσ,q+k=1LUkJkUk+constant.

Here each Uk is an orbital rotation and each Jk is a so-called diagonal Coulomb operator of the form

J=12στ,ijJijnσ,inτ,j,

where nσ,i=aσ,iaσ,i is the occupation number operator and Jij is a real symmetric matrix. The one-body tensor and the constant have been updated to accomodate extra terms that arise from reordering fermionic ladder operators.

For an exact factorization, L is proportional to N2. However, the two-body tensor often has low-rank structure, and the decomposition can be truncated while still maintaining an accurate representation. Thus, in practice, L often scales only linearly with N, resulting in a much more compact representation that gives rise to more efficient schemes for simulating and measuring the Hamiltonian, which utilize efficient quantum circuits for orbital rotations and time evolution by a diagonal Coulomb operator.

Application to time evolution via Trotter-Suzuki formulas

In this section, we discuss how the double-factorized Hamiltonian can be simulated using Trotter-Suzuki formulas.

Brief background on Trotter-Suzuki formulas

Trotter-Suzuki formulas are used to approximate time evolution by a Hamiltonian H which is decomposed as a sum of terms:

H=kHk.

Time evolution by time t is given by the unitary operator

eiHt.

To approximate this operator, the total evolution time is first divided into a number of smaller time steps, called “Trotter steps”:

eiHt=(eiHt/r)r.

The time evolution for a single Trotter step is then approximated using a product formula, which approximates the exponential of a sum of terms by a product of exponentials of the individual terms. The formulas are approximate because the terms do not in general commute. A first-order asymmetric product formula has the form

eiHτkeiHkτ.

Higher-order formulas can be derived which yield better approximations.

Application to the double-factorized Hamiltonian

Using the double-factorized representation, the Hamiltonian is decomposed into L+1 terms (ignoring the constant term),

H=k=0LHk,

where

H0=σ,pqhpqaσ,paσ,q

and for k=1,,L,

Hk=UkJkUk.

We have that

Given the ability to simulate each of the individual terms, we can implement Trotter-Suzuki formulas for time evolution by the entire Hamiltonian. This is implemented in ffsim by the function simulate_trotter_double_factorized, which implements higher-order Trotter-Suzuki formulas in addition to the first-order asymmetric formula mentioned previously. The first-order asymmetric formula corresponds to setting the argument order=0, which is the default. order=1 corresponds to the first-order symmetric (commonly known as the second-order) formula, order=2 corresponds to the second-order symmetric (fourth-order) formula, and so on.