RenyiDisentangler

Inheritance Diagram

Inheritance diagram of tenpy.algorithms.disentangler.RenyiDisentangler

Methods

RenyiDisentangler.__init__(parent)

RenyiDisentangler.iter(theta, U)

Given theta and U, find another U which reduces the 2nd Renyi entropy.

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

Bases: Disentangler

Iterative find U which minimized the second Renyi entropy.

See [hauschild2018].

Reads of the following options as break criteria for the iteration:

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.

Arguments and return values are the same as for disentangle().

iter(theta, U)[source]

Given theta and U, find another U which reduces the 2nd Renyi entropy.

Temporarily view the different U as independent and minimized one of them - this corresponds to a linearization of the cost function. Defining Utheta as the application of U to theta, and combining the p legs of theta with 'vL', 'vR', this function contracts:

|     .----theta----.
|     |    |   |    |
|     |    q0  q1   |
|     |             |
|     |        q1*  |
|     |        |    |
|     |  .-Utheta*-.
|     |  | |
|     |  .-Utheta--.
|     |        |    |
|     |    q0* |    |
|     |    |   |    |
|     .----Utheta*-.

The trace yields the second Renyi entropy S2. Further, we calculate the unitary U with maximum overlap with this network.

Parameters:
  • theta (Array) – Two-site wave function to be disentangled.

  • U (Array) – The previous guess for U; with legs 'q0', 'q1', 'q0*', 'q1*'.

Returns:

  • S2 (float) – Renyi entropy (n=2), \(S2 = \frac{1}{1-2} \log tr(\rho_L^2)\) of U theta.

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