Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import math
- def GMMRanking(matrix):
- rowMul = list()
- for row in matrix:
- mult = 1
- for item in np.asarray(row[0])[0]:
- mult *= item
- rowMul.append(np.power(mult,1/len(matrix)))
- rowSum = np.asarray(rowMul).sum()
- rowMul = np.asarray(np.matrix(rowMul).transpose()) / rowSum
- return rowMul
- def Satty(matrix):
- size = len(matrix)
- lmax = max(np.linalg.eigvals(matrix))
- return (lmax - size) / (size - 1)
- def Geom(matrix):
- matrixSum = 0
- matrix = GMMRanking(matrix)
- scalar = 2/((len(matrix)-1)*(len(matrix)-2))
- for row in matrix:
- for item in row:
- matrixSum += np.power(np.log(item),2)
- return scalar * matrixSum
- def Koczkodaj(matrix):
- n = len(matrix)
- def K(i,j,k):
- return (matrix[i,j]/(matrix[i,k]*matrix[k,j]))
- def minimum(i,j,k):
- return min(math.fabs(1-K(i,j,k)),math.fabs(1-(1/K(i,j,k))))
- trp = [ minimum(i,j,k) for i in range(0,n-2) for j in range(1,n-1) for k in range(2,n)]
- return max(trp)
- A = np.matrix([[1,7,3],[(1/7),1,2],[(1/3),(1/2),1]])
- B = np.matrix([[1,(1/5),7,1],[5,1,(1/2),2],[(1/7),2,1,3],[1,(1/2),(1/3),1]])
- C = np.matrix([[1,2,5,1,7],[(1/2),1,3,(1/2),5],[(1/5),(1/3),1,(1/5),2],[1,2,5,1,7],[(1/7),(1/5),(1/2),(1/7),1]])
- print("Wskazniki macierzy A: ")
- print("Satty'ego : ", Satty(A))
- print("Geometryczny : ", Geom(A))
- print("Koczkodaj : ", Koczkodaj(A))
- print("Wskazniki macierzy B: ")
- print("Satty'ego : ", Satty(B))
- print("Geometryczny : ", Geom(B))
- print("Koczkodaj : ", Koczkodaj(B))
- print("Wskazniki macierzy C: ")
- print("Satty'ego : ", Satty(C))
- print("Geometryczny : ", Geom(C))
- print("Koczkodaj : ", Koczkodaj(C))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement