MCXVChain
class qiskit.circuit.library.MCXVChain(num_ctrl_qubits=None, dirty_ancillas=False, label=None, ctrl_state=None, *, _base_label=None, relative_phase=False, action_only=False)
Bases: MCXGate
Implementa la puerta X multicontrolada utilizando una cadena en V de puertas CX.
Parámetros
- num_ctrl_qubits (int | None) – Número de controles que se deben añadir. El valor predeterminado es
1. - dirty_ancillas (bool) – cuando se establece en
True, el método aplica una puerta multicontrolada-X optimizada hasta una fase relativa utilizando qubits auxiliares sucios con las propiedades de los lemas 7 y 8 de arXiv:1501.06911, con un máximo de 8*k - 6 puertas CNOT. Para k dentro del intervalo {1, …, ceil(n/2)}. Y para n que representa el número total de qubits. - label (str | None) – Etiqueta opcional para la compuerta. El valor predeterminado es
None. - ctrl_state (int |str | None) – El estado de control de la puerta, especificado como un número entero o una cadena de bits (p. ej.,
"110"). SiNone, se establece por defecto en el estado en el que todos los bits son «1»2**num_ctrl_qubits - 1 - relative_phase (bool) – cuando se establece en
True, el método aplica la puerta multicontrolada-X optimizada hasta una fase relativa, de forma que, por el lema 7 de arXiv:1501.06911, las fases relativas deaction partse cancelan con las fases dereset part. - action_only (bool) – cuando se establece en
True, el método sólo aplica la parte de acción del lema 8 de arXiv:1501.06911.
Métodos
get_num_ancilla_qubits
static get_num_ancilla_qubits(num_ctrl_qubits, mode='v-chain')
Obtén el número de qubits ancilla necesarios.
Parámetros
inverse
inverse(annotated=False)
Invierte esta puerta. El MCX es su propia inversa.
Parámetros
annotated (bool) – cuando se establece en True, esto se utiliza normalmente para devolver un AnnotatedOperation con un modificador inverso en lugar de un Gate. Sin embargo, para esta clase se ignora este argumento ya que esta puerta es autoinversible.
Devuelve
puerta inversa (autoinversa).
Tipo de retorno