RoundBasedFactory Classe

Uma fábrica de estado mágico que produz instruções de porta T usando pipelines de destilação de base redonda.

Esta fábrica explora combinações de unidades de destilação (como "preparação de RM de 15 para 1" e "eficiente de espaço de 15 para 1") para encontrar configurações ideais que minimizem o tempo e o espaço enquanto atingem as taxas de erro de destino. Ele dá suporte à destilação de nível físico (quando o portão T de entrada é codificado fisicamente) e à destilação de nível lógico (usando cirurgia de rede por meio de códigos de superfície).

Para considerar a probabilidade de êxito das rodadas de destilação, a fábrica modela o pipeline usando um requisito de probabilidade de falha (padrão para 1%) que cada rodada deve atender. O número de unidades de destilação por rodada é ajustado para atender a esse requisito, o que, por sua vez, afeta os requisitos gerais de espaço.

Os requisitos de espaço são calculados usando uma função fornecida pelo usuário que agrega espaço por rodada (por exemplo, soma ou máximo). A sum função modela o caso em que os qubits não são reutilizados entre rodadas, enquanto a max função modela o caso em que os qubits são reutilizados entre rodadas.

Para a enumeração de unidades de destilação de nível lógico, a fábrica depende de um usuário fornecido ISAQuery (padrão para SurfaceCode.q()) para explorar diferentes configurações de código de superfície e suas instruções de cirurgia de rede correspondentes. Elas precisam ser fornecidas pelo usuário e não podem ser derivadas automaticamente do ISA de implementação fornecido, pois só podem conter um subconjunto das instruções necessárias. O usuário precisa garantir que a consulta fornecida corresponda à arquitetura para a qual esta fábrica está sendo usada.

Os resultados são armazenados em cache no disco para obter eficiência.

Referências:

  • Sergei Bravyi, Alexei Kitaev: Computação Quântica Universal com portões clifford ideais e ancillas barulhentos, arXiv:quant-ph/0403025

  • Michael E. Beverland, Prakash Murali, Matthias Troyer, Krysta M. Svore, Torsten Hoefler, Vadym Kliuchnikov, Guang Hao Low, Mathias Soeken, Aarthi Sundaram, Alexander Vaschillo: Avaliando os requisitos para dimensionar para vantagem quântica prática, arXiv:2211.07629

Construtor

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

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

Métodos

provided_isa
required_isa

provided_isa

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

Parâmetros

Nome Description
impl_isa
Obrigatório
ctx
Obrigatório

required_isa

static required_isa() -> ISARequirements

Atributos

physical_qubit_calculation

Função Callable[[Iterable], int] para calcular o total de qubits físicos de requisitos de espaço por rodada, por exemplo, soma ou máximo. O padrão é somar.

Parâmetros somente posicionais

Nome Description
iterable

Parâmetros

Nome Description
start
Valor padrão: 0

code_query

CONSULTA ISAQuery para enumerar códigos QEC para unidades de destilação lógica. O padrão é SurfaceCode.q().

code_query: ISAQuery

cache_dir

Diretório de caminho para armazenar em cache configurações de fábrica computadas. O padrão é ~/.cache/re3/round_based.

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

use_cache

bool Se deve usar resultados armazenados em cache. O padrão é True.

use_cache: bool = True