1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import numpy as np class AHP: """ 相关信息的传入和准备 """
def __init__(self, array): self.array = array self.n = array.shape[0] self.RI_list = [0, 0, 0.52, 0.89, 1.12, 1.26, 1.36, 1.41, 1.46, 1.49, 1.52, 1.54, 1.56, 1.58, 1.59] self.eig_val, self.eig_vector = np.linalg.eig(self.array) self.max_eig_val = np.max(self.eig_val) self.max_eig_vector = self.eig_vector[:, np.argmax(self.eig_val)].real self.CI_val = (self.max_eig_val - self.n) / (self.n - 1) self.CR_val = self.CI_val / (self.RI_list[self.n - 1])
|