FermionicEvolutionSynthesis¶
- class FermionicEvolutionSynthesis¶
Bases:
ABCThe interface for fermion-to-fermion synthesis of an
Evolutiongate.An implementation of this interface rewrites the time evolution \(e^{-i t H}\) carried by an
Evolutiongate into aFermionicCircuitof smallerFermionicGateinstances. Both sides of that rewrite live in fermionic space, which is what distinguishes this from the fermion-to-qubit synthesis performed later byF2QSynthesis: the fermionic structure ofH(in particular itsgroups(see Group operator terms: use the operator structure)) survives and is still available to that later stage.Important
This fermion-to-fermion step is optional. An
Evolutiongate does not need to be broken down in fermionic space at all: the fermion-to-qubit stage can map and synthesize it directly, however many terms its operator holds. Splitting it up first is a choice, made because the resulting factors are individually cheaper to implement, or because the split exposes structure (such as mutually commuting groups) that the later stage can exploit.Because the fermion-to-fermion and fermion-to-qubit steps compose, an evolution may end up approximated at either level, at both, or at neither. Where an approximation is involved at both, the accuracy of the result is governed by the weaker of the two.
Note
Qiskit’s
EvolutionSynthesisis the closest analogue, but it belongs to the qubit layer: it synthesizes aPauliEvolutionGateinto aQuantumCircuit, after the operator has already been mapped.Methods
- abstractmethod synthesize(gate)¶
Synthesizes the provided
Evolutiongate.- Parameters:
gate (Evolution) – the gate to synthesize. Its
operatoris the Hermitian operator \(H\) and itsparams[0]the evolution time \(t\) of \(e^{-i t H}\).- Returns:
A
FermionicCircuitongate.num_modesmodes implementing the evolution.- Return type: