层次分析法--可以帮助你做决策的简单算法

作用

层次分析法是一个多指标的评价算法,主要用来在做决策时,给目标的多个影响因子做权重评分。特别是那些需要主观决策的、或者需要用经验判断的决策方案,例如:

  • 买房子(主观决策)
  • 选择旅游地(主观决策)
  • 给员工进行绩效评估(经验判断)
  • 选择开店地址(经验判断)

实现步骤

构建层次评价模型

一般可以分为三个层次:目标层、准则层和方案层。如图,目标层:最优旅游地选择;准则层:景色、费用、居住、饮食、旅途;方案层:西安、云南、西藏、青海。

构造判断矩阵

构造判断矩阵就是将准则层各要素之间两两相互比较,确定各要素对目标层的重要程度(权重)。

准则层A构建如下:

准则层A各要素必须满足如下条件:即各要素必须大于0;对角线必须等于1;对角线对称的元素互为倒数。

标度值的大小如图所示方法进行配置

层次单排序与一致性检验

层次单排序就是根据我们构成的判断矩阵,求解各个指标的权重。

计算权重有两种方法:方根法、和法。

计算权重

方根法

1、通过计算每行乘积的m次方,得到m维向量。

示例中的计算如图

2、将向量标准化,得到权重

计算示例的权重如图

和法

1、先将矩阵的每列进行标准化

2、将标准化后的各元素按行求和

3、将求和结果进行标准化

求解最大特征根λmax与CI值

以上,求得权重矩阵后,可以计算最大特征根,其公式为:

其中n为维度数,例如构建的判断矩阵为:景色、费用、居住、饮食、旅途时,n=5;

AW为:判断矩阵*标准化后的权重,然后按按行的累加值。

即判断矩阵A为:

标准化后权重W为:

其中A*W为:

AW:

λmax:

AW1/W1+AW2/W2+AW3/W3+···+AWn/Wn=x

最大特征值λmax=x/矩阵阶数=5.416

最大特征值λmax求解出来后,C.I值就好算多了,

根据C.I值公式,λmax=5.416,n=5,代入可得C.I值=0.1042

求解CR值,判断一致性

一致性校验目的是确定构建的判断矩阵是否有逻辑问题。例如,如果a相当于b为3,a相当于c为1/3,在判断b相当于c时,理应c比b重要。

RI值通过查表可以得知,这个是模拟 1000 次得到的随机一致性指标 R.I.:

而我们的矩阵是5阶(准则层因子个数),矩阵阶数为5时对应的RI值为1.12,代入公式,可以得到C.R.值为 0.1042 / 1.12 = 0.093。

所以 C.R.=0.093

层次总排序与一致性检验

层次总排序,其实就是通过类型层次单排序的方法来给方案打分。即上一步的层次单排序通过判断矩阵计算出了景色、费用、居住、饮食和旅途的权重。现在如果想要知道目标地的权重,那就再构建一个判断矩阵,利用层次单排序计算目标地点的权重,即目标方案的分数。

层次单排序是对一个目标下的多个影响因子,计算各个因子的权重,例如下图中的Z和A1、A2、A3、A4和A5。或者将A1(景色)作为目标,B1、B2和B3作为影响因子,计算B1、B2和B3的权重,即苏杭、北戴河和桂林对目标景色的重要性。

具体做法是这样的。根据上一步算出来的各个因素的权重,确定A1~A5的权重为

现在我想计算方案B1苏杭的权重,那么我们就要重复上个步骤的层次单排序的方法,首先构建一个判断矩阵

依此类推,上述步骤循环5次,就能得到苏杭、北戴河、桂林在景色上的得分矩阵A1,在费用上的得分矩阵A2,在居住上的得分矩阵A3,在饮食上的得分矩阵A4,在旅途上的得分矩阵A5:

以上的判断矩阵全部需要做一致性校验。

通过判断矩阵再计算苏杭、北戴河、桂林在景色、费用等因素上的权重。

对于方案B1(苏杭),它的总得分为:

苏杭在景色上的得分*景色的权重+苏杭在费用上的得分*费用的权重+苏杭在居住上的得分*居住的权重+苏杭在饮食上的得分*饮食的权重+苏杭在旅途上的得分*旅途的权重=0.5954*0.3104+0.819*0.0591+0.4286*0.1157+0.6337*0.4716+0.1667*0.0432=0.5889

以此类推,方案B2(北戴河)为

0.2764*0.3104+0.2363*0.0591+0.4286*0.1157+0.1919*0.4716+0.1667*0.0432=0.2471

方案B3(桂林):

0.1283*0.3104+0.6817*0.0591+0.1429*0.1157+0.1744*0.4716+0.6667*0.0432=0.2077

因此苏杭得分最高,选择去苏杭。

总结

层次分析法的核心其实就是层次单排序。层次单排序是对一个目标下的多个影响因子,计算各个因子对于该目标的权重。利用层次单排序我们就能在一个树型结构的层次评价模型里,由最上层的目标层层递进向下,最终得到树的叶子节点的权重,即我们想要得到的各个方案的权重。

当我们把一个树模型上的所有节点的得分(可以理解为对上一层的权重)都计算出来之后,最终的方案的权重也就出来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207340.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】泛型编程 ⑫ ( 类模板 static 关键字 | 类模板 static 静态成员 | 类模板使用流程 )

文章目录 一、类模板使用流程1、类模板 定义流程2、类模板 使用3、类模板 函数 外部实现 二、类模板 static 关键字1、类模板 static 静态成员2、类模板 static 关键字 用法3、完整代码示例 将 类模板 函数声明 与 函数实现 分开进行编码 , 有 三种 方式 : 类模板 的 函数声明…

传统企业如何实现数字化转型?如何加快企业数字化转型?

科技的发展给社会带来了各种变革,技术日新月异,很多传统的东西都被大众抛之脑后,在这个以技术和数据运营为导向的数字化时代,传统企业想要保持足够的核心竞争力,就必须跟上时代的步伐,进行企业数字化转型&a…

智能监控如何最大化保障生产工人权益,助力电焊车间智能化?

电焊车间加装监控可以加强对电焊车间的生产过程监控,保障员工的生产工作安全,提高工作效率,降低生产成本。但是传统的监控只能单一的去“看”,并不能最大化发挥视频监控的作用,而智能视频监控就不一样。它可以有效提高…

LeetCode59.螺旋矩阵

LeetCode59.螺旋矩阵 1.问题描述2.解题思路3.代码 1.问题描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,…

MySQL数据库时间计算的用法

今天给大家分享如何通过MySQL内置函数实现时间的转换和计算,在工作当中,测试人员经常需要查询数据库表的日期时间,但发现开发人员存入数据库表的形式都是时间戳形式,不利于测试人员查看,测试人员只能利用工具对时间戳进…

Program Header Table(转载)

程序头表与段表相互独立,由ELF文件头统一管理。 程序头表负责ELF文件从文件到加载后映像的映射关系,一般只有可执行文件包含。 1. segment和section segment: 程序头表项描述的对象称为segment,即elf文件加载后的数据块; 它提供…

Servlet---HttpServlet、HttpServletRequest、HttpServletResponseAPI详解

文章目录 HttpServlet基础方法doXXX方法Servlet的生命周期 HttpServletRequest获取请求中的信息获取请求传递的参数获取 query string 里的数据获取form表单里的数据获取JSON里的数据如何解析JSON格式获取数据返回数据 HttpServletResponse设置响应的Header设置不同的状态码设置…

HTML+CSS+ElementUI搭建个人博客静态页面展示(纯前端)

网站演示 登录页面 门户页面 搭建过程 技术选取:HTML/CSS VUE2 ElementUI(Version - 2.15.14)编程软件:VSCode 环境配置与搭建 安装指令 1. 先确保你的电脑已经安装好了npm和node npm -vnode -v2. ElementUI下载,推荐使用 npm 的方式安装 npm i element-ui…

Postman API Enterprise 10.18.1 Crack

适合您企业的 Postman API 平台 掌控您的 API 环境。构建更好的 API。加快产品开发。 无论您处于 API 之旅的哪个阶段,Postman 都会为您提供帮助 想让您团队的 API 更容易被发现吗?希望减少开发和质量检查之间的滞后时间?想要更快地让新开发…

aspera替代方案,镭速大文件传输解决方案替代

相信不少的互联网用户对于传输软件aspera并不陌生,但是市面上有没有哪一些aspera替代方案,aspera替代方案是否比aspera更加能够解决数据传输的需求,是一个值得思考的事情,那么我们先来了解一下aspera以及aspera替代方案。 了解Asp…

JAVA项目测试----用户管理系统

一)项目简介: 用户管理系统是依据于前后端分离来实现的,是基于Spring SpringBoot Spring MVC,SpringAOP,MyBatis等框架来实现的一个用户管理网站,并且已经部署到了云服务器上, 目前的用户管理系统实现了超级管理员的注册功能&…

新手必看!!附源码!!STM32通用定时器输出PWM

一、什么是PWM? PWM(脉冲宽度调制)是一种用于控制电子设备的技术。它通过调整信号的脉冲宽度来控制电压的平均值。PWM常用于调节电机速度、控制LED亮度、产生模拟信号等应用。 二、PWM的原理 PWM的基本原理是通过以一定频率产生的脉冲信号&#xff0…