MCMT
class qiskit.circuit.library.MCMT(gate, num_ctrl_qubits, num_target_qubits)
Basi: QuantumCircuit
Il gate multi-target controllato, per un gate target controllato singolarmente arbitrario.
Ad esempio, la porta H controllata su 3 qubit e che agisce su 2 qubit di destinazione è rappresentata come:
───■────
│
───■────
│
───■────
┌──┴───┐
┤0 ├
│ 2-H │
┤1 ├
└──────┘Questa implementazione predefinita non richiede qubit ausiliari, poiché trasmette il gate di destinazione al numero di qubit di destinazione e utilizza la routine di controllo generica di Qiskit per controllare il gate trasmesso sui qubit di controllo. Se sono disponibili qubit ancillari, è possibile ricorrere a una variante più efficiente che utilizza la cosiddetta decomposizione a catena V. Questo è implementato in MCMTVChain.
Creare un nuovo gate multi-controllo multi-target.
La classe qiskit.circuit.library.generalized_gates.mcmt.MCMT è deprecata a partire da Qiskit 1.4. Verrà rimosso non prima di 3 mesi dalla data di rilascio. Utilizzare invece MCMTGate.
Parametri
- gate (Gate | Callable[[QuantumCircuit, circuit.Qubit, circuit.Qubit], circuit.Instruction]) – Il gate da applicare viene controllato dai qubit di controllo e applicato ai qubit di destinazione. Può trattarsi sia di un metodo "Gate" che di un metodo "circuit". Se si tratta di un "callable", verrà convertito in un Gate.
- num_ctrl_qubits (int) – Il numero di qubit di controllo.
- num_target_qubits (int) – Il numero di qubit di destinazione.
Aumenti
- AttributeError – Se il gate non può essere trasformato in un gate controllato.
- AttributeError - Se il numero di controlli o di target è 0, il numero di controlli o di target è 0.
Attributi
num_ancilla_qubits
Restituisce il numero di ancillas.
name
Tipo: str
Un nome leggibile per il circuito.
Esempio
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuitMetodi
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=False)
Restituisce la versione controllata del circuito MCMT.