FullAncillaAllocation
class qiskit.transpiler.passes.FullAncillaAllocation(*args, **kwargs)
Bases: AnalysisPass
Alocar todos os nós ociosos do mapa de acoplamento ou destino como ancilla no layout.
Uma passagem para alocar todos os qubits físicos ociosos (aqueles que existem no mapa de acoplamento ou no destino, mas não no circuito dag) como ancilla. Ele também escolherá novos qubits virtuais para corresponder a esses ancilla físicos.
Essa é uma passagem de análise e é responsável apenas pela escolha de locais físicos de ancilla e seus qubits virtuais correspondentes. Uma passagem de transformação separada deve adicionar esses qubits virtuais ao circuito.
FullAncillaAllocation inicializador.
Parâmetros
coupling_map (Union[CouplingMap, Target]) – gráfico direcionado que representa um mapa de acoplamento.
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 FullAncillaAllocation no dag.
Amplie o layout com novos pares (qubit físico, qubit virtual). O dag sinaliza quais qubits virtuais já estão no circuito. Essa passagem alocará novos qubits virtuais de forma que não ocorra nenhuma colisão (ou seja, a bijetividade do layout é preservada)
O coupling_map e o layout juntos determinam quais qubits físicos estão livres.
Parâmetros
dag (DAGCircuit) – circuito para analisar
Retorna
retorna o mesmo circuito dag, não modificado
Tipo de retorno
Aumentos
TranspilerError – Se não houver nenhum layout definido na propriedade ou se ela não tiver sido definida no momento da inicialização.
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
validate_layout
static validate_layout(layout_qubits, dag_qubits)
Verifica se todos os qregs em layout_qregs já existem em dag_qregs. Caso contrário, aumentar.