MCMT
class qiskit.circuit.library.MCMT(gate, num_ctrl_qubits, num_target_qubits)
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.
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_circuitMéthodes
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=False)
Renvoyer la version contrôlée du circuit MCMT.