-
Notifications
You must be signed in to change notification settings - Fork 1
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
Implement SplitSimplification
transformation for TensorNetwork
#70
Conversation
Codecov Report
@@ Coverage Diff @@
## master #70 +/- ##
==========================================
- Coverage 88.50% 87.84% -0.66%
==========================================
Files 9 9
Lines 600 625 +25
==========================================
+ Hits 531 549 +18
- Misses 69 76 +7
|
Super!
I think it's best to directly remove the indices whose resulting dimension is 1. What do you think @jofrevalles? |
Maybe we could extend |
Yeah, that seems correct to me. |
@jofrevalles I've implemented |
Co-authored-by: Sergio Sánchez Ramírez <[email protected]>
@mofeing In the In our current implementation, we've been using a slightly different approach by examining the rank of the singular values. Our idea is to perform the split if there are some singular values that are zero. I believe this approach is equivalent to Please let me know your thoughts on this. |
Both conditions should be equivalent mathematically, so our implementation should be correct. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm committing this minor fixes and it should be ready to merge.
Co-authored-by: Sergio Sánchez Ramírez <[email protected]>
Summary
This PR introduces the
SplitSimplification
transformation as part of thetransform!
function forTensorNetwork
s, addressing issue #18 (resolve #18). The transformation applies the split simplification procedure, as outlined in this paper, to reduce the complexity of the tensor network while ensuring the rank of any tensor does not increase. The main strategy involves performing a singular value decomposition across all possible bipartitions of a tensor's indices, and replacing the tensor with a lower-rank approximation when this results in a simplification of theTensorNetwork
.Additionally, this PR includes comprehensive tests that verify the correctness and robustness of the newly implemented transformation.
Example
In this example, the
SplitSimplification
transformation is applied to a tensor network that includes a rank-4 tensor that can be simplified using svd into two vectors and a matrix. The result is a network containing five tensors, each of lower rank and dimensions.