# Turning a randomITensor into a periodic MPS description

Hi,

This is somewhat closely related to the other discussions on the difficulty of implementing periodic MPS even in 1D systems. A command like:

psi_approx = MPS(A, sites; cutoff = accuracy)


turns a randomITensor (that potentially contains the amplitudes of a quantum state) into an efficient MPS description (upto some accuracy) with open boundary conditions. My first guess would be this works by using SVD (or equivalently Schmidt decomposition) along some partition and then one repeats the process for other partitions. Is this so?

Now coming to the more important question: is there any way of generalizing this approximation for MPS with periodic boundary conditions? (It may be worth mentioning that for the setting I am looking at, I am guaranteed that such a description exists and the final MPS is translationally invariant.) I don't believe that SVDs would do it as the entanglement between two sites in this setting will be kind of distributed between "two" paths (one along the usual chain and the other along the ring).

For motivation let me say, when I employ the "MPS" routine for the amplitudes of a cluster state on a ring, I get a bond dimension of 4 rather than the usual D=2. I would think this is because the entanglement between site 1 and N now has to be pushed through along the chain. So, my question in this context would be: how do I get back the well known 2*2 matrix description of the components of the local tensors?

commented by (10.9k points)
Yes, you're correct that the MPS(A::ITensor, sites) function works by doing a series of SVDs, essentially:

A1, S, V = svd(A, sites[1])
l = commonind(A1, S)
A2, S, V = svd(S*V, (l, sites[2]))
[...]

and then the MPS is the collection of tensors [A1, A2, ...].

The case of making a truly periodic MPS is less straightforward, since as far as I know it can't be done with a "direct" procedure like the one above. Likely you would have to do an iterative optimization. I would get started by taking a look at some of the papers on periodic MPS:

https://arxiv.org/abs/cond-mat/0404706
https://arxiv.org/abs/0801.1947
https://arxiv.org/pdf/1303.1333.pdf
https://arxiv.org/abs/1710.05397

How I would imagine it working would be to start with a random periodic MPS |psi>, and imagine it as a procedure to maximize the overlap of that periodic MPS with your ITensor |A>.