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.)

Hey Vadim,

One thing that may be useful is the Dicke state, which is the uniform sum of all configurations with the same Hamming weight. We are lucky that last year someone wrote down how to construct the MPS for this:

Does this sound useful for you?

I have working code for that I can share