GradientDescentDisentangler

Inheritance Diagram

Inheritance diagram of tenpy.algorithms.disentangler.GradientDescentDisentangler

Methods

GradientDescentDisentangler.__init__(parent)

GradientDescentDisentangler.iter(theta)

Given theta, find a unitary U towards minimizing the n-th Renyi entropy.

class tenpy.algorithms.disentangler.GradientDescentDisentangler(parent)[source]

Bases: Disentangler

Gradient-descent optimization, similar to RenyiDisentangler.

Reads of the following TEBD_params:

key

type

description

disent_eps

float

Break, if the change in the Renyi entropy S(n=2) per iteration is smaller than this value.

disent_max_iter

float

Maximum number of iterations to perform.

disent_n

float

Renyi index of the entropy to be used. n=1 for von-Neumann entropy.

Arguments and return values are the same as for Disentangler.

iter(theta)[source]

Given theta, find a unitary U towards minimizing the n-th Renyi entropy.

This function calculates the gradient \(dS = \partial S(U theta, n) /\partial U\). and then U(t) = exp(-t*dS), where we choose the t from stepsizes which minimizes the entropy of U(t) theta.

When R[i] is the derivative \(\partial S(Y, n)/ \partial Y_i\) of the (n-th Renyi) entropy, dS is given by:

|     .----X--R--Z----.
|     |    |     |    |
|     |    q0    q1   |
|     |               |
|     |    q0*   q1*  |
|     |    |     |    |
|     .----X*-Y--Z*---.
Parameters:

theta (Array) – Two-site wave function to be disentangled

Returns:

  • S (float) – n-th Renyi entropy of new_theta

  • theta (Array) – The disentangled wave function new_U theta.

  • new_U (Array) – Unitary with legs 'q0', 'q1', 'q0*', 'q1*', which was used to disentangle theta.