您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > matlab > 基于MATLAB的AHP(层次分析法)的
基于MATLAB的AHP(层次分析法)的实现案例:整治路口交通秩序方案的评估决策AHP(层次分析法)介绍及步骤步骤:1、构造层次结构模型2、建立判断矩阵3、检验判断矩阵的一致性4、计算权重,选择决策层次分析法是一种定性与定量分析相结合的多因素决策分析方法。这种方法将决策者的经验判断给于数量化,在目标因素结构复杂且缺乏必要数据的情况下使用更为方便,因而在实践中得到广泛应用。关于MATLAB的相关介绍Matlab是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。Matlab可以进行矩阵运算、绘制函数和数据图像、设计算法、创建用户界面、连接用其他编程语言编写的程序等。Matlab以矩阵为计算单位,采用M语言作为程序语言,与C语言有诸多相似之处,并可方便地与C/C++、MicrosoftExcel等工具和软件进行结合并进行代码共享和数据交换,可以方便地进行数值分析、图像处理等功能,配合功能强大的统计和金融工具箱,Matlab已经可以在概率统计、经济管理等方面发挥强大的作用。案例简介某市一十字路口常常因行人过街拥挤,存在安全隐患,市政部门欲对该路口进行改造,现提出了3套改造方案:方案1(S1):建地下通道;方案2(S2):建人行天桥;方案3(S3):拆除周围的旧建筑,拓宽街面。市政部门认为,该改造工程需考虑如下几个方面的指标:指标1(P1):通车能力的大小;指标2(P2):交通安全系数的高低;指标3(P3):建筑费用的高低;指标4(P4):群众出行方便度的大小;指标5(P5):市容整洁程度的高低。现在需要就以上问题进行决策,需决定在三套方案(S1~S3)中选用最优方案。构建结构层次模型整治路口交通秩序通车能力P1交通安全系数P2建筑费用P3群众出行方便度P4市容整洁程度P5地下通道S1拆除建筑S3过街天桥S2目标层准则层措施层形成判断矩阵标度aij定义(比较因素i与j)1因素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=1Saaty九级标度法及其含义形成判断矩阵目标P1P2P3P4P5P113456P21/31333P3¼1/311/33P41/51/3313P51/61/31/31/31指标间重要程度判断矩阵(表一)P1S1S2S3S1113S2113S31/31/31通车能力(P1)判断矩阵(表二)形成判断矩阵P1S1S2S3S1121S21/211/3S3131交通安全系数(P2)判断矩阵(表3)P1S1S2S3S111/41/7S2411/4S3741建筑费用(P3)判断矩阵(表4)P1S1S2S3S111/31/5S231½S3521群众方便度(P4)判断矩阵(表5)P1S1S2S3S1123S2½11S31/311市容整洁度(P5)判断矩阵(表6)计算-MATLABMatlab程序设计思路一致性不接受开始输入判断矩阵计算权重向量和最大特征值输出权重向量和最大特征值计算CRCR0.1Y一致性接受输出CI、CRN结束程序的设计目标首先是计算判断矩阵的权重向量和最大特征值,然后进行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));whilekpi=i+1;x(:,i)=A*y(:,i-1);m(i)=max(x(:,i));y(:,i)=x(:,i)/m(i);k=abs(m(i)-m(i-1));enda=sum(y(:,i));w=y(:,i)/a;t=m(i);disp('权向量');disp(w);disp('最大特征值');disp(t);%以下是一致性检验CI=(t-n)/(n-1);RI=[000.520.891.121.261.361.411.461.491.521.541.561.581.59];CR=CI/RI(n);ifCR0.10disp('此矩阵的一致性可以接受!');disp('CI=');disp(CI);disp('CR=');disp(CR);elsedisp('此矩阵的一致性不可以接受!');end计算-MATLAB表别CR一致性检验表15.37300.0833接受表23.00000.0000接受表33.01830.0176接受表43.07640.0735接受表53.00370.0036接受表63.01830.0176接受将表1-表6所表示的6个判断矩阵依次输入,通过程序计算得判断矩阵特征值及一致性检验结果汇总如下max计算-MATLAB)682.0,236.0,082.0(1BW通过程序运算,各因素所占比重的权向量为各方案对因素一的权向量为各方案对因素二的权向量为各方案对因素三的权向量为各方案对因素四的权向量为各方案对因素五的权向量为)128.0,276.0,595.0(2BW)128.0,276.0,595.0(4BW)128.0,276.0,595.0(3BW)128.0,276.0,595.0(5BW计算-结论根据以上所得的数据计算得出三套方案对于目标的权重向量经比较发现,方案一(建地下通道)权重系数最大,进而得出结论,方案一(建地下通道)为最优决策关于AHP(层次分析法)的总结在确定决策的目标后,对影响目标决策的因素进行分类,建立一个多层次结构;比较同一层次中各因素关于上一层次的同一个因素的相对重要性,构造成对比较矩阵;通过计算,检验成对比较矩阵的一致性,必要时对成对比较矩阵进行修改,以达到可以接受的一致性;在符合一致性检验的前提下,计算与成对比较矩阵最大特征值相对应的特征向量,确定每一层次的各因素对上一层次的同一个因素的权重;计算各方案对于决策目标的总排序权重并决策。关于MATLAB的总结通过使用Matlab软件进行编程,在满足同一层次中各指标对所有的下级指标均产生影响的假定条件下,实现了层次分析法的分析运算。通过本程序,用户只需输入判断矩阵的部分数据,程序可依据层次分析法的计算流程进行计算并得出相关数据及结果。本程序可以方便地处理层次分析法下较大的运算量,解决层次分析法的效率问题,提高计算机辅助决策的时效性。谢谢六一国际儿童节快乐
本文标题:基于MATLAB的AHP(层次分析法)的
链接地址:https://www.777doc.com/doc-7027986 .html