fermion_jordan_wigner
fermion_jordan_wigner(op, num_qubits)
Mapeie para FermionOperator sob SparseObservable a transformação de Jordan-Wigner. [1]
O modo fermiónico é mapeado para o qubit do resultado ( SparseObservable ou seja, a identidade é aplicada a qualquer qubit fora do suporte do operador). Isso segue a ordenação de qubits no formato little-endian do Qiskit, em que o índice do qubit em um rótulo de Pauli, como, corresponde X_2 Z_1 Z_0 ao índice do modo.
Parâmetros
- op – o operador fermiónico a ser mapeado.
- num_qubits – o número de qubits do operador de qubits resultante. Esse valor deve ser estritamente maior que o maior índice de modo em
op(quaisquer qubits adicionais são preenchidos com a identidade).
Retorna
O operador de qubit mapeado. O resultado não é simplificado; utilize a função simplify() para combinar termos duplicados.
Aumentos
ValueError – se num_qubits for pequeno demais para conter o suporte do operador, ou seja, se não for maior que o maior índice modal sobre o qual atua op.
Definição
A transformação de Jordan-Wigner mapeia os operadores de criação e aniquilação de férmions para operadores de spin (ou, neste caso, de qubits):
onde ( ) é o operador de criação (aniquilação) de férmions que atua sobre o modo férmionico sem spin de ordem , com são os operadores de Pauli de spin e .
Esse mapeamento preserva as relações de anticomutação fermiónicas ao introduzir uma cadeia de operadores “ ” em todos os qubits que precedem o índice sobre o qual a ação é exercida .
Uso
Como a função não FermionOperator determina um número fixo de modos sobre os quais atua, é possível especificar o número de qubits aos quais ela deve ser mapeada ao chamá-la.
>>> from qiskit_fermions.mappers.library import fermion_jordan_wigner
>>> from qiskit_fermions.operators import FermionOperator
>>> fop = FermionOperator.from_dict(
... {
... (): 2.0,
... ((True, 0), (False, 0)): 0.1,
... ((True, 1), (False, 2), (True, 2), (False, 1)): -1.0j,
... }
... )
>>> qop = fermion_jordan_wigner(fop, 4)
>>> qop.simplify()
<SparseObservable with 5 terms on 4 qubits: (2.05-0.25j)() + (-0.05+0j)(Z_0) + (0+0.25j)(Z_1) + (0+0.25j)(Z_2 Z_1) + (0-0.25j)(Z_2)>
[ 1 ]
P. Jordan e E. Wigner, “Über das Paulische Äquivalenzverbot”, Zeitschrift für Physik 47, n.º 9. (1928), pp. 631–651, doi:10.1007/BF01331938.