Skip to main content
IBM Quantum Platform

TEBDEvolver

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

GitHub

Basen: TEBD, Evolver

Ein TEBD-Algorithmus zur Entwicklung eines internen MPO.

Wie im Detail in quimb_tebdbeschrieben, entwickelt diese Erweiterung der bestehenden quimbquimb.tensor.TEBD implementierung ein interner Matrix-Produkt-Operator (MPO) anstelle des herkömmlichen Matrix-Produkt-Status (MPS) entwickelt.

Konkret wird erwartet, dass das interne Objekt ein MPOState.

Achtung

Die API dieser Klasse ist in Wirklichkeit viel größer als hier gezeigt, da sie zusätzliche Methoden von der quimb.tensor.TEBD basisklasse erbt. Wir werden diese API hier jedoch nicht duplizieren.

Initialisieren einer TEBDEvolver instanz.

Parameter

  • evolution_state (MPOState | MatrixProductState) –

    ein Verweis auf den Zustand der Zeitentwicklung. Dies überschreibt das Argument p0 der zugrunde liegenden quimb.tensor.TEBD klasse.

    Achtung

    Im Gegensatz zum Standardverhalten wird dieser Zustand NICHT kanonisiert. Stattdessen wird sie so übernommen, wie sie ist, und durch Verweis beibehalten (d. h. es wird keine Kopie erstellt). Dadurch wird sichergestellt, dass ein und dasselbe Objekt von zwei Instanzen dieser Klasse gemeinsam genutzt werden kann, wie es der DynamicMPF algorithmus erforderlich ist.

  • args - alle weiteren Positionsargumente werden an den quimb.tensor.TEBD konstruktor weitergeleitet.

  • order (int) – die Reihenfolge der eingebauten Suzuki-Trotter-Formel, die während der Zeitentwicklung verwendet werden soll. Dies ist der Wert, der an die quimb.tensor.TEBD.step() methode weitergeleitet.

  • kwargs - alle weiteren Schlüsselwortargumente werden an den quimb.tensor.TEBD konstruktor weitergeleitet.


Attribute

conjugate

Gibt zurück, ob diese Time-Evolver-Instanz auf der rechten Seite agiert.

evolved_time

Gibt die aktuelle Entwicklungszeit zurück.


Methoden

step

step()

GitHub

Führen Sie einen einzelnen Zeitschritt von TEBD durch.

Dies ruft im Wesentlichen quimb.tensor.TEBD.step() auf und leitet den Wert des Attributs order weiter, der bei der Erstellung angegeben wurde.

Rückgabetyp

Keine

sweep

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

GitHub

Führen Sie einen einzelnen Durchlauf des TEBD-Algorithmus [1] durch.

Der TEBD-Algorithmus aktualisiert abwechselnd die geraden und ungeraden Bindungen des zugrunde liegenden Tensornetzes. In der Implementierung der quimb.tensor.TEBD basisklasse wird dies in Form von abwechselnden "Sweeps" in linker und rechter Richtung über den internen Zustand realisiert.

Wir überschreiben das Verhalten dieser Methode in dieser Unterklasse, um die spezialisierte gate_split() methode aufzurufen.

Parameter

  • direction (Literal['left', 'right']) – die Richtung des Sweeps. Dies muss entweder eine der Zeichenketten "left" oder "right" sein.
  • dt_frac (float) – für welchen Bruchteil des internen Zeitschritts (dt) die Zeitentwicklung durchgeführt werden soll. Dies ist die Art und Weise, in der jede eingebaute Suzuki-Trotter-Formel ihre Aufteilung spezifiziert.
  • dt (float | None) – ein optionaler Wert zum Überschreiben des internen Zeitschritts.
  • queue (bool) – wenn Sie dies auf True setzen, wird ein NotImplementedError.

Erhöht

Rückgabetyp

Keine

Referenzen

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

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.