RoundBasedFactory Clase

Una fábrica de estado mágico que genera instrucciones de puerta T mediante canalizaciones de destilación basadas en redondeo.

Esta fábrica explora combinaciones de unidades de destilación (como "15 a 1 RM prep" y "15 a 1 espacio eficiente") para encontrar configuraciones óptimas que minimicen el tiempo y el espacio al lograr tasas de error objetivo. Admite la destilación de nivel físico (cuando la puerta T de entrada está codificada físicamente) y la destilación de nivel lógico (mediante la cirugía de lattice a través de códigos de superficie).

Para tener en cuenta la probabilidad de éxito de las rondas de destilación, la fábrica modela la canalización mediante un requisito de probabilidad de error (de forma predeterminada a 1%) que cada ronda debe cumplir. El número de unidades de destilación por ronda se ajusta para cumplir este requisito, lo que a su vez afecta a los requisitos generales del espacio.

Los requisitos de espacio se calculan mediante una función proporcionada por el usuario que agrega espacio por ronda (por ejemplo, suma o máximo). La sum función modela el caso en el que los cúbits no se reutilizan en las rondas, mientras que la max función modela el caso en el que se reutilizan los cúbits en las rondas.

Para la enumeración de unidades de destilación de nivel lógico, la fábrica se basa en un proporcionado ISAQuery por el usuario (el valor predeterminado es SurfaceCode.q()) para explorar diferentes configuraciones de código expuesta y sus correspondientes instrucciones de cirugía de lattice. El usuario debe proporcionarlos y no se puede derivar automáticamente del ISA de implementación proporcionado, ya que solo puede contener un subconjunto de las instrucciones necesarias. El usuario debe asegurarse de que la consulta proporcionada coincide con la arquitectura para la que se usa esta factoría.

Los resultados se almacenan en caché en el disco para mejorar la eficacia.

Referencias:

  • Sergio Bravyi, Alexei Kitaev: Cálculo cuántico universal con puertas ideales clifford y ancillas ruidosas, arXiv:quant-ph/0403025

  • Michael E. Beverland, Prakash Murali, Matthias Troyer, Krysta M. Svore, Torsten Hokasher, Vadym Kliuchnikov, Guang Hao Low, Mathias Soeken, Aarthi Sundaram, Alexander Vaschillo: Evaluación de los requisitos para escalar a la ventaja cuántica práctica, arXiv:2211.07629

Constructor

RoundBasedFactory(code_query: ~qdk.qre._isa_enumeration.ISAQuery = <factory>, physical_qubit_calculation: ~typing.Callable[[~typing.Iterable], int] = <built-in function sum>, cache_dir: ~pathlib.Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based'), use_cache: bool = True)

Parámetros

Nombre Description
code_query
Valor predeterminado: <factory>
physical_qubit_calculation
Valor predeterminado: <built-in function sum>
cache_dir
Valor predeterminado: C:\Users\cloudtest\.cache\re3\round_based
use_cache
Valor predeterminado: True

Métodos

provided_isa
required_isa

provided_isa

provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]

Parámetros

Nombre Description
impl_isa
Requerido
ctx
Requerido

required_isa

static required_isa() -> ISARequirements

Atributos

physical_qubit_calculation

Callable[[Iterable], int] Function para calcular el total de cúbits físicos a partir de los requisitos de espacio por ronda, por ejemplo, suma o máx. El valor predeterminado es sumar.

Parámetros de posición únicamente

Nombre Description
iterable

Parámetros

Nombre Description
start
Valor predeterminado: 0

code_query

Consulta ISAQuery para enumerar códigos QEC para unidades de destilación lógicas. El valor predeterminado es SurfaceCode.q().

code_query: ISAQuery

cache_dir

Directorio de ruta de acceso para almacenar en caché configuraciones de fábrica calculadas. El valor predeterminado es ~/.cache/re3/round_based.

cache_dir: Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based')

use_cache

bool Indica si se deben usar los resultados almacenados en caché. El valor predeterminado es True.

use_cache: bool = True