数学建模 -- 层次分析法(AHP)

article/2025/9/12 5:09:34

层次分析法的特点:在对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。是对难于完全定量的复杂系统作出决策的模型和方法。

决策是指在面临多种方案时需要依据一定的标准选择某一种方案。

1 层次分析法概述

层次分析法(AHP法):该方法将定量分析定性分析结合起来,用决策者的经验判断各衡量目标能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数利用权数求出各方案的优劣次序,比较有效地应用于那些难以定量方法解决的课题

层次分析法是社会、经济系统决策中的有效工具。其特征是合理地将定性与定量的决策结合起来,按照思维、心理的规律把决策过程层次化、数量化。是系统科学中常用的一种系统分析方法。

层次分析法的3大典型应用

  1. 用于最佳方案的选取(选择运动员、选择地址)
  2. 用于评价类问题(评价水质状况、评价环境)
  3. 用于指标体系的优选(兼顾科学和效率)

2 层次分析法的基本原理

根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最底层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。

运用层次分析法构造系统模型时,大致分为以下4个步骤:

  1. 建立层次结构模型
  2. 构造判断(成对比较)矩阵
  3. 层次单排序及其一致性检验
  4. 层次总排序及其一致性检验

2.1 建立层次结构

将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最底层,绘出层次结构图。

一定要绘制出层次结构图!!!

  • 最高层:决策的目的、要解决的问题
  • 中间层:决策时的备选方案
  • 最底层:考虑的因素、决策的准则
  • 若只有两层,没有备选方案,最高层为目标层,最底层为因素层

层次分析法的思维过程的归纳:将决策问题分为3个或多个层次

  • 最高层(目标层):表示解决问题的目的,即层次分析要达到的总目标,通常只有一个总目标
  • 中间层、准则层、指标层、约束层:表示采取的某种措施、政策、方案等实现预定总目标所涉及的中间环节
  • 最底层(方案层):表示将选用的解决问题的各种措施、政策、方案等,通常有几个方案可选

例1:大学生就业选择问题

 例2:选择旅游目的地

 2.2 构造判断(成对比较矩阵)

不把所有因素放在一起比较,而是两两相互比较

心理学家认为成对比较的因素不宜超过9个,否则不宜比较,即每层不要超过9个因素

判断矩阵元素aij的标度方法

 

 注意:值不具有传递性,不成比例

2.3 层次单排序及其一致性检验

 2.4 层次总排序及其一致性检验

  • 计算某一层所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序
  • 这一过程是从最高层到最底层依次进行的

3 层次分析法的步骤和方法

层次分析法的基本步骤归纳如下:

1.建立层次结构模型:

        包括目标层、准则层、方案层

2.构造成对比较矩阵:

        从第二层开始用成对比较矩阵和1~9尺度

3.计算单排序权向量并做一致性检验

        对每个成对比较矩阵计算最大特征值及其对应的特征向量,利用一致性指标、随机一致性指标和一致性比率做一致性检验。若检验通过,特征向量(归一化后)即为权向量;若不通过,需要重新构造成对比较矩阵。

4.计算总排序权向量并做一致性检验。

        计算最下层对最上层总排序的权向量,利用总排序一致性比率CR进行检验。

4 层次分析法的应用

旅游问题

 

 

 归一化特征向量加起来等于1

 

 

% disp函数会直接将内容输出在Matlab命令窗口中
disp('请输入准则层判断矩阵A(n阶)');
A=input('A=');
[n,n]=size(A); % 计算矩阵A的行和列
[V,D]=eig(A);%求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。%求出最大特征值和它所对应的特征向量
tempNum=D(1,1); % 特征值的初值
pos=1;    % 标记的第一个数
for h=1:nif D(h,h)>tempNumtempNum=D(h,h);pos=h;end
end   % 找最大特征值及其对应的位置 
w=abs(V(:,pos));    % 找出最大特征值对应的特征向量
w=w/sum(w);    % 归一化处理
t=D(pos,pos);  % 最大特征值
disp('准则层特征向量w=');disp(w);disp('准则层最大特征根t=');disp(t);%以下是一致性检验
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59 1.60 1.61 1.615 1.62 1.63];
CR=CI/RI(n);
if CR<0.10disp('此矩阵的一致性可以接受!');disp('CI=');disp(CI);disp('CR=');disp(CR);
else disp('此矩阵的一致性验证失败,请重新进行评分!');
end

5 应用层次分析法的数学建模案例

选拔优秀参赛队员问题

 

6 层次分析法的优缺点分析

优点:系统性、实用性、简洁性

缺点:具有主观性,结果比较粗超,难以为众人所接受


http://chatgpt.dhexx.cn/article/biOx2h9j.shtml

相关文章

层次分析法(AHP)

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

【AHP】层次分析法 | 过程解读 案例实践

层次分析法 | 过程解读 案例实践 导读 本文将带领读者了解 AHP 法&#xff0c;通过案例学习&#xff0c;学会使用 AHP 法解决实际问题。在适当的地方将深入了解&#xff0c;例如 AHP 法过程中出现的不一致情况&#xff0c;我们将详细讨论为什么会出现不一致情况&#xff0c;如…

AHP层次分析法与python代码讲解(处理论文、建模)

目录 AHP是啥 题目 ①构建阶梯层次结构 ②构建判断矩阵 ④综合算术平均法 、几何平均法、特征值法求权重 方法1&#xff1a;算术平均法求权重 一般步骤 表达式解释 代码实现 方法2&#xff1a;几何平均法求权重 一般步骤 表达式解释 代码实现 方法3&#xff…

用人话讲明白AHP层次分析法(非常详细原理+简单工具实现)

用人话讲明白AHP层次分析法&#xff08;非常详细原理简单工具实现&#xff09; 文章目录 目录 1、前言与算法简述 2、AHP层次分析法过程 2.1 构建层次评价模型 2.2 构造判断矩阵 2.3 层次单排序与一致性检验 2.3.1 层次单排序 2.3.2 求解最大特征根与CI值 2.3.3 根据…

微信公众号如何设置开发者密码(APPSecret)?

1.电脑端登录微信公众号&#xff0c;在左侧的导航栏找到</>开发里的“基本配置”&#xff0c;点击进入 2.基本配置页面如下 3.点击开发者密码&#xff08;APPSecret&#xff09;启用按钮 4.有弹窗提示用管理员的微信号扫码后才能操作 5.手机端管理员微信扫码&#xff0c;…

iOS “[App] if we're in the real pre-commit handler we can't actually add any new fences due

最近运行APP&#xff0c;发现了这个问题&#xff0c;本着宁可错看&#xff0c;不可放过的原则&#xff0c;上stackoverFlow学习了一下&#xff1a; 链接&#xff1a;http://stackoverflow.com/questions/38458170/ios-10-app-if-were-in-the-real-pre-commit-handler-we-cant-…

微信小程序重置AppSecret 之后需要做的事情

现在appSecret是密文的如果保存不妥当 需要管理账号用重置 具体位置如下&#xff1a; 点击重置之后 2小时之内程序不会出现任何错误 但是2小时之后 当你打开你的微信小程序之后就会发现有很多接口出现如下错误&#xff1a; invalid appsecret 这个时候只需要联系后端同学 将之…

如何查看小程序的APPID和AppSecret

小程序APPID可以在手机上打开小程序后&#xff0c;点击右上角三点&#xff1a; 然后点击中间位置的小程序名称&#xff0c;进入小程序介绍页面&#xff1a; 点击“更多资料”后&#xff0c;进入页面就可以看到上方有APPID&#xff1a; 另一种方法&#xff1a; 在微信公众平台登…

微信小程序——查看AppId和AppSecret

1.登录微信公众平台&#xff1a;https://mp.weixin.qq.com/ 2.点击开发管理--------------》开发设置&#xff1a;

uniapp开发微信小程序解决上线:审核问题“包含明文的AppSecret,存在泄漏的安全风险“以及上线之后接口请求失败

微信小程序上线审核提示&#xff1a;审核问题“包含明文的AppSecret&#xff0c;存在泄漏的安全风险“ 解决&#xff1a; 原因是我在登录通过uni.login获取到code然后用code获取openid时用到了AppSecret&#xff0c;因为之前后端没空写接口我就在前端自己获取的openid&#xff…

通过appId和appSecret生成accessToken访问api后端接口(接口授权)

功能点 &#xff08;1&#xff09;申请获取appId和appSecret &#xff08;2&#xff09;通过appId和appSecret获取accessToken &#xff08;3&#xff09;mysql和redis进行key-value键值对存储 &#xff08;4&#xff09;对需要的接口url进行请求地址拦截 效果图&#xff1a; &…

微信开发者之AppID和AppSecret举例子

-- 请不要为爱你的人流泪&#xff0c;因为爱你的人不会让你流泪&#xff01; 序 今天对这2东西做个相对全面的介绍&#xff0c;不一定深入&#xff0c;但是对实际开发还是很有必要的 我们在微信开发中总是会绕不开2个单词&#xff1a; AppID&#xff1a;开发者ID,有些叫AppK…

安全课堂|关于小程序AppSecret密钥泄露漏洞官方

原文链接:https://developers.weixin.qq.com/community/minihome/doc/0004a84fcb0bb0e89eddbaa5156401 安全课堂&#xff5c;关于小程序AppSecret密钥泄露漏洞官方 微信团队04-27 为进一步提升小程序的安全性和用户体验&#xff0c;目前平台对提审的小程序均需进行安全检测&…

【微信小程序】项目上线所需AppID、AppSecret和原始ID获取的逐步方法

一、简述 本文内容面向业务老师&#xff0c;通过详细的逐步方法&#xff0c;帮助对流程不熟悉的有微信小程序管理员权限的业务老师&#xff0c;通过微信公众平台&#xff0c;获得项目上线所需的AppID、AppSecret、原始ID&#xff0c;不熟悉流程的开发人员也可以阅读。 二、进…

微信小程序AppID、AppSecret如何获取

进入微信公众平台 https://mp.weixin.qq.com/ 获取AppID&#xff08;小程序ID&#xff09; 微信公众平台 - 开发 - 开发管理 - 开发设置 获取AppSecret 管理员用户&#xff0c;同AppID页面&#xff0c;点击“生成”&#xff0c;生成小程序秘钥 注意&#xff1a;尽量只生成一次&…

值得收藏!这 100 个 Python 实战小项目真棒!

学习 Python 会有这么一个阶段&#xff0c;太简单的程序看不上眼&#xff0c;复杂的开源项目又有点力不从心&#xff0c;这个时候&#xff0c;你就需要接触点简单的 Python 小项目来提升 Python 技能。 最近逛GitHub, 碰巧碰上有这样一个项目&#xff0c;收集了 100 个实用的 …

2022最新python100个实战练手项目,【附源码】,快来学习起来吧!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性&#xff0c;已被广泛使用。那么要想学会并掌握Python&#xff0c;可以实战的练习项目是必不可少的。 接下来&#xff0c;我将给大家介绍20个非常实用的Python项目&#xff0c;帮助大家更好的学习Python。大家…

python爬虫实战小项目

本文所讲的爬虫实战属于基础、入门级别&#xff0c;使用的是python2.7实现的。 爬虫原理和思想 本项目实现的基本目标&#xff1a;在捧腹网中&#xff0c;把搞笑的图片都爬下来&#xff0c;注意不需要爬取头像的图片&#xff0c;同时&#xff0c;将图片命好名放在当前的img文件…

django项目实战基于Python实现的电影推荐系统

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Python项目介绍 资料获取 Python项目介绍 计算机毕业设计python毕设项目之django电影推荐系统-IT实战课堂_哔哩哔哩_bilibili计算机毕业设计python毕设项目之django电影推荐系统-IT实战…

给缺少Python项目实战经验的人

我们在学习过程中最容易犯的一个错误就是&#xff1a;看的多动手的少&#xff0c;特别是对于一些项目的开发学习就更少了&#xff01; 没有一个完整的项目开发过程&#xff0c;是不会对整个开发流程以及理论知识有牢固的认知的&#xff0c;对于怎样将所学的理论知识应用到实际…