Skip to main content
IBM Quantum Platform

PauliProductRotationGate

class qiskit.circuit.library.PauliProductRotationGate(pauli, angle, label=None)

GitHub

ベース: Gate

一般的なパウリ回転。

これはユニタリー演算を実装する

RP(θ)=eiθ/2PR_P(\theta) = e^{-i \theta / 2 P}

パウリ角 P{I,X,Y,Z}nP \in \{I, X, Y, Z\}^{\otimes n} および回転角 θR\theta \in \mathbb R について、これらは束縛されていないパラメータで表すことができる。

例:

from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library import PauliProductRotationGate
from qiskit.quantum_info import Pauli

pauli = Pauli("XYZ")
ppr = PauliProductRotationGate(pauli, angle=0.2)
circuit = QuantumCircuit(10)
circuit.append(ppr, [1, 2, 6])

パラメーター

  • pauli (qiskit.quantum_info.Pauli) – 回転軸を定義するパウリ条件。 「 1-1 」の段階を含む場合があるが、「 ii 」や「 i-i 」は含まない。
  • angle (ParameterValueType) – 回転角度。
  • label (str | None) – 回路の可視化表示でゲートに表示するオプションのラベル。

属性

base_class

この命令の基本クラスを取得します。 これは間違いなくの系譜 selfに含まれている。

命令の「基底クラス」とは、そのオブジェクトが、あらゆる回路用途において完全に互換性があるとみなされるべき、継承ツリーにおける最下位のクラスを指します。 これは通常、サブクラスが単にベースクラスよりもプログラマーにとって使い勝手を良くするために定義されており、行動の観点からはベースクラスこそが「真の」クラスであることを意味します。 特に、代替の測定戦略や、完全なパラメータ Target 化ゲートと区別するために特定のパラメータセットを持つパラメータ化ゲートのバージョンなど、ハードウェアによって異なる方法で実装される命令のカスタムバージョンを定義する場合は*、 *base_class override を使用しないでください。

これは、標準ライブラリの命令のシングルトンインスタンスの場合を除き、多くの場合、 type(obj)これとまったく同等です。 これらのシングルトンインスタンスは、その基底クラスの特別なサブクラスであり、このプロパティはその基底クラスを返します。 例:

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

一般的に、命令の正確なクラスに依存すべきではありません。特定の回路内においては、ほとんどの場合、 Instruction.name の方がより適切な判別基準となると考えられます。

decompositions

SessionEquivalenceLibrary から命令の分解情報を取得します。

definition

他の基本ゲートを用いて定義を導出せよ。

label

戻り先ラベル

mutable

このインスタンスは変更可能な一意のインスタンスですか、それともそうではありませんか。

この属性が設定 False されている場合、ゲートインスタンスは共有シングルトンであり、変更不可能です。

name

名前を返す。

num_clbits

clbits の数を返す。

num_qubits

量子ビットの数を返す。

params

このパラメータ Instructionは…… 理想的には、これらはゲート角度となるはずです。


方法

add_decomposition

add_decomposition(decomposition)

GitHub

SessionEquivalenceLibrary に、その命令の分解情報を追加してください。

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

引数の検証と処理、およびそれらの関係。

例えば、 は cx([q[0],q[1]], q[2]) を意味します cx(q[0], q[2]); cx(q[1], q[2])。 この方法では、引数が正しいグループ分けで返されます。 次の例では:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

放送に関する一般的な規則は以下の通りです:

  • もし len(qargs) == 1 なら:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • もし len(qargs) == 2 なら:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • もし len(qargs) ≧ 3 なら:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

パラメーター

  • qargs (list) – 量子ビットに関する議論の一覧。
  • cargs (list) – 古典的なビット引数のリスト。

戻り値

引数が1つのタプル。

昇給

CircuitError – 入力が不正な場合。 たとえば、引数の数がゲートの期待値と一致していません。

戻りの型

Iterable [ tuple [ list, list ]]

control

control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)

GitHub

そのオブジェクトの制御されたバージョンを返す。

返されるゲートは、 eiθ/2PCe^{-i \theta / 2 P_C} を表す。ここで、 PCP_C は元のパウリ演算子 PP に、制御状態に応じて 00|0\rangle\langle 0| および 11|1\rangle\langle 1| のプロジェクターをテンソル積したものである。

パラメーター

  • num_ctrl_qubits (int) – 追加するコントロールの数。 デフォルトは1です。
  • label (str | None) – ゲートラベル(任意)。 デフォルトはNoneです。 制御ゲートが注釈付き操作として実装されている場合は、無視されます。
  • ctrl_state (int |str | None) – ゲートの制御状態。整数またはビット列(例: "110")で指定されます。 の場合 None、デフォルトでは全1の状態になります 2**num_ctrl_qubits - 1
  • annotated (bool | None) – 制御ゲートを制御ゲートとして実装するか、注釈付き演算子として実装するかを指定します。 もし None、とみなすならば False

戻り値

このゲートの制御版。

昇給

QiskitError – 無効 num_ctrl_qubits または ctrl_state

copy

copy(name=None)

GitHub

説明書の写し。

パラメーター

name (str) – コピーした回路に付ける名前。もし None であれば、名前はそのままになります。

戻り値

現在の指示書の写し(名前が指定されていた場合は、その名前を反映したもの)

戻りの型

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

逆変換を返す。負の角度での回転。

is_parameterized

is_parameterized()

GitHub

containsコンパイル時 Instruction パラメータが含まれているかどうかを返す。

pauli

pauli()

GitHub

パウリ回転軸を返す。

なお、このゲートを構築するために使用 Pauli されるオブジェクトの符号は含まれません。符号は回転角に吸収されるためです。回転角は 属性 params を通じて参照可能です。

戻り値

パウリの回転軸。

戻りの型

qiskit.quantum_info.Pauli

power

power(exponent, annotated=False)

GitHub

このゲートを の累乗に上げてください exponent

単一ゲートとして実装される(参照: UnitaryGate) あるいは、注釈付き操作として(参照 AnnotatedOperation)。 いくつかの標準ゲート( RXGate例えば)の場合、あるゲートの動作を、直接返される別の標準ゲートを用いて表現できる。

パラメーター

  • exponent (float) – 門を開ける力
  • annotated (bool) – パワーゲートが注釈付き演算として実装可能かどうかを示します。 やなどのいくつかの標準 RXGateゲートの場合、あるゲートの電力が別の標準ゲートを用いて表現できるときは、この引数は無視されます。

戻り値

実装する操作 gate^exponent

昇給

CircuitError – ゲートがユニタリーでない場合

repeat

repeat(n)

GitHub

nnself を回繰り返す命令を作成します。

パラメーター

n (int) – 指示を繰り返す回数

戻り値

定義が含まれています。

戻りの型

qiskit.circuit.Instruction

昇給

CircuitError – n < 1 の場合。

reverse_ops

reverse_ops()

GitHub

複合命令の場合、サブ命令の順序を逆にする。

これは、すべてのサブ命令を再帰的に反転させることによって行われます。 どのゲートも反転させません。

戻り値

新しい命令で

サブ命令の順序が逆になっています。

戻りの型

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

ゲート間のソフトな比較。 それらの名前、量子ビット数、および古典ビット数は一致していなければならない。 パラメータの数は一致している必要があります。 各パラメータが比較されます。 ParameterExpression である場合は、考慮されません。

パラメーター

other (instruction) – その他の指示。

戻り値

パラメータ式までは、自己と他者が等しい。

戻りの型

bool

to_matrix

to_matrix()

GitHub

ゲートの単位行列を表す Numpy.array を返す。

戻り値

Gateサブクラスに行列の定義がある場合。

戻りの型

np.ndarray

昇給

CircuitError – ゲートサブクラスがこのメソッドを実装していない場合、この基底クラスのメソッドが呼び出されると例外が発生します。

to_mutable

to_mutable()

GitHub

このゲートの変更可能なコピーを返す。

このメソッドは、このゲートインスタンスの新しい変更可能なコピーを返します。 シングルトンインスタンスが使用されている場合、これは変更可能な新しい一意のインスタンスとなります。 そのインスタンスがすでに変更可能な状態であれば、そのインスタンスの完全なコピーが作成されます。

validate_parameter

validate_parameter(parameter)

GitHub

ゲートパラメータは、int、float、または ParameterExpression 型である必要があります

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