FQE is a quantum algorithm for calculating the ground state energy of a system Hamiltonian, and can be applied to a wide range of fields, such as determining the electronic structure of fermionic systems, finding the ground energy of molecules in quantum chemistry. For more information, see our release paper.
Performing FQE requires installing OpenFermion firstly. And, installing OpenFermion requires pip. Make sure that you are using an up-to-date version of it. You can click the link to learn how to install OpenFermion. We use ProjectQ framework to program this quantum algorithm. You need to install ProjectQ with this link.
Full quantum eigensolver (FQE) is an algorithm to estimate the ground state of a given Hamiltonian using quantum gradient descent. We adopt it to calculate the molecular ground energies and electronic structures. We embed this method in Python code and provide a full stack quantum simulation procedure. One feeds a molecule into this program and will obtain an explicit quantum circuit, and calculating results of the molecular energy of this molecule, and corresponding electronic structures. It can be performed both by a quantum simulator or a real quantum processor. Compared to existing classical-quantum hybrid methods such as variational quantum eigensolver (VQE), this method removes the classical optimizer and performs all the calculations on a quantum computer.
A molecular system, containing a collection of nuclear charges and electrons, can be described by a molecular Hamiltonian. By Jordan-Wigner or Bravyi-Kitaev transformations, the molecular Hamiltonian can be mapped into a qubit Hamiltonian form
where Roman indices i, j denote the qubit on which the operator acts, and Greek indices , refer to the type of Pauli operators, i.e., means Pauli matrix acting on a qubit at site i. We can calculate the ground state energy by minimizing the expect value of Hamiltonian
The gradient descent of f(X) can be deviated as
At the limit when ε->0 :
Then, the classical gradient descent iteration can be mapped to a quantum version by being regarded as an evolution of X under operator H,
Denoting and it can be expressed as
where M is the number of Pauli product terms in . Then the gradient descent process can be rewritten as
The above equation can be evaluated by the following quantum circuit
After enough iterative times, will converge to the ground state and is the corresponding ground state energy. Moreover, by variating the interatomic distances of a molecule, this method can calculate the lowest energy in potential-energy surfaces corresponds to the most stable structure of the molecules.
We write a demo with ProjectQ in form of jupyter notebook. We solve the ground state and ground state energy of Hydrogen molecule in this demo. You can also change to solve other molecules. Some other molecular information is contained in Molecules_Data.json, which was copied from NIST.
The program can be divided in three parts,
- Data input and parameter setting
- Compute the hamiltonian of the system
- Simulation with FullQuantumEigensolver(FQE)
Use the class FullQuantumEigensovler to bulid the object FQE, and run it with K iterations.
FQE = FullQuantumEigensolver(Gatelist, active_space_stop, active_space_start, initial_state)
FQE.start(K)
In every iteration, the information about the quantum state remained will be output. After several iterations, the state will converge to the ground state.
Note: We use the get_amplitude to extract the state, so there will be no measurement in the program. Because of that, the program may output warning sign.
ShiJie Wei, Zeng-Rong Zhou
Contact: long_group@163.com
When using FQE for research projects, please cite:
ShiJie Wei, Hang Li, GuiLu Long. A Full Quantum Eigensolver for Quantum Chemistry Simulations. Research 2020, 1 (2020).