Skip to main content
IBM Quantum Platform

Biblioteca de circuitos

qiskit.circuit.library

La biblioteca de circuitos es una colección de valiosos circuitos y bloques de construcción. Las llamamos valiosas por diferentes razones. Por ejemplo, pueden utilizarse como bloques de construcción para algoritmos, servir como puntos de referencia o son circuitos que se conjetura que son difíciles de simular clásicamente.

Los elementos de la biblioteca de circuitos son QuantumCircuits o Instructions, lo que permite investigarlos fácilmente o conectarlos a otros circuitos. Esto permite crear prototipos rápidamente y diseñar circuitos a niveles de abstracción superiores.

Por ejemplo:

from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp

hamiltonian = SparsePauliOp(["ZZI", "IZZ", "IXI"], coeffs=[1, 1, -1])
gate = PauliEvolutionGate(hamiltonian)

circuit = QuantumCircuit(hamiltonian.num_qubits)
circuit.append(gate, circuit.qubits)

circuit.draw("mpl")
Un circuito que implementa una expansión Suzuki-Trotter de una evolución Hamiltoniana.

Esta biblioteca está organizada en diferentes secciones:

Distinguimos distintas categorías de operaciones:

Puertas estándar

Se trata de puertas cuánticas fundamentales, un subconjunto de las cuales suele formar un conjunto de puertas base en un ordenador cuántico. Se trata de operaciones unitarias representadas como Gate. La biblioteca también proporciona directivas estándar del compilador (a Barrier) y operaciones no unitarias (como Measure).

Operaciones abstractas

Esta categoría incluye operaciones que se definen mediante una acción matemática, pero que pueden aplicarse con diferentes descomposiciones. Por ejemplo, una puerta multicontrolada XGate invierte el qubit objetivo si todos los qubits de control son 1|1\rangle, y hay una variedad de circuitos concretos que implementan esta operación utilizando puertas de nivel inferior. Estas operaciones abstractas se representan como Gate o Instruction. Esto permite construir el circuito sin elegir una implementación concreta de cada bloque y, finalmente, dejar que el compilador (o tú como usuario) elija la descomposición óptima. Por ejemplo:

from qiskit.circuit.library import MCXGate
mcx = MCXGate(4)

from qiskit import QuantumCircuit
circuit = QuantumCircuit(5)
circuit.append(mcx, [0, 1, 4, 2, 3])
circuit.draw("mpl")
Un circuito con una puerta X multicontrolada.

Para los circuitos con operaciones abstractas, el contexto del circuito se tiene en cuenta durante la transpilación. Por ejemplo, si se dispone de qubits ociosos, pueden utilizarse para obtener un circuito menos profundo:

from qiskit import transpile

small_circuit = QuantumCircuit(5)  # here we have no idle qubits
small_circuit.append(mcx, [0, 1, 4, 2, 3])
small_tqc = transpile(small_circuit, basis_gates=["u", "cx"])
print("No aux:", small_tqc.count_ops())

large_circuit = QuantumCircuit(10)  # now we will have 5 idle qubits
large_circuit.append(mcx, [0, 1, 4, 2, 3])
large_tqc = transpile(large_circuit, basis_gates=["u", "cx"])
print("With aux:", large_tqc.count_ops())

Que imprime:

No aux: OrderedDict([('u', 41), ('cx', 36)])
With aux: OrderedDict([('u', 24), ('cx', 18)])

Operaciones estructurales

Estas operaciones tienen una descomposición única. Como el compilador no necesita razonar sobre ellos a un nivel superior, se implementan como funciones que devuelven un QuantumCircuit objeto. Por ejemplo:

from qiskit.circuit.library import real_amplitudes

ansatz = real_amplitudes(5, entanglement="pairwise")
ansatz.draw("mpl")
El circuito ansatz de amplitudes reales.

Puertas estándar

Estas operaciones son puertas unitarias reversibles y todas ellas subclase Gate. En consecuencia, todos ellos tienen los métodos to_matrix(), power()y control()que, en general, sólo podemos aplicar a las operaciones unitarias.

Por ejemplo:

from qiskit.circuit.library import XGate
gate = XGate()
print(gate.to_matrix())             # X gate
print(gate.power(1/2).to_matrix())  # √X gate -- see also the SXGate
print(gate.control(1).to_matrix())  # CX (controlled X) gate
[[0.+0.j 1.+0.j]
 [1.+0.j 0.+0.j]]
[[0.5+0.5j 0.5-0.5j]
 [0.5-0.5j 0.5+0.5j]]
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
 [0.+0.j 0.+0.j 0.+0.j 1.+0.j]
 [0.+0.j 0.+0.j 1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j 0.+0.j 0.+0.j]]

La función get_standard_gate_name_mapping() permite ver las puertas y operaciones estándar disponibles.

get_standard_gate_name_mapping

qiskit.circuit.library.get_standard_gate_name_mapping()

GitHub

Devuelve un diccionario que asigna el nombre de las puertas e instrucciones estándar a un objeto con ese nombre.

Ejemplos

from qiskit.circuit.library import get_standard_gate_name_mapping

gate_name_map = get_standard_gate_name_mapping()
cx_object = gate_name_map["cx"]

print(cx_object)
print(type(cx_object))
Instruction(name='cx', num_qubits=2, num_clbits=0, params=[])
_SingletonCXGate

Puertas estándar de 1 qubit

HGate(*args[, _force_mutable] )Puerta Hadamard de un solo qubit.
IGate(*args[, _force_mutable] )Puerta de la identidad.
PhaseGate(theta[, etiqueta] )Rotación de un qubit alrededor del eje Z.
RGate(theta, phi[, etiqueta] )Rotación θ\theta alrededor del eje cos(ϕ)x+sin(ϕ)y\cos(\phi)x + \sin(\phi)y.
RXGate(theta[, etiqueta] )Rotación de un qubit sobre el eje X.
RYGate(theta[, etiqueta] )Rotación de un qubit sobre el eje Y.
RZGate(phi[, etiqueta] )Rotación de un qubit alrededor del eje Z.
SGate(*args[, _force_mutable] )Puerta S de un solo qubit ( Z\sqrt{Z} ).
SdgGate(*args[, _force_mutable] )Puerta S-adjungida de un solo qubit ( SS^\dagger ).
SXGate(*args[, _force_mutable] )La puerta Sqrt(X) de un solo qubit ( X\sqrt{X} ).
SXdgGate(*args[, _force_mutable] )La puerta inversa de un solo qubit Sqrt(X).
TGate(*args[, _force_mutable] )Puerta T de un solo qubit ( Z4\sqrt[4]{Z} ).
TdgGate(*args[, _force_mutable] )Puerta T-adjungida de un solo qubit ( TT^\dagger ).
UGate(theta, phi, lam[, label] )Rotación genérica de un solo qubit en términos de ángulos de Euler ZYZ.
U1Gate(theta[, etiqueta] )Rotación de un qubit alrededor del eje Z.
U2Gate(phi, lam[, label] )Rotación de un qubit alrededor del eje X+Z.
U3Gate(theta, phi, lam[, label] )Puerta de rotación genérica de un solo qubit con 3 ángulos de Euler.
XGate(*args[, _force_mutable] )La puerta Pauli-X de un solo qubit ( σx\sigma_x ).
YGate(*args[, _force_mutable] )La puerta Pauli-Y de un solo qubit ( σy\sigma_y ).
ZGate(*args[, _force_mutable] )La puerta Pauli-Z de un solo qubit ( σz\sigma_z ).

Puertas estándar de 2 qubits

CHGate(*args[, _force_mutable] )Puerta de Hadamard controlada.
CPhaseGate(theta[, label, ctrl_state,...] )Puerta de fase controlada.
CRXGate(theta[, label, ctrl_state, _base_label] )Puerta de recepción controlada.
CRYGate(theta[, label, ctrl_state, _base_label] )Puerta controlada-RY.
CRZGate(theta[, label, ctrl_state, _base_label] )Puerta RZ controlada.
CSGate(*args[, _force_mutable] )Puerta S controlada.
CSdgGate(*args[, _force_mutable] )Controlada: compuerta de tipo « SS^\dagger ».
CSXGate(*args[, _force_mutable] )Puerta controlada-√X.
CUGate(theta, phi, lam, gamma[, label,...] )Puerta U controlada (puerta de dos qubits de 4 parámetros).
CU1Gate(theta[, label, ctrl_state, _base_label] )Controlled-U1 puerta.
CU3Gate(theta, phi, lam[, label,...] )Controlled-U3 (puerta de dos qubits de 3 parámetros).
CXGate(*args[, _force_mutable] )Puerta X controlada.
CYGate(*args[, _force_mutable] )Puerta en Y controlada.
CZGate(*args[, _force_mutable] )Puerta Z controlada.
DCXGate(*args[, _force_mutable] )Compuerta doble CX.
ECRGate(*args[, _force_mutable] )Una puerta de resonancia cruzada con eco.
iSwapGate(*args[, _force_mutable] )iSWAP puerta.
RXXGate(theta[, etiqueta] )Una interacción paramétrica de 2 qubits XXX \otimes X (rotación alrededor de XX).
RYYGate(theta[, etiqueta] )Una interacción paramétrica de 2 qubits YYY \otimes Y (rotación alrededor de YY).
RZXGate(theta[, etiqueta] )Una interacción paramétrica de 2 qubits ZXZ \otimes X (rotación alrededor de ZX).
RZZGate(theta[, etiqueta] )Una interacción paramétrica de 2 qubits ZZZ \otimes Z (rotación alrededor de ZZ).
SwapGate(*args[, _force_mutable] )La puerta SWAP.
XXMinusYYGate(theta[, beta, etiqueta] )Puerta de interacción XX-YY.
XXPlusYYGate(theta[, beta, etiqueta] )Puerta de interacción XX+YY.

Puertas estándar de 3+ qubits

C3SXGate(*args[, _force_mutable] )La puerta sqrt-X controlada por 3 qubits.
C3XGate(*args[, _force_mutable] )La puerta X controlada en 3 qubits.
C4XGate(*args[, _force_mutable] )La puerta X controlada por 4 qubits.
CCXGate(*args[, _force_mutable] )Puerta CCX, también conocida como puerta Toffoli.
CCZGate(*args[, _force_mutable] )Puerta CCZ.
CSwapGate(*args[, _force_mutable] )Puerta SWAP controlada, también llamada puerta Fredkin.
RCCXGate(*args[, _force_mutable] )La puerta simplificada de Toffoli, también llamada puerta de Margolus.
RC3XGate(*args[, _force_mutable] )La puerta de Toffoli simplificada de 3 controles.

Puertas estándar globales

La siguiente puerta es global y no toma ningún argumento qubit.

GlobalPhaseGate(fase[, etiqueta] )La puerta de fase global ( eiθe^{i\theta} ).

Directivas estándar

Las directivas son operaciones de la pila cuántica destinadas a ser interpretadas por el backend o el transpilador. En general, el transpilador o el backend pueden ignorarlos opcionalmente si no existe una implementación para ellos.


Operaciones estándar

Las operaciones son cambios no reversibles en el estado cuántico del circuito.

Además Measure, existe una medición conjunta de Pauli generalizada, que se utiliza como operación básica en el cálculo basado en Pauli.

PauliProductMeasurement(pauli[, etiqueta] )Instrucciones para la medición de productos Pauli.

Puertas generalizadas

Este módulo amplía las compuertas estándar con una colección más amplia de compuertas básicas. Esto incluye puertas que son variádicas, lo que significa que el número de qubits depende de la entrada. Por ejemplo:

from qiskit.circuit.library import DiagonalGate

diagonal = DiagonalGate([1, 1j])
print(diagonal.num_qubits)

diagonal = DiagonalGate([1, 1, 1, -1])
print(diagonal.num_qubits)

que imprime:

1
2
DiagonalGate(diag)Una puerta cuántica diagonal genérica.
PermutationGate(patrón)Una puerta que permuta qubits.
MCMTGate(gate, num_ctrl_qubits,...[,...] )La puerta multiobjetivo multicontrolada, para una puerta objetivo arbitraria controlada individualmente.
MCPhaseGate(lam, num_ctrl_qubits[, label,...] )Puerta multifase controlada.
MCXGate([num_ctrl_qubits, label,...] )La puerta X general multicontrolada.
MSGate(num_qubits, theta[, label] )La puerta Mølmer-Sørensen.
RVGate(v_x, v_y, v_z[, base] )Rotación alrededor del eje de rotación arbitrario v\vec{v} donde v2\|\vec{v}\|_2 es el ángulo de rotación en radianes.
PauliGate(etiqueta)Una puerta Pauli multi-qubit.
PauliProductRotationGate(pauli, ángulo[, etiqueta] )Una rotación de Pauli genérica.
LinearFunction(lineal[, validar_entrada] )Un circuito lineal reversible en n qubits.
Isometry(isometría, número_ancillas_cero,...[,...] )Descomposición de isometrías arbitrarias de mm a nn qubits.
UnitaryGate(data[, label, check\input,...] )Clase para puertas cuánticas especificadas por una matriz unitaria.
UCGate(gate_list[, up\to_diagonal, mux_simp] )Puerta de control uniforme (también llamada puerta multiplexada).
UCPauliRotGate(angle_list, rot_axis)Rotaciones Pauli uniformemente controladas.
UCRXGate(angle_list)Rotaciones Pauli-X uniformemente controladas.
UCRYGate(angle_list)Rotaciones Pauli-Y uniformemente controladas.
UCRZGate(angle_list)Rotaciones Pauli-Z uniformemente controladas.

Los objetos anteriores derivan Gate o Instructionlo que permite al compilador razonar sobre ellos a un nivel abstracto. Por lo tanto, sugerimos utilizarlas en lugar de las siguientes, que derivan QuantumCircuit y se construyen ansiosamente.

Diagonal(diag)Circuito que implementa una transformación diagonal.
MCMT(gate, num_ctrl_qubits, num_target_qubits)La puerta multiobjetivo multicontrolada, para una puerta objetivo arbitraria controlada individualmente.
MCMTVChain(gate, num_ctrl_qubits,...)La implementación de MCMT utilizando la cadena en V CCX.
MCXGrayCode([num_ctrl_qubits, label,...] )Implementa la puerta X multicontrolada utilizando el código Gray.
MCXRecursive([num_ctrl_qubits, label,...] )Implementa la puerta X multicontrolada utilizando recursividad.
MCXVChain([num_ctrl_qubits, dirty_ancillas,...] )Implementa la puerta X multicontrolada utilizando una cadena en V de puertas CX.
Permutation(num_qubits[, patrón, semilla] )Un circuito n_qubit que permuta qubits.
GMS(num_qubits, theta)Puerta Global Mølmer-Sørensen.
GR(num_qubits, theta, phi)Puerta R global.
GRX(num_qubits, theta)Puerta RX global.
GRY(num_qubits, theta)Puerta global RY.
GRZ(num_qubits, phi)Puerta RZ global.

Lógica booleana

Estos Gates implementan operaciones de lógica booleana, como la lógica or de un conjunto de estados qubit.

AndGate(num_variable_qubits[, flags] )Una puerta que representa la operación lógica AND en un número de qubits.
OrGate(num_variable_qubits[, flags] )Una puerta que representa la operación lógica OR en un número de qubits.
BitwiseXorGate(num_qubits, cantidad)Una puerta de n-qubits para xorizar bit a bit la entrada con algún entero amount.
InnerProductGate(num_qubits)Una función booleana 2n-qubit que calcula el producto interior de dos vectores n-qubit sobre F2F_2.

Los objetos anteriores derivan Gate (o devuelven este tipo), lo que permite al compilador razonar sobre ellos a un nivel abstracto. Por lo tanto, sugerimos utilizarlas en lugar de las siguientes, que derivan QuantumCircuit y se construyen de forma ansiosa.

AND(num_variable_qubits[, flags, mcx_mode] )Circuito que ejecuta la operación lógica AND en varios qubits.
OR(num_variable_qubits[, flags, mcx_mode] )Circuito que realiza la operación OR lógica en varios qubits.
XOR(num_qubits[, cantidad, semilla] )Un circuito n_qubit para xor-ing bitwise la entrada con algún entero amount.
InnerProduct(num_qubits)Una función booleana 2n-qubit que calcula el producto interior de dos vectores n-qubit sobre F2F_2.

Un circuito aleatorio bitwise xor puede generarse directamente utilizando:

random_bitwise_xor(num_qubits, semilla)Cree un BitwiseXorGate aleatorio.

Cambio de base

Estas puertas realizan transformaciones de base de los estados de los qubits. Por ejemplo, en el caso de la Transformada Cuántica de Fourier (QFT), se transforma entre la base de cálculo y la base de Fourier.

QFTGate(num_qubits)Puerta de transformada cuántica de Fourier.

El objeto anterior deriva Gatelo que permite al compilador razonar sobre él a un nivel abstracto. Por lo tanto, sugerimos utilizarla en lugar de la siguiente, que deriva QuantumCircuit y se construye de forma ansiosa.

QFT([número_qubits, grado_de_aproximación,...] )Circuito de transformada cuántica de Fourier.

Aritmético

Estas puertas y circuitos realizan operaciones aritméticas clásicas, como la suma o la multiplicación.

Víboras

Los sumadores calculan la suma de dos registros nn -qubit, es decir

anbnana+bt,|a\rangle_n |b\rangle_n \mapsto |a\rangle_n |a + b\rangle_{t},

donde el tamaño tt del registro de salida depende del tipo de sumador utilizado.

ModularAdderGate(num_state_qubits[, label] )Calcular la suma módulo 2n2^n de dos registros de qubits de tamaño nn.
HalfAdderGate(num_state_qubits[, label] )Calcula la suma de dos registros de qubits de igual tamaño, incluyendo un bit de salida.
FullAdderGate(num_state_qubits[, label] )Calcular la suma de dos registros de qubits de tamaño nn, incluyendo los bits de entrada y salida.

Los objetos anteriores derivan Gatelo que permite al compilador razonar sobre ellos a un nivel abstracto. Por lo tanto, sugerimos utilizarlas en lugar de las siguientes, que derivan QuantumCircuit y se construyen de forma ansiosa.

DraperQFTAdder(número_estado_qubits[, tipo, nombre] )Un circuito que utiliza la QFT para realizar sumas en el mismo lugar en dos registros de qubits.
CDKMRippleCarryAdder(num_state_qubits[,...] )Un circuito ripple-carry para realizar sumas in-place en dos registros qubit.
VBERippleCarryAdder(num_state_qubits[,...] )El sumador de arrastre de ondulación VBE [1].

multiplicadores

Los multiplicadores calculan el producto de dos registros nn -qubit, es decir

anbn0tanbnabt,|a\rangle_n |b\rangle_n |0\rangle_{t} \mapsto |a\rangle_n |b\rangle_n |a \cdot b\rangle_t,

donde tt es el número de bits utilizados para representar el resultado.

MultiplierGate(num_state_qubits[,...] )Calcula el producto de dos registros de qubits de igual tamaño en un nuevo registro.

El objeto anterior deriva Gatelo que permite al compilador razonar sobre él a un nivel abstracto. Por lo tanto, sugerimos utilizarla en lugar de las siguientes, que derivan QuantumCircuit y se construyen de forma ansiosa.

HRSCumulativeMultiplier(num_state_qubits[,...] )Un circuito de multiplicación para almacenar el producto de dos registros de entrada fuera de lugar.
RGQFTMultiplier(num_state_qubits[,...] )Un circuito de multiplicación QFT para almacenar el producto de dos registros de entrada fuera de lugar.

Funciones de amplitud

Una función de amplitud aproxima una función f:{0,...,2n1}[0,1]f: \{0, ..., 2^n - 1\} \rightarrow [0, 1] aplicada sobre las amplitudes de nn qubits. Consulte la documentación de la clase para obtener información más detallada.

LinearAmplitudeFunctionGate(...[, ...])Un circuito que implementa una función lineal (a trozos) sobre las amplitudes de los qubits.

El objeto anterior deriva Gatelo que permite al compilador razonar sobre él a un nivel abstracto. Por lo tanto, sugerimos utilizarla en lugar de la siguiente, que deriva QuantumCircuit y se construye de forma ansiosa.

LinearAmplitudeFunction(num_state_qubits,...)Un circuito que implementa una función lineal (a trozos) sobre las amplitudes de los qubits.

Rotaciones funcionales de Pauli

Las rotaciones funcionales de Pauli implementan operaciones de la forma

x0cos(f(x))x0+sin(f(x))x1|x\rangle |0\rangle \mapsto \cos(f(x))|x\rangle|0\rangle + \sin(f(x))|x\rangle|1\rangle

utilizando rotaciones Pauli- YY para diferentes tipos de funciones ff, como lineales, polinómicas o una versión a trozos de éstas. Son similares a las funciones de amplitud anteriores, pero sin preprocesamiento ni postprocesamiento para el dominio y la imagen de la función objetivo.

LinearPauliRotationsGate(num_state_qubits[,...] )Rotación X, Y o Z controlada linealmente.
PolynomialPauliRotationsGate(num_state_qubits)Una puerta que implementa rotaciones Pauli polinómicas.
PiecewiseLinearPauliRotationsGate([...])Rotaciones Pauli controladas linealmente a trozos.
PiecewisePolynomialPauliRotationsGate(...[, ...])Rotaciones Pauli controladas a trozos.
PiecewiseChebyshevGate(f_x, num_state_qubits)Aproximación Chebyshev a trozos a una función de entrada.

Los objetos anteriores derivan Gatelo que permite al compilador razonar sobre ellos a un nivel abstracto. Por lo tanto, sugerimos utilizarlas en lugar de las siguientes, que derivan QuantumCircuit y se construyen de forma ansiosa.

FunctionalPauliRotations([num_state_qubits,...] )Clase base para rotaciones Pauli funcionales.
LinearPauliRotations([num_state_qubits,...] )Rotación X, Y o Z controlada linealmente.
PolynomialPauliRotations([num_state_qubits,...] )Un circuito que implementa rotaciones Pauli polinómicas.
PiecewiseLinearPauliRotations([...])Rotaciones Pauli controladas linealmente a trozos.
PiecewisePolynomialPauliRotations([...])Rotaciones Pauli controladas a trozos.
PiecewiseChebyshev(f_x[, grado,...] )Aproximación Chebyshev a trozos a una función de entrada.

Otras funciones aritméticas

A continuación se enumeran otros circuitos aritméticos. Consulte la documentación de cada clase para obtener más información.

ExactReciprocalGate(num_state_qubits, escala)Implementa una función recíproca exacta.
IntegerComparatorGate(num_state_qubits, valor)Realice un \geq (o << ) en un registro qubit contra un entero clásico.
QuadraticFormGate([num_result_qubits,...] )Implementa una forma cuadrática en variables binarias codificadas en registros qubit.
WeightedSumGate(num_state_qubits[, pesos,...] )Una puerta para calcular la suma ponderada de registros de qubits.

Los objetos anteriores derivan Gatelo que permite al compilador razonar sobre ellos a un nivel abstracto. Por lo tanto, sugerimos utilizarlas en lugar de las siguientes, que derivan QuantumCircuit y se construyen de forma ansiosa.

ExactReciprocal(num_state_qubits, escalado[,...] )Recíproco exacto
IntegerComparator([num_state_qubits, valor,...] )Comparador de enteros.
QuadraticForm([num_result_qubits,...] )Implementa una forma cuadrática en variables binarias codificadas en registros qubit.
WeightedAdder([num_state_qubits, pesos, nombre] )Un circuito para calcular la suma ponderada de registros de qubits.

Circuitos cuánticos particulares

Las siguientes puertas y circuitos cuánticos definen operaciones específicas de interés:

fourier_checking(f, g)Circuito de comprobación de Fourier.
hidden_linear_function(matriz_de_adyacencia)Circuito para resolver el problema de la función lineal oculta.
iqp(interacciones)Circuito de tiempo polinómico cuántico instantáneo (IQP).
random_iqp(num_qubits[, semilla] )Un circuito instantáneo aleatorio de tiempo polinómico cuántico (IQP).
quantum_volume(num_qubits[, profundidad, semilla] )Un circuito modelo de volumen cuántico.
phase_estimation(num_evaluación_qubits, unitario)Circuito de estimación de fase.
grover_operator(oráculo[, estado_preparación,...] )Construye el operador Grover.
unitary_overlap(unitary1, unitary2[, ...])Circuito que devuelve el solapamiento entre dos unitarios U2U1U_2^{\dag} U_1.
GraphStateGate(matriz_de_adyacencia)Una puerta que representa el estado de un gráfico.
PauliEvolutionGate(operador[, hora, etiqueta,...] )Evolución temporal de un operador formado por Paulis.
HamiltonianGate(datos, tiempo[, etiqueta] )Clase para representar la evolución por un operador Hamiltoniano como una puerta.

A continuación proporcionamos las mismas operaciones que las clases que derivan de QuantumCircuit. Sin embargo, para mejorar el tiempo de ejecución y el rendimiento del compilador, sugerimos utilizar las funciones y compuertas anteriores.

FourierChecking(f, g)Circuito de comprobación de Fourier.
GraphState(matriz_de_adyacencia)Circuito para preparar un estado gráfico.
HiddenLinearFunction(matriz_de_adyacencia)Circuito para resolver el problema de la función lineal oculta.
IQP(interacciones)Circuito de polinomio cuántico instantáneo (IQP).
QuantumVolume(num_qubits[, profundidad, semilla,...] )Un circuito modelo de volumen cuántico.
PhaseEstimation(num_evaluación_qubits, unitario)Circuito de estimación de fase.
GroverOperator(oráculo[, estado_preparación,...] )El operador Grover.
UnitaryOverlap(unitary1, unitary2[, ...])Circuito que devuelve el solapamiento entre dos unitarios U2U1U_2^{\dag} U_1.

Circuitos N-locales

Las siguientes funciones devuelven un QuantumCircuit para utilizarlo como ansatz en un amplio conjunto de algoritmos cuánticos variacionales.

Por ejemplo, podemos construir un circuito variacional

from qiskit.circuit.library import efficient_su2

num_qubits = 4
ansatz = efficient_su2(num_qubits, entanglement="pairwise")
ansatz.draw("mpl")
El eficiente circuito SU2 ansatz...

y combinarlo con

from qiskit.circuit.library import zz_feature_map

circuit = zz_feature_map(num_qubits)
circuit.barrier()
circuit.compose(ansatz, inplace=True)

circuit.draw("mpl")
... combinado con el mapa de características ZZ. ... combinado con el mapa de características ZZ.

para obtener un circuito de clasificación cuántica variacional.

Todas las funciones siguientes construyen circuitos variacionales y están optimizadas para una construcción rápida:

n_local(num_qubits, rotation\blocks,...[,...] )Construir un circuito variacional n-local.
efficient_su2(num_qubits [, su2_gates,...] )El circuito hardware-eficiente SU(2)SU(2) 2-local.
real_amplitudes(num_qubits[, enredo,...] )Construye un circuito 2-local de amplitudes reales.
pauli_two_design(num_qubits[, reps, seed,...] )Construir un ansatz de Pauli 2-design.
excitation_preserving(num_qubits[, modo,...] )El ansatz heurístico de la función de onda que preserva la excitación.
qaoa_ansatz(coste_operador[, repeticiones,...] )Un circuito cuántico QAOA generalizado con soporte de estados iniciales y mezcladores personalizados.
hamiltonian_variational_ansatz(hamiltoniano)Construir un ansatz variacional hamiltoniano.
evolved_operator_ansatz(operadores[, representantes,...] )Construir un ansatz a partir de evoluciones de operadores.

Aunque sugerimos utilizar las funciones anteriores, también seguimos apoyando las siguientes BlueprintCircuit, que envuelven los circuitos en un bloque y permiten mutaciones in situ de los circuitos:

NLocal([num_qubits, rotation\blocks,...] )La clase de circuito n-local.
TwoLocal([num_qubits, rotation\blocks,...] )El circuito de dos locales.
PauliTwoDesign([num_qubits, reps, seed,...] )El ansatz de Pauli de dos diseños.
RealAmplitudes([num_qubits, enredo,...] )El circuito 2-local de amplitudes reales.
EfficientSU2( [num_qubits, su2_gates,...] )El circuito hardware eficiente SU(2) 2-local.
EvolvedOperatorAnsatz([operadores, representantes,...] )El operador evolucionado ansatz.
ExcitationPreserving([num_qubits, modo,...] )El ansatz heurístico de la función de onda que preserva la excitación.
QAOAAnsatz([coste_operador, repeticiones,...] )Un circuito cuántico QAOA generalizado con soporte de estados iniciales y mezcladores personalizados.

Circuitos de codificación de datos

Las siguientes funciones devuelven un QuantumCircuit para utilizarlo como circuitos de codificación de datos en una serie de algoritmos cuánticos variacionales:

pauli_feature_map(feature_dimension[, reps,...] )El circuito de expansión de Pauli.
z_feature_map(feature_dimension[, reps,...] )El circuito de evolución Z de Pauli de primer orden.
zz_feature_map(feature_dimension[, reps,...] )Circuito de evolución Pauli-Z de segundo orden.

Aunque sugerimos utilizar las funciones anteriores, también seguimos apoyando las siguientes BlueprintCircuit, que envuelven los circuitos en un bloque y permiten mutaciones in situ de los circuitos:

PauliFeatureMap([feature_dimension, reps,...] )El circuito de expansión de Pauli.
ZFeatureMap(feature_dimension[, reps,...] )El circuito de evolución Z de Pauli de primer orden.
ZZFeatureMap(feature_dimension[, reps,...] )Circuito de evolución Pauli-Z de segundo orden.

Circuitos de preparación de datos

Las siguientes operaciones se utilizan para la preparación del estado:

StatePreparation(params[, num_qubits,...] )Preparación del estado de amplitud compleja.
Initialize(params[, num_qubits, normalizar] )Inicialización de amplitud compleja.

Oráculos

Un "oráculo" puede referirse a una variedad de operaciones de caja negra sobre estados cuánticos. Aquí consideramos oráculos que implementan funciones booleanas f:{0,...,2n1}{0,1}f: \{0, ..., 2^n - 1\} \rightarrow \{0, 1\} mediante cambios de fase

xn(1)f(x)xn,|x\rangle_n \mapsto (-1)^{f(x)} |x\rangle_n,

o bit-flips

xnbxnbf(x).|x\rangle_n |b\rangle \mapsto |x\rangle_n |b \oplus f(x)\rangle.

Se aplican en

PhaseOracleGate(expresión[, orden_var, etiqueta] )Implementa un oráculo de fase.
BitFlipOracleGate(expresión[, orden_var, etiqueta] )Implementa un oráculo de bit-flip

y un componente importante del algoritmo de Grover (véase grover_operator()).

Además de la Gate-también admitimos la versión QuantumCircuit-del oráculo de cambio de fase

PhaseOracle(expresión[, var_orden] )Fase Oracle.

Circuitos de plantilla

Las plantillas son funciones que devuelven circuitos que calculan la identidad. Se utilizan en la optimización de circuitos, donde la coincidencia de una parte de la plantilla permite al compilador sustituir la coincidencia por la inversa del resto de la plantilla.

En este ejemplo, se comprueba la constante de identidad de una plantilla:

from qiskit.circuit.library.templates import template_nct_4b_1
from qiskit.quantum_info import Operator
import numpy as np

template = template_nct_4b_1()

identity = np.identity(2 ** len(template.qubits), dtype=complex)
data = Operator(template).data
np.allclose(data, identity)  # True, template_nct_4b_1 is the identity

Circuitos modelo NCT (Not-CNOT-Toffoli)

Circuitos modelo para XGate, CXGatey CCXGate (Toffoli).

Referencias:

Maslov, D. y Dueck, G. W. y Miller, D. M., Técnicas de síntesis de redes Toffoli reversibles, 2007 https://dx.doi.org/10.1145/1278349.1278355

template_nct_2a_1

qiskit.circuit.library.templates.nct.template_nct_2a_1()

GitHub

Plantilla 2a_1:

     ┌───┐┌───┐
q_0: ┤ X ├┤ X ├
     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_2a_2

qiskit.circuit.library.templates.nct.template_nct_2a_2()

GitHub

Plantilla 2a_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_2a_3

qiskit.circuit.library.templates.nct.template_nct_2a_3()

GitHub

Plantilla 2a_3:

q_0: ──■────■──
       │    │
q_1: ──■────■──
     ┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_4a_1

qiskit.circuit.library.templates.nct.template_nct_4a_1()

GitHub

Plantilla 4a_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_3: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_4: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_4a_2

qiskit.circuit.library.templates.nct.template_nct_4a_2()

GitHub

Plantilla 4a_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_4a_3

qiskit.circuit.library.templates.nct.template_nct_4a_3()

GitHub

Plantilla 4a_3:

q_0: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_4b_1

qiskit.circuit.library.templates.nct.template_nct_4b_1()

GitHub

Plantilla 4b_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_4b_2

qiskit.circuit.library.templates.nct.template_nct_4b_2()

GitHub

Plantilla 4b_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_5a_1

qiskit.circuit.library.templates.nct.template_nct_5a_1()

GitHub

Plantilla 5a_1:

q_0: ──■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_5a_2

qiskit.circuit.library.templates.nct.template_nct_5a_2()

GitHub

Plantilla 5a_2:

q_0: ──■─────────■─────────■──
       │  ┌───┐  │  ┌───┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_5a_3

qiskit.circuit.library.templates.nct.template_nct_5a_3()

GitHub

Plantilla 5a_3:

q_0: ───────■─────────■────■──
          ┌─┴─┐     ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_5a_4

qiskit.circuit.library.templates.nct.template_nct_5a_4()

GitHub

Plantilla 5a_4:

          ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
     └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6a_1

qiskit.circuit.library.templates.nct.template_nct_6a_1()

GitHub

Plantilla 6a_1:

          ┌───┐     ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6a_2

qiskit.circuit.library.templates.nct.template_nct_6a_2()

GitHub

Plantilla 6a_2:

q_0: ──■────■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6a_3

qiskit.circuit.library.templates.nct.template_nct_6a_3()

GitHub

Plantilla 6a_3:

q_0: ───────■─────────■────■────■──
          ┌─┴─┐     ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6a_4

qiskit.circuit.library.templates.nct.template_nct_6a_4()

GitHub

Plantilla 6a_4:

q_0: ───────■──────────────■───────
          ┌─┴─┐     ┌───┐  │  ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6b_1

qiskit.circuit.library.templates.nct.template_nct_6b_1()

GitHub

Plantilla 6b_1:

q_0: ──■─────────■────■─────────■──
       │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6b_2

qiskit.circuit.library.templates.nct.template_nct_6b_2()

GitHub

Plantilla 6b_2:

q_0: ───────■────■─────────■────■──
            │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_6c_1

qiskit.circuit.library.templates.nct.template_nct_6c_1()

GitHub

Plantilla 6c_1:

q_0: ──■─────────■─────────■────■──
       │  ┌───┐  │  ┌───┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_7a_1

qiskit.circuit.library.templates.nct.template_nct_7a_1()

GitHub

Plantilla 7a_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_7b_1

qiskit.circuit.library.templates.nct.template_nct_7b_1()

GitHub

Plantilla 7b_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_7c_1

qiskit.circuit.library.templates.nct.template_nct_7c_1()

GitHub

Plantilla 7c_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_7d_1

qiskit.circuit.library.templates.nct.template_nct_7d_1()

GitHub

Plantilla 7d_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_7e_1

qiskit.circuit.library.templates.nct.template_nct_7e_1()

GitHub

Plantilla 7e_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├───────┼──┤ X ├───────┼──
          └─┬─┘┌───┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9a_1

qiskit.circuit.library.templates.nct.template_nct_9a_1()

GitHub

Plantilla 9a_1:

     ┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├──■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├
          └─┬─┘  │  ├───┤└─┬─┘┌───┐└─┬─┘
q_2: ───────■────■──┤ X ├──■──┤ X ├──■──
                    └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_1

qiskit.circuit.library.templates.nct.template_nct_9c_1()

GitHub

Plantilla 9c_1:

     ┌───┐     ┌───┐┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_2

qiskit.circuit.library.templates.nct.template_nct_9c_2()

GitHub

Plantilla 9c_2:

q_0: ───────■────■──────────────■────■─────────■──
     ┌───┐  │  ┌─┴─┐┌───┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_3

qiskit.circuit.library.templates.nct.template_nct_9c_3()

GitHub

Plantilla 9c_3:

q_0: ───────■────────────────────────■────────────
     ┌───┐  │  ┌───┐┌───┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_4

qiskit.circuit.library.templates.nct.template_nct_9c_4()

GitHub

Plantilla 9c_4:

q_0: ──■────■─────────■──────────────■────────────
     ┌─┴─┐  │  ┌───┐┌─┴─┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_5

qiskit.circuit.library.templates.nct.template_nct_9c_5()

GitHub

Plantilla 9c_5:

q_0: ────────────■─────────■──────────────■───────
     ┌───┐     ┌─┴─┐┌───┐  │  ┌───┐       │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_6

qiskit.circuit.library.templates.nct.template_nct_9c_6()

GitHub

Plantilla 9c_6:

q_0: ───────■────■─────────■─────────■────■───────
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_7

qiskit.circuit.library.templates.nct.template_nct_9c_7()

GitHub

Plantilla 9c_7:

q_0: ──■────■────■────■────■─────────■────■───────
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_8

qiskit.circuit.library.templates.nct.template_nct_9c_8()

GitHub

Plantilla 9c_8:

q_0: ──■─────────■────■─────────■──────────────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐     ┌─┴─┐          ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_9

qiskit.circuit.library.templates.nct.template_nct_9c_9()

GitHub

Plantilla 9c_9:

q_0: ──■────■────■────■─────────■────■─────────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_10

qiskit.circuit.library.templates.nct.template_nct_9c_10()

GitHub

Plantilla 9c_10:

q_0: ──■─────────■────■────■────■─────────■────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐  │  ┌─┴─┐       │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_11

qiskit.circuit.library.templates.nct.template_nct_9c_11()

GitHub

Plantilla 9c_11:

q_0: ───────■────■─────────■────■────■────■────■──
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9c_12

qiskit.circuit.library.templates.nct.template_nct_9c_12()

GitHub

Plantilla 9c_12:

q_0: ──■────■────■────■────■────■────■────■────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_1

qiskit.circuit.library.templates.nct.template_nct_9d_1()

GitHub

Plantilla 9d_1:

               ┌───┐          ┌───┐          ┌───┐
q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_2

qiskit.circuit.library.templates.nct.template_nct_9d_2()

GitHub

Plantilla 9d_2:

q_0: ──■────■────■──────────────■──────────────■──
       │    │  ┌─┴─┐          ┌─┴─┐          ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_3

qiskit.circuit.library.templates.nct.template_nct_9d_3()

GitHub

Plantilla 9d_3:

q_0: ──■────■───────────────────■─────────────────
       │    │  ┌───┐          ┌─┴─┐          ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_4

qiskit.circuit.library.templates.nct.template_nct_9d_4()

GitHub

Plantilla 9d_4:

q_0: ───────■─────────■──────────────■────────────
            │  ┌───┐  │       ┌───┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_5

qiskit.circuit.library.templates.nct.template_nct_9d_5()

GitHub

Plantilla 9d_5:

q_0: ──■────■─────────■─────────■────■────────────
       │    │  ┌───┐  │       ┌─┴─┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_6

qiskit.circuit.library.templates.nct.template_nct_9d_6()

GitHub

Plantilla 9d_6:

q_0: ──■────■──────────────■────■─────────■───────
       │    │  ┌───┐       │  ┌─┴─┐       │  ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_7

qiskit.circuit.library.templates.nct.template_nct_9d_7()

GitHub

Plantilla 9d_7:

q_0: ──■────■─────────■────■────■────■────■───────
       │    │  ┌───┐  │    │  ┌─┴─┐  │    │  ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_8

qiskit.circuit.library.templates.nct.template_nct_9d_8()

GitHub

Plantilla 9d_8:

q_0: ──■────■────■────■─────────■────■─────────■──
       │    │  ┌─┴─┐  │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_9

qiskit.circuit.library.templates.nct.template_nct_9d_9()

GitHub

Plantilla 9d_9:

q_0: ──■────■────■─────────■────■─────────■────■──
       │    │  ┌─┴─┐       │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

template_nct_9d_10

qiskit.circuit.library.templates.nct.template_nct_9d_10()

GitHub

Plantilla 9d_10:

q_0: ──■────■────■────■────■────■────■────■────■──
       │    │  ┌─┴─┐  │    │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

Circuitos de plantillas Clifford

Circuitos plantilla sobre puertas Clifford.

clifford_2_1

qiskit.circuit.library.clifford_2_1()

GitHub

Clifford plantilla 2_1:

q_0: ─■──■─
      │  │
q_1: ─■──■─

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_2_2

qiskit.circuit.library.clifford_2_2()

GitHub

Plantilla Clifford 2_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_2_3

qiskit.circuit.library.clifford_2_3()

GitHub

Plantilla Clifford 2_3:

     ┌───┐┌───┐
q_0: ┤ H ├┤ H ├
     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_2_4

qiskit.circuit.library.clifford_2_4()

GitHub

Plantilla Clifford 2_4:

q_0: ─X──X─
      │  │
q_1: ─X──X─

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_3_1

qiskit.circuit.library.clifford_3_1()

GitHub

Clifford plantilla 3_1:

     ┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
     └───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_4_1

qiskit.circuit.library.clifford_4_1()

GitHub

Clifford plantilla 4_1:

          ┌───┐
q_0: ──■──┤ X ├──■───X─
     ┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
     └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_4_2

qiskit.circuit.library.clifford_4_2()

GitHub

Plantilla Clifford 4_2:

q_0: ───────■────────■─
     ┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
     └───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_4_3

qiskit.circuit.library.clifford_4_3()

GitHub

Plantilla Clifford 4_3:

     ┌───┐     ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
     └───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
          └───┘       └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_4_4

qiskit.circuit.library.clifford_4_4()

GitHub

Plantilla Clifford 4_4:

     ┌───┐   ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
     └───┘ │ └─────┘ │
q_1: ──────■─────────■─

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_5_1

qiskit.circuit.library.clifford_5_1()

GitHub

Clifford plantilla 5_1:

q_0: ──■─────────■─────────■──
     ┌─┴─┐     ┌─┴─┐       │
q_1: ┤ X ├──■──┤ X ├──■────┼──
     └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐
q_2: ─────┤ X ├─────┤ X ├┤ X ├
          └───┘     └───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_6_1

qiskit.circuit.library.clifford_6_1()

GitHub

Clifford plantilla 6_1:

     ┌───┐     ┌───┐┌───┐
q_0: ┤ H ├──■──┤ H ├┤ X ├
     ├───┤┌─┴─┐├───┤└─┬─┘
q_1: ┤ H ├┤ X ├┤ H ├──■──
     └───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_6_2

qiskit.circuit.library.clifford_6_2()

GitHub

Plantilla Clifford 6_2:

     ┌───┐
q_0: ┤ S ├──■───────────■───■─
     ├───┤┌─┴─┐┌─────┐┌─┴─┐ │
q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─
     └───┘└───┘└─────┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_6_3

qiskit.circuit.library.clifford_6_3()

GitHub

Plantilla Clifford 6_3:

           ┌───┐     ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
      │  │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
                └───┘     └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_6_4

qiskit.circuit.library.clifford_6_4()

GitHub

Plantilla Clifford 6_4:

     ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
     └───┘└───┘└───┘└───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_6_5

qiskit.circuit.library.clifford_6_5()

GitHub

Plantilla Clifford 6_5:

              ┌───┐
q_0: ─■───■───┤ S ├───■───────
      │ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
        └───┘└─────┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_8_1

qiskit.circuit.library.clifford_8_1()

GitHub

Clifford plantilla 8_1:

               ┌───┐ ┌───┐ ┌───┐┌─────┐
q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├
     ┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘
q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─
     └───┘└───┘     └─────┘      └───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_8_2

qiskit.circuit.library.clifford_8_2()

GitHub

Plantilla Clifford 8_2:

                     ┌───┐
q_0: ──■─────────■───┤ S ├───■────────────
     ┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐
q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├
     └───┘└───┘└───┘└─────┘└───┘└───┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

clifford_8_3

qiskit.circuit.library.clifford_8_3()

GitHub

Plantilla Clifford 8_3:

q_0: ─────────────────■───────────────────────■──
     ┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐
q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├
     └───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘

Devuelve

plantilla como un circuito cuántico.

Tipo de retorno

QuantumCircuit

Circuitos de plantilla RZXGate

Circuitos plantilla con RZXGate.

rzx_yz

qiskit.circuit.library.rzx_yz(theta=None)

GitHub

Plantilla basada en RZX para CX - RYGate - CX.

          ┌────────┐     ┌─────────┐┌─────────┐┌──────────┐
q_0: ──■──┤ RY(-ϴ) ├──■──┤ RX(π/2) ├┤0        ├┤ RX(-π/2) ├
     ┌─┴─┐└────────┘┌─┴─┐└─────────┘│  RZX(ϴ) │└──────────┘
q_1: ┤ X ├──────────┤ X ├───────────┤1        ├────────────
     └───┘          └───┘           └─────────┘

Parámetros

theta (ParameterExpression |float | None)

rzx_xz

qiskit.circuit.library.rzx_xz(theta=None)

GitHub

Plantilla basada en RZX para CX - RXGate - CX.

     ┌───┐         ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐»
q_0: ┤ X ├─────────┤ X ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├┤0         ├»
     └─┬─┘┌───────┐└─┬─┘└─────────┘└─────────┘└─────────┘│  RZX(-ϴ) │»
q_1: ──■──┤ RX(ϴ) ├──■───────────────────────────────────┤1         ├»
          └───────┘                                      └──────────┘»
«     ┌─────────┐┌─────────┐┌─────────┐
«q_0: ┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├
«     └─────────┘└─────────┘└─────────┘
«q_1: ─────────────────────────────────
«

Parámetros

theta (ParameterExpression |float | None)

rzx_cy

qiskit.circuit.library.rzx_cy(theta=None)

GitHub

Plantilla basada en RZX para CX - RYGate - CX.

                                                       ┌──────────┐
q_0: ──■─────────────■─────────────────────────────────┤0         ├───────────
     ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌──────────┐┌───────┐│  RZX(-ϴ) │┌─────────┐
q_1: ┤ X ├┤ RY(ϴ) ├┤ X ├┤ RY(-ϴ) ├┤ RZ(-π/2) ├┤ RX(ϴ) ├┤1         ├┤ RZ(π/2) ├
     └───┘└───────┘└───┘└────────┘└──────────┘└───────┘└──────────┘└─────────┘

Parámetros

theta (ParameterExpression |float | None)

rzx_zz1

qiskit.circuit.library.rzx_zz1(theta=None)

GitHub

Plantilla basada en RZX para CX - RZGate - CX.

                                                                            »
q_0: ──■────────────────────────────────────────────■───────────────────────»
     ┌─┴─┐┌───────┐┌────┐┌───────┐┌────┐┌────────┐┌─┴─┐┌────────┐┌─────────┐»
q_1: ┤ X ├┤ RZ(ϴ) ├┤ √X ├┤ RZ(π) ├┤ √X ├┤ RZ(3π) ├┤ X ├┤ RZ(-ϴ) ├┤ RZ(π/2) ├»
     └───┘└───────┘└────┘└───────┘└────┘└────────┘└───┘└────────┘└─────────┘»
«                                    ┌──────────┐                      »
«q_0: ───────────────────────────────┤0         ├──────────────────────»
«     ┌─────────┐┌─────────┐┌───────┐│  RZX(-ϴ) │┌─────────┐┌─────────┐»
«q_1: ┤ RX(π/2) ├┤ RZ(π/2) ├┤ RX(ϴ) ├┤1         ├┤ RZ(π/2) ├┤ RX(π/2) ├»
«     └─────────┘└─────────┘└───────┘└──────────┘└─────────┘└─────────┘»
«
«q_0: ───────────
«     ┌─────────┐
«q_1: ┤ RZ(π/2) ├
«     └─────────┘

Parámetros

theta (ParameterExpression |float | None)

rzx_zz2

qiskit.circuit.library.rzx_zz2(theta=None)

GitHub

Plantilla basada en RZX para CX - PhaseGate - CX.

                                                                          »
q_0: ──■────────────■─────────────────────────────────────────────────────»
     ┌─┴─┐┌──────┐┌─┴─┐┌───────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
q_1: ┤ X ├┤ P(ϴ) ├┤ X ├┤ P(-ϴ) ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├┤ RX(ϴ) ├»
     └───┘└──────┘└───┘└───────┘└─────────┘└─────────┘└─────────┘└───────┘»
«     ┌──────────┐
«q_0: ┤0         ├─────────────────────────────────
«     │  RZX(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
«q_1: ┤1         ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├
«     └──────────┘└─────────┘└─────────┘└─────────┘

Parámetros

theta (ParameterExpression |float | None)

rzx_zz3

qiskit.circuit.library.rzx_zz3(theta=None)

GitHub

Plantilla basada en RZX para CX - RZGate - CX.

                                                                            »
q_0: ──■─────────────■──────────────────────────────────────────────────────»
     ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
q_1: ┤ X ├┤ RZ(ϴ) ├┤ X ├┤ RZ(-ϴ) ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├┤ RX(ϴ) ├»
     └───┘└───────┘└───┘└────────┘└─────────┘└─────────┘└─────────┘└───────┘»
«     ┌──────────┐
«q_0: ┤0         ├─────────────────────────────────
«     │  RZX(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
«q_1: ┤1         ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├
«     └──────────┘└─────────┘└─────────┘└─────────┘

Parámetros

theta (ParameterExpression |float | None)

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