Skip to main content
IBM Quantum Platform

Passagens do Transpiler

qiskit.transpiler.passes


Seleção do layout (posicionamento)

SetLayout(*args, **kwargs)Define a propriedade layout para o layout fornecido.
TrivialLayout(*args, **kwargs)Escolha um layout atribuindo n qubits de circuito a qubits de dispositivo 0, .., n-1.
DenseLayout(*args, **kwargs)Escolha um layout encontrando o subconjunto mais conectado de qubits.
SabreLayout(*args, **kwargs)Escolha um layout por meio de roteamento bidirecional iterativo do circuito de entrada.
CSPLayout(*args, **kwargs)Se possível, escolhe um layout como um CSP, usando backtracking.
VF2Layout(*args, **kwargs)Uma passagem para escolher um layout de um circuito em um gráfico de acoplamento, como um problema de isomorfismo de subgrafo, resolvido por VF2++.
ApplyLayout(*args, **kwargs)Aplicar ou atualizar o mapeamento de qubits virtuais para qubits físicos no DAGCircuit.
Layout2qDistance(*args, **kwargs)Avalie a qualidade da seleção do layout.
EnlargeWithAncilla(*args, **kwargs)Amplie o dag com qubits virtuais que estão no layout, mas ainda não estão no circuito.
FullAncillaAllocation(*args, **kwargs)Alocar todos os nós ociosos do mapa de acoplamento ou destino como ancilla no layout.
SabrePreLayout(*args, **kwargs)Escolha um layout inicial para usar em testes adicionais de layout do Sabre.

Roteamento

BasicSwap(*args, **kwargs)Mapear (com esforço mínimo) um DAGCircuit em um coupling_map adicionando portas de troca.
Commuting2qGateRouter(*args, **kwargs)Uma classe para trocar a rota de um ou mais portões de deslocamento para o mapa de acoplamento.
LayoutTransformation(*args, **kwargs)Adiciona um circuito Swap para uma determinada permutação (parcial) ao circuito.
LookaheadSwap(*args, **kwargs)Mapear o circuito de entrada em uma topologia de backend por meio da inserção de SWAPs.
SabreSwap(*args, **kwargs)Mapear o circuito de entrada em uma topologia de backend por meio da inserção de SWAPs.
StarPreRouting()Executar pré-roteamento de estrela para linear

Alteração da base

BasisTranslator(*args, **kwargs)Traduz os portões para uma base de destino, buscando um conjunto de traduções de um determinado EquivalenceLibrary.
Decompose(*args, **kwargs)Expandir uma porta em um circuito usando suas regras de decomposição.
TranslateParameterizedGates(*args, **kwargs)Traduzir portas parametrizadas para um conjunto de bases suportado.
Unroll3qOrMore(*args, **kwargs)Expande recursivamente as portas 3q+ até que o circuito contenha apenas portas 2q ou 1q.
UnrollCustomDefinitions(*args, **kwargs)Desenrola instruções com definições personalizadas.

Otimizações

Collect1qRuns(*args, **kwargs)Colete subcircuitos de um qubit.
Collect2qBlocks(*args, **kwargs)Colete subcircuitos de dois qubits.
CollectAndCollapse(*args, **kwargs)Uma passagem geral do transpilador para coletar e consolidar blocos de nós em um circuito.
CollectCliffords(*args, **kwargs)Coleta blocos de portas de Clifford e os substitui por um objeto Clifford objeto.
CollectLinearFunctions(*args, **kwargs)Coletar blocos de portas lineares (CXGate e SwapGate gates) e os substitui por funções lineares (LinearFunction).
CollectMultiQBlocks(*args, **kwargs)Colete sequências de portas ininterruptas que atuam em grupos de qubits.
CommutationAnalysis(*args, **kwargs)Passe de análise para encontrar relações de comutação entre os nós do DAG.
CommutativeCancellation(*args, **kwargs)Cancele as portas redundantes (autoadjuntas) por meio de relações de comutação.
CommutativeInverseCancellation(*args, **kwargs)Cancelar pares de portas inversas explorando relações de comutação.
CommutativeOptimization(*args, **kwargs)Cancelar/mesclar portas explorando relações de comutatividade.
ConsolidateBlocks(*args, **kwargs)Substitua cada bloco de portas consecutivas por um único nó unitário.
ContractIdleWiresInControlFlow(*args, **kwargs)Remova os qubits ociosos das operações de fluxo de controle de um DAGCircuit.
ConvertToPauliRotations(*args, **kwargs)Converta um circuito quântico que contenha portas padrão de um, dois e três qubits, barreiras e medições, em um circuito equivalente que contenha PauliProductRotationGate portas e PauliProductMeasurement instruções.
ElidePermutations(*args, **kwargs)Remover operações de permutação de um circuito pré-layout
HoareOptimizer(*args, **kwargs)Essa é uma passagem de transpilador que usa a otimização do circuito lógico Hoare.
InverseCancellation(*args, **kwargs)Cancelar portas específicas que são inversas uma da outra quando ocorrem uma atrás da outra.
LightCone(*args, **kwargs)Remova as portas que não afetam o resultado de uma medição em um circuito.
LitinskiTransformation(*args, **kwargs)Aplica a transformada de Litinski a um circuito.
Optimize1qGates(*args, **kwargs)Otimize cadeias de portas de um único qubit u1, u2, u3 combinando-as em uma única porta.
Optimize1qGatesDecomposition(*args, **kwargs)Otimize cadeias de portas de um único qubit combinando-as em uma única porta.
Optimize1qGatesSimpleCommutation(*args, **kwargs)Otimiza as cadeias de portas 1Q interrompidas por portas 2Q, comutando os componentes e ressintetizando os resultados.
OptimizeAnnotated(*args, **kwargs)Passagem de otimização em circuitos com operações anotadas.
OptimizeCliffordT(*args, **kwargs)Otimizar sequências de portas Clifford+T consecutivas.
OptimizeCliffords(*args, **kwargs)Combine Cliffords consecutivos sobre os mesmos qubits.
OptimizeSwapBeforeMeasure(*args, **kwargs)Remova as trocas seguidas de medição (e adapte a medição).
RemoveDiagonalGatesBeforeMeasure(*args, **kwargs)Remova as portas diagonais (inclusive as portas diagonais do site 2Q ) antes de uma medição.
RemoveFinalReset(*args, **kwargs)Remova o reset quando ele for a instrução final em um fio de qubit.
RemoveIdentityEquivalent(*args, **kwargs)Remova os portões com efeitos insignificantes.
RemoveResetInZeroState(*args, **kwargs)Remova a porta de reinicialização quando o qubit estiver no estado zero.
ResetAfterMeasureSimplification(*args, **kwargs)Essa passagem substitui a redefinição após a medida por uma porta X condicional.
Split2QUnitaries(*args, **kwargs)Tentar dividir operadores unitários de dois qubits em DAGCircuit em duas portas de um único qubit.
SubstitutePi4Rotations(*args, **kwargs)Converta portas de rotação cujos ângulos sejam múltiplos inteiros de π/4\pi/4 em conjuntos discretos de portas de TdgGate Clifford, TGate e.
TemplateOptimization(*args, **kwargs)Classe para a passagem de otimização do modelo.

Planejamento

ALAPScheduleAnalysis(*args, **kwargs)ALAP Scheduling pass, que programa o tempo de parada das instruções o mais tarde possível.
ASAPScheduleAnalysis(*args, **kwargs)Passe de agendamento ASAP, que agenda o horário de início das instruções o mais cedo possível.
ConstrainedReschedule(*args, **kwargs)Passagem de reescalonador que atualiza os horários de início dos nós para que fiquem em conformidade com os alinhamentos de hardware.
ContextAwareDynamicalDecoupling(*args, **kwargs)Implemente um desacoplamento dinâmico da sequência X considerando o contexto de porta e qubit.
InstructionDurationCheck(*args, **kwargs)Passe de validação de duração para reagendamento.
PadDelay(*args, **kwargs)Preenchimento do tempo ocioso com instruções de atraso.
PadDynamicalDecoupling(*args, **kwargs)Passe de inserção de desacoplamento dinâmico.
SetIOLatency(*args, **kwargs)Definir informações de IOLatência para o circuito de entrada.
TimeUnitConversion(*args, **kwargs)Escolha uma unidade de tempo a ser usada nas seguintes passagens com reconhecimento de tempo e torne todas as unidades de tempo do circuito consistentes com essa unidade.

Análise de circuitos

CountOps(*args, **kwargs)Contar as operações em um circuito DAG.
CountOpsLongestPath(*args, **kwargs)Contar as operações no caminho mais longo em um DAGCircuit.
DAGLongestPath(*args, **kwargs)Retorna o caminho mais longo em um DAGCircuit como uma lista de DAGOpNodes, DAGInNodes, e DAGOutNodes.
Depth(*args, **kwargs)Calcule a profundidade de um circuito DAG.
NumTensorFactors(*args, **kwargs)Calcule o número de fatores tensores de um circuito DAG.
ResourceEstimation(*args, **kwargs)Exigir automaticamente passes de análise para estimativa de recursos.
Size(*args, **kwargs)Calcule o tamanho de um circuito DAG.
Width(*args, **kwargs)Calcule a largura de um circuito DAG.

Síntese

A documentação do plug-in do transpilador de síntese pode ser encontrada na página qiskit.transpiler.passes.synthesis.plugin página.

HLSConfig([use_default_on_unspecified,...] )A configuração de síntese de alto nível permite especificar uma lista de "métodos" usados pela HighLevelSynthesis para sintetizar diferentes tipos de objetos de nível superior.
HighLevelSynthesis(*args, **kwargs)Sintetizar objetos de nível superior e desenrolar definições personalizadas.
LinearFunctionsToPermutations(*args, **kwargs)Promove funções lineares para permutações quando possível.
SolovayKitaev(*args, **kwargs)Decomponha aproximadamente as portas 1q em uma base discreta usando o algoritmo Solovay-Kitaev.
SynthesizeRZRotations(*args, **kwargs)Substitua as portas RZ por decomposições de Clifford+T.
UnitarySynthesis(*args, **kwargs)Sintetizar portas de acordo com suas portas de base.

Layout da publicação

Esses são pós-seleção de qubit.

VF2PostLayout(*args, **kwargs)Uma passagem para aprimorar um layout existente após a transpilação de um circuito em um gráfico de acoplamento, como um problema de isomorfismo de subgráfico, resolvido por VF2++.

Passes adicionais

BarrierBeforeFinalMeasurements(*args, **kwargs)Adicione uma barreira antes das medições finais.
CheckGateDirection(*args, **kwargs)Verifique se as portas de dois qubits seguem a direção correta com relação ao mapa de acoplamento.
CheckMap(*args, **kwargs)Verificar se um circuito DAG já está mapeado para um mapa de acoplamento.
ContainsInstruction(*args, **kwargs)Uma passagem de análise para detectar se o DAG contém uma instrução específica.
DAGFixedPoint(*args, **kwargs)Verificar se o DAG atingiu um ponto fixo.
Error(*args, **kwargs)Passagem de erro a ser chamada quando ocorrer um erro.
FilterOpNodes(*args, **kwargs)Remover todas as operações que correspondem a uma função de filtro
FixedPoint(*args, **kwargs)Verificar se uma propriedade atingiu um ponto fixo.
GateDirection(*args, **kwargs)Modifique as portas assimétricas para que correspondam à direção do acoplamento do hardware.
GatesInBasis(*args, **kwargs)Verificar se todos os portões em um DAG estão em um determinado conjunto de portões
MergeAdjacentBarriers(*args, **kwargs)Retornar um circuito com todas as barreiras adjacentes mescladas.
MinimumPoint(*args, **kwargs)Verificar se o DAG atingiu um ponto semi-estável relativo em execuções anteriores
RemoveBarriers(*args, **kwargs)Retornar um circuito com qualquer barreira removida.
RemoveFinalMeasurements(*args, **kwargs)Remova as medições finais e as barreiras no final de um circuito.
UnrollForLoops(*args, **kwargs)UnrollForLoops a passagem de transpilação desenrola os for-loops quando possível.
WrapAngles(*args, **kwargs)Envolve os ângulos fora do limite especificado no alvo.

Dados adicionais

qiskit.transpiler.passes.utils.wrap_angles.WRAP_ANGLE_REGISTRY

Um local histórico para WrapAngles.DEFAULT_REGISTRY. Este caminho só deve ser usado quando for necessária compatibilidade total com o Qiskit 2.2.

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