2024美赛数学建模常用数学建模模型之——层次分析法

一、层次分析法的基本原理与步骤

人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是
一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次
分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
运用层次分析法建模,大体上可按下面四个步骤进行:
i )建立递阶层次结构模型;
ii )构造出各层次中的所有判断矩阵;
iii )层次单排序及一致性检验;
iv )层次总排序及一致性检验。
下面分别说明这四个步骤的实现过程。
1.1 递阶层次结构的建立与特点
应用 AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次
的结构模型。在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属
性及关系形成若干层次。上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:
i )最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结
果,因此也称为目标层。
ii )中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干
个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
iii )最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,
因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地
层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配
的元素过多会给两两比较判断带来困难。
下面结合一个实例来说明递阶层次结构的建立

二、构造判断矩阵

层次结构反映了因素之间的关系, 但准则层中的各准则在目标衡量中所占的比重 并不一定相同,在决策者的心目中,它们各占有一定的比例。

在确定影响某因素的诸因子在该因素中所占的比重时, 遇到的主要困难是这些比 重常常不易定量化。此外, 当影响某因素的因子较多时, 直接考虑各因子对该因素有 多大程度的影响时, 常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的 重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。为看清这一点, 可作如下假设:将一块重为 1 千克的石块砸成n 小块,你可以精确称出它们的重量, 设为 w1 ,  , wn  ,现在,请人估计这 n 小块的重量占总重量的比例(不能让他知道各  小石块的重量),此人不仅很难给出精确的比值,而且完全可能因顾此失彼而提供彼  此矛盾的数据。

设现在要比较n 个因子X = {x1 ,  , xn } 对某因素Z 的影响大小, 怎样比较才能提 供可信的数据呢? Saaty 等人建议可以采取对因子进行两两比较建立成对比较矩阵的  办法。即每次取两个因子xi xj ,以 aij 表示xi xj Z 的影响大小之比, 全部比较 结果用矩阵 A = (aij )n ×n 表示,称 A Z  X 之间的成对比较判断矩阵(简称判断矩 阵)。容易看出,若xi xj Z 的影响之比为aij ,则 xj xi Z 的影响之比应为

从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度,
又容易因此而提供虚假数据。 Saaty 等人还用实验方法比较了在各种不同标度下人们判
断结果的正确性,实验结果也表明,采用 1~9 标度最为合适。最后,应该指出,一般地作 n( n −1)/2 次两两判断是必要的。有人认为把所有元素 都和某个元素比较,即只作n 1 次比较就可以了。这种作法的弊病在于,任何一个判 断的失误均可导致不合理的排序,而个别判断的失误对于难以定量的系统往往是难以 避免的。进行 n ( n 1)/2次比较可以提供更多的信息,通过各种不同角度的反复比较, 从而导出一个合理的排序.

三、层次单排序及一致性检验

四、层次总排序及一致性检验

五、层次分析法的应用

在应用层次分析法研究问题时,遇到的主要困难有两个:( i )如何根据实际情况
抽象出较为贴切的层次结构;( ii )如何将某些定性的量作比较接近实际定量化处理。
层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为
科学管理和决策提供了较有说服力的依据。但层次分析法也有其局限性,主要表现在:
i )它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维
过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。( ii )比较、
判断过程较为粗糙,不能用于精度要求较高的决策问题。 AHP 至多只能算是一种半定
量(或定性与定量结合)的方法。
   在应用层次分析法时,建立层次结构模型是十分关键的一步。现再分析一个实例, 以便说明如何从实际问题中抽象出相应的层次结构。
2 挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该生根据已有信息建立了一个层次结构模型,如图 2 所示。
根据层次总排序权值,该生最满意的工作为工作 1
计算的 Matlab 程序如下:
clc,clear 
fid=fopen('txt3.txt','r'); 
n1=6;n2=3; 
a=[]; 
for i=1:n1 tmp=str2num(fgetl(fid)); a=[a;tmp]; %读准则层判断矩阵
end 
for i=1:n1 str1=char(['b',int2str(i),'=[];']); str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); eval(str1); for j=1:n2 tmp=str2num(fgetl(fid)); eval(str2); %读方案层的判断矩阵end
end 
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
[x,y]=eig(a); 
lamda=max(diag(y)); 
num=find(diag(y)==lamda); 
w0=x(:,num)/sum(x(:,num)); 
cr0=(lamda-n1)/(n1-1)/ri(n1) 
for i=1:n1 [x,y]=eig(eval(char(['b',int2str(i)]))); lamda=max(diag(y)); num=find(diag(y)==lamda); w1(:,i)=x(:,num)/sum(x(:,num)); cr1(i)=(lamda-n2)/(n2-1)/ri(n2); 
end 
cr1, ts=w1*w0, cr=cr1*w0

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

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

相关文章

数据库设计-DDL

D D L \huge{DDL} DDL DDL:数据库定义语言,用来定义数据对象(数据库、表) 简单操作 首先在cmd中进行操作,登录数据库 show databases; -- 以列表的形式显示所有的数据库create database [if not exists] 数据库名称…

ngrok-内网穿透

一、访问官网下载相关的内容 Download (ngrok.com) linux或者windows可供选择,主要在于你的项目跑在什么地方 选择下载 二、获取Authtoken 点击右上角登录,没有号用谷歌账号登录即可跳转 三、在Windows进行内网穿透 下载打开 打开 运行在命令行中&am…

CodeWave智能开发平台--02--目标:文档快速阅读--02新手入门

摘要 本文是网易数帆CodeWave智能开发平台系列的第03篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,并对新手入门的内容重新排序 CodeWave智能开发平台的03次接触 CodeWave参考资源 网易数帆CodeWave开发者社区课程中心 网易数帆CodeWave开发…

爬虫入门与urllibrequests

前情摘要 一、web请求全过程剖析 我们浏览器在输入完网址到我们看到网页的整体内容, 这个过程中究竟发生了些什么? 我们看一下一个浏览器请求的全过程 接下来就是一个比较重要的事情了. 所有的数据都在页面源代码里么? 非也~ 这里要介绍一个新的概念 那就是页面渲染数据的…

【零基础入门TypeScript】TypeScript - 运算符

目录 ​编辑 什么是操作员? 算术运算符 关系运算符 逻辑运算符 按位运算符 赋值运算符 杂项运算符 否定运算符 (-) 字符串运算符:连接运算符 () 条件运算符 (?) 类型运算符 类型运算符 实例化 什么是操作员? 运算符定义将对数…

yolo增加Shape-IoU,完美超越SIoU/EIoU/CIoU

论文地址:https://arxiv.org/pdf/2312.17663.pdf 代码地址:GitHub - malagoutou/Shape-IoU 摘要 作为检测定位分支的重要组成部分,边界框回归损失在目标检测任务中起着重要作用。现有的边界框回归方法通常考虑GT框和预测框之间的几何关系&…

Arrays

Arrays 用来操作数组的一个工具类 Arrays提供的常见方法 方法名说明public static String toString(类型 [ ] arr)返回数组的内容 public static int [ ] copyOfRange(类型 [ ] arr,起始索引,结束索引)…

uniapp 使用wx.getFuzzyLocation获取当前的模糊地理位置

前言: 最近在进行一个小程序项目开发的时候,需要用到定位的功能,然后首先是尝试了getLocation方法,但是sccess中的内容始终无法打印,后来才知道是需要申请权限,在连续小程序后台管理员申请权限之后&#x…

插入排序算法

插入排序是一种简单直观的排序算法,其工作原理是通过构建有序序列,从后向前扫描,找到相应位置并插入。直接插入排序是插入排序的一种,它每次将一个待排序的记录按其关键字大小插入到前面已经排序的子序列中的适当位置,…

【Week-P4】CNN猴痘病识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.3 ⭐torch.utils.data.DataLoader()参数详解6.1 print()常用的三种输出格式6.2 修改网络结构6.2.1 增加池化、卷积和bn层6.2.2 增加卷积、bn、卷积、bn 🍨 本文为&#x1…

Uniapp使用wx.getFuzzyLocation()方法,没有超过日调用次数,报错:“此key每日调用已达到上限”

前言: 最近在进行一个小程序项目开发的时候,使用wx.getFuzzyLocation()方法,没有超过日调用次数,但是却出现了报错:“此key每日调用已达到上限”。 解决方案: 打开腾讯位置服务 - 立足生态,连…

Eureka学习思维导图

一、Eureka Server原理解析 参考:https://www.jianshu.com/p/eb690e6ab11d 二、Eureka Client源码解析 参考:https://www.jianshu.com/p/6e8850387da6