-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Correlation function is not fully compatible with Blockade subspace #371
Comments
I think this is not necessarily be fixed by #373 I think the symbolic expression should at least guarantee the diag component is correct, but I could be wrong. I need to take a deeper look into this. |
I think the issue is here. The problem is at intermediate points of the calculation for off diagonal observables you might activate a register that doesn't obey the Rydberg constraint, as such when you search for that Fock state in the subspace you get This is an issue when dealing with subspaces in ED methods. individual operators might create intermediate states that do not live in the subspace, but after applying the entire chain of operators will you get a valid state again. you might fix the diagonal part of the correlation function symbolically, however the off diagonal correlations will not be correct because of this issue. Would it be possible to prevent the projection back to the subspace before applying the second operator? EDIT: A short term but not necessarily the best solution would be to implement suggestion 2. its not ideal because it requires an SVD but its an OK patch for the short term. if I have time I can try to implement this for YaoSubspaceArrayReg |
The issue is that when using a local operator, sometimes the intermediate state falls outside of the Blockade subspace. Effecitvely the current implementation measures I propose we include the following operators: XX_0101
XX_0r0r
XX_1r1r
YY_0101
YY_0r0r
YY_1r1r
ZZ_0000
ZZ_1111
ZZ_rrrr where: and the subscripts correspond to which levels are coupled inside the qubit/qudit |
Describe the bug
When using
blockade_subspace
, therydberg_corr
function has bugs forOp.X
andOp.Y
The
rydberg_corr
function returns a correlation matrix. Theoretically, the correlation matrix should have diagonal entries always equal to ones (i.e., diagonal = [1,1,1...1]), sinceX*X=I
,Y*Y=I
andZ*Z=I
. When using the full Hilbert space registers, this is indeed the case. However, when using theblockade_subspace
registers, the diagonal entries of the correlation matrix (forX
andY
) are not always equal to ones (e.g., sometimes the diagonal entries are approximately[0,1,0,1,...]
).To Reproduce
Expected behavior
When using
blockade_subspace
, the correlation matrix (forOp.X
orOp.Y
) should have diagonal entries = [1,1,...,1].Screenshots
If applicable, add screenshots to help explain your problem.
A Pauli-X Correlation matrix obtained by full-Hilbert-space registers (Correct one)
A Pauli-X Correlation matrix obtained by Blockade subspace registers (Wrong one)
Version Info
Additional context
I think there are two ways to fix this
rydberg_corr
function. Notice: It seems this new feature mentioned in [Feature Request] conversion from subspace register to fullspace #364 (by @Roger-luo ) might be able to fix the bug in this suggested way.rydberg_corr
function, for each pair of qubits of interests (to compute the two-point correlation function), get the reduced density matrix of the two-qubit subsystem and use it to compute the expectation value of the two-point correlation function (forX, Y, Z
orOp.n
).The text was updated successfully, but these errors were encountered: