Skip to main content
IBM Quantum Platform

MPOState

class MPOState(*args, **kwargs)

GitHub

Bases : MatrixProductOperator, State

Un MPO appliquant le gabarit Vidal.

Cette spécialisation de l'existant de Quimb quimb.tensor.MatrixProductOperator applique la jauge de Vidal tout au long de son existence. Cela garantit un comportement stable de l'algorithme DynamicMPF lors de l'utilisation de l'algorithme TEBDEvolver.

Initialiser une MPOState instance.

Conseil

Tous les arguments (positionnels et mots-clés) sont simplement transmis au quimb.tensor.MatrixProductOperator constructeur. En outre, l'attribut vidal_singular_values est initialisé à une liste de listes vides d'une longueur égale au nombre de sites dans ce MPO.

Paramètres


Attributs

vidal_singular_values

Type: list[list[float]]

Une liste imbriquée de valeurs singulières. La liste extérieure est de même longueur que le MPO lui-même (quimb.tensor.TensorNetwork1D.L). Chaque élément est une autre liste de toutes les valeurs singulières permettant de déterminer le calibre de Vidal à cet endroit.


Méthodes

gate_split

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

GitHub

Appliquer un portail à deux sites et le réintégrer dans le MPO.

Le principe de base de cette méthode est le même que celui du quimb.tensor.MatrixProductState.gate_split(). Cependant, la mise en œuvre garantit que la jauge de Vidal est conservée.

Paramètres

  • gate (ndarray) – la porte à appliquer au MPO. Sa forme doit être soit (d**2, d**2) pour une dimension physique de d, soit une version remodelée de celle-ci.

  • where (tuple[int, int]) – les indices des sites où la porte doit être appliquée.

  • inplace (bool) – s'il convient d'appliquer la porte sur place ou de renvoyer un nouveau fichier MPOState auquel la porte a été appliquée.

  • conj (bool) –

    si la porte doit être appliquée à la partie inférieure (conj=False, la valeur par défaut, lower_ind()) ou supérieur (conj=True, upper_ind()) du MPO sous-jacent.

    Remarque

    C'est essentiellement de cette manière que les LHS et RHS de l'équation DynamicMPF sont différenciées, en passant leur propriété Evolver.conjugate à cet argument.

  • split_opts - arguments de mots-clés supplémentaires qui seront transmis à la fonction quimb.tensor.tensor_split() fonction. Ceux-ci peuvent être utilisés pour affecter la troncature du tenseur avant qu'il ne soit contracté à nouveau dans le MPO.

Retours

Les MPOState avec le gate appliqué et contracté.

Type de retour

MPOState

gate_split_

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

Paramètres

Type de retour

MPOState

overlap

overlap(initial_state)

GitHub

Calculer le chevauchement de cet état avec l'état initial fourni.

Avertissement

Cette mise en œuvre ne prend en charge que les instances de quimb.tensor.MatrixProductState pour initial_state.

Paramètres

initial_state (Any) – l'état initial avec lequel calculer le chevauchement.

Augmentations

TypeError - si l'état initial fourni a un type incompatible.

Retours

Le chevauchement de cet état avec l'état fourni.

Type de retour

complexe

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.