CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
Bases: object
Verifique as comutações de duas operações.
Dois unitários e em qubits comutam se
em que
e definimos como para levar em conta os erros de arredondamento em sistemas de poucos qubits. Essa métrica é escolhida para manter a consistência com outras verificações de proximidade no Qiskit.
Sempre que possível, as relações de comutação são consultadas em uma tabela de referência. Esse é o caso das portas padrão sem parâmetros (como XGate ou HGate) ou das portas com parâmetros livres (como RXGate com um ParameterExpression como ângulo). Caso contrário, é realizada uma verificação baseada em matriz, na qual se diz que duas operações comutam se a fidelidade média das portas na execução da comutação estiver acima de um determinado limiar (ver approximation_degree).
qiskit.circuit.commutation_checker.CommutationChecker.__init__()O argumento cache_max_entries está obsoleto a partir do Qiskit 2.5.0. Ela será removida no Qiskit 3.0.
Métodos
Parâmetros
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
Retorna a relação de comutação armazenada, se houver
Parâmetros
- first_op (Operation) – primeira operação.
- first_qargs (list) – qubits da primeira operação.
- second_op (Operation) – segunda operação.
- second_qargs (list) – qubits da segunda operação.
Retorna
Verdadeiro se os portões forem comutados e falso se esse não for o caso.
Tipo de retorno
clear_cached_commutations
clear_cached_commutations()
Limpa o dicionário que contém as comutações em cache
Esse método não realiza nenhuma operação, pois não há mais um cache interno
O método qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() está obsoleto a partir do Qiskit 2.5. Ela será removida no Qiskit 3.0.
commute
commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)
Verifica se duas operações são comutativas. O valor de retorno de True significa que as operações realmente comutam, e o valor de retorno de False significa que as operações não comutam ou que a verificação de comutação foi ignorada (por exemplo, quando as operações têm condições ou têm muitos qubits).
Parâmetros
- op1 (Operation) – primeira operação.
- qargs1 (Sequence[Qubit |int]) – qubits da primeira operação.
- cargs1 (Sequence[Qubit |int]) – clbits da primeira operação.
- op2 (Operation) – segunda operação.
- qargs2 (Sequence[Qubit |int]) – qubits da segunda operação.
- cargs2 (Sequence[Qubit |int]) – clbits da segunda operação.
- max_num_qubits (int | None) – o número máximo de qubits a considerar; a verificação pode ser ignorada se o número de qubits para qualquer uma das operações exceder esse valor. O padrão é
None, o que significa que não há limite. Veja tambémmatrix_max_num_qubitspara limitar a dimensão das matrizes calculadas. - approximation_degree (float) – Se a fidelidade média do portão entre as duas operações estiver acima desse número (até
1e-12), presume-se que elas sejam comutadas. - matrix_max_num_qubits (int) – o número máximo de qubits para o qual é permitido calcular a representação matricial. Isso é necessário caso não haja uma verificação eficiente prontamente disponível, por exemplo, para portas personalizadas.
Retorna
Se duas operações se comutam.
Tipo de retorno
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
Verifica se dois DAGOpNode objetos comutam.
Isso equivale a commute() , mas com a operação, os qubits e os clbits agrupados no DAGOpNode objeto. Veja commute() para mais detalhes.
Parâmetros
Tipo de retorno
num_cached_entries
num_cached_entries()
Retorna o número de entradas em cache
Esse método sempre retornará 0, pois não há mais um cache interno.
O método qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() está obsoleto a partir do Qiskit 2.5. Ela será removida no Qiskit 3.0.