Skip to main content
IBM Quantum Platform

MCMT

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

GitHub

Bases: QuantumCircuit

La puerta multiobjetivo multicontrolada, para una puerta objetivo arbitraria controlada individualmente.

Por ejemplo, la puerta H controlada por 3 qubits y que actúa sobre 2 qubits de destino se representa así:

───■────

───■────

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

Esta implementación predeterminada no requiere qubits auxiliares, ya que difunde la puerta de destino al número de qubits de destino y utiliza la rutina de control genérica de Qiskit para controlar el destino difundido en los qubits de control. Si se dispone de qubits auxiliares, se puede emplear una variante más eficiente que utiliza la denominada descomposición en cadena V. Esto se implementa en MCMTVChain.

Crear una nueva puerta multicontrol multiobjetivo.

Obsoleto desde la versión 1.4

La clase qiskit.circuit.library.generalized_gates.mcmt.MCMT está obsoleta a partir de Qiskit 1.4. Se retirará como muy pronto 3 meses después de la fecha de publicación. Utilice MCMTGate en su lugar.

Parámetros

  • gate (Gate | Callable[[QuantumCircuit, circuit.Qubit, circuit.Qubit], circuit.Instruction]) – La puerta se aplica de forma controlada a los qubits de control y se aplica a los qubits de destino. Puede ser un método de puerta o un método de circuito. Si se trata de un objeto invocable, se convertirá en un Gate.
  • num_ctrl_qubits (int) – El número de qubits de control.
  • num_target_qubits (int) – El número de qubits objetivo.

Eleva

  • AttributeError – Si la puerta no se puede convertir en una puerta controlada.
  • AttributeError - Si el número de controles u objetivos es 0.

Atributos

num_ancilla_qubits

Devuelve el número de ancillas.

name

Tipo: str

Un nombre legible para el circuito.

Ejemplo

from qiskit import QuantumCircuit

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

Métodos

control

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

GitHub

Devuelve la versión controlada del circuito MCMT.

inverse

inverse(annotated=False)

GitHub

Devuelve el circuito MCMT inverso, que es él mismo.

Parámetros

annotated (bool)

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.