The Bravyi–Kitaev Transform
The Jordan–Wigner transform pays for its simplicity with long Pauli strings: a single fermionic operator on orbital drags a string of gates across all earlier qubits. For large molecules these -weight strings inflate circuit depth and measurement cost. The Bravyi–Kitaev (BK) transform is an alternative encoding that balances two competing bookkeeping tasks so that each fermionic operator touches only qubits.
Two pieces of bookkeeping
Every fermion-to-qubit mapping must store two kinds of information:
- Occupation — does orbital contain an electron? This is needed by the number operator.
- Parity — how many electrons occupy orbitals ? This supplies the fermionic sign when an operator acts on orbital .
Jordan–Wigner stores occupation locally (qubit holds directly) but computes parity non-locally, reading qubits via the string. The opposite extreme, the parity encoding, stores running parity locally but then needs a long string to recover occupation. Both are linear in for one of the two tasks.
The Bravyi–Kitaev idea
Bravyi and Kitaev observed that you do not have to store either raw occupation or raw parity at a single qubit. Instead, store partial sums of occupation numbers on a binary tree of qubits, so that both the occupation of any orbital and the parity of any prefix can be reconstructed from only a logarithmic number of qubits.
Concretely, qubit stores a sum
over a carefully chosen index set derived from the binary representation of . Three index sets organize the reconstruction:
- the update set — qubits whose stored sum changes when flips,
- the parity set — qubits needed to compute the parity of orbitals before ,
- the flip set — qubits needed to determine the occupation of orbital .
Each of these sets has size , so the Pauli string for or acts on only qubits rather than .
Worked small case
For orbitals the BK basis vectors differ from JW. For example, the number operator on orbital 1 is no longer simply ; in the standard BK ordering it becomes a two-qubit operator involving and , because qubit 1 stores the partial sum . The total particle number, , however, remains diagonal in both encodings.
Choosing an encoding in practice
| Property | Jordan–Wigner | Bravyi–Kitaev | |---|---|---| | Occupation lookup | local () | | | Parity lookup | | | | Operator Pauli weight | up to | | | Conceptual clarity | high | lower | | Qubit count | | |
Both use the same number of qubits (, one per spin-orbital) and produce a Hamiltonian that is a weighted sum of Pauli strings. The choice is a trade-off: JW for clarity and small systems, BK (or more recent low-weight encodings such as ternary-tree mappings) for scaling. Software libraries such as OpenFermion implement both behind a single interface, so a chemistry workflow can switch encodings by changing one argument.
In this module we proceed with Jordan–Wigner, whose Hamiltonian for we build explicitly in the next lesson.
Sign in on the full site to ask questions and join the discussion.