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 d^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 :
$ \ket{\psi} = \sum_{{\alpha}_1, ... {\alpha}_N} c \ket{{\alpha}_1, .... {\alpha}_N} $
The vector space being exponential here with the coefficients ranging to
d^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
d^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
d^N, we can represent it with a matrix of dimensionality
d × d^{N-1}.
The matrix being $ \psi_{\alpha_1,(\alpha_2 ... \alpha_N)}$ and the coefficients
c_{{\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 :
$ \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
V^{\dagger}) and reshape it back into the vector form as can be seen in the diagram below.
<IPython.core.display.Image object>

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

Image Source : imsc.res.in
The matrix U can be decomposed in a set of d row vectors and can be represented as A^\alpha_a where U_{\alpha_1,a_1} = A^{\alpha_1}_{a_1} , \alpha_1 ranging from 1 to d. We reshape the above vector \psi_2 into matrix form which has a dimensionality of r_1d × d^{(N-2)} where r_1 is the rank of the singular matrix in the SVD equation and r_1 \leq d. The equation thus comes out to be:
$ \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:
$ \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>

In the first equation we replaced the unitary U by a set of row vectors of the form A^{\alpha_1}_{a_1} while here we replace the matrix by a set of d matrices of dimensions r_1 × r_2 and subsequently S and V are multiplied to forma matrix of the dimensionality r_2d × d^{N-3}
Thus the coefficient:
<IPython.core.display.Image object>

can be conveniently written as:
<IPython.core.display.Image object>

The quantum state can be written as:
$ 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}$