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

 
posted @ 2022-05-14 12:11  亿份资料  阅读(311)  评论(0编辑  收藏  举报