Skip to main content
IBM Quantum Platform

SabrePreLayout

class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)

GitHub

Bases: AnalysisPass

Escolha um layout inicial para usar em testes adicionais de layout do Sabre.

A passagem funciona adicionando cada vez mais arestas “extras” ao mapa de acoplamento até que o algoritmo de VF2 e consiga encontrar um isomorfismo perfeito do grafo. Mais precisamente, o mapa de acoplamento ampliado contém arestas entre nós que se encontram a uma determinada distância d no mapa de acoplamento original. As arestas originais não apresentam ruído, enquanto as arestas adicionais apresentam ruído que aumenta exponencialmente com a distância. O valor de d é aumentado até que se encontre um isomorfismo.

Intuitivamente, um melhor layout de “ VF2 ” envolve menos arestas adicionais e de menor distância.


Valores definidos para propriedades gravados

sabre_starting_layouts (list[Layout])

Uma lista opcional de objetos Layout objetos a serem usados para testes adicionais de layout do Sabre.

Referências

[1] Henry Zou, Matthew Treinish, Kevin Hartman, Alexander Ivrii e Jake Lishman. “LightSABRE: Um algoritmo SABRE leve e aprimorado" arXiv:2409.08368

param coupling_map

Grafo direcionado que representa o mapa de acoplamento original ou um modelo de referência que reproduz o backend (incluindo sua conectividade).

param max_distance

A distância máxima para a execução do VF2 com o mapa de acoplamento aumentado. Em particular, isso também especifica a distância máxima entre os nós originais que ficam conectados no mapa de acoplamento ampliado.

param error_rate

A taxa de erro a ser atribuída às arestas “extras”. Uma taxa de erro diferente de zero faz com que o algoritmo de " VF2 " dê prioridade às arestas originais em detrimento das arestas adicionais.

param max_trials_vf2

Especifica o número máximo de tentativas de " VF2 ". Essa opção permanece principalmente por motivos de compatibilidade com versões anteriores, desde a introdução da avaliação em tempo real no VF2, que foi lançada no Qiskit 2.3. Para limitar o tempo da passagem, defina os parâmetros max_distance e call_limit_vf2 em vez disso.

param call_limit_vf2

O número máximo de vezes que a busca por isomorfismo de tipo VF2 tentará estender o mapeamento. Se None, então não há limite. Se for um tuplo de dois elementos, o limite começa pelo primeiro item e passa para o segundo após ser encontrada a primeira correspondência, sem reiniciar o contador de passos. Isso pode ser usado para permitir uma busca extensa por qualquer correspondência, mas ainda assim encerrar rapidamente com um pequeno orçamento de extensão caso seja encontrada uma.

param improve_layout

Não é mais utilizado (essa opção tornou-se obsoleta com a introdução da pontuação em tempo real no VF2 ).

param min_distance

A distância para a primeira execução do algoritmo de " VF2 " com o mapa de acoplamento aumentado. Essa configuração min_distance > 1 ignora todas as verificações de distâncias menores e, em particular, ignora a verificação de distance-1, que corresponde à execução da VF2Layout passagem.

aumentos TranspilerError

Durante a execução, se o argumento não coupling_map for fornecido.


Atributos

is_analysis_pass

Verificar se o passe é um passe de análise.

Se a passagem for um AnalysisPass,, isso significa que a passagem pode analisar o DAG e escrever os resultados dessa análise no conjunto de propriedades. As modificações no DAG não são permitidas por esse tipo de passe.

is_transformation_pass

Verificar se o passe é um passe de transformação.

Se a passagem for um TransformationPass,, isso significa que a passagem pode manipular o DAG, mas não pode modificar o conjunto de propriedades (mas pode ser lido).


Métodos

execute

execute(passmanager_ir, state, callback=None)

GitHub

Executar a tarefa de otimização para a entrada Qiskit IR.

Parâmetros

  • passmanager_ir (Any) – Qiskit IR para otimizar.
  • state (PassManagerState) – Estado associado à execução do fluxo de trabalho pelo próprio gerenciador de passes.
  • callback (Callable | None) – Uma função de retorno de chamada que é chamada a cada execução da tarefa de otimização.

Retorna

Qiskit IR otimizado e estado do fluxo de trabalho.

Tipo de retorno

tupla [ Any, PassManagerState ]

name

name()

GitHub

Nome do passe.

Tipo de retorno

str

run

run(dag)

GitHub

Execute o passe SabrePreLayout no dag.

O layout inicial descoberto é gravado no valor do conjunto de propriedades sabre_starting_layouts.

Parâmetros

dag (DAGCircuit) – DAG para criar um layout inicial.

update_status

update_status(state, run_state)

GitHub

Atualizar o status do fluxo de trabalho.

Parâmetros

  • state (PassManagerState) – Passar o estado do gerenciador para atualizar.
  • run_state (RunState) – Status de conclusão da tarefa atual.

Retorna

Estado do gerenciador de passes atualizado.

Tipo de retorno

PassManagerState

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.