ALAPScheduleAnalysis
class ALAPScheduleAnalysis(*args, **kwargs)
Bases: BaseDynamicCircuitAnalysis
Passe de análise de agendamento de circuitos dinâmicos como o mais tardio possível (ALAP).
Esse é um agendador projetado para trabalhar com as restrições exclusivas de agendamento dos backends de circuitos dinâmicos devido às limitações impostas pelo hardware. Espera-se que isso evolua com o tempo, à medida que os backends de circuitos dinâmicos também mudam.
Em sua forma atual, isso é semelhante ao agendador ALAP do Qiskit, no qual as instruções começam o mais tarde possível.
As principais diferenças são as seguintes:
-
Atualmente, as reinicializações e o fluxo de controle marcam o fim de um “bloco quântico”. O período entre
o fim do bloco, e o próximo é não determinístico, ou seja, não sabemos quando o próximo bloco terá início (já que poderíamos estar avaliando uma função clássica de comprimento não determinístico) e, portanto, o próximo bloco começa em um ponto relativo t=0.
-
Durante uma medição, é possível aplicar portas em paralelo em qubits separados.
-
As medições e reinicializações em qubits não interligados ocorrem simultaneamente e fazem parte do mesmo
bloco.
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
__call__
__call__(circuit, property_set=None)
Executa o circuito de passagem.
Parâmetros
- circuit (QuantumCircuit) – O dia em que o passe é executado.
- property_set (PropertySet | dict | None) – Conjunto de propriedades de entrada/saída. Uma passagem de análise pode alterar a propriedade definida no local. Se não for fornecido, será utilizado o atributo
property_setexistente do passe (se definido).
Retorna
Se uma transformação for bem-sucedida, o resultado será QuantumCircuit. Se a análise for aprovada, o circuito de entrada.
Tipo de retorno
execute
execute(passmanager_ir, state, callback=None)
Executar a tarefa de otimização para a entrada Qiskit IR.
Parâmetros
- passmanager_ir (DAGCircuit) – Qiskit IR para otimização.
- state (DAGCircuit) – Estado associado à execução do fluxo de trabalho pelo próprio gerenciador de passagens.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | 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[ DAGCircuit, PassManagerState ]
name
name()
Nome do passe.
Tipo de retorno
str
run
run(dag)
Execute a passagem ASAPSchedule no dia.
Parâmetros
dag (DAGCircuit) – DAG a ser agendado.
Aumentos
- TranspilerError - se o circuito não estiver mapeado em qubits físicos.
- TranspilerError - se o bit condicional for adicionado à instrução sem suporte.
Retorna
O DAGCircuit programado.
Tipo de retorno
Nenhum
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