Skip to content
forked from panzhang83/catn

Contracting Arbitrary Tensor Networks

Notifications You must be signed in to change notification settings

Rosetta-Tan/catn

 
 

Repository files navigation

CATN

Contracting Arbitrary Tensor Networks

This repo contains the numpy and pytorch implementations of the algorithm proposed in arXiv:1912.03014 for approximately contracting arbitrary tensor networks. Several examples are included for demonstrating the performance of our algorithm.

Examples for computing free energy of graphical models:

  • Spin glasses on a regular random graph with $50$ spins, degree $3$, and $\beta=0.1$

python lnz_np.py -n 50 -beta 0.1 -k 3 -graph rrg -seed 1 -Dmax 20 -chi 500 -Jij randn -fvs -mf

  • 2d ferromagnetic Ising model on a $10\times 10$ squared lattice, $\beta=0.2$

python lnz_np.py -n 10 -beta 0.2 -graph 2dsquare -select 1 -seed 1 -Dmax 50 -chi 500 -node mps -Jij ferro -reverse 1 -compress

  • Sherrington-Kirkpatrick model (fully connected, couplings following Gaussian distribution) with $20$ spins.

python lnz_np.py -n 20 -beta 0.2 -graph complete -seed 1 -Dmax 50 -chi 500 -Jij sk -reverse 0 -compress -fvs -mf

  • Spin glasses on a small-world network with $50$ spins, degree $4$, re-connecting probability $0.4$

python lnz_np.py -n 50 -beta 0.2 -k 4 -graph sw -select 1 -seed 1 -Dmax 50 -chi 500 -node mps -Jij randn -reverse 1 -compress -fvs -mf

  • Contract a circuit with $10\times 10=100$ qubits, with depth (1+8+1), as stored in graphs/supremacy2d100-d10-seed1-rank3-new...., with physical bond dimension $D=600$ and inner bond dimension $\chi=1500$

First run pip install fire, then python ./qc.py -graph supremacy2d100-d10-seed1-rank3-new -Dmax 600 -chi 1500

About

Contracting Arbitrary Tensor Networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%