jordan_wigner
jordan_wigner(operator, num_qubits)
Mapeie um operador para um SparseObservable sob a transformação de Jordan-Wigner.
Este é o ponto de entrada independente de tipo para a transformação de Jordan-Wigner. Ele direciona o tipo concreto de operator para a implementação direta apropriada. Atualmente, apenas FermionOperator é suportado, delegando a fermion_jordan_wigner(); qualquer outro tipo de operador gera uma TypeError até que exista uma implementação direta para ele.
Parâmetros
- operator (OperatorTrait) – o operador a ser mapeado.
- num_qubits (int) – o número de qubits para o operador de qubits resultante. Esse valor deve ser estritamente maior que o maior índice de modo em
operator(quaisquer qubits adicionais são preenchidos com a identidade).
Retorna
O operador de qubit mapeado.
Aumentos
- TypeError – se
operatorfor de um tipo para o qual não exista nenhuma implementação de Jordan-Wigner. - ValueError – se
num_qubitsfor pequeno demais para suportar o peso do operador.
Tipo de retorno
>>> from qiskit_fermions.mappers.library import jordan_wigner
>>> from qiskit_fermions.operators import FermionOperator
>>> fop = FermionOperator.from_dict({((True, 0), (False, 0)): 0.1})
>>> jordan_wigner(fop, 2).simplify()
<SparseObservable with 2 terms on 2 qubits: (0.05+0j)() + (-0.05+0j)(Z_0)>
Um tipo de operador sem implementação direta gera um TypeError:
>>> from qiskit_fermions.operators import MajoranaOperator
>>> mop = MajoranaOperator.from_dict({(0, 1): 1.0})
>>> jordan_wigner(mop, 2)
Traceback (most recent call last):
...
TypeError: jordan_wigner does not support operator type 'MajoranaOperator'; only FermionOperator is supported today.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.