+1 vote
asked by (390 points)


I was wondering if is there an easy way in ITensor to initialise a state into a random MPS or IQMPS with given bond dimension. Most of the available routines are indeed to initialise random product states but not states with larger bond dimension.
Thanks a lot!


1 Answer

0 votes
answered by (320 points)

Hi Jacopo,
This is a good question, but unfortunately the answer is "no" right now. That's the short answer.

The longer answer is that we do plan to add this feature, so let me tell you our idea for how we want to do it, because maybe you can do it yourself if it's an important thing for you to have. What we have learned is that for making a random MPS of bond dimension m > 1 it's not really right to just randomize each tensor separately. Instead, the right thing to do, we think, is to make a unitary circuit where each 2-site unitary gate is a random unitary. Then by applying D layers of this circuit using a TEBD-like algorithm to a starting product state, one gets a (correctly) random MPS of bond dimension 2^D. This would not be too hard to code, as long as one figures out a correct way to make the random unitaries. We have a sample TEBD code on the website here: http://itensor.org/docs.cgi?vers=cppv3&page=formulas/tevol_trotter

For the quantum number conserving version there are some possibly tricky questions about the right way to make the random unitaries we aren't as sure about. So we'd have to do some thinking and some reading to be sure we know how to do that correctly. But we'd like to develop the non-QN version soon anyway, it's just right now we have some other pressing things to do.

Best regards,

Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.