Skip to main content
IBM Quantum Platform

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で行ってください。