QuEraComputing / Bloqade.jl

Package for the quantum computation and quantum simulation based on the neutral-atom architecture.
https://queracomputing.github.io/Bloqade.jl/dev/
Other
181 stars 35 forks source link

[BUG] MIS tutorial #313

Closed Wang-Shengtao closed 2 years ago

Wang-Shengtao commented 2 years ago

There are a number of bugs or improvements needed for the MIS tutorial. After the PR #312 is merged, please try to resolve the following issues:

  1. Adiabatic example has no IS states. One can see it from https://github.com/Happy-Diode/Bloqade.jl/blob/6f0c13ba83b844713b7713cfbc300a6528314d2d/examples/qaoa/main.jl#L109. Because the Rydberg blockade is not infinite, some non-IS states are present.

Solution: either run it in the subspace, or add a post-processing step to reduce the state to only within the independent set subspace. I think it's nice to do the latter, so users will know how to reduce them to independent set space, and it can happen pretty often for running MIS examples.

  1. The bitstrings in https://github.com/Happy-Diode/Bloqade.jl/blob/6f0c13ba83b844713b7713cfbc300a6528314d2d/examples/qaoa/main.jl#L225 and https://github.com/Happy-Diode/Bloqade.jl/blob/6f0c13ba83b844713b7713cfbc300a6528314d2d/examples/qaoa/main.jl#L238 are wrong. I actually don't know what's going on here. Somehow, it seems to produce the bitstrings for smoothened waveforms there.

  2. I think it would be good to use similar total time for all examples here. Right now, the adiabatic part has a total time = 1.65, but the smoothened waveform has a total time = 0.6. Would be good to have the same total time, so it's easier for people to compare.

  3. The smoothened Ω doesn't start from 0. I think we need to make it to start from zero even after smoothening. Either need to do something with the smoothening function, or do something here: https://github.com/Happy-Diode/Bloqade.jl/blob/6f0c13ba83b844713b7713cfbc300a6528314d2d/examples/qaoa/main.jl#L254.

fanglifl commented 2 years ago

For point 2, we can probably change a name of the registers. Currently, there are two reg0, which may cause this bug. For point 4, we can choose to not smooth \Omega by making it a piecewise linear waveform.