Skip to main content
IBM Quantum Platform

オペレータユーティリティ

qiskit_addon_obp.utils.operations

演算子バックプロパゲーションのユーティリティ関数。

apply_op_to

apply_op_to(op1, op1_qargs, op2, op2_qargs, *, apply_as_transform=False)

GitHub

演算子 op2 を演算子 op1 に適用する。

これらの演算子は、より大きなシステムに作用すると仮定されているため、必ずしも同じ数の量子ビットに作用する必要はない。 各オペレーターのシステム内での位置は、対応する qargs によって定義される。 出力演算子は union(op1_qargs, op2_qargs) で定義される。

デフォルトでは、この関数は op1op2 に以下のように適用する:

op2 @ op1

apply_as_transform=True を設定することで、この機能は op1 から op2 を以下のように適用する:

op2.adjoint() @ op1 @ op2

パラメーター

  • op1 (SparsePauliOp) – op2 が適用されるオペレーター。
  • op1_qargs (list[int]) – op1 の量子ビット・インデックス。
  • op2 (SparsePauliOp) – op1
  • op2_qargs (list[int]) – op2 の量子ビット・インデックス。
  • apply_as_transform (bool) – op1 に変換として を適用するかどうか。 op2

戻り値

タプル (op, qargs)op は入力 op1op2 を左から適用したもので、 qargs は新しい演算子 op のための量子ビットインデックスのリストである。 出力 op の量子ビットIDは、 qargs の同じインデックスのグローバル量子ビットIDに対応する。

例えば、出力 opSparsePauliOp("YX")qargs が [3, 4の]場合、演算子のqubit 0のX項はグローバルqubit ID 3に対応する。

レイズ

ValueError - 一意な演算子qargsの数は、対応する演算子の量子ビットの数と一致しなければならない。

戻りの型

タプル [*SparsePauliOp*, list[ int ]]

apply_reset_to

apply_reset_to(op, qubit_id, inplace=False)

GitHub

パウリ演算子にリセット操作を適用する。

この機能は、以下の方法で op にリセット操作を適用する:

<0|op|0>

qubit-qubit_id 、パウリX項またはY項を含む項は、その重みが 0.0qubit_id 、パウリZを含む用語は、そのパウリZが恒等式で置き換えられる。

パラメーター

  • op (SparsePauliOp) – リセットを適用するオペレータ。
  • qubit_id (int) – リセットを適用する量子ビットのインデックス。
  • inplace (bool) – 演算子をインプレースで修正するかどうか。

戻り値

変換された演算子

戻りの型

SparsePauliOp

to_global_op

to_global_op(op, qargs, n_qubits)

GitHub

使用されていない量子ビットに識別子を挿入することで、ローカル演算子をグローバル演算子に変換する。

パラメーター

  • op (SparsePauliOp) – 地元企業が事業拡大へ
  • qargs (list[int]) – 局所演算子のQubitインデックス。
  • n_qubits (int) – グローバルシステムの量子ビット数。

戻り値

n_qubits 量子ビット上の演算子

レイズ

ValueError - Qubit IDが範囲外

戻りの型

SparsePauliOp

reduce_op

reduce_op(global_op)

GitHub

グローバルなパウリ演算子の無駄のない表現を作成する。

この関数は、パウリI項のみに関連するすべての量子ビットが取り除かれた、入力演算子のリーン表現を返します。 リーン演算子がどの量子ビットに作用するかを示すインデックスのリストも返される。

例:

>>> global_op = SparsePauliOp(["IXI", "IIZ"])
>>> reduced_op, qargs = reduce_op(global_op)
>>> reduced_op
SparsePauliOp(['XI', 'IZ'],
              coeffs=[1.+0.j, 1.+0.j])
>>> qargs
[0, 1]

パラメーター

global_op (SparsePauliOp) – リーン表現を生成するグローバル演算子

戻り値

  • ID項のみに関連する量子ビットを取り除いた、入力演算子の無駄のない表現。
  • リーン演算子が作用する量子ビットを指定するインデックスのリスト。

レイズ

ValueError - 入力演算子は同一演算子であってはならない。

戻りの型

タプル [*SparsePauliOp*, list[ int ]]

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。