Skip to main content
IBM Quantum Platform

jordan_wigner

jordan_wigner(operator, num_qubits)

Asigna un operador a un mediante SparseObservable la transformación de Jordan-Wigner.

Este es el punto de partida, independiente del tipo, para la transformación de Jordan-Wigner. Se redirige al tipo concreto de operator hacia la implementación directa correspondiente. Actualmente solo FermionOperator se admite, que se delega a fermion_jordan_wigner(); cualquier otro tipo de operador genera un TypeError hasta que exista una implementación directa para él.

Parámetros

  • operator (OperatorTrait) – el operador que se va a asignar.
  • num_qubits (int) – el número de qubits del operador de qubits resultante. Este valor debe ser estrictamente mayor que el índice del modo más grande en operator (cualquier qubit adicional se rellena con la identidad).

Devuelve

El operador del qubit mapeado.

Subidas

  • TypeError – si operator es de un tipo para el que no existe ninguna implementación de Jordan-Wigner.
  • ValueError – si es num_qubits demasiado pequeño para soportar el peso del operario.

Tipo de retorno

SparseObservable

>>> 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)>

Un tipo de operador sin implementación directa genera un 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.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.