PauliProductRotationGate
class qiskit.circuit.library.PauliProductRotationGate(pauli, angle, label=None)
ベース: Gate
一般的なパウリ回転。
これはユニタリー演算を実装する
パウリ角 および回転角 について、これらは束縛されていないパラメータで表すことができる。
例:
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) – 回転軸を定義するパウリ条件。 「 」の段階を含む場合があるが、「 」や「 」は含まない。
- 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
broadcast_arguments
broadcast_arguments(qargs, cargs)
引数の検証と処理、およびそれらの関係。
例えば、 は 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], ...]
パラメーター
戻り値
引数が1つのタプル。
昇給
CircuitError – 入力が不正な場合。 たとえば、引数の数がゲートの期待値と一致していません。
戻りの型
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)
そのオブジェクトの制御されたバージョンを返す。
返されるゲートは、 を表す。ここで、 は元のパウリ演算子 に、制御状態に応じて および のプロジェクターをテンソル積したものである。
パラメーター
- 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)
説明書の写し。
パラメーター
name (str) – コピーした回路に付ける名前。もし None であれば、名前はそのままになります。
戻り値
現在の指示書の写し(名前が指定されていた場合は、その名前を反映したもの)
戻りの型
inverse
is_parameterized
pauli
pauli()
パウリ回転軸を返す。
なお、このゲートを構築するために使用 Pauli されるオブジェクトの符号は含まれません。符号は回転角に吸収されるためです。回転角は 属性 params を通じて参照可能です。
戻り値
パウリの回転軸。
戻りの型
power
power(exponent, annotated=False)
このゲートを の累乗に上げてください exponent。
単一ゲートとして実装される(参照: UnitaryGate) あるいは、注釈付き操作として(参照 AnnotatedOperation)。 いくつかの標準ゲート( RXGate例えば)の場合、あるゲートの動作を、直接返される別の標準ゲートを用いて表現できる。
パラメーター
- exponent (float) – 門を開ける力
- annotated (bool) – パワーゲートが注釈付き演算として実装可能かどうかを示します。 やなどのいくつかの標準
RXGateゲートの場合、あるゲートの電力が別の標準ゲートを用いて表現できるときは、この引数は無視されます。
戻り値
実装する操作 gate^exponent
昇給
CircuitError – ゲートがユニタリーでない場合
repeat
repeat(n)
self を回繰り返す命令を作成します。
パラメーター
n (int) – 指示を繰り返す回数
戻り値
定義が含まれています。
戻りの型
昇給
CircuitError – n < 1 の場合。
reverse_ops
reverse_ops()
複合命令の場合、サブ命令の順序を逆にする。
これは、すべてのサブ命令を再帰的に反転させることによって行われます。 どのゲートも反転させません。
戻り値
新しい命令で
サブ命令の順序が逆になっています。
戻りの型
soft_compare
soft_compare(other)
ゲート間のソフトな比較。 それらの名前、量子ビット数、および古典ビット数は一致していなければならない。 パラメータの数は一致している必要があります。 各パラメータが比較されます。 ParameterExpression である場合は、考慮されません。
パラメーター
other (instruction) – その他の指示。
戻り値
パラメータ式までは、自己と他者が等しい。
戻りの型
to_matrix
to_matrix()
ゲートの単位行列を表す Numpy.array を返す。
戻り値
Gateサブクラスに行列の定義がある場合。
戻りの型
np.ndarray
昇給
CircuitError – ゲートサブクラスがこのメソッドを実装していない場合、この基底クラスのメソッドが呼び出されると例外が発生します。
to_mutable
to_mutable()
このゲートの変更可能なコピーを返す。
このメソッドは、このゲートインスタンスの新しい変更可能なコピーを返します。 シングルトンインスタンスが使用されている場合、これは変更可能な新しい一意のインスタンスとなります。 そのインスタンスがすでに変更可能な状態であれば、そのインスタンスの完全なコピーが作成されます。