best way to create equal amplitude superpositions in a specific quantum number sector

I need to create equal amplitude superposition (Rokhsar-Kivelson type) superpositions to use as initial states in dynamics.

I checked and the required bond-dimension is not onerous, so it should be possible to represent these using MPS

Claude suggested two methods that I knew of – brute force construction and imaginary time evolution approximation to the projector – and the third which seemed more elegant using

MPO(sites, “MaxEntangler”)

seems like a neat trick but I never heard of MaxEntangler .. any quick thoughts?

thanks,vadim

I’m not sure what MaxEntagler is, I expect that is someone’s custom operator.

Could you clarify more what state you are looking for? If you want to prepare the following RK-point ground state

|\psi\rangle = \frac{1}{N}\sum_{x}|x\rangle

Then the MPS can be created by

psi = MPS(sites,"+")

where each site is initialized to the eigenstate of \sigma_x which creates the uniform sum over states.

I also have some examples of creating a rainbow state, GHZ, and W state for other sorts of superpositions that can be prepared with circuits

hey Ryan, thanks.

I want to project your “X” (product) state to just one total Z sector – this will give an equal amplitude superposition of all states in that sector, which has entanglement but not much – only \chi\sim L/2 nonzero Schimdt values, which I assumed to mean it’s “easy”.

Amended:
I asked Claude for documentation for MaxEntagler just now and it backed off and elaborated on this approach which now makes sense – basically run DMRG to find a GS in that sector of a properly designed H, but I still need to check if it has any other hiccups. Let me know if you have a “standard” method for this.

Thanks again, Vadim
PS
I did find references to MaxEntangler on some forum last night but can’t find anymore), since I too suspected it hallucinated.
PPS

Hi Vadim,
If you happen to know of a good parent Hamiltonian for the states you want to make, then making the Hamiltonian and using DMRG to get the state can be a good option.

Also if you have a specific Z sector you are thinking of, then there may be some explicit constructions that are not too hard to pull off. But to have a general code for a arbitrary Z sector of a product state is a bit tough, I think. (I have thought of a more fancy idea to do this before but never wrote it up – it is like a kind of site-by-site truncation algorithm to gradually project an arbitrary state into a certain sector.)