当前位置: 首页 > news >正文

层次分析法

目录

 一:问题的引入

二:模型的建立

1.分析系统中各因素之间的关系,建立系统的递阶层次结构。

2.对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)。

3.由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能用)。

4. 根据权重矩阵计算得分,并进行排序。

<1>:算数平均法求权重

<2>:几何平均法求权重

<3>:特征值法求权重

5.填充权重矩阵

 6.根据权重矩阵计算得分,并进行排序

三:局限性



层次分析法(The analytic hierarchy process, 简称AHP) 建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、哪位运动员或者员工表现的更优秀)。

层次分析法的主要特点是通过建立递阶层次结构,把人类的判断转化到若干因素两两之间重要度的比较上,从而把难于量化的定性判断转化为可操作的重要度的比较上面。在许多情况下,决策者可以直接使用AHP进行决策,极大地提高了决策的有效性、可靠性和可行性,但其本质是一种思维方式,它把复杂问题分解成多个组成因素,又将这些因素按支配关系分别形成递阶层次结构,通过两两比较的方法确定决策方案相对重要度的总排序。整个过程体现了人类决策思维的基本特征,即分解、判断、综合,克服了其他方法回避决策者主观判断的缺点。


 一:问题的引入

小明同学想出去旅游。在查阅了网上的攻略后,他初步选择了苏杭、北戴河和桂林三地之一作为目标景点。请你确定评价指标、形成评价体系来为小明同学选择最佳的方案
解决评价类问题,首先要想到以下三个问题:
1 我们 评价的目标 是什么?
答:为小明同学选择最佳的旅游景点。
2 我们为了达到这个 目标 有哪几种可选 的方案
答:三种,分别是去苏杭、去北戴河和去桂林。
3 评价的准则 或者说指标是什么?(我们根据什么东西来评价好坏)
答:景色、花费、居住、饮食、交通

二:模型的建立

1.分析系统中各因素之间的关系,建立系统的递阶层次结构

图2.1旅游地选择层次结构图 

2.对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)。


层次分析法最重要使用的表格格式为:

 指标权重方案1方案2方案3......
指标1     
指标2     
指标3     
......     

注意:同颜色的单元格的和为1,它们表示的针对某一因素所占的权重(或得分) 。

那么对应本问题,所要填写的表格如下表所示:

实际上,建模的最终结果就是填满权重矩阵。


如何确定指标权重(橙色部分)???
两个两个指标进行比较,最终根据两两比较的结果来推算出权重。
如果用1‐9表示重要程度(见下表),请你两两比较上述这五个指标对于选择最终的旅游景点的重要性:
标度含义
1
表示两个因素相比,具有同样重要性
3
表示两个因素相比,一个因素比另一个因素稍微重要
5
表示两个因素相比,一个因素比另一个因素明显重要
7
表示两个因素相比,一个因素比另一个因素强烈重要
9
表示两个因素相比,一个因素比另一个因素极端重要
2、4、6、8
上述两相邻判断的中值
倒数
A和 B 相比如果标度为 3 ,那么 B A 相比就是 1/3

填写判断矩阵:

判断矩阵
O景色花费居住饮食交通
景色11/2433
花费21755
居住1/41/711/21/3
饮食1/31/5211
交通1/31/5311

总结:上面这个表是一个 5*5 的方阵,我们记为A,对应的元素为𝑎ij .

这个方阵有如下特点:

1.aij表示的意义是,与指标𝑗相比,𝑖的重要程度。

2.当 i = 𝑗 时,两个指标相同,因此同等重要记为1,这就解释了主对角线元素为1

3. 𝑎ij >   0 且满足 𝑎ij * aji =  1 (我们称满足这一条件的矩阵为 正互反矩阵 )。
实际上,上面这个矩阵就是层次分析法中的判断矩阵。

如何计算苏杭、北戴河和桂林在景色、花费等方面多占的权重(得分)???

解决方法 --- 构造判断矩阵

 

仍然使用1‐9表示重要程度,按照确定权重的方法来填写判断矩阵:

3.由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能用)。

 在上述五个表格中,若填写的判断矩阵为下述示例,可能会存在一个问题:

我们看景色一栏的对比,苏杭的景色比北戴河的好一点 即 苏杭 > 北戴河

                                        苏杭的景色和桂林的景色一样好 即 苏杭 = 桂林

                                        北戴河的景色比桂林的景色好一点 即 北戴河 > 桂林 

此时,出现了矛盾的地方。

所以,在此处,引出一致矩阵:
一致矩阵:
若矩阵中每个元素 𝑎ij>  0 且满足 𝑎ij * aji =  1 ,则我们称该矩阵为 正互反矩阵
在层次分析法中,我们构造的判断矩阵均是正互反矩阵。
若正互反矩阵满足 aij * ajk = aik ,则我们称其为 一致矩阵
注意:在使用判断矩阵求权重之前,必须对其进行 一致性检验。

一致性检验原理检验我们构造的判断矩阵和一致矩阵是否有太大的差别。 

 若正互反矩阵(判断矩阵)满足𝑎ij * aji = aik ,则我们称其为一致矩阵。此外,n 阶正互反矩阵 A 为一致矩阵时当且仅当最大特征值 λmax = n ,且当正互反矩阵 A 非一致时,一定,满q足 λmax > n 。总而言之,判断矩阵越不一致时,最大特征值与 n 相差就越大。


一致性检验的步骤:

<1>:计算一致性指标CI

CI=\frac{\lambda max - n}{n-1}

<2>:查找对应的平均随机一致性指标RI

 注:在实际运用中,n很少超过10,如果指标的个数大于10,则可考虑建立二级指标体系,或使用我们以后要学习的模糊综合评价模型。 RI我们只需要会查表即可。

<3>:计算一致性比例CR。

CR = \frac{CI}{RI}

如果CR < 0.1,  则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
经过一致性检验后,接下来需要我们计算权重。

4. 根据权重矩阵计算得分,并进行排序。

使用第一列的数据作示例,计算出来权重:

苏杭 =  1 /1+0.5+0.2= 0.5882 

北戴河 = 0.5 /1+0.5+0.2= 0.2941

桂林 = 0.2 / 1+0.5+0.2 = 0.1177
采用上述方法,计算出三列数据的权重填入表格中:

<1>:算数平均法求权重

第一步:将判断矩阵按照列归一化 (每一个元素除以其所在列的和)

第二步:将归一化的各列相加 ( 按行求和 )

第三步:将相加后得到的向量中每个元素除以 n 即可得到权重向量

公式可写作:

<2>:几何平均法求权重

第一步:将 A 的元素按照行相乘得到一个新的列向量
第二步:将新的向量的每个分量开 n 次方
第三步:对该列向量进行归一化即可得到权重向量
公式可写作:

 上图为几何法的计算结果。

<3>:特征值法求权重

使用二-3中求一致性检验的方法

第一步:求出矩阵 A 的最大特征值以及其对应的特征向量
第二步:对求出的特征向量进行归一化即可得到我们的权重

  上图为特征值法的计算结果。

5.填充权重矩阵

在此处我们使用特征值法所得权重填充矩阵,

其余的矩阵按照上述的方式进行计算,得出最终的结果,在此处,不再一一计算,直接给出结果:

 6.根据权重矩阵计算得分,并进行排序

 苏杭:

0.5954×0.2636+0.0819×0.4758+0.4286×0.0538+0.6337×0.0981+0.1667×0.1087=0.299

同理:北戴河得分为0.245,桂林得分为0.455。

0.455 > 0.299 > 0.245 即 桂林 > 苏杭 > 北戴河 

三:局限性

1.评价的决策层不能太多,太多的话n会很大,判断矩阵和一致矩阵差异 可能会很大。
2.如果决策层中指标的数据是已知的,层次分析法不易将这些已知的数据应用起来。

 

 

 

 

相关文章:

层次分析法

目录 一&#xff1a;问题的引入 二&#xff1a;模型的建立 1.分析系统中各因素之间的关系&#xff0c;建立系统的递阶层次结构。 2.对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较&#xff0c;构造两两比较矩阵&#xff08;判断矩阵&#xff09;。 3.由判…...

Error Handling

有几个特定的异常类允许用户代码对与CAN总线相关的特定场景做出反应: Exception (Python standard library)+-- ...+-- CanError (python-can)+-- CanInterfaceNotImplementedError+-- CanInitializationError...

leetcode:字符串相乘(两种方法)

题目&#xff1a; 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", nu…...

【爬虫练习之glidedsky】爬虫-基础2

题目 链接 爬虫往往不能在一个页面里面获取全部想要的数据&#xff0c;需要访问大量的网页才能够完成任务。 这里有一个网站&#xff0c;还是求所有数字的和&#xff0c;只是这次分了1000页。 思路 找到调用接口 可以看到后面有个参数page来控制页码 代码实现 import reques…...

03.有监督算法——决策树

1.决策树算法 决策树算法可以做分类&#xff0c;也可以做回归 决策树的训练与测试&#xff1a; 训练阶段&#xff1a;从给定的训练集构造出一棵树&#xff08;从根节点开始选择特征&#xff0c;如何进行特征切分&#xff09; 测试阶段&#xff1a;根据构造出来的树模型从上…...

网络协议详解之STP

目录 一、STP协议&#xff08;生成树&#xff09; 1.1 生成树协议核心知识点&#xff1a; 1.2 生成树协议与导致问题&#xff1a; 生成树含义&#xff1a; 1.3 802.1D 规则&#xff1a; 802.1D 缺点&#xff1a; 1.4 PVST cisco私有 1.5 PVST 1.6 快速生成树 快速的原…...

Eltima USB Network Gate 10.0 Crack

USB Network Gate -通过网络共享USB 设备 USB Network Gate (前身为以太网USB控制器USB) 轻松的通过网络(Internet/LAN/WAN)分享您的一个或者多个连接到您计算机的USB设备。 无论您身处异国还是近在隔壁办公室&#xff0c;您都可以轻松使用远程扫描仪、打印机、摄像头、调制解…...

SpringCloudGateway网关实战(一)

SpringCloudGateway网关实战&#xff08;一&#xff09; 目前对cloud的gateway功能还是不太熟悉&#xff0c;因此特意新建了对应的应用来尝试网关功能。 网关模块搭建 首先我们新建一个父模块用于添加对应的springboot依赖和cloud依赖。本模块我们的配置读取使用的是nacos&a…...

django中使用ajax发送请求

1、ajax简单介绍 浏览器向网站发送请求时 是以URL和表单的形式提交的post 或get 请求&#xff0c;特点是&#xff1a;页面刷新 除此之外&#xff0c;也可以基于ajax向后台发送请求&#xff08;异步&#xff09; 依赖jQuery 编写ajax代码 $.ajax({url: "发送的地址"…...

C++之std::list<string>::iterator迭代器应用实例(一百七十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

VSCode好用的插件

文章目录 前言1.Snippet Creator & easy snippet&#xff08;自定义代码&#xff09;2.Indent Rainbow&#xff08;代码缩进&#xff09;3.Chinese (Simplified) Language Pack&#xff08;中文包&#xff09;4.Path Intellisense&#xff08;路径提示&#xff09;5.Beauti…...

js实现滚轮滑动到底部自动加载(完整版)

这里我们用vue实现(原生js相似), 这里我们用一个div当作一个容器; <div class="JL" @scroll="onScroll" ref="inin"> <div v-for="(item,index) in this.list" :key="index" > ....…...

如何限制PDF打印?限制清晰度?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…...

python计算模板图像与原图像各区域的相似度

目录 1、解释说明&#xff1a; 2、使用示例&#xff1a; 3、注意事项&#xff1a; 1、解释说明&#xff1a; 在Python中&#xff0c;我们可以使用OpenCV库进行图像处理和计算机视觉任务。其中&#xff0c;模板匹配是一种常见的方法&#xff0c;用于在一幅图像中识别出与给定…...

阿里云云解析DNS核心概念与应用

文章目录 1.DNS解析基本概念1.1.DNS基本介绍1.2.域名的分层结构1.3.DNS解析原理1.4.DNS递归查询和迭代查询的区别1.5.DNS常用的解析记录 2.使用DNS云解析将域名与SLB公网IP进行绑定2.1.进入云解析DNS控制台2.2.添加域名解析记录2.3.验证解析是否生效 1.DNS解析基本概念 DNS官方…...

计算机竞赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 垃圾邮件(短信)分类算…...

compositionAPI

面试题&#xff1a;composition api相比于option api有哪些优势&#xff1f; 不同于reactivity api&#xff0c;composition api提供的函数很多是与组件深度绑定的&#xff0c;不能脱离组件而存在。 1. setup // component export default {setup(props, context){// 该函数在…...

vscode配置调试环境-windows系统

1. 下载Vscode 下载网址code.visualstudio.com 2. 安装vscode 直打开下载好的.exe文件进行安装即可 3.安装插件 4下载mingw编译器 4.1下载 下载网址sourceforge.net/projects/mingw-w64/files/ 下拉找到该位置&#xff0c;下载圈中的版本。下载速度有点慢 临时下载地址 htt…...

智慧城市能实现嘛?数字孪生又在其中扮演什么角色?

数字孪生智慧城市是将数字孪生技术与城市智能化相结合的新兴概念&#xff0c;旨在通过实时数字模拟城市运行&#xff0c;优化城市管理与服务&#xff0c;创造更智能、高效、可持续的城市环境。 在智慧城市中&#xff0c;数字孪生技术可以实时收集、分析城市各个方面的数据&…...

【置顶帖】关于博主/关于博客/博客大事记

关于博主 ● 信息安全从业者 ● 注册信息安全认证专家资质 ● CSDN认证业界专家、安全博客专家 、全栈安全领域优质创作者 ● 中国信通院【2021-GOLF IT新治理领导力论坛】演讲嘉宾 ● 安世加【2021-EISS企业信息安全峰会-上海】演讲嘉宾 ● CSDN【2022-隐私计算论坛】演讲嘉宾…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西&#xff0c;但是如果把三者放在一起&#xff0c;它们之间到底什么关系&#xff1f;又有什么联系呢&#xff1f;我不是很明白&#xff01;&#xff01;&#xff01; 就比如说&#xff1a; 沙箱&#…...