common.title

Overview
Service overview
Terms of service

Privacy policy

Contact

Sign in
Sign up
common.title

DMRG and how it opens on to Tensor Network States (Part 2)

Gaurav Singh

2021/12/20 06:33

#Tensor Networks #MPS #DMRG #Quantum Many Body Systems

In the last article in the series we focused on Quantum Many Body Systems and how we try to work on the low energy physics using a few powerful intuitive algorithms like DMRG (Density Matrix Renormalization Group). We also further looked into the dessimation procedure of DMRG which helps in approximation a Dd basis block to a D basis block thus reducing the exponential hurdle. Before going into the link between DMRG and Tensor Network states we will be looking at one of the most simple Tensor Network states which is the Matrix Product State (MPS) and how we decompose an arbitrary quantum state into one.

Let's say we have a system with n particles each with d degrees of freedom, the Hilbert space seems to be exponentially large where the number of states ranges to dnd^n. But when we consider a local Hamiltonian where there is a gap between the ground state and the excited state, the pool of states is not very big compared to the full Hilbert Space. Here comes the Matrix product States which help in parametrization and DMRG earlier being difficult to work on the system now accepts it beautifully.

You will be seeing a lot of SVD (Singular Value Decomposition) and Schmidt Decomposition in the articles so you can refer to the previous articles for it or can google them for better understanding.

\newcommand{\ket}[1]{\left|{#1}\right\rangle} \newcommand{\bra}[1]{\left\langle{#1}\right|}

We will be further looking into the details of decomposing an arbitrary quantum state into MPS. Let's examine a lattice of N sites with every site having d dimensionality. The sites being represented by α\alpha In general we will be looking at a one dimensional lattice though it can be extended to higher dimensions too but they are not easily manageable. The state being : ψ=α1,...αNcα1,....αN\ket{\psi} = \sum_{{\alpha}_1, ... {\alpha}_N} c \ket{{\alpha}_1, .... {\alpha}_N}

The vector space being exponential here with the coefficients ranging to dNd^N. We would like to bring this state to a more local self without affecting the non-locality of the whole state. We will be looking into the left canonical notation of the Matrix Product State. We will see a heavy usage of SVD for the given decomposition.

The state vector above has dNd^N components. So what we are trying to do here is to represent the coefficient set into a form of matrix. The above state being normalized. We start by reshaping our state vector in a matrix. As the total number of components are dNd^N, we can represent it with a matrix of dimensionality d×dN1d × d^{N-1}.

The matrix being ψα1,(α2...αN) \psi_{\alpha_1,(\alpha_2 ... \alpha_N)} and the coefficients cα1...αNc_{{\alpha}_1 ... {\alpha}_N} being related to the matrix in the same way.

On applying SVD to the above matrix we get the given decomposition : ψα1,(α2...αN)=a1r1Uσ1,a1Sa1,a1(V)(a1,α2...αN)\psi_{\alpha_1,(\alpha_2 ... \alpha_N)} = \sum_{a_1}^{r_1} U_{\sigma_1 , a_1} S_{a_1, a_1} (V^{\dagger})_{(a_1,{\alpha_2 ... \alpha_N})}

Thus we decompose the amplitude or the coefficients using the above SVD criteria decomposing it into a product of matrices.

Next we combine the last two matrices (S and VV^{\dagger}) and reshape it back into the vector form as can be seen in the diagram below.

<IPython.core.display.Image object>output

Image Source : imsc.res.in

<IPython.core.display.Image object>output
Image Source : imsc.res.in

The matrix U can be decomposed in a set of d row vectors and can be represented as AaαA^\alpha_a where Uα1,a1U_{\alpha_1,a_1} = Aa1α1A^{\alpha_1}_{a_1} , α1\alpha_1 ranging from 1 to d. We reshape the above vector ψ2\psi_2 into matrix form which has a dimensionality of r1d×d(N2)r_1d × d^{(N-2)} where r1r_1 is the rank of the singular matrix in the SVD equation and r1dr_1 \leq d. The equation thus comes out to be:

ψα1,(α2...αN)=a1r1Aaαψ(a1α2),(α3...αN) \psi_{\alpha_1,(\alpha_2 ... \alpha_N)} = \sum_{a_1}^{r_1} A^\alpha_a \psi_{(a_1 \alpha_2),(\alpha_3 ... \alpha_N)}

Again we apply SVD to the ψ\psi matrix and get: ψα1,(α2...αN)=a1r1a2r2AaαUa1σ2,a2Sa2,a2(V)(a2,α3...αN) \psi_{\alpha_1,(\alpha_2 ... \alpha_N)} = \sum_{a_1}^{r_1} \sum_{a_2}^{r_2} A^\alpha_a U_{a_1 \sigma_2 , a_2} S_{a_2, a_2} (V^{\dagger})_{(a_2,{\alpha_3 ... \alpha_N})}

<IPython.core.display.Image object>output

In the first equation we replaced the unitary U by a set of row vectors of the form Aa1α1A^{\alpha_1}_{a_1} while here we replace the matrix by a set of d matrices of dimensions r1×r2r_1 × r_2 and subsequently S and V are multiplied to forma matrix of the dimensionality r2d×dN3r_2d × d^{N-3}

Thus the coefficient:

<IPython.core.display.Image object>output

can be conveniently written as:

<IPython.core.display.Image object>output

The quantum state can be written as: cα1....αN=a1....aN1Aα1Aα2....AαN1AαNα1....αN c_{\alpha_1....\alpha_N} = \sum_{a_1....a_N-1} A^{\alpha_1} A^{\alpha_2} .... A^{\alpha_{N-1}} A^{\alpha_N} \ket{\alpha_1....\alpha_N}

© 2024, blueqat Inc. All rights reserved