Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. import numpy as np
  2.  
  3. A = [[1, 2 / 3, 2, 5 / 2, 5 / 3, 5],
  4. [3 / 2, 1, 3, 10 / 3, 3, 9],
  5. [1 / 2, 1 / 3, 1, 4 / 3, 7 / 8, 5 / 2],
  6. [2 / 5, 3 / 10, 3 / 4, 1, 5 / 6, 12 / 5],
  7. [3 / 5, 1 / 3, 8 / 7, 6 / 5, 1, 3],
  8. [1 / 5, 1 / 9, 2 / 5, 5 / 12, 1 / 3, 1]]
  9.  
  10. B = [[1, 2 / 5, 3, 7 / 3, 1 / 2, 1],
  11. [5 / 2, 1, 4 / 7, 5 / 8, 1 / 3, 3],
  12. [1 / 3, 7 / 4, 1, 1 / 2, 2, 1 / 2],
  13. [3 / 7, 8 / 5, 2, 1, 4, 2],
  14. [2, 3, 1 / 2, 1 / 4, 1, 1 / 2],
  15. [1, 1 / 3, 2, 1 / 2, 2, 1]]
  16.  
  17. C = [[1, 17 / 4, 17 / 20, 8 / 5, 23 / 6, 8 / 3],
  18. [4 / 17, 1, 1 / 5, 2 / 5, 9 / 10, 2 / 3],
  19. [20 / 17, 5, 1, 21 / 10, 51 / 10, 10 / 3],
  20. [5 / 8, 5 / 2, 10 / 21, 1, 5 / 2, 11 / 6],
  21. [6 / 23, 10 / 9, 10 / 51, 2 / 5, 1, 19 / 30],
  22. [3 / 8, 3 / 2, 3 / 10, 6 / 11, 30 / 19, 1]]
  23.  
  24.  
  25. def koczkodaj(mtx):
  26. maxOfVal = 0
  27. for x in range(len(mtx)):
  28. for y in range(len(mtx)):
  29. if x == y:
  30. continue
  31. for z in range(len(mtx)):
  32. if y == z:
  33. continue
  34. inKocz = min(abs(1 - (mtx[x][z] * mtx[z][y]) / mtx[x][y]), abs(1 - mtx[x][y] / (mtx[x][z] * mtx[z][y])))
  35. if inKocz > maxOfVal:
  36. maxOfVal = inKocz
  37.  
  38. return maxOfVal
  39.  
  40.  
  41. def checkValInKocz(n, k):
  42. return 1 - ((1 + pow(4 * (n - 1) * (n - k - 2), 1 / 2)) / (2 * (n - 1)))
  43.  
  44.  
  45. # ########### A
  46.  
  47. print("Matrix A:")
  48. print("Koczkodaj Index: ", koczkodaj(A))
  49. print("Checked Value(max index value): ", checkValInKocz(6, 2))
  50.  
  51. n = 6
  52. k = 2
  53.  
  54. A1 = [[1, 2 / 3, 2, 5 / 2],
  55. [3 / 2, 1, 3, 10 / 3],
  56. [1 / 2, 1 / 3, 1, 4 / 3],
  57. [2 / 5, 3 / 10, 3 / 4, 1]]
  58.  
  59. B1 = [[5 / 3, 5],
  60. [3, 9],
  61. [7 / 8, 5 / 2],
  62. [5 / 6, 12 / 5]]
  63.  
  64. for i in range(n - k):
  65. for j in range(n - k):
  66. if i != j:
  67. A1[i][j] *= -1 / (n - 1)
  68.  
  69. Wk = [3, 1]
  70. B1 = np.matmul(B1, Wk)
  71. b = B1 * 1 / (n - 1)
  72. W = np.matmul(np.linalg.inv(A1), b)
  73. res = np.concatenate((W, Wk), axis=None)
  74.  
  75. print("Final ranking: ", res)
  76.  
  77. # ########### B
  78.  
  79. print("\nMatrix B:")
  80. print("Koczkodaj Index: ", koczkodaj(B))
  81. print("Checked Value(max index value): ", checkValInKocz(6, 3))
  82.  
  83. n = 6
  84. k = 3
  85.  
  86. A1 = [[1, 2 / 5, 3],
  87. [5 / 2, 1, 4 / 7],
  88. [1 / 3, 7 / 4, 1]]
  89.  
  90. B1 = [[7 / 3, 1 /2, 1],
  91. [5 / 8, 1 / 3, 3],
  92. [1 / 2, 2, 1 / 2]]
  93.  
  94. for i in range(n - k):
  95. for j in range(n - k):
  96. if i != j:
  97. A1[i][j] *= -1 / (n - 1)
  98.  
  99. Wk = [2, 1 / 2, 1]
  100. B1 = np.matmul(B1, Wk)
  101. b = B1 * 1 / (n - 1)
  102. W = np.matmul(np.linalg.inv(A1), b)
  103. res = np.concatenate((W, Wk), axis=None)
  104.  
  105. print("Final ranking: ", res)
  106.  
  107. # ########### C
  108.  
  109. print("\nMatrix C:")
  110. print("Koczkodaj Index: ", koczkodaj(C))
  111. print("Checked Value(max index value): ", checkValInKocz(6, 2))
  112.  
  113. n = 6
  114. k = 2
  115.  
  116. reshapedC = [[1, 23 / 6, 17 / 20, 8 / 3, 17 / 4, 8 / 5],
  117. [6 / 23, 1, 10 / 51, 19 / 30, 10 / 9, 2 / 5],
  118. [20 / 17, 51 / 10, 1, 10 / 3, 5, 21 / 10],
  119. [3 / 8, 30 / 19, 3 / 10, 1, 3 / 2, 6 / 11],
  120. [4 / 17, 9 / 10, 1 / 5, 2 / 3, 1, 2 / 5],
  121. [5 / 8, 5 / 2, 10 / 21, 11 / 6, 5 / 2, 1]]
  122.  
  123. A1 = [[1, 23 / 6, 17 / 20, 8 / 3],
  124. [6 / 23, 1, 10 / 51, 19 / 30],
  125. [20 / 17, 51 / 10, 1, 10 / 3],
  126. [3 / 8, 30 / 19, 3 / 10, 1]]
  127.  
  128. B1 = [[17 / 4, 8 / 5],
  129. [10 / 9, 2 / 5],
  130. [5, 21 / 10],
  131. [3 / 2, 6 / 11]]
  132.  
  133. for i in range(n - k):
  134. for j in range(n - k):
  135. if i != j:
  136. A1[i][j] *= -1 / (n - 1)
  137.  
  138. Wk = [2, 5]
  139. B1 = np.matmul(B1, Wk)
  140. b = B1 * 1 / (n - 1)
  141. W = np.matmul(np.linalg.inv(A1), b)
  142. res = np.concatenate((W, Wk), axis=None)
  143. print("Final ranking: ", res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement