SabrePreLayout
class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)
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)
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
run
run(dag)
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)
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