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年之前) 主要特点:数据的安全基于算法的保密 ● 在古典密码学中,密码算法通常是通过⼿⼯或机械装置实现的。 ● 数据的安全性主要依赖于算法本身的保密性,即“安…

(一)NoSQL之 【Redis配置】

一、非关系型数据库 1.1、什么是非关系数据库 NoSQL(NoSQL Not Only SQL ),意思是“不仅仅是 SQL”,是非关系型数据库的总称。 除了主流的关系型数据库外的数据库,都认为是非关系型。 不需要预先建库建表定义数据存储表结构,每…

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…

Android Radio2.0——设置广播配置标志(一)

在 Android Radio 中,RDS (Radio Data System) 是一种在调频(FM)广播信号中嵌入数字信息的技术,它可以携带额外的数据信息,如电台名称、节目信息等。 一、广播配置设置 在介绍 RDS 广播配置设置前我们先来了解一些常见的 RDS 代码及其含义: AF (Alternative Frequencies…

深入探讨ES6高级特性与实际应用

深入探讨ES6高级特性与实际应用 目录 🌀 生成器(Generators)🔄 迭代器(Iterators)🚀 异步编程🔮 符号(Symbols)🛠️ 类装饰器(Class…

一个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> 获取列表下标

Java 使用 Redis

Java 使用 Redis 1. 引言 Redis 是一个开源的高性能键值对数据库。它支持多种类型的数据结构&#xff0c;如字符串、列表、集合、散列表等&#xff0c;适用于多种场景&#xff0c;如缓存、消息队列等。Java 是一种广泛使用的编程语言&#xff0c;因此在 Java 应用程序中使用 …

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

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

Spark2.x 入门:决策树分类器

一、方法简介 ​ 决策树&#xff08;decision tree&#xff09;是一种基本的分类与回归方法&#xff0c;这里主要介绍用于分类的决策树。决策树模式呈树形结构&#xff0c;其中每个内部节点表示一个属性上的测试&#xff0c;每个分支代表一个测试输出&#xff0c;每个叶节点代…

美术馆订票门票预约展览预约售票订票百度图表计算机毕业设计/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

1. 需求分析 首先&#xff0c;明确需求&#xff1a; 功能&#xff1a;门票预约、展览预约、售票、查询等系统&#xff1a;前后端分离的小程序技术栈&#xff1a;Spring Boot (后端)、Vue.js (前端)、MySQL (数据库) 2. 设计系统架构 设计系统的整体架构&#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;并且您的设计已打开&…

面试—JVM

目录 JVM内存结构 类的生命周期 双亲委派机制 打破双亲委派机制 垃圾回收机制 判断垃圾回收算法 垃圾回收算法 G1垃圾回收器 JVM内存结构 程序计数器 记录要执行的字节码指令的地址&#xff0c;可以控制程序指令的进行&#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…

Python世界:力扣题43大数相乘算法实践

Python世界&#xff1a;力扣题43大数相乘算法实践 任务背景思路分析方案1方案2方案3方案4无测试套主调测试套主调 本文小结 任务背景 问题来自力扣题目43&#xff1a;字符串相乘&#xff0c;大意如下&#xff1a; Given two non-negative integers num1 and num2 represented a…

【学术会议征稿】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; 计算图片中的区域的黑色比例#取图片中不同的位置进行计算&…