How to use noise to get true ground state

Dear there,
I have some questions about how to use the noise parameter in dmrg. Basically, I’m calculating a system with many nearly degenerate ground states, and I find simply adding bonddim doesn’t make my energy lower, the state is easy to get stuck in nearby higher-E manifold. Only when I use noise together, the wave function can be kicked out from that, and E can decrease from that E_higher.

So what I’ve tried before is I use for example, “a” sweeps with noise~1E-4 + “b” sweeps with noise~1E-8 + “c” sweeps with noise 1E~10 + “d” sweeps with 0 noise. Then I do get a state seems convergent, like with symmetric measurment profile etc. But later when I tried increasing number of sweep with noise 1E-4 from, say “a” to “2a”, I find the measurment amplitude changes a lot (E also decreases 0.0001). The measurements I did is eg. <Sz>, <n> etc.

So I got a concern like how to know when should I stop? I think it would not be like using larger noise/more noise sweeps, energy will keep decreasing, it must stop at the true ground state E, but how to know if it’s really there? Should I get a “seems convergent” state then increasing noise/bond dim to see when it stops changing?

A second concern is, would too large noise, like 1E-2, 1E-3, 1E-4, 1E-5 etc changes my original Hamiltonia/system? I’m thinking of something like when adding a too big perturbation, the original system changes, and the state I finally got is actually the ground state of another Hamiltonian H+H’… Becasue in my case, I do need ~1E-5 to get E decrease ( I’ve tried smaller noise but those seem not enough to kick wave function out), so I really want to know if I’m using large noise in a safe way.

Look forward to your reply! Thank you so much!!

Hi, thanks for the question. Unfortunately, this is a well known challenge with using DMRG, that there is no true way to know that it has “finished” converging, other than to look at the kinds of properties you mentioned.

In the best case of DMRG calculations, the energy will converge very quickly as a function of sweep number. And in those best cases the properties of the state (e.g. density) will also stop changing once the energy does.

But it sounds like in your case maybe certain physical properties (what you called measurement amplitudes) are possibly changing a lot even though the energy is changing only very little? (You mentioned the change in energy was only 1E-4 but the measurement changed a lot.) This could mean that your system has other states which are competing with your ground state (other competing quasi ground states) that can make it hard for DMRG to sort out what are the true properties and what is the true ground state.

One possibility is that you could alter your Hamiltonian by adding terms to the boundary of your system or even a small field across your whole system to “stiffen” your Hamiltonian and to push the other competing states away. This can be very helpful in the case of systems which are trying to spontaneously break a symmetry: in those cases it’s a good idea to just break the symmetry yourself by adding boundary pinning fields.

For other hard cases where the above idea doesn’t help, then the only option I’m aware of is just using techniques like noise and doing a very large number of sweeps. Then checking carefully that the properties you want to measure are not changing very much in the last few sweeps anymore.

About using too large of a noise: I haven’t found this to be too big a problem, actually, but you can always turn the noise down to be small in your last few sweeps. It won’t hurt to use a large noise in earlier sweeps. Also the noise is not added to the Hamiltonian: it is more like a sort of arbitrary / empirical perturbation to the density matrix that is used to update the basis of the wavefunction. In the limit of very large bond dimension, where this basis would be complete anyway, the noise would have no effect.

2 Likes