博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
层次分析法
阅读量:5994 次
发布时间:2019-06-20

本文共 1273 字,大约阅读时间需要 4 分钟。

作用:用于解决生活中,学习中等遇到的决策问题,决策就是指在面临多种选择方案时,依照一定的标准选择某一种方案。

例如:

在苏杭、北戴河、桂林选择一个旅游点。要考虑到景点的景色、居住的环境、饮食的特色、交通的便利和旅游的费用。

 层次分析法原理:层次分析法根据问题的性质和要达到的总目标,讲问题分解为不同的组成因素,并按照因素间的相互关联的影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最底层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。

运用层次分析法构造系统模型时,大题可以分为以下四个步骤:

  1. 建立层次结构模型
  2. 构造判断(成对比较)矩阵
  3. 层次单排序及其一致性检验
  4. 层次总排序及其一致性检验

构建:

  • 将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最底层,绘出层次结构图。
  • 最高层:决策的目的、要解决的问题。
  • 最底层:决策时的备选方案。
  • 中间层:考虑的因素、决策的准则。

 

成对比较矩阵:在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接收,因而Santy等人提出一致矩阵法:

1.不把所有因素放在一起比较,而是两两相互比较

2.采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。

成对比较矩阵是表示本层所有因素针对上一层某一个因素的相对重要性的比较。成对比较矩阵的元素aij用Santy的1-9标度方法给出。

 

 

 

 

 

 

已知成对比较矩阵即可用一下程序求解:

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);  k=abs(m(i)-m(i-1));enda=sum(y(:,i));w=y(:,i)/a;t=m(i);disp(w);         %以下是一致性检验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    disp('此矩阵的一致性可以接受!');    disp('CI=');disp(CI);    disp('CR=');disp(CR);end

例如:

 

 

 

 

 

 

转载于:https://www.cnblogs.com/dongdong25800/p/10234706.html

你可能感兴趣的文章
写给社区的回顾和展望:TiDB 2019, Level Up !
查看>>
初级web前端开发工程师成长为大神的学习路线(附思维导图)
查看>>
css-盒模型
查看>>
基于Docker的日志分析平台(五)监控与报警
查看>>
GPU编程(一): Ubuntu下的CUDA8.0环境搭建
查看>>
2018年阿里云NoSQL数据库大事盘点
查看>>
Flutter之在Flutter布局中嵌入原生组件Android篇
查看>>
package.json里‘’^ ~“符号的意思
查看>>
手把手教写出XGBoost实战程序
查看>>
什么是 Substrate
查看>>
Vitalik:Casper 的过去、现在和未来
查看>>
算法(一):二分查找法
查看>>
PowerDesigner更改数据库类型
查看>>
2015年这6部科幻电影,你看了吗?
查看>>
导出excel(sqlserver)
查看>>
Python学习笔记-编译安装Python3.6.1 + iPython
查看>>
linux运维基础篇 unit2练习与习题
查看>>
Context都没弄明白,还怎么做Android开发?
查看>>
Java的线程安全
查看>>
MySQL 半同步复制详解
查看>>