Skip to main content
IBM Quantum Platform

MCMT

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

GitHub

Bases : QuantumCircuit

La porte multicible multi-contrôlée, pour une porte cible arbitraire à commande unique.

Par exemple, la porte H contrôlée sur 3 qubits et agissant sur 2 qubits cibles est représentée comme suit :

───■────

───■────

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

Cette implémentation par défaut ne nécessite aucun qubit auxiliaire, puisqu'elle diffuse la porte cible vers le nombre de qubits cibles et utilise la routine de contrôle générique de Qiskit pour contrôler la cible diffusée sur les qubits de contrôle. Si des qubits auxiliaires sont disponibles, il est possible d'utiliser une variante plus efficace faisant appel à ce qu'on appelle la décomposition en chaîne en V. Cela est implémenté dans MCMTVChain.

Créer une nouvelle porte multi-contrôle multi-cible.

Déclassé depuis la version 1.4

La classe qiskit.circuit.library.generalized_gates.mcmt.MCMT est obsolète depuis Qiskit 1.4. Elle sera retirée au plus tôt trois mois après la date de diffusion. Utilisez plutôt MCMTGate.

Paramètres

  • gate (Gate | Callable[[QuantumCircuit, circuit.Qubit, circuit.Qubit], circuit.Instruction]) – La porte à appliquer est contrôlée par les qubits de contrôle et appliquée aux qubits cibles. Il peut s'agir soit d'une méthode « Gate », soit d'une méthode de circuit. S'il s'agit d'un objet « callable », il sera converti en Gate.
  • num_ctrl_qubits (int) – Le nombre de qubits de contrôle.
  • num_target_qubits (int) – Le nombre de qubits cibles.

Augmentations

  • AttributeError – Si la porte ne peut pas être transformée en porte contrôlée.
  • AttributeError - Si le nombre de contrôles ou de cibles est de 0.

Attributs

num_ancilla_qubits

Renvoie le nombre d'ancillas.

name

Type : str

Un nom lisible par l'homme pour le circuit.

Exemple

from qiskit import QuantumCircuit

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

Méthodes

control

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

GitHub

Renvoyer la version contrôlée du circuit MCMT.

inverse

inverse(annotated=False)

GitHub

Retourne le circuit MCMT inverse, qui est lui-même.

Paramètres

annotated (bool)

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.