def test_Ising1D(): accuracy = epsilon J = 0.0 for i in range(5): nX = np.random.randint(2, high=10) h = np.random.randn(1) n = IsingModel1D(nX, h, J, accuracy) n = mergeContractor(n, accuracy, optimize=False, merge=False, verbose=0) assert len(n.nodes) == 1 nn = n.nodes.pop() assert abs(np.log(nn.tensor.array) / nX - exactIsing1Dh(h)) < 2 * nX * epsilon h = 0.0 for i in range(5): nX = np.random.randint(2, high=10) J = np.random.randn(1) n = IsingModel1D(nX, h, J, accuracy) n = mergeContractor(n, accuracy, optimize=False, merge=False, verbose=0) assert len(n.nodes) == 1 nn = n.nodes.pop() assert abs(np.log(nn.tensor.array) / nX - exactIsing1DJ(nX, J)) < 2 * nX * epsilon
def isingFreeEnergy(nX, J, k, accuracy): n = IsingSpinGlass(nX, J, k, accuracy) n = mergeContractor(n, accuracy, heuristic, optimize=True, merge=False, plot=False) return n.array[1] / (nX)
def ising2DFreeEnergy(nX, nY, h, J, accuracy): n = IsingModel2Dopen(nX, nY, h, J, accuracy) n = mergeContractor(n, accuracy, heuristic, optimize=True, merge=False, plot=False) return n.array[1] / (nX * nY)
def ising1DFreeEnergy(nX, h, J, accuracy): n = IsingModel1Ddisordered(nX, h, J, accuracy) n = mergeContractor(n, accuracy, entropyHeuristic, optimize=False, merge=False, plot=False) return n.array[1] / nX
def test_Ising2D(): nX = 4 nY = 4 accuracy = 1e-5 h = 0.0 for i in range(5): J = np.random.randn(1) n = IsingModel2D(nX, nY, h, J, accuracy) n = mergeContractor(n, accuracy, optimize=True, merge=True, verbose=0) assert len(n.nodes) == 1 nn = n.nodes.pop() assert abs(np.log(nn.tensor.array) / (nX * nY) - exactIsing2D(J)) < 2 * nX * nY * epsilon + abs( exactIsing2D(J)) / max(nX, nY)
from TNR.Contractors.mergeContractor import mergeContractor from TNR.Contractors.heuristics import utilHeuristic as heuristic from TNR.Utilities.logger import makeLogger from TNR import config logger = makeLogger(__name__, config.levels['generic']) import logging accuracy = 1e-3 observations = np.random.randint(0, high=20, size=(20, 2)) observations[:, 1] = observations[:, 0] + observations[:, 1] res = 12 discreteG = np.linspace(0, 1, num=res, endpoint=True) discreteQ = np.linspace(0, 1, num=res, endpoint=True) discreteW = np.linspace(0, 1, num=res, endpoint=True) discreteH = np.linspace(0, 1, num=res, endpoint=True) n = BayesTest2(observations, discreteG, discreteQ, discreteW, discreteH, accuracy) n = mergeContractor(n, accuracy, heuristic, optimize=True, merge=False, plot=False) print(n.nodes.pop().tensor.array)
import numpy as np from TNR.Models.isingModel import IsingModel2Dopen from TNR.Contractors.mergeContractor import mergeContractor fi = open('out.txt', 'w+') s = 14 nX = s nY = s accuracy = 1e-3 h = 0.1 J = 0.5 n = IsingModel2Dopen(nX, nY, h, J, accuracy) n = mergeContractor(n, accuracy, optimize=False, merge=False, mergeCut=10, verbose=2) assert len(n.nodes) == 1 fi.write( str(s) + ',' + str(np.log(next(iter(n.nodes)).tensor.array) / s**2) + '\n') fi.flush()
import numpy as np from TNR.Models.protein_aggregation_2D import PA2D from TNR.Contractors.mergeContractor import mergeContractor nX = 40 nY = 40 accuracy = 1e-5 h = 0.1 J = 0.5 q = 0.1 n = PA2D(nX, nY, h, J, q, accuracy) n = mergeContractor(n, accuracy, optimize=True, merge=True, verbose=2) print(len(n.nodes)) for nn in n.nodes: print(nn.tensor.array)