You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all, thank you so much for creating and maintaining this fantastic tensor networks library – I really love how flexible and well-written it is!
My question is simple. Let H = H( |psi> ) be some nonlinear Hamiltonian that depends (perhaps linearly, or quadratically) on a |psi> matrix product state. How do I best minimise <psi| H | psi> with Quimb?
Should I edit the in-built DMRG or imaginary time-evolution routines, or is it better if I just wrote my own DMRG script from scratch where the local (nonlinear) updates are solved using an autodifferentiation scheme? Any advice and/or ideas would be much welcome :)
Hi @nikitn2, sorry it's a bit of tricky question to answer. The question is minimizing $$\langle \psi | H(\psi) | \psi \rangle$$
right? Without knowing much about the structure of $H(\psi)$ I would have thought autodiff is the best way to go. With a DMRG style approach the environments would be pre-computed and therefore solving the local system is not going to account for the effect of $\psi$ on the environment no? Unless the changes are very small - in which case you are likely doing a very inefficient sort of gradient descent.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello,
First of all, thank you so much for creating and maintaining this fantastic tensor networks library – I really love how flexible and well-written it is!
My question is simple. Let H = H( |psi> ) be some nonlinear Hamiltonian that depends (perhaps linearly, or quadratically) on a |psi> matrix product state. How do I best minimise <psi| H | psi> with Quimb?
Should I edit the in-built DMRG or imaginary time-evolution routines, or is it better if I just wrote my own DMRG script from scratch where the local (nonlinear) updates are solved using an autodifferentiation scheme? Any advice and/or ideas would be much welcome :)
Cheers!
Beta Was this translation helpful? Give feedback.
All reactions