掌握决策之道:层次分析法(AHP)的步骤、应用与局限性

目录

一、层次分析法简介

举一个小例子: 

评价类问题可用打分解决,比如:小华高考结束后,在华科和武大两所学校之间做抉择。

评价类问题可用打分解决 

二、层次分析法的步骤

(一)一道引出层次分析法的例题

 (二)建立层次分析法的步骤

(1)第一步、建立层次结构模型

(2) 第二步、构造判断矩阵

 (3)第三步、 求权重并做一致性检验

​​①计算最大特征值方法1:算术平均法

②计算最大特征值方法2:几何平均法

③计算最大特征值方法3:特征值法 

三种方法结果综合分析: 

(4)第四步、根据权重矩阵计算得分,并进行排序

三、总结 

判断矩阵不满足一致性检验,CR>0.1,如何修正? 

层次分析法的优点:

 层次分析法的一些局限性:

层次分析法的适用情况:


一、层次分析法简介

层次分析法是建模比赛中最基础的模型之一,其主要用于解决评价问题

例如:选择哪种方案最好、哪位运动员或者员工表现的更优秀

举一个小例子: 

评价类问题可用打分解决,比如:小华高考结束后,在华科和武大两所学校之间做抉择。

评价类问题可用打分解决 

最终建议小华选择得分最高的一个学校:华科。 

二、层次分析法的步骤

(一)一道引出层次分析法的例题

小华同学想出去旅游。在查阅了网上的攻略后,他初步选择了苏杭、北戴河和桂林三地之一作为目标景点。

你确定评价指标、形成评价体系来为小华同学选择最佳的方案。

 解决评价类问题,首先要想到以下个问题:

我们评价的目标是什么?

我们为了达到这个目标有哪几种可选的方案?

评价的准则或者说指标是什么?(我们根据什么东西来评价好坏)

 解决评价类问题,大家首先要想到以下三个问题:

① 我们评价的目标是什么?

  答:为小华同学选择最佳的旅游景点。

② 我们为了达到这个目标有哪几种可选的方案?

  答:三种,分别是苏杭、去北戴河和去桂林

③ 评价的准则或者说指标是什么?(我们根据什么东西来评价好坏)

  答:题目没给相关数据支撑,需要我们查阅相关的资料。

一般而言,前两个问题的答案是显而易见的,第三个问题的答案 需要我们根据题目中的背景材料、常识以及网上搜集到的参考资料进行结合,从中筛选出最合适的指标

脑洞:假如现在小华就在我们面前,我们要对他提哪些问题才能帮他合理地做决定?  

问题: 一次性考虑这五个指标之间的关系,往往考虑不周。

解决方法: 两个两个指标进行比较,最终根据两两比较的结果来推算出权重。

目的:求权重!!!!!!

有同学可能会想,直接叫小华填好这张表不就完事啦~

  这样往往比较片面和不周全  (隔一天问他答案可能就变)

在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难 是这些比重常常不易定量化。此外,当影响某因素的因子较多时,直接考虑各因子对该因素有多大程度的影响时,常常会因考虑不周全、顾此 失彼而使决策者提出与他实际认为的重要性程度不相一致的数据,甚至 有可能提出一组隐含矛盾的数据。

                       ——选自司守奎[kuí]老师的数学建模算法与应用

 (二)建立层次分析法的步骤

(1)第一步、建立层次结构模型

解决评价类问题,大家首先要想到以下三个问题:

① 我们评价的目标是什么?

  答:为小华同学选择最佳的旅游景点。

② 我们为了达到这个目标有哪几种可选的方案?

  答:三种,分别是苏杭、去北戴河和去桂林

③ 评价的准则或者说指标是什么?(我们根据什么东西来评价好坏)

  答:题目没给相关数据支撑,需要我们查阅相关的资料。

注意:如果你用到了层次分析法,那么这个层次结构图要放在你的建模论文中。  

(2) 第二步、构造判断矩阵

根据五个指标,分别构造出来的判断矩阵,如下: 

 (3)第三步、 求权重并做一致性检验

在使用判断矩阵求权重之前,必须对其进行一致性检验。

一致性检验的目的:为了检验各元素重要度之间的协调性,避免出现AB重要,BC重要,而C又比A重要这样的矛盾情况出现。

引理:n阶判断矩阵A为一致矩阵时,当且仅当最大特征值=n

           n阶判断矩阵A非一致时,一定满足最大特征值>n

判断矩阵越不一致时,最大特征值与n相差就越大

三种方法计算最大特征值:

①算术平均法(和积法)

②几何平均法(方根法)

③特征值法

​​①计算最大特征值方法1:算术平均法

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

第二步:将归一化的各列按行求和

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

 结果如下:

②计算最大特征值方法2:几何平均法

③计算最大特征值方法3:特征值法 

三种方法结果综合分析: 

(4)第四步、根据权重矩阵计算得分,并进行排序

三、总结 

判断矩阵不满足一致性检验CR>0.1,如何修正? 

1. 重新构建判断矩阵:请专家重新评估要素之间的相对重要程度,确保判断矩阵满足一致性要求。

2. 调整判断矩阵中的数据:对判断矩阵中不满足一致性的元素进行微调,以达到一致性。可以使用辅助软件(如 YaahpAHP-Online 等)提供的功能进行检查和处理

3.降低判断矩阵阶数:如果判断矩阵的阶数过高,可以考虑降低其阶数,从而简化模型。这可以通过合并一些相关性较高的指标或子目标来实现。但要注意,降低阶数可能会影响分析结果的准确性。

往一致矩阵上调整    使一致矩阵各行成倍数关系

层次分析法的优点:

系统性:将对象视作系统,按照分解、比较、判断、综合的思维方式进行决策。成为继机理分析、统计分析之后发展起来的系统分析的重要工具

实用性定性与定量相结合,能处理许多用传统的最优化技术无法着手的实际问题,应用范围很广,同时,这种方法使得决策者与决策分析者能够相互沟通,决策者甚至可以直接应用它,这就增加了决策的有效性

简洁性:计算简便,结果明确,具有中等文化程度的人即可以了解层次分析法的基本原理并掌握该法的基本步骤,容易被决策者了解和掌握。便于决策者直接了解和掌握。

 层次分析法的一些局限性:

层次分析法的适用情况:

它适合用于以下几种情况:

1. 当决策问题涉及多个因素且这些因素之间存在层次关系时,可以使用层次分析法来理清各因素之间的关系,并确定各个层次的权重。

2. 当决策问题涉及到一些难以量化的因素时,层次分析法可以帮助我们将这些因素转化为可以比较的量化指标,从而进行决策。

3. 当决策问题需要考虑多方面的观点和意见时,层次分析法可以帮助我们综合各方的观点,形成统一的决策。

4. 当决策问题需要平衡多种目标和利益时,层次分析法可以帮助我们确定各个目标和利益的权重,以便找到最佳的平衡点。

总之,层次分析法适合于那些涉及多个因素、难以量化、需要考虑多方面观点和需要平衡多种目标和利益的决策问题。

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

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

相关文章

如何在创建之前检测 Elasticsearch 将使用哪个索引模板

作者:来自 Elastic Musab Dogan 概述 Elasticsearch 提供两种类型的索引模板:旧(legacy)索引模板和可组合 (composable) 索引模板。 Elasticsearch 7.8 中引入的可组合模板旨在替换旧模板,两者仍然可以在 Elasticsear…

深入理解MVCC与Read View:并发控制的关键要素

MVCC MVCC的几个问题1.update、insert、select和delete如何在MVCC中维护版本链?2.select读取,是读取最新的版本呢?还是读取历史版本?3.当前读和快照读4.那为什么要有隔离级别呢?5.如何保证,不同的事务&…

【go从入门到精通】golang单元测试

单元测试 随着软件开发变得越来越复杂,确保服务按预期运行至关重要。实现这一目标的方法之一是通过测试。在Go中,我们可以进行单元测试和集成测试,以确保我们的代码正确并满足要求。单元测试的最终目标是断言一小部分逻辑“单元”的行为符合预期。我们通过在测试中调用该函数…

Nginx - 配置文件结构(一)

安装Nginx 以 Ubuntu 为例,安装命令为 sudo apt install nginx常用指令 # 检查配置文件是否有问题 nginx -t# 热加载配置文件 nginx -s reload# 等待处理完当前请求并退出 nginx -s quit# 快速退出 nginx -s stop目录结构 nginx 默认安装位置一般在 /etc/nginx …

组件通信总结

组件通信是前端开发中的一个重要概念,它指的是组件之间通过某种方式来传递信息以达到某个目的。以下是对组件通信的总结: 一、组件间通信的分类 父子组件间通信:这是最常见的组件通信场景,主要使用自定义属性(props&…

Automa:一键自动化,网页数据采集与工作流程优化专家

Automa:解锁自动化浏览器潜能,赋能工作效率,让复杂任务变得简单- 精选真开源,释放新价值。 概览 Automa是一款创新的网页自动化工具,专为寻求提升工作效率、简化数据收集过程的现代工作者设计。它融合了先进的数据抓取…

模板:vector(顺序表容器)

1.构造函数 explicit vector (const allocator_type& alloc allocator_type()); //默认构造函数explicit vector (size_type n, const value_type& val value_type(),const allocator_type& alloc allocator_type()); //n个重复的valtemplate <class Input…

Angular入门

Angular版本&#xff1a;Angular 版本演进史概述-天翼云开发者社区 - 天翼云 安装nodejs&#xff1a;Node.js安装与配置环境 v20.13.1(LTS)-CSDN博客 Angular CLI是啥 Angular CLI 是一个命令行接口(Angular Command Line Interface)&#xff0c;是开发 Angular 应用的最快、最…

大模型时代下两种few shot高效文本分类方法

介绍近年(2022、2024)大语言模型盛行下的两篇文本分类相关的论文&#xff0c;适用场景为few shot。两种方法分别是setfit和fastfit&#xff0c;都提供了python的包使用方便。 论文1&#xff1a;Efficient Few-Shot Learning Without Prompts 题目&#xff1a;无需提示的高效少…

深入了解 MyBatis 插件:定制化你的持久层框架

序言 MyBatis 是一个流行的 Java 持久层框架&#xff0c;它提供了简单而强大的数据库访问功能。然而&#xff0c;有时候我们需要在 MyBatis 中添加一些自定义的功能或行为&#xff0c;来满足特定的需求。这时&#xff0c;MyBatis 插件就发挥了重要作用。本文将深入探讨 MyBati…

如何创建 Django 模型

简介 在上一篇教程“如何创建 Django 应用程序并将其连接到数据库”中&#xff0c;我们介绍了如何创建一个 MySQL 数据库&#xff0c;如何创建和启动一个 Django 应用程序&#xff0c;以及如何将其连接到一个 MySQL 数据库。 在本教程中&#xff0c;我们将创建 Django 模型&a…

孩子如何备考编程竞赛

为了帮助孩子更好地备考编程竞赛&#xff0c;家长和老师还可以采取以下一些措施&#xff1a; 制定合理的学习计划&#xff1a;家长和孩子可以一起制定一个合理的学习计划&#xff0c;包括每天的学习时间安排、学习内容和目标等。通过制定学习计划&#xff0c;可以帮助孩子更有条…

An 2024下载

An2024下载&#xff1a; 百度网盘下载https://pan.baidu.com/s/1cQQCFL16OUY1G6uQWgDbSg?pwdSIMS Adobe Animate 2024&#xff0c;作为Flash技术的进化顶点&#xff0c;是Adobe匠心打造的动画与交互内容创作的旗舰软件。这款工具赋予设计师与开发者前所未有的创意自由&#x…

HIVE卡口流量需求分析

HIVE卡口流量需求分析 目录 HIVE卡口流量需求分析 1.创建表格 插入数据 2.需求 3.总结&#xff1a; 1.创建表格 插入数据 CREATE TABLE learn3.veh_pass( id STRING COMMENT "卡口编号", pass_time STRING COMMENT "进过时间", pass_num int COMMENT …

huggingface 笔记:AutoClass (quick tour 部分)

AutoClass 是一个快捷方式&#xff0c;它可以自动从模型的名称或路径检索预训练模型的架构。只需要为任务选择适当的 AutoClass 及其关联的预处理类。 1 AutoTokenizer 分词器负责将文本预处理成模型输入的数字数组。控制分词过程的规则有多种&#xff0c;包括如何分割单词以…

【iOS】架构模式

文章目录 前言一、MVC二、MVP三、MVVM 前言 之前写项目一直用的是MVC架构&#xff0c;现在来学一下MVP与MVVM两种架构&#xff0c;当然还有VIPER架构&#xff0c;如果有时间后面会单独学习 一、MVC MVC架构先前已经详细讲述&#xff0c;这里不再赘述&#xff0c;我们主要讲一…

Golang | Leetcode Golang题解之第87题扰乱字符串

题目&#xff1a; 题解&#xff1a; func isScramble(s1, s2 string) bool {n : len(s1)dp : make([][][]int8, n)for i : range dp {dp[i] make([][]int8, n)for j : range dp[i] {dp[i][j] make([]int8, n1)for k : range dp[i][j] {dp[i][j][k] -1}}}// 第一个字符串从 …

【SAP ABAP学习资料】通过RFC接口上传图片至SAP 图片格式转换 图片大小调整

SAP图片相关&#xff1a; 链接: 【SAP ABAP学习资料】图片上传SAP 链接: 【SAP ABAP学习资料】屏幕图片预览 链接: 【SAP ABAP学习资料】smartforms打印图片&#xff0c;动态打印图片 需求&#xff1a; SAP上传图片只能本地电脑选择图片通过SE78或PERFORM IMPORT_BITMAP_BDS上…

linux程序分析命令(三)

linux程序分析命令(三) **ldd&#xff1a;**用于打印共享库依赖。这个命令会显示出一个可执行文件所依赖的所有共享库&#xff08;动态链接库&#xff09;&#xff0c;这对于解决运行时库依赖问题非常有用。**nm&#xff1a;**用于列出对象文件的符号表。这个命令可以显示出定…

Milvus入门初探

引言 Milvus 是一款开源的向量数据库&#xff0c;专为处理向量搜索任务而设计。它支持多种类型的向量&#xff0c;如浮点向量、二进制向量等&#xff0c;并且可以处理大规模的向量数据。Milvus 在 AI 应用中非常流行&#xff0c;尤其是在需要执行相似性搜索或最近邻搜索的场景…