Tensor Network Message Passing (TNMP) is an algorithm designed for computing local observables in interacting systems. While inheriting the linear complexity of traditional message passing algorithms, TNMP achieves significantly higher accuracy through the incorporation of tensor networks, with a trade-off of introducing a larger constant factor.
TNMP uses message passing to iteratively approximate the global environment while employing tensor networks to exactly contract local message updates. For implementation details, please refer to the original paper and the detailed tutorial in python/tnmp.ipynb.
This repository provides two implementations, each targeting different applications:
- Purpose: Computing local observables (e.g., magnetization)
- Location: Available in the
pythonfolder - Features: Direct implementation focusing on spin glass systems
- Purpose: Approximate contraction of general tensor networks with locally concentrated open-legs
- Package: Available as GenericMessagePassing.jl
- Examples: Located in the
juliafolder - Additional Resource: For a pictorial description of the algorithm in action, see this specific example of K-SAT problems