Skip to content

Add InfinitePEPS to InfiniteWeightPEPS conversion#172

Merged
leburgel merged 3 commits intoQuantumKitHub:masterfrom
sanderdemeyer:conversion
Apr 15, 2025
Merged

Add InfinitePEPS to InfiniteWeightPEPS conversion#172
leburgel merged 3 commits intoQuantumKitHub:masterfrom
sanderdemeyer:conversion

Conversation

@sanderdemeyer
Copy link
Contributor

Add function to convert an InfinitePEPS to an InfiniteWeightPEPS. This would be useful to have to be able to alternate AD-CTMRG with (trivial) SU for optimization. I'm open to suggestions if someone would want a more general conversion method.

Add function to convert an InfinitePEPS to an InfiniteWeightPEPS
@codecov
Copy link

codecov bot commented Apr 10, 2025

Codecov Report

Attention: Patch coverage is 0% with 7 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/states/infiniteweightpeps.jl 0.00% 7 Missing ⚠️
Files with missing lines Coverage Δ
src/states/infiniteweightpeps.jl 76.41% <0.00%> (-5.41%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Yue-Zhengyuan Yue-Zhengyuan changed the title Update InfiniteWeightPEPS Add InfinitePEPS to InfiniteWeightPEPS conversion Apr 11, 2025
Copy link
Member

@Yue-Zhengyuan Yue-Zhengyuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK to go for me if no further suggestions from others.

@leburgel leburgel enabled auto-merge (squash) April 15, 2025 07:08
@leburgel leburgel merged commit 0c86e39 into QuantumKitHub:master Apr 15, 2025
38 of 39 checks passed
@Yue-Zhengyuan
Copy link
Member

Yue-Zhengyuan commented Apr 24, 2025

Now I come up with an improvement: we can define InfiniteWeightPEPS(peps::InfinitePEPS, wts::SUWeight) to provide an initial "guess" of the weights of the InfiniteWeightPEPS (e.g. from the last AD-SU iteration), so the following trivial SU does not need to start from identity weights all over again. The vertex tensors can be found using absorb_weights with sqrtwt=true, inv=true. But anyway SU is pretty fast especially for small D, so the actual speed up might be quite small.

@sanderdemeyer
Copy link
Contributor Author

This would indeed be a valuable improvement, but I'm still not sure how we could provide a good initial guess of the weights from an InfinitePEPS.

If we think of the weights as a mean-field approximation of the environment, we could calculate this mean-field environment using CTMRG with environment bond dimension 1, and use the square root of the edges as bond tensors, but I'm not sure whether this is necessarily an improvement over identity weights. I also doubt this would be more efficient than starting from identity weights and just performing SU a few steps more.

Anyway, this seems like a good feature to have, regardless of our way of finding an initial guess of the weights.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants