+1 vote
asked by (590 points)
edited by


I am trying to understand the inner workings of the DMRG algorithm implemented in ITensor. After going through a documentation page, I gathered that it is about finding the variational minimum of the energy by optimizing over two sites. However, when I wanted to get detailed information on the tutorial page it doesn't load for me.

So, here is my question: in essence how is this different from a simple optimization routine like the gradient decent algorithm? If it is different, can the DMRG algorithm still get struck into a local minima and end up not finding the true ground state of a hamiltonian (although it satisfies the prescribed precision)?

Note: I am using the Julia version of the code.

1 Answer

+1 vote
answered by (52.6k points)

Hi Arnab,
Thanks for the question. It seems like it has multiple parts. Let me briefly answer each below.

  1. DMRG is globally a type of variational algorithm, yes. So it can get stuck in a local minimum, and this can be prevented by choosing a good initial state (such as a very random initial state or one close to the ground state in some way), as well as by using the "DMRG noise term" which we provide as one of the DMRG parameters you can set through the Sweeps object. However, this does not mean that DMRG is much like gradient descent. For one thing, it is usually much faster to converge than gradient descent and is more reliable for obtaining high precision results.

  2. As far as how DMRG works in the details, it would be hard to give a satisfactory answer here, and could be the topic of a semester-long course. I have written a pretty detailed article at the following link you could use though:
    Also there are some articles you could find on DMRG. Finally, there are some slides for a series of talks I gave, linked from this page:

Lastly, how did you find the tutorial page you linked to? Was it through a Google search? I ask because that page is rather out of date and no longer linked from anywhere on the current ITensor website as far as I know, so I should probably remove those files.


commented by (590 points)
Hi Miles,

Thanks for your prompt answer.

First of all, I indeed found the link I posted via a google search on "ITensor dmrg." Also, thanks for the slides. I had come across them some time ago but was having a hard time finding it.

Secondly, I will go through the documentation to understand DMRG a bit better but here is something I am curious about. Let's say we are calculating the ground state of a parametrized hamiltonian and the parameter is swept smoothly. In each instance of the sweep, we initialize the dmrg algorithm at the solution found in the last sweep. Under this setting, I would expect the gauge independent parameters of the tensors to be continuous until and unless there is a "phase transition". Do you think that is a reasonable thing to expect from the script?

Thanks again for being so responsive.
commented by (52.6k points)
Thanks for explaining about how you found that page - it was some good material but the ITensor-specific parts might be out of date now so I’ll make sure to remove it just in case.

I think your question about the behavior of MPS parameters is a good one, but one caution is: are you sure you have a good way to access the parameters in a truly gauge-independent way? You could always bring the MPS into left-canonical form, say, but there might be some left-over gauge freedom such as if some of the density matrix eigenvalues are degenerate, as can often happen when symmetries are present (whether you conserve them or not) or just from the arbitrariness of the signs of the U and V matrices in the SVD. So that’s one thing to think about.

Otherwise, yes I would expect the parameters to be continuous. One example of truly gauge-indepent “parameters” are the density matrix eigenvalues themselves, as well as the eigenvalues of the MPS transfer matrix. There have been some pretty detailed studies of how these behave at and near phase transitions (studies of the entanglement spectrum, as well as studies by Verstraete and others about behavior of the MPS transfer matrix eigenvalues). So it might be good to look up some of that literature if you haven’t already.

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.