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
operatorest d'un type pour lequel il n'existe aucune implémentation de Jordan-Wigner. - ValueError – si
num_qubitsest trop petit pour contenir le support de l’opérateur.
Type de retour
>>> 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.