Skip to main content
IBM Quantum Platform

jordan_wigner

jordan_wigner(operator, num_qubits)

Associer un opérateur à un SparseObservable dans le cadre de la transformation de Jordan-Wigner.

Il s'agit du point d'entrée indépendant du type pour la transformation de Jordan-Wigner. Il effectue la délégation vers operator l'implémentation directe appropriée en fonction du type concret de. Seul FermionOperator est pris en charge aujourd’hui, avec délégation à fermion_jordan_wigner(); tout autre type d’opérateur génère une exception TypeError jusqu’à ce qu’une implémentation directe existe pour celui-ci.

Paramètres

  • operator (OperatorTrait) – l'opérateur à mapper.
  • num_qubits (int) – le nombre de qubits correspondant à l'opérateur de qubits obtenu. Cette valeur doit être strictement supérieure à l'indice du mode le plus élevé dans operator (tout qubit supplémentaire est complété par l'identité).

Retours

L'opérateur de qubit projeté.

Augmentations

  • TypeError – si operator est d'un type pour lequel il n'existe aucune implémentation de Jordan-Wigner.
  • ValueError – si num_qubits est trop petit pour contenir le support de l’opérateur.

Type de retour

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 type d'opérateur sans implémentation directe génère une 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.
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.