Skip to main content
IBM Quantum Platform

MCMT

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

GitHub

Bases: QuantumCircuit

A porta multialvo multicontrolada, para uma porta de alvo arbitrária controlada individualmente.

Por exemplo, a porta H controlada por 3 qubits e que atua sobre 2 qubits-alvo é representada da seguinte forma:

───■────

───■────

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

Essa implementação padrão não requer qubits auxiliares, pois transmite a porta de destino para o número de qubits de destino e utiliza a rotina de controle genérica do Qiskit para controlar o destino transmitido nos qubits de controle. Se houver qubits auxiliares disponíveis, pode-se utilizar uma variante mais eficiente que recorre à chamada decomposição em cadeia V. Isso é implementado em MCMTVChain.

Crie um novo portão multicontrole e multialvo.

Descontinuado desde a versão 1.4

A classe qiskit.circuit.library.generalized_gates.mcmt.MCMT está obsoleta desde o Qiskit 1.4. Ele não será removido antes de 3 meses após a data de lançamento. Em vez disso, use o MCMTGate.

Parâmetros

  • gate (Gate | Callable[[QuantumCircuit, circuit.Qubit, circuit.Qubit], circuit.Instruction]) – A porta a ser aplicada é controlada pelos qubits de controle e aplicada aos qubits-alvo. Pode ser tanto um método de porta quanto um método de circuito. Se for um objeto chamável, ele será convertido para um Gate.
  • num_ctrl_qubits (int) – O número de qubits de controle.
  • num_target_qubits (int) – O número de qubits de destino.

Aumentos

  • AttributeError – Se o portal não puder ser transformado em um portal controlado.
  • AttributeError - Se o número de controles ou alvos for 0.

Atributos

num_ancilla_qubits

Retorna o número de ancillas.

name

Tipo: str

Um nome legível por humanos para o circuito.

Exemplo

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

Retorna a versão controlada do circuito MCMT.

inverse

inverse(annotated=False)

GitHub

Retorna o circuito MCMT inverso, que é ele mesmo.

Parâmetros

annotated (bool)

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.