qre Paquete
Paquetes
| application | |
| interop | |
| models |
Módulos
| instruction_ids | |
| property_keys |
Clases
| Application |
Una aplicación define una clase de problemas de cálculo cuántico junto con un método para generar seguimientos para instancias de problemas específicas. Se distinguen entre los parámetros de aplicación y seguimiento. Los parámetros de la aplicación definen qué instancia concreta de la aplicación queremos tener en cuenta. Los parámetros de seguimiento definen cómo generar un seguimiento. Cambian la manera específica en la que se resuelve el problema, pero no el propio problema. Por ejemplo, en el cryptanalysis cuántico, los parámetros de la aplicación podrían definir el tamaño de clave para un producto principal RSA, mientras que los parámetros de seguimiento definen qué algoritmo usar para interrumpir la criptografía, así como los parámetros que contiene. |
| Architecture |
Clase base abstracta para arquitecturas de hardware cuántico. |
| Block | |
| Constraint | |
| ConstraintBound | |
| Encoding | |
| EstimationResult | |
| EstimationTable |
Tabla de resultados de estimación de recursos cuánticos. Extiende y proporciona columnas configurables Inicialice una tabla de estimación vacía con columnas predeterminadas. |
| EstimationTableColumn |
Definición de una sola columna en . |
| EstimationTableEntry |
Una sola fila de . Cada entrada representa un resultado de estimación óptimo de Pareto para una combinación determinada de seguimiento de aplicaciones e ISA de arquitectura. |
| FactoryResult | |
| ISA | |
| ISAContext |
Contexto pasado a través de la enumeración, manteniendo el estado compartido. Inicialice el contexto de ISA para la arquitectura especificada. |
| ISAQuery |
Clase base abstracta para todos los nodos del árbol de enumeración ISA. Los nodos de enumeración definen la estructura del espacio de búsqueda de ISA a partir de arquitecturas y modificadas por transformaciones isa, como esquemas de corrección de errores. Se pueden componer mediante operadores como |
| ISARefNode |
Referencia a un ISA enlazado en el contexto de enumeración. Este nodo busca el enlace desde el contexto y produce el ISA enlazado. |
| ISARequirements | |
| ISATransform |
Clase base abstracta para transformaciones entre ISA (por ejemplo, esquemas QEC). Una transformación ISA define una asignación de un ISA de entrada necesario (por ejemplo, restricciones de arquitectura) a un ISA de salida proporcionado (instrucciones lógicas). Admite la enumeración de parámetros de configuración. |
| InstructionFrontier | |
| InstructionSource | |
| LatticeSurgery |
Transformación de seguimiento de la cirugía lattice. Convierte un seguimiento en un formulario adecuado para la estimación de recursos basada en lattice-cirugía. |
| PSSPC |
Transformación de seguimiento de cálculo basado en Pauli (PSSPC). Convierte puertas de rotación y, opcionalmente, puertas CCX en operaciones basadas en estado T adecuadas para la estimación de recursos de cirugía de lattice. |
| Trace | |
| TraceQuery |
Consulta que enumera los seguimientos transformados de una aplicación. Una consulta de seguimiento encadena una secuencia de transformaciones de seguimiento, cada una con argumentos de palabra clave opcionales para invalidar sus dominios de parámetro predeterminados. |
| TraceTransform |
Clase base abstracta para transformaciones de seguimiento. |
Funciones
block_linear_function
block_linear_function(block_size, slope, offset=None)
Parámetros
| Nombre | Description |
|---|---|
|
block_size
Requerido
|
|
|
slope
Requerido
|
|
|
offset
|
Valor predeterminado: None
|
constant_function
constant_function(value)
Parámetros
| Nombre | Description |
|---|---|
|
value
Requerido
|
|
constraint
Cree una restricción de instrucción.
constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint
Parámetros
| Nombre | Description |
|---|---|
|
id
Requerido
|
Identificador de instrucción. |
|
encoding
|
Codificación de instrucciones. FÍSICO (0) o LÓGICO (1). Valor predeterminado: 0
|
|
arity
Requerido
|
<xref:Optional>[int]
La aridad de instrucciones. Si No, se supone que la instrucción tiene aridad variable. El valor predeterminado es 1. |
|
error_rate
Requerido
|
<xref:Optional>[<xref:ConstraintBound>]
Restricción en la tasa de errores. |
|
**kwargs
Requerido
|
Las propiedades necesarias que coincidan deben tener las instrucciones. Nombres de propiedad válidos: distancia. Establézcalo en True para requerir la propiedad . |
Parámetros de palabra clave únicamente
| Nombre | Description |
|---|---|
|
arity
|
Valor predeterminado: 1
|
|
error_rate
|
Valor predeterminado: None
|
Devoluciones
| Tipo | Description |
|---|---|
|
Restricción de instrucción. |
Excepciones
| Tipo | Description |
|---|---|
|
Si se proporciona un nombre de propiedad desconocido en kwargs. |
estimate
Calcule los requisitos de recursos de una determinada instancia de aplicación y arquitectura.
La instancia de aplicación puede devolver varios seguimientos. Cada uno de los seguimientos se transforma mediante la consulta de seguimiento, que aplica varias transformaciones de seguimiento en secuencia. Cada transformación puede devolver varios seguimientos. Del mismo modo, el ISA de la arquitectura se transforma mediante la consulta ISA, que aplica varias transformaciones ISA en secuencia, cada una de las cuales puede devolver varios ISA. La estimación se realiza para cada combinación de seguimiento transformado e ISA. Los resultados se recopilan en una Tabla de estimación y se devuelven.
La colección solo contiene los resultados óptimos con respecto al número total de cúbits y el tiempo de ejecución total.
Note
La estrategia de eliminación que se usa cuando use_graph se establece en True (valor predeterminado)
filtra las instrucciones de ISA comparando su espacio por instrucción, tiempo,
y error de forma independiente. Sin embargo, el recuento total de cúbits de un resultado
depende de la interacción entre el espacio de fábrica y el tiempo de ejecución:
factory_qubits = copias × factory_space donde se determinan las copias
by count.div_ceil(runtime/factory_time). Debido a esto, un ISA
las instrucciones que se dominan en las métricas por instrucción todavía pueden seguir
contribuir a un resultado globalmente óptimo (por ejemplo, una fábrica con
más tiempo puede necesitar menos copias, lo que conduce a menos cúbits totales). Como
consecuencia, use_graph=True puede perder algunos resultados que
use_graph=False encontraría. Use use_graph=False cuando se completa
se requiere la frontera de Pareto.
estimate(application: Application, architecture: Architecture, isa_query: ISAQuery, trace_query: TraceQuery | None = None, *, max_error: float = 1.0, post_process: bool = False, use_graph: bool = True, name: str | None = None) -> EstimationTable
Parámetros
| Nombre | Description |
|---|---|
|
application
Requerido
|
Aplicación cuántica que se va a calcular. |
|
architecture
Requerido
|
Arquitectura cuántica de destino. |
|
isa_query
Requerido
|
Consulta ISA para enumerar isas de la arquitectura. |
|
trace_query
|
Consulta de seguimiento para enumerar seguimientos de la aplicación. Valor predeterminado: None
|
|
max_error
Requerido
|
Error máximo permitido para los resultados de estimación. |
|
post_process
Requerido
|
Si es True, use la ruta de acceso de estimación Python subproceso (pensada para la lógica posterior al procesamiento futuro). Si es False (valor predeterminado), use la ruta de acceso de estimación paralela de Rust. |
|
use_graph
Requerido
|
Si es True (valor predeterminado), use la ruta de estimación de Rust que crea un gráfico de ISA y elimina isas poco óptimas durante la estimación. Si es False, use la ruta de estimación de Rust que no realiza ninguna eliminación y simplemente enumera todas las ISA para cada seguimiento. |
|
name
Requerido
|
<xref:Optional>[str]
Un nombre opcional para la estimación. Si se indica, se agregará como primera columna a la tabla de resultados para todas las entradas. |
Parámetros de palabra clave únicamente
| Nombre | Description |
|---|---|
|
max_error
|
Valor predeterminado: 1.0
|
|
post_process
|
Valor predeterminado: False
|
|
use_graph
|
Valor predeterminado: True
|
|
name
|
Valor predeterminado: None
|
Devoluciones
| Tipo | Description |
|---|---|
|
Tabla que contiene los resultados de estimación óptimos. |
generic_function
generic_function(func)
Parámetros
| Nombre | Description |
|---|---|
|
func
Requerido
|
|
instruction_name
instruction_name(id)
Parámetros
| Nombre | Description |
|---|---|
|
id
Requerido
|
|
linear_function
linear_function(slope)
Parámetros
| Nombre | Description |
|---|---|
|
slope
Requerido
|
|
plot_estimates
Trazado de los resultados de la estimación que muestran cúbits frente al tiempo de ejecución.
Crea un gráfico de dispersión del registro en el que el eje X muestra el tiempo de ejecución total y el eje Y muestra el número total de cúbits físicos.
los datos pueden ser únicos EstimationTable o iterables de tablas. Cuando se proporcionan varias tablas, cada una se traza como una serie independiente. Si una tabla tiene un EstimationTable.name objeto (establecido a través del parámetro name de estimate), se usa como etiqueta de leyenda para esa serie.
Cuando runtime_unit es None (el valor predeterminado), el eje X usa etiquetas de tic de unidad de tiempo legibles que abarcan nanosegundos a siglos.
Cuando se da una cadena de unidad (por ejemplo "hours", ), todos los entornos de ejecución se escalan a esa unidad y la etiqueta del eje X incluye la unidad mientras que los tics son números sin formato.
Valores admitidos runtime_unit: "ns", "µs" (o "us"), "ms", "s""min""hours""days", , "weeks", , "months", . "years"
plot_estimates(data: EstimationTable | Iterable[EstimationTable], *, runtime_unit: str | None = None, figsize: tuple[float, float] = (15, 8), scatter_args: dict[str, Any] = {'marker': 'x'})
Parámetros
| Nombre | Description |
|---|---|
|
data
Requerido
|
Objeto EstimationTable único o iterable de objetos EstimationTable que se van a trazar. |
|
runtime_unit
Requerido
|
Unidad de tiempo opcional a la que se va a escalar el eje X. |
|
figsize
Requerido
|
Ilustración de dimensiones en pulgadas como |
|
scatter_args
Requerido
|
Argumentos de palabra clave adicionales a |
Parámetros de palabra clave únicamente
| Nombre | Description |
|---|---|
|
runtime_unit
|
Valor predeterminado: None
|
|
figsize
|
Valor predeterminado: (15, 8)
|
|
scatter_args
|
Valor predeterminado: {'marker': 'x'}
|
Devoluciones
| Tipo | Description |
|---|---|
|
<xref:matplotlib.figure.Figure>
|
Ilustración que contiene el trazado. |
Excepciones
| Tipo | Description |
|---|---|
|
Si matplotlib no está instalado. |
|
|
Si todas las tablas están vacías o runtime_unit no se reconocen. |
property_name
property_name(id)
Parámetros
| Nombre | Description |
|---|---|
|
id
Requerido
|
|
property_name_to_key
property_name_to_key(name)
Parámetros
| Nombre | Description |
|---|---|
|
name
Requerido
|
|