Skip to main content
IBM Quantum Platform

MCMT

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

GitHub

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.

Deprecato dalla versione 1.4

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_circuit

Metodi

control

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

GitHub

Restituisce la versione controllata del circuito MCMT.

inverse

inverse(annotated=False)

GitHub

Restituisce il circuito MCMT inverso, che è se stesso.

Parametri

annotated (bool)

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.