Sample-based quantum diagonalization of a chemistry Hamiltonian
דף זה טרם תורגם. התוכן מוצג באנגלית.
Usage estimate: under one minute on a Heron r2 processor (NOTE: This is an estimate only. Your runtime might vary.)
Background
In this tutorial, we show how to post-process noisy quantum samples to find an approximation to the ground state of the nitrogen molecule at equilibrium bond length, using the sample-based quantum diagonalization (SQD) algorithm, for samples taken from a 59-qubit quantum circuit (52 system qubits + 7 ancilla qubits). A Qiskit-based implementation is available in the SQD Qiskit addons, more details can be found in the corresponding docs with a simple example to get started. SQD is a technique for finding eigenvalues and eigenvectors of quantum operators, such as a quantum system Hamiltonian, using quantum and distributed classical computing together. Classical distributed computing is used to process samples obtained from a quantum processor, and to project and diagonalize a target Hamiltonian in a subspace spanned by them. This allows SQD to be robust to samples corrupted by quantum noise and deal with large Hamiltonians, such as chemistry Hamiltonians with millions of interaction terms, beyond the reach of any exact diagonalization methods. An SQD-based workflow has the following steps:
- Choose a circuit ansatz and apply it on a quantum computer to a reference state (in this case, the Hartree-Fock state).
- Sample bitstrings from the resulting quantum state.
- Run the self-consistent configuration recovery procedure on the bitstrings to obtain the approximation to the ground state.
SQD is known to work well when the target eigenstate is sparse: the wave function is supported in a set of basis states whose size does not increase exponentially with the size of the problem.
Quantum chemistry
The properties of molecules are largely determined by the structure of the electrons within them. As fermionic particles, electrons can be described using a mathematical formalism called second quantization. The idea is that there are a number of orbitals, each of which can be either empty or occupied by a fermion. A system of orbitals is described by a set of fermionic annihilation operators that satisfy the fermionic anticommutation relations,
The adjoint is called a creation operator.
So far, our exposition has not accounted for spin, which is a fundamental property of fermions. When accounting for spin, the orbitals come in pairs called spatial orbitals. Each spatial orbital is composed of two spin orbitals, one that is labeled "spin-" and one that is labeled "spin-". We then write for the annihilation operator associated with the spin-orbital with spin () in spatial orbital . If we take to be the number of spatial orbitals, then there are a total of spin-orbitals. The Hilbert space of this system is spanned by orthonormal basis vectors labeled with two-part bitstrings .
The Hamiltonian of a molecular system can be written as
where the and are complex numbers called molecular integrals that can be calculated from the specification of the molecule using a computer program. In this tutorial, we compute the integrals using the PySCF software package.
For details about how the molecular Hamiltonian is derived, consult a textbook on quantum chemistry (for example, Modern Quantum Chemistry by Szabo and Ostlund). For a high-level explanation of how quantum chemistry problems are mapped onto quantum computers, check out the lecture Mapping Problems to Qubits from Qiskit Global Summer School 2024.
Local unitary cluster Jastrow (LUCJ) ansatz
SQD requires a quantum circuit ansatz to draw samples from. In this tutorial, we'll use the local unitary cluster Jastrow (LUCJ) ansatz due to its combination of physical motivation and hardware-friendliness.
The LUCJ ansatz is a specialized form of the general unitary cluster Jastrow (UCJ) ansatz, which has the form
where is a reference state, often taken to be the Hartree-Fock state, and the and have the form
where we have defined the number operator