UnitarySynthesis
class qiskit.transpiler.passes.UnitarySynthesis(*args, **kwargs)
Bases: TransformationPass
Sintetizar portas de acordo com suas portas de base.
Sintetizar unitários em algumas portas de base.
Este passe pode aproximar unitários, dadas algumas fidelidades de porta (via target). É possível forçar uma maior aproximação definindo um seletor heurístico approximation_degree.
Parâmetros
- basis_gates (list[str]) – Lista de nomes de portões a serem direcionados. Se isso não for especificado, o argumento
targetdeverá ser usado. Se tanto este quanto otargetforem especificados, o valor detargetserá usado e este será ignorado. - approximation_degree (float) – discagem heurística usada para aproximação de circuitos ( 1.0=no approximation, 0.0=maximal approximation). A aproximação pode tornar o circuito sintetizado mais barato ao custo de se afastar do unitário original. Se for None (Nenhum), a aproximação é feita com base nas fidelidades do portão.
- coupling_map (CouplingMap) – o mapa de acoplamento do alvo, caso a síntese seja feita em um circuito físico. A direcionalidade do coupling_map será levada em conta se
pulse_optimizeforTrue/Noneenatural_directionforTrue/None. - pulse_optimize (bool) – Se deve otimizar os pulsos durante a síntese. Um valor de
Nonetentará fazer isso, mas voltará atrás se não for bem-sucedido. Um valor deTruegerará um erro se a síntese otimizada por pulso não for bem-sucedida. - natural_direction (bool) – Se deve aplicar a síntese considerando a direcionalidade das portas de 2 qubit. Aplica-se somente quando
pulse_optimizeéTrueouNone. A direção natural é determinada verificando primeiro se o mapa de acoplamento é unidirecional. Se não houver um mapa de acoplamento ou se o mapa de acoplamento for bidirecional, será usada a direção da porta com a duração mais curta das propriedades de destino. Se for definido como True, e não for possível determinar uma direção natural, aumentaTranspilerError. Se definido como None, nenhuma exceção será levantada se uma direção natural não puder ser determinada. - synth_gates (list[str]) – Lista de portas a serem sintetizadas. Se None e
pulse_optimizefor False ou None, o padrão será['unitary']. SeNoneepulse_optimize == True, o padrão é['unitary', 'swap'] - method (str) – O plug-in do método de síntese unitária a ser usado.
- min_qubits - O número mínimo de qubits na unidade a ser sintetizada. Se isso for definido e a unitária for menor que o número especificado de qubits, ela não será sintetizada.
- plugin_config - argumentos de configuração adicionais opcionais (como
dict) que são passados diretamente para o plug-in de síntese unitária especificado. Por padrão, isso não terá efeito, pois o plug-in padrão não tem argumentos adicionais. Consulte a documentação de seu plug-in de síntese unitária para saber como usá-lo. - target - O opcional
Targetopcional para o dispositivo de destino para o qual a passagem está sendo compilada. Se especificado, isso substituirá os valores definidos parabasis_gatesecoupling_map. - fallback_on_default – especifica se o método de síntese padrão deve ser usado no caso em que uma síntese não padrão
methodé especificada, mas não é possível sintetizar a operação ou o circuito sintetizado não está em conformidade com o destino.
Aumentos
TranspilerError - se method tiver sido especificado, mas não for encontrado na lista de plug-ins instalados. A lista de plug-ins instalados pode ser consultada com unitary_synthesis_plugin_names()
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 a passagem UnitarySynthesis em dag.
Parâmetros
dag (DAGCircuit) – data de entrada.
Retorna
Saída dag com UnitaryGates sintetizada para a base de destino.
Tipo de retorno
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