comprobaciones de inversión de bits
qiskit_addon_utils.noise_management.bit_flip_checks
Funciones y clases para la postselección mediante comprobaciones de inversión de bits en circuitos.
PostSelectionSummary
class PostSelectionSummary(primary_cregs, measure_map, edges, *, measure_map_ps=None, measure_map_pre=None, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)
Bases: object
Una clase auxiliar para almacenar las propiedades de un circuito cuántico necesarias para realizar la postselección basándose en comprobaciones de inversión de bits.
Inicializar un PostSelectionSummary objeto.
Parámetros
- primary_cregs (set[str]) – Los nombres de los registros clásicos «primarios», es decir, aquellos que no terminan con los sufijos de comprobación previa y posterior al circuito.
- measure_map (dict[int, tuple[str, int]]) – Una correspondencia entre los índices de los qubits del registro y los clbits que definen de forma unívoca una medición en dichos qubits (mediciones primarias).
- edges (set[frozenset[int]]) – Una lista de tuplas que definen pares de qubits vecinos.
- measure_map_ps (dict[int, tuple[str, int]] | None) – Un mapa opcional para las mediciones de comprobación posteriores al circuito.
- measure_map_pre (dict[int, tuple[str, int]] | None) – Un mapa opcional para realizar mediciones de comprobación previas al circuito.
- post_check_suffix (str) – El sufijo de los registros de comprobación posteriores al circuito.
- pre_check_suffix (str) – El sufijo de los registros de comprobación previa al circuito.
- spectator_cregs (set[str] | None) – Nombres de los registros primarios que contienen las mediciones de los espectadores (la primera mitad de la comprobación de paridad de los espectadores generada por
AddSpectatorPostCircuitBitFlipChecks).
edges
Un conjunto de aristas que hay que tener en cuenta para la postselección basada en aristas.
from_circuit
classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)
Inicializar a partir de circuitos cuánticos.
Parámetros
- circuit (QuantumCircuit) – El circuito que incluye comprobaciones de inversión de bits...
- coupling_map (CouplingMap |list[tuple[int, int]]) – Un mapa de acoplamientos o una lista de tuplas que indican pares de qubits vecinos.
- post_check_suffix (str) – Un sufijo fijo para los registros clásicos de comprobación posterior al circuito.
- pre_check_suffix (str) – Un sufijo fijo para los registros clásicos de comprobación previa al circuito.
- spectator_cregs (set[str] | list[str] | None) – Nombres de los registros principales que contienen las mediciones de los espectadores. El valor por defecto es
["spec"], que coincide con el nombre predeterminado utilizado porAddSpectatorPostCircuitBitFlipChecks.
Tipo de retorno
measure_map
Tipo: dict[int, tuple[str, int]]
Una correspondencia entre los índices de los qubits y los índices de los registros y clbits utilizados para medir dichos qubits.
measure_map_pre
Tipo: dict[int, tuple[str, int]]
Una correspondencia entre los índices de qubits y los índices de registros y clbits para las mediciones de comprobación previas al circuito.
measure_map_ps
Tipo: dict[int, tuple[str, int]]
Una correspondencia entre los índices de qubits y los índices de registros y clbits para las mediciones de comprobación posteriores al circuito.
post_check_suffix
Tipo: str
El sufijo de los registros de comprobación posteriores al circuito.
pre_check_suffix
Tipo: str
El sufijo de los registros de comprobación previa al circuito.
primary_cregs
spectator_cregs
PostSelector
class PostSelector(summary)
Bases: object
Una clase para procesar los resultados de las comprobaciones de inversión de bits.
Inicializar un PostSelector objeto.
Parámetros
summary (PostSelectionSummary) – Resumen del circuito que incluye comprobaciones de inversión de bits.
compute_mask
compute_mask(result, strategy=PostSelectionStrategy.NODE, *, mode='post')
Calcular máscaras booleanas que indiquen qué tomas deben conservarse o descartarse.
Por definición, la máscara devuelta tiene la misma forma que las matrices del resultado, pero con una dimensión menos (el último eje de cada matriz, correspondiente a clbits, no está presente en la máscara).
Parámetros
- result (dict[str, ndarray[tuple[int, ...], dtype[bool]]]) – El resultado que hay que procesar posteriormente. Debe ser un diccionario que asigne los nombres de los registros a matrices booleanas.
- strategy (Literal['node', 'edge'] | ~qiskit_addon_utils.noise_management.bit_flip_checks.post_selector.PostSelectionStrategy) – La estrategia de poselección («nodo» o «arista»).
- mode (Literal['post', 'pre', 'both']) – Qué tipo de poselección aplicar: - «post»: aplicar únicamente comprobaciones posteriores al circuito - «pre»: aplicar únicamente comprobaciones previas al circuito - «both»: aplicar tanto comprobaciones previas como posteriores
Devuelve
Una máscara booleana en la que «True» indica las tomas que hay que conservar y «False» las que hay que descartar.
Subidas
ValueError – Si el modo solicitado no está disponible (por ejemplo, no hay mediciones de comprobación previa en el circuito, pero se ha solicitado el modo «pre»).
Tipo de retorno
from_circuit
classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)
Inicializar a partir de un circuito cuántico.
Parámetros
- circuit (QuantumCircuit) – El circuito que incluye comprobaciones de inversión de bits.
- coupling_map (CouplingMap |list[tuple[int, int]]) – Un mapa de acoplamientos o una lista de tuplas que indican pares de qubits vecinos.
- post_check_suffix (str) – Un sufijo fijo para los registros clásicos asociado a las comprobaciones posteriores al circuito.
- pre_check_suffix (str) – Un sufijo fijo para los registros clásicos asociado a las comprobaciones previas al circuito.
- spectator_cregs (set[str] | list[str] | None) – Nombres de los registros que contienen las mediciones de los espectadores (la primera mitad de la comprobación de paridad de los espectadores generada por
AddSpectatorPostCircuitBitFlipChecks). El valor por defecto es["spec"]para que coincida conAddSpectatorPostCircuitBitFlipChecks.
Tipo de retorno
summary
Tipo: PostSelectionSummary
Resumen del circuito que incluye comprobaciones de inversión de bits.
PostSelectionStrategy
class PostSelectionStrategy(value)
Las estrategias de poselección compatibles.
EDGE
Valor predeterminado: 'edge'
Descarta todas las tomas en las que haya un par de qubits adyacentes para los que no se cumplan ambas condiciones.
NODO
Valor predeterminado: 'node'
Descarta todas las tiradas en las que falle una o más comprobaciones.
capitalize
capitalize()
Devuelve una versión de la cadena con las letras en mayúsculas.
Más concretamente, haz que la primera letra sea mayúscula y el resto minúsculas.
casefold
casefold()
Devuelve una versión de la cadena adecuada para comparaciones que no distingan entre mayúsculas y minúsculas.
center
center(width, fillchar=' ', /)
Devuelve una cadena centrada de longitud «width».
El relleno se realiza utilizando el carácter de relleno especificado (por defecto, un espacio).
count
count(sub[, start[, end]]) → int
Devuelve el número de apariciones no superpuestas de la subcadena «sub» en la cadena «S[inicio:fin]». Los argumentos opcionales «start» y «end» se interpretan como en la notación de fragmento.
encode
encode(encoding='utf-8', errors='strict')
Codifica la cadena utilizando el códec registrado para la codificación.
codificación
La codificación que se va a utilizar para codificar la cadena.
errores
El esquema de gestión de errores que se utilizará para los errores de codificación. El valor predeterminado es «strict», lo que significa que los errores de codificación provocan un error de « UnicodeEncodeError ». Otros valores posibles son «ignore», «replace» y «xmlcharrefreplace», así como cualquier otro nombre registrado en codecs.register_error que sea compatible con UnicodeEncodeErrors.
endswith
endswith(suffix[, start[, end]]) → bool
Devuelve «True» si S termina con el sufijo especificado; en caso contrario, devuelve «False». Si se elige el inicio opcional, realiza la prueba S a partir de esa posición. Con el final opcional, deja de comparar S en esa posición. El sufijo también puede ser una tupla de cadenas que se vayan a probar.
expandtabs
expandtabs(tabsize=8)
Devuelve una copia en la que todos los caracteres de tabulación se sustituyen por espacios.
Si no se especifica el tamaño de la tabulación, se asume un tamaño de 8 caracteres.
find
find(sub[, start[, end]]) → int
Devuelve el índice más bajo en S en el que se encuentra la subcadena sub, siempre que sub esté comprendida entre [Sstart y end]. Los argumentos opcionales «start» y «end» se interpretan como en la notación de fragmento.
En caso de error, devuelve « -1 ».
format
format(*args, **kwargs) → str
Devuelve una versión formateada de S, utilizando las sustituciones de args y kwargs. Las sustituciones se identifican mediante llaves (« {’ and ‘} »).
format_map
format_map(mapping) → str
Devuelve una versión formateada de S, utilizando las sustituciones de la asignación. Las sustituciones se identifican mediante llaves (« {’ and ‘} »).
index
index(sub[, start[, end]]) → int
Devuelve el índice más bajo en S en el que se encuentra la subcadena sub, siempre que sub esté comprendida entre [Sstart y end]. Los argumentos opcionales «start» y «end» se interpretan como en la notación de fragmento.
Lanza una excepción de tipo « ValueError » cuando no se encuentra la subcadena.
isalnum
isalnum()
Devuelve «True» si la cadena es alfanumérica; en caso contrario, devuelve «False».
Una cadena es alfanumérica si todos los caracteres que la componen son alfanuméricos y contiene al menos un carácter.
isalpha
isalpha()
Devuelve «True» si la cadena es alfabética; en caso contrario, devuelve «False».
Una cadena se considera alfabética si todos sus caracteres son alfabéticos y contiene al menos un carácter.
isascii
isascii()
Devuelve «True» si todos los caracteres de la cadena son ASCII; en caso contrario, devuelve «False».
Los caracteres ASCII tienen puntos de código comprendidos entre U+0000-U+007F. Una cadena vacía también es ASCII.
isdecimal
isdecimal()
Devuelve «True» si la cadena es decimal; en caso contrario, devuelve «False».
Una cadena es una cadena decimal si todos los caracteres que la componen son decimales y contiene al menos un carácter.
isdigit
isdigit()
Devuelve «True» si la cadena está formada por dígitos; en caso contrario, devuelve «False».
Una cadena es una cadena de dígitos si todos los caracteres que la componen son dígitos y contiene al menos un carácter.
isidentifier
isidentifier()
Devuelve «True» si la cadena es un identificador válido de « Python »; en caso contrario, devuelve «False».
Llama a la función keyword.iskeyword para comprobar si la cadena s es un identificador reservado, como «def» o «class».
islower
islower()
Devuelve «True» si la cadena está en minúsculas; en caso contrario, devuelve «False».
Una cadena se considera en minúsculas si todos los caracteres con distinción de mayúsculas y minúsculas que contiene están en minúsculas y hay al menos un carácter con distinción de mayúsculas y minúsculas en la cadena.
isnumeric
isnumeric()
Devuelve «True» si la cadena es numérica; en caso contrario, devuelve «False».
Una cadena es numérica si todos los caracteres que la componen son numéricos y contiene al menos un carácter.
isprintable
isprintable()
Devuelve «True» si la cadena es imprimible; en caso contrario, devuelve «False».
Una cadena se considera imprimible si todos sus caracteres se consideran imprimibles en repr() o si está vacía.
isspace
isspace()
Devuelve «True» si la cadena está compuesta únicamente por espacios en blanco; en caso contrario, devuelve «False».
Una cadena se considera «espacios en blanco» si todos los caracteres que la componen son espacios en blanco y contiene al menos un carácter.
istitle
istitle()
Devuelve «True» si la cadena está escrita con mayúsculas iniciales, y «False» en caso contrario.
En una cadena con mayúsculas de título, los caracteres en mayúsculas y los de título solo pueden ir después de caracteres sin distinción de mayúsculas y minúsculas, y los caracteres en minúscula solo pueden ir después de caracteres con distinción de mayúsculas y minúsculas.
isupper
isupper()
Devuelve «True» si la cadena está escrita en mayúsculas; en caso contrario, devuelve «False».
Una cadena se considera en mayúsculas si todos los caracteres con distinción de mayúsculas y minúsculas que contiene están en mayúsculas y hay al menos un carácter con distinción de mayúsculas y minúsculas en la cadena.
join
join(iterable, /)
Concatenar cualquier número de cadenas.
La cadena cuyo método se invoca se inserta entre cada una de las cadenas indicadas. El resultado se devuelve como una nueva cadena.
Ejemplo: «.».join( [«ab», «pq», «rs»] ) -> « ab.pq.rs »
ljust
ljust(width, fillchar=' ', /)
Devuelve una cadena alineada a la izquierda de longitud «width».
El relleno se realiza utilizando el carácter de relleno especificado (por defecto, un espacio).
lower
lower()
Devuelve una copia de la cadena convertida a minúsculas.
lstrip
lstrip(chars=None, /)
Devuelve una copia de la cadena sin los espacios en blanco iniciales.
Si se proporciona «chars» y no es «None», elimina en su lugar los caracteres de «chars».
maketrans
static maketrans()
Devuelve una tabla de traducción que se pueda utilizar con la función str.translate ().
Si solo hay un argumento, debe ser un diccionario que asigne ordinales Unicode (enteros) o caracteres a ordinales Unicode, cadenas o None. A continuación, las claves de caracteres se convertirán en ordinales. Si hay dos argumentos, deben ser cadenas de la misma longitud, y en el diccionario resultante, cada carácter de x se asignará al carácter que ocupe la misma posición en y. Si hay un tercer argumento, debe ser una cadena, cuyos caracteres se asignarán a «None» en el resultado.
partition
partition(sep, /)
Divide la cadena en tres partes utilizando el separador indicado.
Esto buscará el separador en la cadena. Si se encuentra el separador, devuelve una tupla de tres elementos que contiene la parte anterior al separador, el propio separador y la parte posterior al mismo.
Si no se encuentra el separador, devuelve una tupla de tres elementos que contiene la cadena original y dos cadenas vacías.
removeprefix
removeprefix(prefix, /)
Devuelve una cadena de caracteres de la que se ha eliminado la cadena prefijo indicada, si existe.
Si la cadena comienza con la cadena prefijo, devuelve la cadena[len(prefijo):]. De lo contrario, devuelve una copia de la cadena original.
removesuffix
removesuffix(suffix, /)
Devuelve una cadena de caracteres de la que se ha eliminado la cadena de sufijo indicada, si existe.
Si la cadena termina con la cadena «suffix» y dicha cadena «suffix» no está vacía, devuelve «string [» - len(«suffix»)]. De lo contrario, devuelve una copia de la cadena original.
replace
replace(old, new, count=-1, /)
Devuelve una copia en la que todas las apariciones de la subcadena «old» se hayan sustituido por «new».
Recuento
Número máximo de apariciones que se van a sustituir. « -1 » (valor por defecto) significa que se sustituirán todas las apariciones.
Si se especifica el argumento opcional «count», solo se sustituirán las primeras «count» apariciones.
rfind
rfind(sub[, start[, end]]) → int
Devuelve el índice más alto en S en el que se encuentra la subcadena sub, siempre que sub esté comprendida entre [Sstart y end]. Los argumentos opcionales «start» y «end» se interpretan como en la notación de fragmento.
En caso de error, devuelve « -1 ».
rindex
rindex(sub[, start[, end]]) → int
Devuelve el índice más alto en S en el que se encuentra la subcadena sub, siempre que sub esté comprendida entre [Sstart y end]. Los argumentos opcionales «start» y «end» se interpretan como en la notación de fragmento.
Lanza una excepción de tipo « ValueError » cuando no se encuentra la subcadena.
rjust
rjust(width, fillchar=' ', /)
Devuelve una cadena alineada a la derecha de longitud «width».
El relleno se realiza utilizando el carácter de relleno especificado (por defecto, un espacio).
rpartition
rpartition(sep, /)
Divide la cadena en tres partes utilizando el separador indicado.
Esto buscará el separador en la cadena, empezando por el final. Si se encuentra el separador, devuelve una tupla de tres elementos que contiene la parte anterior al separador, el propio separador y la parte posterior al mismo.
Si no se encuentra el separador, devuelve una tupla de tres elementos que contiene dos cadenas vacías y la cadena original.
rsplit
rsplit(sep=None, maxsplit=-1)
Devuelve una lista de las subcadenas de la cadena, utilizando «sep» como cadena separadora.
Sep
El separador utilizado para dividir la cadena.
Cuando se establece en «None» (el valor por defecto), se dividirá en función de cualquier carácter de espacio en blanco (incluidos \n, \r, \t, \f y los espacios) y se descartarán las cadenas vacías del resultado.
maxsplit
Número máximo de divisiones (empezando por la izquierda). « -1 » (valor por defecto) significa que no hay límite.
La división comienza al final de la cadena y avanza hacia el principio.
rstrip
rstrip(chars=None, /)
Devuelve una copia de la cadena sin los espacios en blanco al final.
Si se proporciona «chars» y no es «None», elimina en su lugar los caracteres de «chars».
split
split(sep=None, maxsplit=-1)
Devuelve una lista de las subcadenas de la cadena, utilizando «sep» como cadena separadora.
Sep
El separador utilizado para dividir la cadena.
Cuando se establece en «None» (el valor por defecto), se dividirá en función de cualquier carácter de espacio en blanco (incluidos \n, \r, \t, \f y los espacios) y se descartarán las cadenas vacías del resultado.
maxsplit
Número máximo de divisiones (empezando por la izquierda). « -1 » (valor por defecto) significa que no hay límite.
Ten en cuenta que la función str.split () resulta útil sobre todo para datos que han sido delimitados de forma intencionada. En el caso de texto natural que incluya signos de puntuación, te recomendamos que utilices el módulo de expresiones regulares.
splitlines
splitlines(keepends=False)
Devuelve una lista con las líneas de la cadena, separándolas por los límites de línea.
Los saltos de línea no se incluyen en la lista resultante, a menos que se especifique la opción «keepends» y su valor sea «true».
startswith
startswith(prefix[, start[, end]]) → bool
Devuelve «True» si S comienza con el prefijo especificado; en caso contrario, devuelve «False». Si se elige el inicio opcional, realiza la prueba S a partir de esa posición. Con el final opcional, deja de comparar S en esa posición. El prefijo también puede ser una tupla de cadenas que se van a probar.
strip
strip(chars=None, /)
Devuelve una copia de la cadena sin los espacios en blanco iniciales ni finales.
Si se proporciona «chars» y no es «None», elimina en su lugar los caracteres de «chars».
swapcase
swapcase()
Convierte las mayúsculas en minúsculas y las minúsculas en mayúsculas.
title
title()
Devuelve una versión de la cadena en la que cada palabra aparece con mayúscula inicial.
Más concretamente, las palabras comienzan con mayúsculas y el resto de las letras, tanto mayúsculas como minúsculas, se escriben en minúsculas.
translate
translate(table, /)
Sustituye cada carácter de la cadena utilizando la tabla de traducción proporcionada.
tabla
Tabla de traducción, que debe ser una correspondencia entre ordinales Unicode y ordinales Unicode, cadenas o None.
La tabla debe implementar la búsqueda y la indexación mediante __getitem__, por ejemplo, un diccionario o una lista. Si esta operación genera un error de « LookupError, », el carácter no se modifica. Los caracteres asignados a «None» se eliminan.
upper
upper()
Devuelve una copia de la cadena convertida a mayúsculas.
zfill
zfill(width, /)
Añade ceros a la izquierda de una cadena numérica para rellenar un campo con el ancho indicado.
La cadena nunca se trunca.
XSlowGate
class XSlowGate(label='xslow', xslow_gate_name='xslow')
Bases: Gate
La puerta «x-slow».
Parámetros
- nombre – El nombre de la puerta.
- num_qubits – El número de qubits sobre los que actúa la puerta.
- params : una lista de parámetros.
- label (str) – Una etiqueta opcional para la puerta.
- xslow_gate_name (str)
add_decomposition
add_decomposition(decomposition)
Añade un desglose de la instrucción a SessionEquivalenceLibrary.
base_class
Tipo: type[Instruction]
Obtén la clase base de esta instrucción. Esto formará parte, sin duda, del árbol genealógico de self.
La «clase base» de una instrucción es la clase más baja de su árbol de herencia con la que el objeto debe considerarse totalmente compatible para _todas_ las aplicaciones de circuitos. Esto suele significar que la subclase se define únicamente para facilitar el trabajo del programador con respecto a la clase base, y que la clase base es la «verdadera» clase desde el punto de vista del comportamiento. En concreto, no debes anular base_class si estás definiendo una versión personalizada de una instrucción que el hardware implementará de forma diferente, como una estrategia de medición alternativa o una versión de una puerta parametrizada con un conjunto concreto de parámetros con el fin de distinguirla en un Target de la puerta parametrizada completa.
A menudo, esto es exactamente equivalente a type(obj), salvo en el caso de las instancias únicas de las instrucciones de la biblioteca estándar. Estas instancias singleton son subclases especiales de su clase base, y esta propiedad devolverá dicha clase base. Por ejemplo:
>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
TrueEn general, no debes basarte en la clase concreta de una instrucción; dentro de un circuito determinado, cabe esperar que Instruction.name sea un criterio de distinción más adecuado en la mayoría de los casos.
broadcast_arguments
broadcast_arguments(qargs, cargs)
Validación y tratamiento de los argumentos y su relación.
Por ejemplo, cx([q[0],q[1]], q[2]) significa cx(q[0], q[2]); cx(q[1], q[2]). Este método devuelve los argumentos agrupados correctamente. En el ejemplo que se ofrece:
in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
[q[1], q[2]], []Las normas generales de emisión son las siguientes:
Si len(qargs) == 1:
[q[0], q[1]] -> [q[0]],[q[1]]Si len(qargs) == 2:
[[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]] [[q[0]], [r[0], r[1]]] -> [q[0], r[0]], [q[0], r[1]] [[q[0], q[1]], [r[0]]] -> [q[0], r[0]], [q[1], r[0]]Si len(qargs) >= 3:
[q[0], q[1]], [r[0], r[1]], ...] -> [q[0], r[0], ...], [q[1], r[1], ...]
Parámetros
- qargs (list) – Lista de argumentos relacionados con los bits cuánticos.
- cargs (list) – Lista de argumentos de bits clásicos.
Devuelve
Una tupla con un único argumento.
Subidas
CircuitError – Si la entrada no es válida. Por ejemplo, el número de argumentos no se ajusta a lo esperado por la puerta lógica.
Tipo de retorno
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)
Devuelve la versión controlada de sí misma.
La puerta controlada se implementa como ControlledGate cuando annotated es False, y como AnnotatedOperation cuando annotated es True.
qiskit.circuit.gate.Gate.control()El argumento annotated de ha quedado obsoleto a partir de Qiskit 2.3. Se eliminará en Qiskit 3.0. El método Gate.control () ya no admite el valor «annotated=None». El nuevo valor por defecto es annotated=True, lo que representa la puerta controlada como un AnnotatedOperation (a menos que ya exista una clase específica para puertas controladas). Puedes establecer explícitamente annotated=False para mantener el comportamiento anterior. No obstante, se recomienda utilizar «annotated=True», ya que de este modo se aplaza la construcción del circuito controlado hasta la fase del transpilador y, además, permite realizar optimizaciones adicionales de las puertas controladas (lo que suele dar lugar a circuitos de mayor calidad).
Parámetros
- num_ctrl_qubits (int) – Número de controles que se deben añadir. El valor predeterminado es
1. - label (str | None) – Etiqueta opcional para la puerta. El valor predeterminado es
None. Se ignora si la puerta controlada se implementa como una operación anotada. - 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").2**num_ctrl_qubits - 1SiNone, se establece por defecto en el estado en el que todos los bits son «1». - annotated (bool | None) – Indica si la puerta controlada debe implementarse como una puerta controlada o como una operación anotada. Si
None, se considera comoFalse.
Devuelve
Una versión controlada de esta puerta.
Subidas
QiskitError – no válido num_ctrl_qubits o ctrl_state.
copy
copy(name=None)
Copia de las instrucciones.
Parámetros
name (str) – nombre que se le dará al circuito copiado; si None es así, el nombre se mantiene igual.
Devuelve
una copia de la instrucción actual, con el nombre actualizado si se ha facilitado
Tipo de retorno
decompositions
Consulta las descomposiciones de la instrucción en SessionEquivalenceLibrary.
definition
Define la función «return» en términos de otras puertas lógicas básicas.
inverse
inverse(annotated=False)
Invierte esta instrucción.
Si «annotated» es «False», la instrucción inversa se implementa como una nueva instrucción con la definición invertida de forma recursiva.
Si «annotated» es «True», la instrucción inversa se implementa como AnnotatedOperation, y se corresponde con la instrucción dada, a la que se le ha añadido el «modificador inverso».
Las instrucciones especiales que heredan de «Instruction» pueden implementar su propia inversa (por ejemplo, T y Tdg, Barrier, etc.) En concreto, pueden elegir cómo gestionar el argumento annotated , lo que puede incluir ignorarlo y devolver siempre una clase de puerta concreta si la inversa se define como una puerta estándar.
Parámetros
annotated (bool) – Si se establece en «True», la puerta inversa de salida se devolverá como AnnotatedOperation.
Devuelve
La operación inversa.
Subidas
CircuitError – si la instrucción no es compuesta y no se ha implementado su inversa.
is_parameterized
is_parameterized()
Devuelve si el Instruction contiene parámetros de tiempo de compilación.
label
Tipo: str
Etiqueta con instrucciones de devolución
mutable
Tipo: bool
¿Es esta instancia una instancia única mutable o no?
Si este atributo está False presente, la instancia de la puerta es un singleton compartido y no es mutable.
name
Devuelve el nombre.
num_clbits
Devuelve el número de clbits.
num_qubits
Devuelve el número de qubits.
params
InstructionLos parámetros de este... Lo ideal sería que se tratara de ángulos de compuerta.
power
power(exponent, annotated=False)
Eleva esta puerta a la potencia de exponent.
Se implementa como una puerta unitaria (ref. UnitaryGate) AnnotatedOperationo como una operación comentada (véase ). RXGateEn el caso de varias puertas estándar, como por ejemplo, cuando la potencia de una puerta puede expresarse en términos de otra puerta estándar que se devuelve directamente.
Parámetros
- exponent (float) – la capacidad de levantar la verja para
- annotated (bool) – indica si la puerta de potencia puede implementarse como una operación anotada.
RXGateEn el caso de varias puertas estándar, como por ejemplo, este argumento se ignora cuando la potencia de una puerta puede expresarse en términos de otra puerta estándar.
Devuelve
Una operación que implementa gate^exponent
Subidas
CircuitError – Si la puerta no es unitaria
repeat
repeat(n)
Crea una instrucción que self se repite veces.
Parámetros
n (int) – Número de veces que hay que repetir la instrucción
Devuelve
Que contiene la definición.
Tipo de retorno
Subidas
CircuitError – Si n < 1.
reverse_ops
reverse_ops()
En el caso de una instrucción compuesta, invierte el orden de las subinstrucciones.
Esto se consigue invirtiendo de forma recursiva todas las subinstrucciones. No invierte ninguna puerta lógica.
Devuelve
una nueva instrucción con
subinstrucciones invertidas.
Tipo de retorno
soft_compare
soft_compare(other)
Comparación suave entre puertas. Sus nombres, el número de qubits y el número de bits clásicos deben coincidir. El número de parámetros debe coincidir. Se comparan todos los parámetros. Si se es « ParameterExpression », entonces no se tiene en cuenta.
Parámetros
other (instruction) – otras instrucciones.
Devuelve
«self» y «other» son iguales en las expresiones de parámetros.
Tipo de retorno
to_matrix
to_matrix()
Devuelve un objeto Numpy.array que representa la matriz unitaria de la puerta.
Devuelve
si la subclase Gate tiene una definición de matriz.
Tipo de retorno
np.ndarray
Subidas
CircuitError – Si una subclase de Gate no implementa este método, se generará una excepción cuando se llame a este método de la clase base.
to_mutable
to_mutable()
Devuelve una copia modificable de esta puerta.
Este método devolverá una nueva copia modificable de esta instancia de puerta. Si se está utilizando una instancia singleton, se tratará de una nueva instancia única que se podrá modificar. Si la instancia ya es mutable, se creará una copia profunda de dicha instancia.
validate_parameter
validate_parameter(parameter)
Los parámetros de la puerta deben ser de tipo «int», «float» o « ParameterExpression »