fermion_jordan_wigner
fermion_jordan_wigner(op, num_qubits)
ジョーダン・ウィグナー変換の下 SparseObservable で、a を b FermionOperator に写像する。 [1]
フェルミオンモード は、結果として得られる状態の量子ビット に写像される( SparseObservable すなわち、演算子の支持集合外の任意の量子ビットに対しては、恒等写像が用いられる)。 これは、Qiskitのリトルエンディアン形式の量子ビットの順序に従ったものであり、 のようなパウリラベルにおける量子ビットのインデックスは、モードのインデックスとなります X_2 Z_1 Z_0 。
パラメーター
- op – 写像を行うフェルミオン演算子。
- num_qubits – 結果として得られる量子ビット演算子の量子ビット数。 これは、(最大のモードインデックスよりも)厳密に大きくなければならない(
opそれ以上のクビットについては、恒等演算子でパディングされる)。
戻り値
写像された量子ビット演算子。 結果は単純化されていません。重複する項を結合するには simplify() 、``を呼び出してください。
昇給
ValueError – もし が演算子の支持集合を収容するには小さすぎる num_qubits 場合、すなわち、 によって作用を受ける最大のモード指数以下である場合 op。
定義
ジョーダン・ウィグナー変換は、フェルミオンの生成演算子および消滅演算子を、スピン(あるいはこの場合は量子ビット)演算子に写像する:
ここで、 ( )は、 のスピンを持たないフェルミオンモードの番目に作用する生成(消滅)演算子であり、 ( )はスピン のパウリ演算子であり、 である。
この写像は、作用の対象となるインデックス の直前にあるすべての量子ビットに対して、 演算子の連鎖を導入することで、フェルミオンの反交換関係を保ちます。
使用法
a は、作用するモードの数を固定して決めるわけではない FermionOperator ため、この関数を呼び出す際に、マッピング先の量子ビットの数を指定することができます。
>>> from qiskit_fermions.mappers.library import fermion_jordan_wigner
>>> from qiskit_fermions.operators import FermionOperator
>>> fop = FermionOperator.from_dict(
... {
... (): 2.0,
... ((True, 0), (False, 0)): 0.1,
... ((True, 1), (False, 2), (True, 2), (False, 1)): -1.0j,
... }
... )
>>> qop = fermion_jordan_wigner(fop, 4)
>>> qop.simplify()
<SparseObservable with 5 terms on 4 qubits: (2.05-0.25j)() + (-0.05+0j)(Z_0) + (0+0.25j)(Z_1) + (0+0.25j)(Z_2 Z_1) + (0-0.25j)(Z_2)>
[ 1 ]
P. ジョーダンとE. ウィグナー、「パウリの等価禁止則について」、『Zeitschrift für Physik』47巻、第9号。 (1928)、631–651頁、 doi:10.1007/BF01331938。