当前位置:文档之家› 基于MATLAB的AHP(层次分析法)的

基于MATLAB的AHP(层次分析法)的


标度aij 1 3 5 7 9 2, 4, 6, 8
1 ~ 9的倒数 若因素j与因素i比较,得到的判断值为 aji=1/aij ,aii=1
形成判断矩阵
指标间重要程度判断矩阵(表一) P2 P3 P4 P5 目标 P1 P1 P2 P3 P4 P5 1 1/3 ¼ 1/5 1/6 3 1 1/3 1/3 1/3 4 3 1 3 1/3 5 3 1/3 1 1/3 6 3 3 3 1
程序的设计目标首先是 计算判断矩阵的权重向 量和最大特征值,然后 进行CI和CR的计算,进 而判断矩阵的一次性。
计算权重向量 和最大特征值
输出权重向量 和最大特征值 计算CR
程序流程图如右图所示
CR<0.1
Y 一致性接受 输出CI、CR
N
一致性不接受
结束
程序代码
disp('请输入判断矩阵A(n阶)'); A=input('A='); [n,n]=size(A); x=ones(n,100); y=ones(n,100); m=zeros(1,100); m(1)=max(x(:,1)); y(:,1)=x(:,1); x(:,2)=A*y(:,1); m(2)=max(x(:,2)); y(:,2)=x(:,2)/m(2); p=0.0001;i=2;k=abs(m(2)-m(1)); k=abs(m(i)-m(i-1)); end a=sum(y(:,i)); w=y(:,i)/a; t=m(i); disp('权向量');disp(w); disp('最大特征值');disp(t); %以下是一致性检验 CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; CR=CI/RI(n); if CR<0.10
while k>p
i=i+1; x(:,i)=A*y(:,i-1); m(i)=max(x(:,i));
disp('此矩阵的一致性可以接受!');
disp('CI=');disp(CI); disp('CR=');disp(CR); else disp('此矩阵的一致性不可以接受!'); end
y(:,i)=x(:,i)/m(i);
案例简介 某市一十字路口常常因行人过街拥挤,存在安全隐患,市 政部门欲对该路口进行改造,现提出了 3套改造方案: 方案 1(S1):建地下通道; 方案 2(S2):建人行天桥; 方案 3(S3):拆除周围的旧建筑,拓宽街面。
市政部门认为,该改造工程需考虑如下几个方面的指标: 指标 1(P1):通车能力的大小; 指标 2(P2):交通安全系数的高低; 指标 3(P3):建筑费用的高低; 指标 4(P4):群众出行方便度的大小; 指标 5(P5):市容整洁程度的高低。
现在需要就以上问题进行决策,需决定在三套方案 ( S1~ S3)中选用最优方案。
构建结构层次模型
目标层
通 车 能 力
整治路口交通秩序 交 通 安 全 系 数 建 筑 费 用
群 众 出 行 方 便 度
准则层
市 容 整 洁 程 度
措施层
地下通道S1
P1
P3
P4
P2
P5 拆除建筑S3
过街天桥S2
形成判断矩阵 Saaty九级标度法及其含义 定义(比较因素i与j) 因素i与j同样重要 因素i与j稍微重要 因素i与j较强重要 因素i与j强烈重要 因素i与j绝对重要 上述两相邻判断的中间值
基于MATLAB的AHP(层次分析法)的实现
案例:整治路口交通秩序方案的评估决策
AHP(层次分析法)介绍及步骤 层次分析法是一种定性与定量分析相结合的多因素决 策分析方法。这种方法将决策者的经验判断给于数量 化,在目标因素结构复杂且缺乏必要数据的情况下使 用更为方便,因而在实践中得到广泛应用。 步骤:
S3 1/7 1/4
S3
1
3
1
S3
7
4
1
群众方便度(P4)判断矩阵(表5)
P1
S1
S2
S3
市容整洁度(P5)判断矩阵(表6) P1 S1 S2 S3 S1
S2 S3
S1
S2 S3
1
3 5
1/3
1 2
1/5
½ 1
1
½ 1/3
ቤተ መጻሕፍቲ ባይዱ
2
1 1
3
1 1
计算-MATLAB Matlab程序设计思路 开始
输入判断矩阵
计算-MATLAB 将表1-表6所表示的6个判断矩阵依次输入,通过程序计算 得判断矩阵特征值及一致性检验结果汇总如下 表别 表1 表2 表3 表4 表5 表6
max
5.3730 3.0000 3.0183 3.0764 3.0037 3.0183
CR 0.0833 0.0000 0.0176 0.0735 0.0036 0.0176
谢谢
六一国际儿童节快乐
一致性检验 接受 接受 接受 接受 接受 接受
计算-MATLAB 通过程序运算,各因素所占比重的权向量为 各方案对因素一的权向量为 WB1 (0.082, 0.236, 0.682 ) 各方案对因素二的权向量为 WB 2 (0.595, 0.276, 0.128) 各方案对因素三的权向量为 WB 3 (0.595, 0.276, 0.128 ) 各方案对因素四的权向量为 WB 4 (0.595, 0.276, 0.128) 各方案对因素五的权向量为 WB5 (0.595, 0.276, 0.128)
计算-结论 根据以上所得的数据计算得出三套方案对于目标的权重向量
经比较发现,方案一(建地下通道)权重系数最大,进而得 出结论,方案一(建地下通道)为最优决策
关于AHP(层次分析法)的总结 在确定决策的目标后,对影响目标决策的因素进行分类, 建立一个多层次结构; 比较同一层次中各因素关于上一层次的同一个因素的相对 重要性,构造成对比较矩阵; 通过计算,检验成对比较矩阵的一致性,必要时对成对比 较矩阵进行修改,以达到可以接受的一致性; 在符合一致性检验的前提下,计算与成对比较矩阵 最大 特征值相对应的特征向量,确定每一层次的各因素对上 一 层次的同一个因素的权重; 计算各方案对于决策目标的总排序权重并决策。
关于MATLAB的总结 通过使用 Matlab软件进行编程,在满足同一层次中各 指标对所有的下级指标均产生影响的假定条件下,实 现了层次分析法的分析运算。
通过本程序,用户只需输入判断矩阵的部分数据,程 序可依据层次分析法的计算流程进行计算并得出相关 数据及结果。 本程序可以方便地处理层次分析法下较大的运算量, 解决层次分析法的效率问题,提高计算机辅助决策的 时效性。
通车能力(P1)判断矩阵(表二) P1 S1 S2 S3 S1 S2 S3 1 1 1/3 1 1 1/3 3 3 1
形成判断矩阵
交通安全系数(P2)判断矩阵(表3) 建筑费用(P3)判断矩阵(表4)
P1 S1 S2
S1 1 1/2
S2 2 1
S3 1 1/3
P1 S1 S2
S1 1 4
S2 1/4 1
1、构造层次结构模型
2、建立判断矩阵 3、检验判断矩阵的一致性 4、计算权重,选择决策
关于MATLAB的相关介绍 Matlab是矩阵实验室( Matrix Laboratory)的简称,是 美国 MathWorks公司出品的数学软件,用于算法开发、数 据可视化、数据分析以及数值计算的高级技术计算语言 和交互式环境。Matlab可以进行矩阵运算、绘制函数和数 据图像、设计算法、创建用户界面、连接用其他编程语 言编写的程序等。Matlab以矩阵为计算单位,采用 M语言 作为程序语言,与 C语言有诸多相似之处,并可方便地与 C/C++、Microsoft Excel等工具和软件进行结合并进行代码 共享和数据交换,可以方便地进行数值分析、图像处理 等功能,配合功能强大的统计和金融工具箱, Matlab已经 可以在概率统计、经济管理等方面发挥强大的作用。
相关主题