Inheritance Diagram

Methods

 GradientDescentDisentangler.__init__(parent) Given theta, find a unitary U towards minimizing the n-th Renyi entropy.

Bases: Disentangler

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.