2024国赛数学建模备赛|30种常用的算法模型之最优算法-层次分析法

 层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模 糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美 国运筹学家 T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的 多准则决策方法。

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

人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是 一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次 分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。

运用层次分析法建模,大体上可按下面四个步骤进行:

(i)建立递阶层次结构模型;

(ii)构造出各层次中的所有判断矩阵;

(iii)层次单排序及一致性检验;

(iv)层次总排序及一致性检验。 下面分别说明这四个步骤的实现过程。

1.1 递阶层次结构的建立与特点

应用 AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次 的结构模型。在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属 性及关系形成若干层次。上一层次的元素作为准则对下一层次有关元素起支配作用。 这些层次可以分为三类: (i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结 果,因此也称为目标层。 (ii)中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干 个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。 (iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等, 因此也称为措施层或方案层。 递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地 层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配 的元素过多会给两两比较判断带来困难

下面结合一个实例来说明递阶层次结构的建立

例 1 假期旅游有 P1、 P2 、 P3 3 个旅游胜地供你选择,试确定一个最佳地点。 在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反 复比较 3 个侯选地点。可以建立如图 1 的层次结构模型。

1.2 构造判断矩阵

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

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

 

 

 从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度, 又容易因此而提供虚假数据。Saaty 等人还用实验方法比较了在各种不同标度下人们判 断结果的正确性,实验结果也表明,采用 1~9 标度最为合适

最后,应该指出,一般地作次两两判断是必要的。有人认为把所有元素 都和某个元素比较,即只作n −1次比较就可以了。这种作法的弊病在于,任何一个判 断的失误均可导致不合理的排序,而个别判断的失误对于难以定量的系统往往是难以 避免的。进行次比较可以提供更多的信息,通过各种不同角度的反复比较, 从而导出一个合理的排序。

1.3 层次单排序及一致性检验

判断矩阵 A 对应于最大特征值λmax 的特征向量W ,经归一化后即为同一层次相 应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。 上述构造成对比较判断矩阵的办法虽能减少其它因素的干扰,较客观地反映出一 对因子影响力的差别。但综合全部比较结果时,其中难免包含一定程度的非一致性。 如果比较结果是前后完全一致的,则矩阵 A 的元素还应当满足:

 定义 2 满足关系式(1)的正互反矩阵称为一致矩阵。 需要检验构造出来的(正互反)判断矩阵 A 是否严重地非一致,以便确定是否接 受 A 。

定理 1 正互反矩阵 A 的最大特征根 λmax 必为正实数,其对应特征向量的所有分 量均为正实数。 A 的其余特征值的模均严格小于λmax 。

1.4 层次总排序及一致性检验

上面我们得到的是一组元素对其上一层中某元素的权重向量。我们最终要得到各 元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。总排序权重 要自上而下地将单准则下的权重进行合成

设上一层次( A 层)包含 A Am , , 1 L 共m 个因素,它们的层次总排序权重分别为 a am , , 1 L 。又设其后的下一层次( B 层)包含n 个因素 B1---- Bn ,  ,它们关于 Aj 的层

对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进 行。这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都 已具有较为满意的一致性。但当综合考察时,各层次的非一致性仍有可能积累起来, 引起最终分析结果较严重的非一致性。

 §2 层次分析法的应用

在应用层次分析法研究问题时,遇到的主要困难有两个:(i)如何根据实际情况 抽象出较为贴切的层次结构;(ii)如何将某些定性的量作比较接近实际定量化处理。 层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为 科学管理和决策提供了较有说服力的依据。但层次分析法也有其局限性,主要表现在: (i)它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维 过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。(ii)比较、 判断过程较为粗糙,不能用于精度要求较高的决策问题。AHP 至多只能算是一种半定 量(或定性与定量结合)的方法。 在应用层次分析法时,建立层次结构模型是十分关键的一步。现再分析一个实例, 以便说明如何从实际问题中抽象出相应的层次结构

例 2 挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该 生根据已有信息建立了一个层次结构模型,如图 2 所示

 准则层的判断矩阵如表 4 所示。

方案层的判断矩阵如表 5 所示。

层次总排序的结果如表 6 所示。

 根据层次总排序权值,该生最满意的工作为工作 1

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.mzph.cn/bicheng/53693.shtml

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

相关文章

网络安全服务基础Windows--第13节-加密技术

基本保密通信模型 密码学发展 1. 古典密码学(1949年之前) 主要特点:数据的安全基于算法的保密 ● 在古典密码学中,密码算法通常是通过⼿⼯或机械装置实现的。 ● 数据的安全性主要依赖于算法本身的保密性,即“安…

Return arguments from function calling with OpenAI API when streaming?

题意:在使用OpenAI API进行流式传输时,如何返回函数调用的参数? 问题背景: Ive made a simple OpenAI API example with function calling. Im only using function calling to format the response, Im not calling multiple fu…

一个vue前端的例子(六)如何获取table一行的id

比如我们要删除列表一行 vue中template中的scope到底是个什么&#xff1f;_vue template scope-CSDN博客 <el-button click"edit_tool(scope.$index)" type"warning" icon"el-icon-edit">编辑</el-button> 获取列表下标

Brave编译指南2024 Windows篇:Brave简介(一)

1.引言 随着互联网技术的不断发展&#xff0c;用户对隐私保护和安全性的需求日益增加。传统浏览器在这方面存在诸多不足&#xff0c;而Brave浏览器则通过一系列创新技术和功能&#xff0c;致力于为用户提供更好的隐私保护和浏览体验。Brave不仅屏蔽广告和跟踪器&#xff0c;还…

web项目如何部署到服务器上呢?——麻烦的方法

只需关注web项目如何部署到服务器上&#xff0c;因为服务器运行时就可以访问web项目了。 一、麻烦的方法 1、首先启动服务器 &#xff08;1&#xff09;找到bin文件夹 &#xff08;2&#xff09;双击运行startup.bat文件 &#xff08;3&#xff09;运行之后的界面如下&#…

Dart 3.5更新对普通开发者有哪些影响?

哈喽&#xff0c;我是老刘 Flutter 3.24以及Dart 3.5不久前发布了。 突然觉得时间过得好快。六年前刚开始使用Flutter 1.0的场景还在眼前。 之前写了一篇文章盘点Flutter 3.24的新功能对普通开发者有哪些影响。Flutter 3.24 对普通开发者有哪些影响&#xff1f;https://mp.wei…

vivado 设置物理约束

设置物理约束 在本实验中&#xff0c;您将为CPU网表设计创建物理约束&#xff0c;观察中的操作 GUI转换为Tcl命令。使用Tcl命令&#xff0c;可以轻松编写复杂的操作脚本 用于在流动的不同阶段重复使用。 注意&#xff1a;如果您从实验1继续&#xff0c;并且您的设计已打开&…

Centos7.9 安装Elasticsearch 8.15.1(图文教程)

本章教程,主要记录在Centos7.9 安装Elasticsearch 8.15.1的整个安装过程。 一、下载安装包 下载地址: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-15-1 你可以通过手动下载然后上传到服务器,也可以直接使用在线下载的方式。 wget https://artifacts…

【学术会议征稿】2024年智能驾驶与智慧交通国际学术会议(IDST 2024)

2024年智能驾驶与智慧交通国际学术会议(IDST 2024) 2024 International Conference on Intelligent Driving and Smart Transportation 智能驾驶和智慧交通利用新兴技术&#xff0c;使城市出行更加方便、更具成本效益且更安全。在此背景下&#xff0c;由中南大学主办的2024年…

LLMs技术 | 整合Ollama实现本地LLMs调用

前言 近两年AIGC发展的非常迅速&#xff0c;从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型&#xff0c;再到后来的小参数模型&#xff0c;从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化&#xff0c;还有模型的使用方式。…

65、Python之函数高级:装饰器实战,通用日志记录功能的动态添加

引言 从系统开发的规范性来说&#xff0c;日志的记录是一个规范化的要求&#xff0c;但是&#xff0c;有些程序员会觉得麻烦&#xff0c;反而不愿意记录日志&#xff0c;还是太年轻了…… 其实&#xff0c;如果个人保护意识稍微强一些&#xff0c;一定会主动进行日志的记录的…

python_openCV_计算图片中的区域的黑色比例

希望对原始图片进行处理&#xff0c;然后计算图片上的黑色和白色的占比 上图&#xff0c; 原始图片 import numpy as np import cv2 import matplotlib.pyplot as pltdef cal_black(img_file):#功能&#xff1a; 计算图片中的区域的黑色比例#取图片中不同的位置进行计算&…

关于武汉芯景科技有限公司的IIC缓冲器芯片XJ4307开发指南(兼容LTC4307)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.总线超时&#xff0c;自动断开连接 当 SDAOUT 或 SCLOUT 为低电平时&#xff0c;将启动内部定时器。定时器仅在相应输入变为高电平时重置。如果在 30ms &#xff08;典型值&#xff09; 内没有变为高…

国产芯片LT9211D:MIPI转LVDS转换器,分辨率高达3840x2160 30Hz,碾压其它同功能芯片

以下为LT9211D&#xff1a;MIPI TO LVDS的芯片简单介绍&#xff0c;供各位参考 Lontium LT9211D是一款高性能MIPI DSI/CSI-2到双端口LVDS转换器。LT9211D反序列化 输入MIPI视频数据&#xff0c;解码数据包&#xff0c;转换格式化的视频数据流到LVDS发射机输出AP与移动显示面板或…

ppt模板简约下载哪个?这些模板简约又大气

中秋节&#xff0c;作为中国传统节日中最具诗意的一个&#xff0c;月圆人团圆的美好寓意总是让人心生向往。 想在国际网站上宣传这一传统节日的独特魅力&#xff0c;却担心自己的PPT不够吸引人&#xff1f;别急&#xff0c;使用精美免费的ppt模板&#xff0c;可以让你的演示瞬…

Python Flask_APScheduler定时任务的正确(最佳)使用

描述 APScheduler基于Quartz的一个Python定时任务框架&#xff0c;实现了Quartz的所有功能。最近使用Flask框架使用Flask_APScheduler来做定时任务&#xff0c;在使用过程当中也遇到很多问题&#xff0c;例如在定时任务调用的方法中需要用到flask的app.app_context()时&#…

【Canvas与艺术】菊花孔雀螺旋

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>菊花孔雀螺旋</title><style type"text/css">…

.net MAUI应用生命周期

.NET Multi-platform App UI (.NET MAUI) 应用通常有四种执行状态&#xff1a;“未运行”、“运行中”、“已停用”和“已停止”。 当应用从未运行状态转换为运行状态、从运行状态转换为已停用状态、从已停用状态转换为已停止状态、从已停止状态转换为运行状态&#xff0c;以及…

【Kubernetes】K8s 的鉴权管理(二):基于属性 / 节点 / Webhook 的访问控制

K8s 的鉴权管理&#xff08;二&#xff09;&#xff1a;基于属性 / 节点 / Webhook 的访问控制 1.基于属性的访问控制&#xff08;ABAC 鉴权&#xff09;2.基于节点的访问控制&#xff08;node 鉴权&#xff09;2.1 读取操作2.2 写入操作 3.基于 Webhook 的访问控制3.1 基于 We…

【AcWing】861. 二分图的最大匹配(匈牙利算法)

匈牙利算法&#xff0c;他可以在比较快的时间复杂度之内告诉我们左边和右边成功匹配的最大数是多少 匹配指的是边的数量&#xff0c;成功的匹配指的是两个未被使用的点之间存在一条边(就不存在两条边共用了一个点的)。 匈牙利算法可以返回成功匹配的最大匹配数是多少。 #incl…