Skip to main content
IBM Quantum Platform

TEBDEvolver

class TEBDEvolver(evolution_state, *args, order=2, **kwargs)

GitHub

ベース: TEBD, Evolver

内部MPOを進化させるためのTEBDアルゴリズム。

で詳しく説明されているように、この拡張は quimb_tebdで詳述しているが、 quimbの既存の quimb.tensor.TEBD 実装は、従来の行列積状態(MPS)ではなく、内部の行列積演算子(MPO)を時間発展させる。

より具体的には、内部オブジェクトは MPOState.

警告

このクラスのAPIは、ベース・クラスからさらにメソッドを継承しているため、実際にはここに示したものよりはるかに大きい。 quimb.tensor.TEBD を継承しているからだ。 しかし、ここではそのAPIを複製しない。

インスタンスを初期化する。 TEBDEvolver インスタンスを作成します。

パラメーター

  • evolution_state (MPOState | MatrixProductState) –

    時間進化状態への参照。 の引数 p0 を上書きする。 quimb.tensor.TEBD クラスの引数を上書きします。

    警告

    デフォルトの動作とは対照的に、この状態は正規化されない。 その代わり、そのまま参照され、保持される(つまりコピーは作成されない)。 これは、アルゴリズムが要求するように、このクラスの2つのインスタンス間で同じオブジェクトを共有できることを保証する。 DynamicMPF アルゴリズムで要求される

  • args - それ以上の位置引数は quimb.tensor.TEBD に転送される。

  • order (int) – 時間発展時に使用するSuzuki-Trotter公式の順序。 これは quimb.tensor.TEBD.step() メソッドに転送されます。

  • kwargs - それ以上のキーワード引数は、コンストラクタに転送されます。 quimb.tensor.TEBD に転送される。


属性

conjugate

この時間分解インスタンスが右辺で動作するかどうかを返します。

evolved_time

現在の進化時間を返します。


方法

step

step()

GitHub

TEBDの単一時間ステップを実行する。

これは基本的に quimb.tensor.TEBD.step() を呼び出し、構築時に指定された order 属性の値を転送します。

戻りの型

なし

sweep

sweep(direction, dt_frac, dt=None, queue=False)

GitHub

TEBD アルゴリズムのシングル掃引を実行する [1].

TEBDアルゴリズムは、基礎となるテンソルネットワークの偶数結合と奇数結合を交互に更新する。 基本クラスの実装では quimb.tensor.TEBD 基底クラスの実装では、これは内部状態を左右交互に「スイープ」する形で実現される。

メソッドを呼び出すために、このサブクラスでこのメソッドの動作を上書きしている。 gate_split() メソッドを呼び出すためです。

パラメーター

  • direction (Literal['left', 'right']) – スイープの方向。 これはリテラル文字列、 "left" または "right" のいずれかでなければならない。
  • dt_frac (float) – 内部時間ステップ(dt)の何分の1を時間進化させるか。 これが、スズキ・トロッターの内蔵式が分割を指定する方法である。
  • dt (float | None) – 内部時間ステップを上書きするためのオプション値。
  • queue (bool) – これを True に設定すると NotImplementedError.

レイズ

戻りの型

なし

参考文献

[1]: https://en.wikipedia.org/wiki/Time-evolving _block_decimation

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。