Skip to main content
IBM Quantum Platform

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)

GitHub

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

Tipo: set[frozenset[int]]

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)

GitHub

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 por AddSpectatorPostCircuitBitFlipChecks.

Tipo de retorno

PostSelectionSummary

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

Tipo: set[str]

Los nombres de los principales registros clásicos.

spectator_cregs

Tipo: set[str]

Subconjunto de primary_cregs que contienen mediciones de los espectadores.

Utiliza primary_cregs - spectator_cregs para obtener los registros primarios de solo datos, por ejemplo, al calcular observables a partir de disparos filtrados.

PostSelector

class PostSelector(summary)

GitHub

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')

GitHub

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

ndarray [ tupla [ entero, …], dtype [ bool ]]

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

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 con AddSpectatorPostCircuitBitFlipChecks.

Tipo de retorno

PostSelector

summary

Tipo: PostSelectionSummary

Resumen del circuito que incluye comprobaciones de inversión de bits.

PostSelectionStrategy

class PostSelectionStrategy(value)

GitHub

Bases: str, Enum

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')

GitHub

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
True

En 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

Iterable [ tupla [ lista, lista ]]

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.

En desuso desde la versión 2.3

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 - 1Si None, 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 como False.

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

qiskit.circuit.Instruction

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 nn 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

qiskit.circuit.Instruction

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

qiskit.circuit.Instruction

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

bool

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 »

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