Qiskit gates: Support PermutationGate #443
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of #369
Summary
This PR add support Qiskit’s
PermutationGate
and adds tests accordingly.Spinless Case
For a permutation $\pi$ acting on spinless orbitals, the simulator decomposes$\pi$ into fermionic swaps and applies them sequentially.$|n_0 n_1 \dots n_{m-1} \rangle$ with occupations $n_i \in \lbrace 0 , 1 \rbrace$ , the gate implements
On a computational‑basis state
where$T_\pi$ is any sequence of transpositions generating $\pi$ and $\hat{S}_{k,j}$ is the fermionic swap exchanging orbitals $k$ and $j$ .
Spinful Case
With spinful orbitals split into$\alpha$ and $\beta$ sectors, the simulator enforces that a permutation never mixes spins.$\pi$ separates into permutations $\pi_\alpha$ and $\pi_\beta$ acting within the $\alpha$ and $\beta$ sectors, then for a basis state $|n^\alpha; n^\beta\rangle = |n_0^\alpha \dots n_{n-1}^\alpha; n_0^\beta \dots n_{n-1}^\beta\rangle$
If