python实现AHP层次分析法
01AHP方法过程
层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
02Python实现
数据样例,判断矩阵请参考判断矩阵标度定义。
import numpy as np data = np.array([[1,2,7,7],[1/2.0,1,6,8],[1/7.0, 1/6.0, 1,3],[1/7.0,1/8.0,1/3.0,1]]) eigenvalues, vector = np.linalg.eig(data) eigenvalue_max = max(list(eigenvalues)) index_max = list(eigenvalues).index(eigenvalue_max) weights = vector[:, index_max] weights = np.real(weights) weights = weights/np.sum(weights) print(weights) >>array([0.51247524, 0.35654443, 0.08503711, 0.04594321])
参考文献:孙晓瑞. 基于GIS的内蒙古森林雪灾风险评估与区划[D]. 内蒙古农业大学.
链 接:http://www.doc88.com/p-3357858894228.html