Skip to main content
IBM Quantum Platform

ConsolidateBlocks

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

GitHub

Bases: TransformationPass

Substitua cada bloco de portas consecutivas por um único nó unitário.

Passagem para consolidar sequências de portas ininterruptas que atuam nos mesmos qubits em um UnitaryGate nó, a ser ressintetizado posteriormente em um subcircuito potencialmente mais otimizado. O modo de operação típico desta etapa consiste em executar a análise da entrada DAGCircuit para identificar todos os blocos de dois qubits no circuito e, em seguida, determinar, com base em uma heurística interna, se esse bloco deve ser consolidado em um UnitaryGate ou não. No entanto, se ou run_list``block_list estiverem definidos no conjunto de propriedades, essa etapa não realizará sua própria análise do DAG.

Existem dois modos de operação legados para esta etapa, dependendo se ou run_list``block_list está definido na propriedade configurada quando esta etapa é executada. block_list deve conter uma lista de listas de índices de nós, em que cada lista interna representa uma coleção de blocos que podem ser consolidados em um UnitaryGate. Esses blocos podem ter qualquer número de qubits, mas nos gerenciadores de passagem predefinidos das versões anteriores do Qiskit, o número era normalmente dois e era definido pela Collect2qBlocks passagem. Há também a etapa do CollectMultiQBlocks transpiler, que irá definir blocks_list os blocos encontrados para um número arbitrário de qubits. A outra chave run_list de conjunto de propriedades é uma lista de listas de “séries”, que são blocos de um único qubit a serem consolidados. Isso provavelmente foi definido pela etapa do Collect1qRuns transpiler. Essa funcionalidade para “execuções” foi amplamente substituída pela etapa Optimize1qGatesDecomposition do transpiler, que normalmente deve ser utilizada em seu lugar como um método mais completo e eficiente para simplificar execuções de um único qubit.

Essa passagem lê a chave PropertySet key ConsolidateBlocks_qubit_map que ele usa para se comunicar com instâncias de trabalho recursivas de si mesmo para operações de fluxo de controle. A chave nunca deve ser observável em um pipeline voltado para o usuário PassManager voltado para o usuário (ela só é definida em instâncias internas do PassManager internas), mas a passagem pode retornar resultados incorretos ou erros se outra passagem definir essa chave.

ConsolidateBlocks inicializador.

Se kak_basis_gate não for None , ele será usado como a porta de base para a decomposição KAK. Caso contrário, se basis_gates não for None , será escolhida uma porta de base dessa lista. Caso contrário, a porta de base será CXGate.

Parâmetros

  • kak_basis_gate (Gate) – Porta de base para decomposição KAK.
  • force_consolidate (bool) – Forçar a consolidação do bloco.
  • basis_gates (List(str)) – Portas de base entre as quais escolher uma porta KAK.
  • approximation_degree (float) – um valor flutuante entre [0.0,1.0][0.0, 1.0]. O valor mais baixo se aproxima mais.
  • target (Target) – O objeto de destino para o backend de destino da compilação.

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 ConsolidateBlocks no dag.

Itere sobre cada bloco e substitua-o por um unitário equivalente nos mesmos fios.

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.