jordan_wigner
jordan_wigner(operator, num_qubits)
Assegnare un operatore a un SparseObservable nell’ambito della trasformazione di Jordan-Wigner.
Questo è il punto di partenza, indipendente dal tipo, per la trasformazione di Jordan-Wigner. Esso indirizza il tipo concreto di operator all’implementazione diretta appropriata. Al momento FermionOperator è supportato solo, con delega a fermion_jordan_wigner(); qualsiasi altro tipo di operatore genera un TypeError finché non ne esista un'implementazione diretta.
Parametri
- operator (OperatorTrait) – l'operatore da mappare.
- num_qubits (int) – il numero di qubit dell'operatore su qubit risultante. Questo valore deve essere rigorosamente maggiore dell’indice modale più grande in
operator(eventuali qubit aggiuntivi vengono riempiti con l’identità).
Risultati
L'operatore del qubit mappato.
Aumenti
- TypeError – se
operatorè di un tipo per il quale non esiste un'implementazione di Jordan-Wigner. - ValueError – se è
num_qubitstroppo piccolo per sostenere l'operatore.
Tipo di restituzione
>>> 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 di operatore senza un'implementazione diretta 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.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.