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