Skip to main content
IBM Quantum Platform

MCMT

class qiskit.circuit.library.MCMT(gate, num_ctrl_qubits, num_target_qubits)

GitHub

ベース: QuantumCircuit

マルチ制御マルチターゲットゲート、任意の単一制御ターゲットゲート用。

例えば、3つの量子ビットで制御され、2つのターゲット量子ビットに作用するHゲートは、次のように表されます:

───■────

───■────

───■────
┌──┴───┐
┤0     ├
│  2-H │
┤1     ├
└──────┘

このデフォルトの実装では、ターゲットゲートをターゲット量子ビットの数だけブロードキャストし、Qiskitの汎用制御ルーチンを使用して制御量子ビット上でブロードキャストされたターゲットを制御することで、補助量子ビットを一切必要としません。 アンシラ量子ビットが利用可能であれば、いわゆるV-チェーン分解を用いた、より効率的な手法を採用することができる。 これは.で実装されています MCMTVChain

新しいマルチ・コントロール・マルチ・ターゲット・ゲートを作成する。

バージョンから非推奨 1.4

クラス qiskit.circuit.library.generalized_gates.mcmt.MCMT は Qiskit 1.4 で非推奨となりました。 発売日から3ヶ月以内に削除されます。 代わりにMCMTGateを使用する。

パラメーター

  • gate (Gate | Callable[[QuantumCircuit, circuit.Qubit, circuit.Qubit], circuit.Instruction]) – 制御量子ビットで制御されたゲートが、対象量子ビットに適用される。 ゲート方式でも回路方式でも構いません。 呼び出し可能オブジェクトの場合は、Gate型にキャストされます。
  • num_ctrl_qubits (int) – 制御量子ビットの数。
  • num_target_qubits (int) – 対象となる量子ビットの数。

レイズ

  • AttributeError – ゲートを制御可能なゲートに変換できない場合。
  • AttributeError - コントロールまたはターゲットの数が0の場合。

属性

num_ancilla_qubits

アンシラの数を返す。

name

タイプ: str

人間が読める回路名。

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit

方法

control

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

GitHub

MCMT回路の制御バージョンを返す。

inverse

inverse(annotated=False)

GitHub

逆MCMT回路を返す。

パラメーター

annotated (bool)

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