qre Pacote
Pacotes
| application | |
| interop | |
| models |
Módulos
| instruction_ids | |
| property_keys |
Classes
| Application |
Um aplicativo define uma classe de problemas de computação quântica juntamente com um método para gerar rastreamentos para instâncias de problema específicas. Distinguemos entre parâmetros de aplicativo e rastreamento. Os parâmetros do aplicativo definem qual instância específica do aplicativo queremos considerar. Os parâmetros de rastreamento definem como gerar um rastreamento. Eles mudam a maneira específica pela qual resolvemos o problema, mas não o problema em si. Por exemplo, na cryptanalysis quântica, os parâmetros do aplicativo podem definir o tamanho da chave para um produto RSA prime, enquanto os parâmetros de rastreamento definem qual algoritmo usar para quebrar a criptografia, bem como os parâmetros nela. |
| Architecture |
Classe base abstrata para arquiteturas de hardware quântico. |
| Block | |
| Constraint | |
| ConstraintBound | |
| Encoding | |
| EstimationResult | |
| EstimationTable |
Uma tabela de resultados de estimativa de recursos quânticos.
Inicialize uma tabela de estimativa vazia com colunas padrão. |
| EstimationTableColumn |
Definição de uma única coluna em um |
| EstimationTableEntry |
Uma única linha em um Cada entrada representa um resultado de estimativa ideal do Pareto para uma combinação específica de ISA de rastreamento de aplicativo e arquitetura. |
| FactoryResult | |
| ISA | |
| ISAContext |
Contexto passado por enumeração, mantendo o estado compartilhado. Inicialize o contexto ISA para a arquitetura fornecida. |
| ISAQuery |
Classe base abstrata para todos os nós na árvore de enumeração ISA. Os nós de enumeração definem a estrutura do espaço de pesquisa para ISAs a partir de arquiteturas e modificados por transformações ISA, como esquemas de correção de erro. Eles podem ser compostos usando operadores como |
| ISARefNode |
Uma referência a um ISA associado no contexto de enumeração. Esse nó pesquisa a associação do contexto e produz o ISA associado. |
| ISARequirements | |
| ISATransform |
Classe base abstrata para transformações entre ISAs (por exemplo, esquemas QEC). Uma transformação ISA define um mapeamento de um ISA de entrada necessário (por exemplo, restrições de arquitetura) para um ISA de saída fornecido (instruções lógicas). Ele dá suporte à enumeração de parâmetros de configuração. |
| InstructionFrontier | |
| InstructionSource | |
| LatticeSurgery |
Transformação de rastreamento de cirurgia de reticência. Converte um rastreamento em um formulário adequado para estimativa de recursos baseados em reticências de cirurgia. |
| PSSPC |
PSSPC (transformação de rastreamento de computação) baseada em Pauli. Converte portas de rotação e, opcionalmente, portas CCX em operações baseadas em estado T adequadas para estimativa de recursos de cirurgia de rede. |
| Trace | |
| TraceQuery |
Uma consulta que enumera rastreamentos transformados de um aplicativo. Uma consulta de rastreamento encadeia uma sequência de transformações de rastreamento, cada uma com argumentos opcionais de palavra-chave para substituir seus domínios de parâmetro padrão. |
| TraceTransform |
Classe base abstrata para transformações de rastreamento. |
Funções
block_linear_function
block_linear_function(block_size, slope, offset=None)
Parâmetros
| Nome | Description |
|---|---|
|
block_size
Obrigatório
|
|
|
slope
Obrigatório
|
|
|
offset
|
Valor padrão: None
|
constant_function
constant_function(value)
Parâmetros
| Nome | Description |
|---|---|
|
value
Obrigatório
|
|
constraint
Crie uma restrição de instrução.
constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint
Parâmetros
| Nome | Description |
|---|---|
|
id
Obrigatório
|
A ID da instrução. |
|
encoding
|
A codificação de instrução. FÍSICO (0) ou LÓGICO (1). Valor padrão: 0
|
|
arity
Obrigatório
|
<xref:Optional>[int]
O arity de instrução. Se Nenhum, supõe-se que a instrução tenha aridade variável. O padrão é 1. |
|
error_rate
Obrigatório
|
<xref:Optional>[<xref:ConstraintBound>]
A restrição na taxa de erros. |
|
**kwargs
Obrigatório
|
Propriedades necessárias que as instruções de correspondência devem ter. Nomes de propriedade válidos: distância. Defina como True para exigir a propriedade. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
arity
|
Valor padrão: 1
|
|
error_rate
|
Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
A restrição de instrução. |
Exceções
| Tipo | Description |
|---|---|
|
Se um nome de propriedade desconhecido for fornecido em kwargs. |
estimate
Estimar os requisitos de recursos para uma determinada instância de aplicativo e arquitetura.
A instância do aplicativo pode retornar vários rastreamentos. Cada um dos rastreamentos é transformado pela consulta de rastreamento, que aplica várias transformações de rastreamento na sequência. Cada transformação pode retornar vários rastreamentos. Da mesma forma, o ISA da arquitetura é transformado pela consulta ISA, que aplica várias transformações ISA em sequência, cada uma delas pode retornar vários ISAs. A estimativa é executada para cada combinação de rastreamento transformado e ISA. Os resultados são coletados em uma EstimativaTable e retornados.
A coleção contém apenas os resultados que são ideais em relação ao número total de qubits e ao runtime total.
Note
A estratégia de poda usada quando use_graph é definida como True (padrão)
filtra instruções ISA comparando seu espaço por instrução, tempo,
e erro de forma independente. No entanto, a contagem total de qubits de um resultado
depende da interação entre o espaço de fábrica e o runtime:
factory_qubits = copia × factory_space em que as cópias são determinadas
por count.div_ceil(runtime/factory_time). Por causa disso, um ISA
instrução que é dominada em métricas por instrução ainda pode
contribuir para um resultado globalmente pareto-ideal (por exemplo, uma fábrica com
tempo maior pode precisar de menos cópias, levando a menos qubits totais). Como um
conseqüência, use_graph=True pode perder alguns resultados que
use_graph=False localizaria. Usar use_graph=False quando a integridade de
a fronteira pareto é necessária.
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
| Nome | Description |
|---|---|
|
application
Obrigatório
|
O aplicativo quântico a ser estimado. |
|
architecture
Obrigatório
|
A arquitetura quântica de destino. |
|
isa_query
Obrigatório
|
A consulta ISA para enumerar ISAs da arquitetura. |
|
trace_query
|
A consulta de rastreamento para enumerar rastreamentos do aplicativo. Valor padrão: None
|
|
max_error
Obrigatório
|
O erro máximo permitido para os resultados da estimativa. |
|
post_process
Obrigatório
|
Se for True, use o caminho de estimativa com threads de Python (destinado à lógica pós-processamento futura). Se False (padrão), use o caminho de estimativa paralela do Rust. |
|
use_graph
Obrigatório
|
Se true (padrão), use o caminho de estimativa rust que cria um grafo de ISAs e poda ISAs subotimais durante a estimativa. Se False, use o caminho de estimativa do Rust que não executa nenhuma poda e simplesmente enumera todos os ISAs para cada rastreamento. |
|
name
Obrigatório
|
<xref:Optional>[str]
Um nome opcional para a estimativa. Se for dado, isso será adicionado como uma primeira coluna à tabela de resultados para todas as entradas. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
max_error
|
Valor padrão: 1.0
|
|
post_process
|
Valor padrão: False
|
|
use_graph
|
Valor padrão: True
|
|
name
|
Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
Uma tabela que contém os resultados de estimativa ideais. |
generic_function
generic_function(func)
Parâmetros
| Nome | Description |
|---|---|
|
func
Obrigatório
|
|
instruction_name
instruction_name(id)
Parâmetros
| Nome | Description |
|---|---|
|
id
Obrigatório
|
|
linear_function
linear_function(slope)
Parâmetros
| Nome | Description |
|---|---|
|
slope
Obrigatório
|
|
plot_estimates
Resultados de estimativa de plotagem exibindo qubits versus runtime.
Cria um gráfico de dispersão de log-log em que o eixo x mostra o runtime total e o eixo y mostra o número total de qubits físicos.
os dados podem ser um único EstimationTable ou iterável de tabelas. Quando várias tabelas são fornecidas, cada uma é plotada como uma série separada. Se uma tabela tiver um EstimationTable.name (definido por meio do parâmetro de nome ), estimateela será usada como o rótulo de legenda para essa série.
Quando runtime_unit é None (o padrão), o eixo x usa rótulos de escala de unidade de tempo legíveis por humanos que abrangem nanossegundos a séculos.
Quando uma cadeia de caracteres de unidade é fornecida (por exemplo "hours"), todos os runtimes são dimensionados para essa unidade e o rótulo do eixo x inclui a unidade enquanto os tiques são números simples.
Valores de runtime_unit com suporte: "ns", "µs" (ou "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
| Nome | Description |
|---|---|
|
data
Obrigatório
|
Uma única EstimationTable ou uma iterável de objetos EstimationTable para plotar. |
|
runtime_unit
Obrigatório
|
Unidade de tempo opcional para a qual dimensionar o eixo x. |
|
figsize
Obrigatório
|
Dimensões de figura em polegadas como |
|
scatter_args
Obrigatório
|
Argumentos de palavra-chave adicionais a serem passados ao |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
runtime_unit
|
Valor padrão: None
|
|
figsize
|
Valor padrão: (15, 8)
|
|
scatter_args
|
Valor padrão: {'marker': 'x'}
|
Retornos
| Tipo | Description |
|---|---|
|
<xref:matplotlib.figure.Figure>
|
A figura que contém o gráfico. |
Exceções
| Tipo | Description |
|---|---|
|
Se matplotlib não estiver instalado. |
|
|
Se todas as tabelas estiverem vazias ou runtime_unit não forem reconhecidas. |
property_name
property_name(id)
Parâmetros
| Nome | Description |
|---|---|
|
id
Obrigatório
|
|
property_name_to_key
property_name_to_key(name)
Parâmetros
| Nome | Description |
|---|---|
|
name
Obrigatório
|
|