Skip to main content
IBM Quantum Platform

CommutationChecker

class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)

GitHub

Bases: object

Verifique as comutações de duas operações.

Dois unitários AA e BB em nn qubits comutam se

2nFprocess(AB,BA)+12n+1>1−ε,\frac{2^n F_{\text{process}}(AB, BA) + 1}{2^n + 1} > 1 - \varepsilon,

em que

Fprocess(U1,U2)=∣Tr(U1U2†)2n∣2,F_{\text{process}}(U_1, U_2) = \left|\frac{\mathrm{Tr}(U_1 U_2^\dagger)}{2^n} \right|^2,

e definimos ε\varepsilon como 10−1210^{-12} 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).

Obsoleto desde a versão 2.5.0

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

  • standard_gate_commutations (dict | None)
  • cache_max_entries (int)
  • gates (set[str] | None)

check_commutation_entries

check_commutation_entries(first_op, first_qargs, second_op, second_qargs)

GitHub

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

bool

clear_cached_commutations

clear_cached_commutations()

GitHub

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

Obsoleto desde a versão 2.5

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)

GitHub

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ém matrix_max_num_qubits para 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

bool

commute_nodes

commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)

GitHub

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

bool

num_cached_entries

num_cached_entries()

GitHub

Retorna o número de entradas em cache

Esse método sempre retornará 0, pois não há mais um cache interno.

Obsoleto desde a versão 2.5

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.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.