import numpy as np from bellpolytope import BellPolytope if __name__ == '__main__': N=4 K=3 poly = BellPolytope(N,K) vertices=poly.getVertices() distributions=np.matrix(vertices) NumberOfCoefficients=(N*K)**2 with open('randomfunctionals.txt','w') as f: f.write('Random functionals \n') for j in range (0,10): functional=np.random.uniform(-63,1,size=NumberOfCoefficients) values=np.dot(distributions,np.transpose(functional)) c=np.amax(values) BellNormalisedFunctional=functional/c with open('randomfunctionals.txt','a') as f: np.savetxt(f, BellNormalisedFunctional, fmt='%.2f') f.write('\n')
InputsBob = 4 OutputsAlice = 2 OutputsBob = 2 NumberOfInequalities = 174 functionals = np.loadtxt('dataconverted.txt') poly = BellPolytope(InputsAlice, OutputsAlice) InefficiencyResistantInequalities = np.zeros( (NumberOfInequalities, InputsAlice * (OutputsAlice + 1) * InputsBob * (OutputsBob + 1))) text = open("IneffFunctionals4433LispCG.txt", 'w') lisp = LispHelper for j in range(0, NumberOfInequalities): NormalisedFunctional = np.zeros(InputsAlice * (OutputsAlice + 1) * InputsBob * (OutputsBob + 1)) vertices4422 = np.matrix(poly.getVertices()) values4422 = np.dot(vertices4422, np.transpose(functionals[j][:])) minimum = np.amin(values4422) if minimum < -1: #JUST THE INEQUALITIES WE WANT InefficiencyResistantInequalities[ j][:] = extendInequalityToDetecLoopholeSetting( functionals[j][:], InputsAlice, OutputsAlice, parties) vertices4433 = BellPolytope(InputsAlice, OutputsAlice + 1).getVertices() distributions = np.matrix(vertices4433) values4433 = np.dot( distributions, np.transpose(InefficiencyResistantInequalities[j][:])) maximum = np.amax(values4433) if maximum != 0: NormalisedFunctional = InefficiencyResistantInequalities[