ConvertISAToClifford
class ConvertISAToClifford(*args, **kwargs)
Bases: TransformationPass
Converta as portas de um circuito ISA em portas Clifford.
Os circuitos ISA contêm apenas portas de Clifford de um conjunto restrito ou qiskit.circuit.library.RZGate\s em ângulos arbitrários. Para convertê-los em circuitos de Clifford, esta etapa arredonda o ângulo de cada qiskit.circuit.library.RZGate ou qiskit.circuit.library.RZZGate ou qiskit.circuit.library.RXGate para o múltiplo mais próximo de pi/2 (ou para um múltiplo aleatório de pi/2, caso o ângulo não esteja especificado), enquanto ignora todas as portas de Clifford, medições e barreiras.
import numpy as np
from qiskit.circuit import QuantumCircuit, Parameter
from qiskit.transpiler import PassManager
from qiskit_ibm_runtime.transpiler.passes import ConvertISAToClifford
# An ISA circuit ending with a Z rotation by pi/3
qc = QuantumCircuit(2, 2)
qc.sx(0)
qc.rz(np.pi/2, 0)
qc.sx(0)
qc.barrier()
qc.cx(0, 1)
qc.rz(np.pi/3, 0) # non-Clifford Z rotation
qc.rz(Parameter("th"), 0) # Z rotation with unspecified angle
# Turn into a Clifford circuit
pm = PassManager([ConvertISAToClifford()])
clifford_qc = pm.run(qc)Aumentos
ValueError - Se o circuito fornecido contiver operações sem suporte, como portas não ISA.
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
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