层次分析法与应用
决策是我们经常遇到的问题。譬如假期到了,人们打算外出旅游,如何选择旅游的景点;学校评选优秀学生,如何评选和评选谁;中学毕业上大学,如何选择志愿等等。例如要选择升学志愿,需要考虑兴趣爱好、专业前途以及收费标准等。总之,人们的决策活动无论是简单还是复杂,它都是在系统观点下的一个综合判断的过程。
层次分析法(Analytic Hierchy process简记为AHP)是美国运筹家T.L.Saaty在70年代初提出来的,它是将半定性、半定量的问题转化为定量计算的一种行之有效的方法。在资源分配、选优排序、政策分析、冲突求解以及决策预报等领域得到广泛的应用。
计算平均一致性指标的Matlab程序为:
%调整n的值可以得到上方表格结果
n=11;
P=[1,2,3,4,5,6,7,8,9,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1/9];
%可供选取的成对比值
L=length(P);
A=ones(n,n);
number=1500;%模拟次数
R=0;
for kp=1:number %获得一个成对比较阵
for i=1:n-1
for j=i+1:n
k=floor(1+L*rand(1,1));
A(i,j)=P(k); %得到一个随机的成对值
A(j,i)=1/P(k);
end
end
lam=max(eig(A));
%求最大特征值
CI=(lam-n)/(n-1);
R=R+CI;
end %end for kp
RI=R/number;
fprintf('n=%2d,随机一致性指标%6.3f\n',n,RI);
归一化程序:
A=[1 1/2 4 3 3
2 1 7 5 5
1/4 1/7 1 1/2 1/3
1/3 1/5 2 1 1
1/3 1/5 3 1 1]
lam=max(eig(A))
[V,D]=eig(A)
B=[ -0.4658
-0.8409
-0.0951
-0.1733
-0.1920]
[p,q]=size(B)
sum=0;
for i=1:p
sum=sum+B(i,1);
end
sum
C=B/sum
本文来源:中国大学mooc西北工业大学数学建模课程