Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
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()
Beispiel #8
0
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)