AHP层次分析法的步骤和matlab实现方法
AHP (Analytic Hierarchy Process)层次分析法是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案或多目标的决策方法,是一种定性与定量相结合的决策分析方法。常被运用于多目标、多准则、多要素、多层次的非结构化的复杂决策问题,特别是战略决策问题,具有十分广泛的实用性。用AHP分析问题大体要经过以下五个步骤:
1建立层次结构模型
将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
2构造判断矩阵
在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因而Saaty等人提出:一致矩阵法,即:
不把所有因素放在一起比较,而是两两相互比较。
对比时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。设计相应的准则
A=[1 1/9 1/3 1/4 1/8 1/7;9 1 5 6 2 3;3 1/5 1 2 1/3 1/2;…%续行matlab准则代码
4 1/6 1/2 1 1/3 1/2;8 1/2 3 3 1 2;7 1/3 2 2 1/2 1];
3层次单排序
所谓层次单排序是指,对于上一层某因素而言,本层次各因素的重要性的排序。
4判断矩阵的一致性检验
所谓一致性是指判断思维的逻辑一致性。如当甲比丙是强烈重要,而乙比丙是稍微重要时,显然甲一定比乙重要。这就是判断思维的逻辑一致性,否则判断就会有矛盾。
5层次总排序
确定某层所有因素对于总目标相对重要性的排序权值过程,称为层次总排序。
这一过程是从最高层到最底层依次进行的。对于最高层而言,其层次单排序的结果也就是总排序的结果。
6代码实现:
A=[1 1/9 1/3 1/4 1/8 1/7;9 1 5 6 2 3;3 1/5 1 2 1/3 1/2;…%续行 4 1/6 1/2 1 1/3 1/2;8 1/2 3 3 1 2;7 1/3 2 2 1/2 1];%输入规则表;
[v,d]=eig(A);%特征向量,特征值
d=eig(A);%得出特征值向量d
max1=max(d);
n=find(d==max1);%查找最大值
w1=v(:,n);
w=w1/sum(w1)%一致性指标
CI=(max1-6)/(6-1);
RI=1.24;
CR=CI/RI;
if CR<0.1
fprintf(‘通过一致性检验\n’);
else
fprintf(‘重新赋值因为一致性不被接受\n’);
end