基于MATLABAHP(层次分析法)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Saaty九级标度法及其含义 定义(比较因素i与j)
因素i与j同样重要
3
因素i与j稍微重要
5
因素i与j较强重要
7
因素i与j强烈重要
9
因素i与j绝对重要
2, 4, 6, 8 上述两相邻判断的中间值
1 ~ 9的倒数 若因素j与因素i比较,得到的判断值为 aji=1/aij ,aii=1
形成判断矩阵
指标间重要程度判断矩阵(表一) 目标 P1 P2 P3 P4 P5
基于MATLAB的AHP(层次分析法)的实现
案例:整治路口交通秩序方案的评估决策
AHP(层次分析法)介绍及步骤
层次分析法是一种定性与定量分析相结合的多因素决 策分析方法。这种方法将决策者的经验判断给于数量 化,在目标因素结构复杂且缺乏必要数据的情况下使 用更为方便,因而在实践中得到广泛应用。
步骤: 1、构造层次结构模型 2、建立判断矩阵 3、检验判断矩阵的一致性 4、计算权重,选择决策
各方案对因素一的权向量为 WB1 (0.082, 0.236, 0.682 )
各方案对因素二的权向量为 WB2 (0.595, 0.276, 0.128) 各方案对因素三的权向量为 WB3 (0.595, 0.276, 0.128) 各方案对因素四的权向量为 WB4 (0.595, 0.276, 0.128) 各方案对因素五的权向量为 WB5 (0.595, 0.276, 0.128)
通过计算,检验成对比较矩阵的一致性,必要时对成对比 较矩阵进行修改,以达到可以接受的一致性;
在符合一致性检验的前提下,计算与成对比较矩阵 最大 特征值相对应的特征向量,确定每一层次的各因素对上 一 层次的同一个因素的权重;
计算各方案对于决策目标的总排序权重并决策。
关于MATLAB的总结
通过使用 Matlab软件进行编程,在满足同一层次中各 指标对所有的下级指标均产生影响的假定条件下,实 现了层次分析法的分析运算。
Y 一致性接受 输出CI、CR
结束
一致性不接受
程序代码
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)); while k>p i=i+1; x(:,i)=A*y(:,i-1); m(i)=max(x(:,i)); y(:,i)=x(:,i)/m(i);
通过本程序,用户只需输入判断矩阵的部分数据,程 序可依据层次分析法的计算流程进行计算并得出相关 数据及结果。
本程序可以方便地处理层次分析法下较大的运算量, 解决层次分析法的效率问题,提高计算机辅助决策的 时效性。
谢谢
六一国际儿童节快乐
关于MATLAB的相关介绍
Matlab是矩阵实验室( Matrix Laboratory)的简称,是 美国 MathWorks公司出品的数学软件,用于算法开发、数 据可视化、数据分析以及数值计算的高级技术计算语言 和交互式环境。Matlab可以进行矩阵运算、绘制函数和数 据图像、设计算法、创建用户界面、连接用其他编程语 言编写的程序等。Matlab以矩阵为计算单位,采用 M语言 作为程序语言,与 C语言有诸多相似之处,并可方便地与 C/C++、Microsoft Excel等工具和软件进行结合并进行代码 共享和数据交换,可以方便地进行数值分析、图像处理 等功能,配合功能强大的统计和金融工具箱, Matlab已经 可以在概率统计、经济管理等方面发挥强大的作用。
计算-结论
根据以上所得的数据计算得出三套方案对于目标的权重向量
经比较发现,方案一(建地下通道)权重系数最大,进而得 出结论,方案一(建地下通道)为最优决策
关于AHP(层次分析法)的总结
在确定决策的目标后,对影响目标决策的因素进行分类, 建立一个多层次结构;
比较同一层次中各因素关于上一层次的同一个因素的相对 重要性,构造成对比较矩阵;
2
3
S2 ½
1
1
S3 1/3 1
1
计算-MATLAB
Matlab程序设计思路 程序的设计目标首先是 计算判断矩阵的权重向 量和最大特征值,然后 进行CI和CR的计算,进 而判断矩阵的一次性。
程序流程图如右图所示
开始
输入判断矩阵
计算权重向量 和最大特征值
输出权重向量 和最大特征值
计算CR
CR<0.1 N
案例简介
某市一十字路口常常因行人过街拥挤,存在安全隐患,市 政部门欲对该路口进行改造,现提出了 3套改造方案: 方案 1(S1):建地下通道; 方案 2(S2):建人行天桥; 方案 3(S3):拆除周围的旧建筑,拓宽街面。
市政部门认为,该改造工程需考虑如下几个方面的指标: 指标 1(P1):通车能力的大小; 指标 2(P2):交通安全系数的高低; 指标 3(P3):建筑费用的高低; 指标 4(P4):群众出行方便度的大小; 指标 5(P5):市容整洁程度的高低。
disp('此矩阵的一致性可以接受!'); disp('CI=');disp(CI); disp('CR=');disp(CR); else disp('此矩阵的一致性不可以接受!'); end
计算-MATLAB
将表1-表6所表示的6个判断矩阵依次输入,通过程序计算 得判断矩阵特征值及一致性检验结果汇总如下
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
P1 S1 S2 S3
P1 S1 S2 S3
S1 1
2
1
S1 1
1/4 1/7
S2 1/2 11/3S2 411/4S3 1
3
1
S3 7
4
1
群众方便度(P4)判断矩阵(表5)
P1 S1 S2 S3
S1 1
1/3 1/5
S2 3
1
½
S3 5
2
1
市容整洁度(P5)判断矩阵(表6)
P1 S1 S2 S3
S1 1
现在需要就以上问题进行决策,需决定在三套方案 ( S1~ S3)中选用最优方案。
构建结构层次模型
目标层
整治路口交通秩序
准则层
通 交 建群市
车 能 力
通 安 全
筑 费 用
众 出 行 方
容 整 洁
系
便程
数
度度
P5
P4
P3 P2
P1
措施层 地下通道S1 过街天桥S2 拆除建筑S3
形成判断矩阵
标度aij 1
P1 1
3
4
5
6
P2 1/3 1
3
3
3
P3 ¼
1/3 1
1/3 3
P4 1/5 1/3 3
1
3
P5 1/6 1/3 1/3 1/3 1
通车能力(P1)判断矩阵(表二)
P1 S1 S2 S3
S1 1
1
3
S2 1
1
3
S3 1/3 1/3 1
形成判断矩阵
交通安全系数(P2)判断矩阵(表3) 建筑费用(P3)判断矩阵(表4)
表别
表1 表2 表3 表4 表5 表6
m ax
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
通过程序运算,各因素所占比重的权向量为