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 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.