Skip to main content
IBM Quantum Platform

MPOState

class MPOState(*args, **kwargs)

GitHub

Basen: MatrixProductOperator, State

Ein MPO, das die Vidal-Spurweite durchsetzt.

Diese Spezialisierung von quimb's existing quimb.tensor.MatrixProductOperator setzt die Vidal-Eichung während ihrer gesamten Existenz durch. Dies gewährleistet ein stabiles Verhalten des DynamicMPF algorithmus bei Verwendung des TEBDEvolver.

Initialisieren einer MPOState instanz.

Tipp

Alle Argumente (Positionsangaben und Schlüsselwörter) werden einfach an den quimb.tensor.MatrixProductOperator konstruktor weitergeleitet. Außerdem wird das vidal_singular_values attribut mit einer Liste leerer Listen initialisiert, deren Länge der Anzahl der Standorte in diesem MPO entspricht.

Parameter


Attribute

vidal_singular_values

Typ: list[list[float]]

Eine verschachtelte Liste von Einzelwerten. Die äußere Liste ist genauso lang wie dieses MPO selbst (quimb.tensor.TensorNetwork1D.L). Jedes Element ist eine weitere Liste mit allen Einzelwerten zur Bestimmung des Vidalmaßes an diesem Ort.


Methoden

gate_split

gate_split(gate, where, inplace=False, conj=False, **split_opts)

GitHub

Anwendung eines Zwei-Standort-Gates und Rückübertragung auf das MPO.

Das Grundprinzip dieser Methode ist das gleiche wie das der quimb.tensor.MatrixProductState.gate_split(). Die Umsetzung gewährleistet jedoch, dass die Vidal-Eichung erhalten bleibt.

Parameter

  • gate (ndarray) – das Gatter, das auf das MPO angewendet wird. Seine Form sollte entweder (d**2, d**2) für eine physische Dimension von d sein oder eine umgestaltete Version davon.

  • where (tuple[int, int]) – die Indizes der Orte, an denen das Gate angewendet werden soll.

  • inplace (bool) – ob die Anwendung des Gates an Ort und Stelle erfolgen soll oder ob ein neues MPOState mit dem angewendeten Tor zurückgeben soll.

  • conj (bool) –

    ob das Tor auf die untere (conj=False, die Voreinstellung, lower_ind()) oder den oberen (conj=True, upper_ind()) Indizes des zugrunde liegenden MPO angewendet werden soll.

    Anmerkung

    Dies ist im Wesentlichen die Art und Weise, wie die LHS und RHS der DynamicMPF differenziert werden, indem man ihre Evolver.conjugate eigenschaft an dieses Argument übergeben.

  • split_opts - zusätzliche Schlüsselwortargumente, die an die Funktion weitergeleitet werden quimb.tensor.tensor_split() funktion weitergeleitet werden. Diese können verwendet werden, um die Abschneidung des Tensors zu beeinflussen, bevor er in das MPO zurückgezogen wird.

Rückgabe

Die MPOState mit der gate angewendet und zusammengezogen.

Rückgabetyp

MPOState

gate_split_

gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)

Parameter

Rückgabetyp

MPOState

overlap

overlap(initial_state)

GitHub

Berechnen Sie die Überlappung dieses Zustands mit dem angegebenen Ausgangszustand.

Achtung

Diese Implementierung unterstützt nur Instanzen von quimb.tensor.MatrixProductState für initial_state.

Parameter

initial_state (Any) – den Ausgangszustand, mit dem die Überlappung berechnet wird.

Erhöht

TypeError - wenn der angegebene Ausgangszustand einen inkompatiblen Typ hat.

Rückgabe

Die Überschneidung dieses Zustands mit dem vorgesehenen Zustand.

Rückgabetyp

Komplex

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