DESCARGAR PDF

DESCARGAR PDF

DESCARGAR PDF

from numpy import *
import random

def llenaMatriz(F,C):
    L = [ ]
    for i in range(C):
        if F==i:
            numero = 0
        else:
            numero = random.randint(-2,5)
        L.append(numero)
    return L

def CreaMatriz(F,C):
    Matriz = [ ]
    for i in range(F):
        Matriz.append(llenaMatriz(i,C))
    return Matriz

def normalizaMatriz(Matriz,F,C):
    total = 0
    for i in range(C):
        if Matriz[F][i] >= 0:
            total = Matriz[F][i] + total
    for j in range(C):
        if Matriz[F][j] < 0:
            Matriz[F][j] = 0
        else:
            if total == 0:
                Matriz[F][j] = 0
            else:
                Matriz[F][j] = float(Matriz[F][j]/float(total))
    return Matriz

#####################
#            #
#            #
#   EIGEN TRUST     #
#            #
#            #
#####################

def EigenTrust(C,t):
    error = 1
    tk = C.dot(t)
    tk1 = tk
    aux = 0
        while error > 0.000001:
        tk = tk1 
        tk1 = C.dot(tk)
        error = linalg.norm(tk1-tk,inf)
        aux += 1
    return(tk1)    

#MAIN

F = 5
X = 5
S = CreaMatriz(F,X)
C = []
for i in range(F):
    C = normalizaMatriz(S,i,X)
C = matrix(C)
CT = C.getT()

i = 0
confianza = []
while i < F:
    confianza.append(float(1/float(F)))
        i +=1

e = matrix(confianza)
et = e.getT()
print "\n\nMatriz de relaciones:\n"
print C
print "\n\n\nEignTrust :\n"
print EigenTrust(CT,et)
print "\n\n"

Descargar Código