Conversation
|
@mtfishman Yes the source of the failing tests is |
Co-authored-by: Matt Fishman <mtfishman@users.noreply.github.com>
|
@mtfishman Okay I defined a A We should make a PR to |
I think the reason it wasn't defined in DataGraphs.jl is because ITensorNetworks are quite special, since the vertex metadata (the ITensors) implicitly determine the graph structure. That's not the case for most other data graphs I can think of. For that reason, DataGraphs.jl just assumes mapping/modifying the vertex data doesn't change the graph structure. So, I think it is fine to keep this in ITensorNetworks.jl for now. |
Co-authored-by: Matt Fishman <mtfishman@users.noreply.github.com>
This PR adds support for normalizing tensor networks with either a BP backend or an exact backend.
Specifically given an
ITensorNetworktnwe can calltn_normalized = normalize(tn; alg)to enforcetn_normalized * dag(tn_normalized) == 1within the framework of the desired algorithm.This is particularly useful in the context of
alg = "bp"as it stabilizes the fixed point of belief propagation such that the norm of the message tensors is stable when running subsequent bp iterations ontn_normalized.@mtfishman this is a routine that I am calling frequently in
bp_alternating_updateand so I thought I would add it. I also think it is generally useful when doing things like TEBD to keep thebp_normmore stable.