实际生活中,往往有一些很复杂的系统,我们没办法直观草率的确定权重,比如甲、乙、丙三人竞选总统,严谨的说,需要从三人的社交能力、管理能力、经济能力等方面来考虑,在每个方面,三位候选人的得分也不同,那么到底怎么来判断这三个人的综合得分呢?AHP可以帮助你。(请忽略现在的选举都是投票这个现实)
层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
下面是代码:
因为注释较多,根本无需一步一步的详解就能看懂,所以就一下子全放上来了。
#思路:
#1.首先输入每个指标下面对应的判断矩阵,
#该矩阵中的值是通过大数据(或者专家)得到的每两个指标之间的相对重要程度值,
#通过AHP计算这些判断矩阵是否通过一致性的检验,通过即合理,
#不通过就说明矩阵中的两指标间的相对重要程度有过分矛盾的地方,
import csv
import numpy as np
import tensorflo