MCMT
class qiskit.circuit.library.MCMT(gate, num_ctrl_qubits, num_target_qubits)
베이스: QuantumCircuit
임의의 단일 제어 대상 게이트를 위한 다중 제어 멀티 타겟 게이트입니다.
예를 들어, 3개의 큐비트로 제어되고 2개의 대상 큐비트에 작용하는 H 게이트는 다음과 같이 표현됩니다:
───■────
│
───■────
│
───■────
┌──┴───┐
┤0 ├
│ 2-H │
┤1 ├
└──────┘이 기본 구현 방식은 대상 게이트를 대상 큐비트 수만큼 브로드캐스팅하고, Qiskit의 일반 제어 루틴을 사용하여 제어 큐비트에서 브로드캐스팅된 대상을 제어함으로써 보조 큐비트를 전혀 필요로 하지 않습니다. 보조 큐비트를 사용할 수 있다면, 소위 V-체인 분해를 활용한 더 효율적인 변형 방식을 적용할 수 있다. 이는 에서 구현됩니다 MCMTVChain.
새로운 멀티 컨트롤 멀티 타겟 게이트를 만듭니다.
버전부터 사용되지 않음 1.4
qiskit.circuit.library.generalized_gates.mcmt.MCMT 클래스는 키스킷 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)
제어된 버전의 MCMT 회로를 반환합니다.
inverse
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.