canonical_order
canonical_order(op)
연산자의 항들이 표준 순서로 정렬된 복사본을 반환합니다.
항들은 계수가 아닌, 각 항의 구조(그 항이 나타내는 연산자 문자열)에만 의존하는 표준 순서로 정렬됩니다. 따라서 연산자가 어떻게 조합되었는지에 관계없이, 주어진 항의 집합에 대해서는 그 순서가 결정론적이다. 항 자체는 그대로 유지됩니다. 이는 단지 항의 순서만 바꾸는 것이지, 연산자를 단순화하거나 정규 순서로 바꾸는 것은 아닙니다.
이는 OperatorTrait 프로토콜을 구현하는 모든 내장 연산자 유형에 적용되며, 반환되는 연산자는 입력과 동일한 유형입니다.
참고
모든 군 지수 (예: 참조 groups) 보존됩니다: 각 항은 이동할 때 해당 항의 군 지수를 함께 가져가는데, 이는 군 지수가 항의 순서와 무관한 항별 태그이기 때문입니다. 같은 그룹에 속한 용어들은 그 이후로는 더 이상 연속적으로 나타나지 않습니다. 입력에 그룹이 없으면 결과에도 그룹이 없습니다.
>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.terms.ordering import canonical_order
>>> op = FermionOperator.from_dict(
... {
... ((True, 1), (False, 0)): 1.0, # a†_1 a_0
... ((True, 0), (False, 1)): 2.0, # a†_0 a_1
... }
... )
>>> ordered = canonical_order(op)
>>> list(ordered.iter_terms())
[([(True, 0), (False, 1)], (2+0j)), ([(True, 1), (False, 0)], (1+0j))]
매개변수
op – 순서를 재조정할 항을 가진 연산자.
리턴
항이 표준 순서로 배열된 동일한 유형의 새로운 연산자.
인상
TypeError – 가 op 지원되는 연산자 유형이 아닌 경우 (참조 OperatorTrait).
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.