层次分析法,简称AHP,是建模比赛中最基础的模型之一,其主要用于解决评价类问题,例如:哪中方案更好?哪位运动员或者员工表现得更优秀?

一、层次分析模型建立部分

下面我们看一道引出层次分析得例题,如下所示:

对于上面的题目,我们看样发现是一个评价类问题,解决评价类问题,我们需要想到一下三个问题:

1-评价的目标是什么?

在这里显然是选择目标景点。

2-为了达到目标有几种方案可以选择?

在这里是有3种方案可以选择的。

3-评价的指标或者准则是什么?就是根据什么评价方案的好坏?

从题目中提取,头脑风暴,或者从知网搜相关的指标,也可以在参考文献中引用。

假设我们找到了如下5个指标:旅游景色,旅游花费,居住环境 ,饮食情况,交通便利情况;

对于5个评价指标,我们怎么样分配权重呢,如果直接分配权重往往考虑不周。我们采用的解决方法是;每两个指标进行比较,共比较10次,最终根据两两比较的结果推算出权重。

用1-9表示重要程度,两两比较上述5个指标对最终选择旅游经典的重要性。

我们可以询问小明10次,就可以,把如下表格填满。当然需要注意的是:实际情况下,是没有小明帮我们回答,层次分析法中这张表是交给"专家"给我们填的,其实这个专家就是我们自己,哈哈哈,判断矩阵的填写根据题目意思和查资料,判断因素的重要性。

对于上面的表格矩阵,我们称为判断矩阵,我们可以总结如下三点:

下面是关于判断矩阵内部的介绍,在使用判断矩阵求权重之前,我们需要对其进行以执行检验,如如果不一致性过大,判读矩阵就失效了。

一致性检验原理:检验我们构造的判断矩阵和一致矩阵是否有太大的差别。

一致性检验的步骤如下:

具体地,那么RI是怎么计算得到的呢?

如果判断矩阵通过一致性检验,那么怎么通过判断矩阵计算权重?

方法1:算数平均法求权重

对于如下判断矩阵,分别使用第1,2,3列计算权重。

对权重进行算术平均:

将判断矩阵按照列归一化,就是将求出的权重填入如下表中:

将归一化的各列相加,即按行求和,如下所示:

将相加得到的向量每个元素除以n,则得到权重向量,如下所示:

上述通过判断矩阵得到的权重向量的过程可以通过如下公式表示:

方法2:几何平均法求权重

具体步骤如下:

方法3:特征值法求权重

一致矩阵有一个特征值为n,其余特征值为0,特征值为n时,对应的特征向量刚好为:

这一特征向量刚好就是矩阵的第一列。

特征值法求权重步骤:

第一,求出判断矩阵的最大特征值及其对应的特征向量。

第二,求出特征向量进行归一化,即可得到我们的权重。

注:正常竞赛中用特征值法求权重就可以。

通过判断矩阵求出权重后,如何计算各个方案的得分呢?如下是每个因素的权重信息:

每个方案的得分就是对应的两列相乘后求和,如下所示:

通过上面的题目我们重新看一下层次分析法:

首先层次分析法,要考虑三个方面,分别为目标、准则、方案;我们要分析系统的各因素之间的关系,建立系统的递阶层次结构。

上述题目的递阶层次结构如下:

数学建模论文中,用到层次分析法,需要给出层次结构。

然后,根据题目数据和搜网上的资料,填写判断矩阵,上述准则层5个因素的判断矩阵如下:

然后,由判断矩阵计算被比较元素相对于该准则的相对权重,并进行一致性检验,检验通过才能用。可以使用三种方法计算权重。

使用三种方法计算权重会保证结果的稳健性。可在论文中加上如下:

对于判断矩阵不一致,可以根据一致性矩阵各行各列呈倍数关系,往一致性矩阵上调。

层次分析法的局限性

1-评价的决策层不能太多,太多会导致判断矩阵和一致性矩阵偏差太大,RI也求不出。

2-如果决策层的数据是已知的,不适合用层次分析法。

 上面写的有点混乱,看下面总结吧!!!

总结:层次分析法步骤:

1-要考虑三个方面,分别为目标、准则、方案;我们要分析系统的各因素之间的关系,建立系统的递阶层次结构。

2-根据一致矩阵给出判断矩阵,当然这个判断矩阵可以根据题目,也可以网上查找给出。

3-根据判断矩阵使用三种方法求权重,需要做归一化处理。

4-求出权重后进行一致性检验,检验通过,才能使用该权重,也就是判断矩阵给的合理。

5-最后根据权重,计算每个方案的得分,得分越高,则该方案越好。

下面看一下层次分析法的MATLAB代码是实现:

clear; clc
%矩阵A是给出的判断矩阵
A = [1,1,4,1/3,3; 1,1,4,1/3,3; 1/4,1/4,1,1/3,1/2; 3,3,3,1,3; 1/3,1/3,2,1/3,1] ;
%方法1:算数平均法求权重%第一步:将判断矩阵按照列归一化,即按列求和,让相应元素除以该列的元素和
Sum_A = sum(A,1) ; %按列求和
n = size(A,1) ; %得到矩阵A的行数
SUM_A = repmat(Sum_A,n,1) ; %将按列求和得到的向量重复n次,变成一个n*1的矩阵
stand_A = A ./ SUM_A ; %归一化,就是每个元素除以对应列的和%第二步,将归一化的各列相加,即按行求和
disp('算术平均法求权重的结果为:') ;
disp(sum(stand_A,2) /  n) ;%方法2:几何平均法求权重%第一步,将矩阵A按照行相乘,得到一个列向量
Prduct_A = prod(A,2) ;%第二步,将新的向量每个值开n次方
Prduct_n_A = Prduct_A .^(1/n) ;%对该向量进行归一化即可得到权重向量,即将列向量的每一个元素除以列向量的和即可
disp('几何平均法求权重的结果为:') ;
disp(Prduct_n_A ./ sum(Prduct_n_A)) ;%方法3:特征值法求权重%第一步:求出矩阵A的最大特征值和其对应的特征向量
[V,D] = eig(A) ; %V是特征向量,D是特征值
Max_eig = max(max(D)) ; %求出最大特征值
[r,c] = find(D==Max_eig, 1) ; %找到最大特征值行和列,找到第一个满足条件的即可%第二步:对求出的向量进行归一化,即可得到权重
disp('特征值求权重的结果为:') ;
disp(V(:,c) ./ sum(V(:,c))) ;%计算一致性,一致性检验
CI = (Max_eig - 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] ; %查表就可以,支持最多n=15
CR = CI / RI(n) ; %计算一致性比例
if(CR<0.1)disp('判断矩阵A的一致性可以接受!!!') ;
elsedisp('判断矩阵A的一致性不可以接受!!!') ;
end

备战数学建模9-层次分析法模型相关推荐

  1. 数学建模之层次分析法模型

    目录 问题 问题实例 问题分析 建立层次分析法模型 分析权重的方法 ​编辑 填表指标的权重​编辑 一致性检验 一致性检验的引入 一致性检验的步骤 计算判断矩阵 归一化处理 算术平均法求权重 几何平均法 ...

  2. 【数学建模】层次分析法AHP(评价与决策)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 2. 如何构建层次结构模型 3. 如何构建成对比较矩阵 4. 如何进行一致性检验 四.应用场景举例(旅游问题) 1. 建模 2. 构造成 ...

  3. 数学建模之层次分析法AHP

    层次分析法(Analytic Hierarchy Process,AHP)这是一种定性和定量相结合的.系统的.层次化的分析方法.这种方法的特点就是在对复杂决策问题的本质.影响因素及其内在关系等进行深入 ...

  4. (一)【数学建模】层次分析法

    文章目录 1. 评价类问题可用打分解决 (1)确定权重的方法(分而治之的思想): 1) 确定判断矩阵 2)计算权重 <1>算术平均法求权重 <2>几何平均法求权重 <3& ...

  5. 【数学建模】—— 层次分析法(AHP)

    层次分析法 The analytic hierarchy process (AHP) 建模比赛中最基础的算法之一,主要用于解决评价类的 解决评价类问题,首先要想到以下三个问题: 我们评价的目标是什么? ...

  6. 【数学建模】层次分析法

    层次分析法 引例 层次分析法介绍 成对比较阵和一致性检验 组合权向量 层次分析法步骤 代码实现 RI 一致性检验 层次单排序 计算组合权向量(层次总排序) 经典案例 代码实现 练习训练 参考文献 引例 ...

  7. 【数学建模】层次分析法(AHP)-Python实现

    1 前言 本文主要讲解层次分析法(AHP)的python实现,后续会跟进实例分析 2 代码实现 导入包 import numpy as np 2.1 构造判断矩阵 判断矩阵一般采用专家意见法,也就是德 ...

  8. 数学建模之层次分析法详解(附个人论文)

    根据清风老师的课程学习,收获很大,https://www.bilibili.com/video/BV1DW411s7wi 1.该模型所解决的问题 评价类问题.(如哪个地方比较好,哪位员工优秀) 2. ...

  9. 数模01【层次分析法模型】

    学习网址:[强烈推荐]清风:数学建模算法.编程和写作培训的视频课程以及Matlab等软件教学 视频课件:[链接:https://pan.baidu.com/s/17J_RzjwcKTH7xedkVel ...

最新文章

  1. 四象限法推导lm曲线_【老王讲放射】四象限理论
  2. 金升阳5V开关电源LM25-23B05
  3. 国内外知名光端机品牌大全
  4. 在pycharm中使用conda虚拟环境(conda虚拟环境是已经创建好的),解决python安装包文件很费劲的问题
  5. list.php tid= field,dedecms列表页模板中调用当前栏目文章数
  6. Notepad++如何对比文件 Notepad++对比两个文件代码方法
  7. python自动翻译excel某一列_【python excel实例教程】怎样用Python将excel的某一列生成一个列表?...
  8. ASP.NET伪静态的方法及相关资料
  9. 软考 信息安全工程师怎么样
  10. 快速开发实用工具VRTK-011
  11. uniapp银行卡卡片
  12. 屏幕刷新频率怎么更改?
  13. 数显之家快讯:「SHIO世硕心语」改变你的人生格局,2021年你应当做这三件事!
  14. 图形学常见概念与算法-纹理过滤
  15. 8月房价上涨城市数量增多 涨幅全线扩大
  16. 春江水暖鸭先知,不破楼兰誓不还
  17. 解锁万亿级市场,边缘计算不“边缘”
  18. 【2023亲测有效】Pandownload 归来!加速效果极佳!
  19. [陈鹏导师精益项目实战]华北区家电行业精益改善项目第五期启动
  20. 干票大的,230万篇文章随你下载!

热门文章

  1. 如何将PDF文件转换为PNG图片?
  2. 幼儿抽象逻辑思维举例_熊孩子到底在想什么—幼儿思维干货速记!
  3. JS事件详解和js事件委托
  4. Excel公式大全 excel自动求减 15个常用excel函数公式
  5. 【操作系统】LinuxKernel-VFS虚拟文件系统 认知框架构建(super_block,inode,dentry,file)
  6. 第二章华氏度摄氏度转换
  7. 【笔记】在 Windows 中制作 Ubuntu 系统的USB启动盘
  8. c语言文件合并,c++实现合并文件以及拆分实例代码
  9. android 电子书源码,翻页效果
  10. python基础——数据结构之元组