1.层次分析法与数学建模
在数学建模中,通常解决的问题是:“影响某一问题的几个因素的权重大小”、“产生某一问题的主要的因素分析”、“权重的大小分析”。当然在现实生活中的应用也是十分广泛而且一样的不知不觉。最简单的就是你想去几个地方旅游,但是要综合考虑时间、金钱、当地的风景、当地的旅游数是否较多等等因素。
2.层次分析法的基本原理与步骤
层次分析法( Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。直白的说就是那些没有什么数据,基本就是凭空和个人的主观意识让你去选择一个最佳的目标或者判断出对于一个目标,各个因素所占的权重。这样一说,它的优点和缺点也就很明显了:优点就是简单明了,不需要太多数据的处理;缺点就是主观性太强。因此如何尽量客观的两两比较因素之间的相对重要程度就比较重要了。基本上,大家的论文上写的都是”在查阅相关资料后,得到如下判断矩阵”。运用层次分析法建模,大体上可按下面四个步骤进行:
( i)建立递阶层次结构模型;
( ii)构造出各层次中的所有判断矩阵;
( iii)层次单排序及一致性检验;
( iv)层次总排序及一致性检验。
具体来说就是:
( i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
( ii)中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干
个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
( iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。

需要注意的是:
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地
层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配的元素过多会给两两比较判断带来困难。把三个层次画出来会比较容易理解:

3.构造判断矩阵
终于来到了正题,也是最基础和重要的一个环节。层次结构反映了因素之间的关系,但准则层中的各准则在目标衡量中所占的比重并不一定相同,在决策者的心目中,它们各占有一定的比例。所以才会觉得如何判断它们的相对大小很不容易。

设现在要比较 n 个因子 X = {x1,L, xn} 对某因素 Z 的影响大小, 怎样比较才能提
供可信的数据呢? Saaty 等人建议可以采取对因子进行两两比较建立成对比较矩阵的办法。即每次取两个因子xi 和 x j ,以 aij 表示 xi 和 x j 对 Z 的影响大小之比,全部比较结果用矩阵A = (aij )n×n 表示,称 A 为 Z − X 之间的成对比较判断矩阵(简称判断矩阵)。容易看出,若xi 与 x j 对 Z 的影响之比为 aij ,则 x j 与 xi 对 Z 的影响之比应为1/aij。
关于如何确定aij 的值, Saaty 等建议引用数字 1~9 及其倒数作为标度。
至于如何分为9个标度,据说是和心理学有关系的。
4.判断矩阵的一致性检验
当写出来判断矩阵之后还会存在一个问题,那就是按理来说如果i对j的重要程度是a,j对k的重要程度是b,那么理所应当i对k的重要程度应该a*b,有点符合“传递性”的感觉。但事实上不是这样的。所以需要进行一致性检验,如果在一定的合理范围之内,矩阵不需要修改,如果不在,则需要修改矩阵。我们可以由λmax 是否等于 n 来检验判断矩阵 A 是否为一致矩阵。由于特征根连续地依赖于aij ,故 λmax 比 n 大得越多, A 的非一致性程度也就越严重,λmax 对应的标准化特征向量也就越不能真实地反映出 因素在对目标的影响中所占的比重。因此,对决策者提供的判断矩阵有必要作一次一致性检验,以决定是否能接受它。
(1)计算一致性指标
CI=(入-n)/(n-1)

(2)查找平均随机一致性指标RI

(3)计算一致性比例
CR=CI/RI
当CR < 0.10 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正
矩阵符合一致性检验后,可以进行计算了:判断矩阵 A 对应于最大特征值λmax 的特征向量W ,经归一化后即为同一层次相应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。
5、层次总排序及一致性检验
上面我们得到的是一组元素对其上一层中某元素的权重向量。我们最终要得到各元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。总排序权重要自上而下地将单准则下的权重进行合成。

解释一下,比如A1这一列的b11……bn1,分别表示对于A1这一个目标,b11……bn1的重要程度分布。
对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进行。这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。设 B 层中与Aj 相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为CI( j) ,(j = 1,L,m ),相应的平均随机一致性指标为 RI( j)( CI( j)、 RI( j) 已在层次单排序时求得),则 B 层总排序随机一致性比例为
6、具体举例及代码
有一个毕业生为挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生,该毕业生考虑的因素有6个,研究课题、发展前途、待遇、同事情况、地理位置和单位名气。
那么这六个因素就是准则层,三个单位就是方案层,最后要求的就是应该去哪个单位。
1)准则层判断矩阵(主观性)

2)方案层判断矩阵(主观性)

(分别针对每一个B,判断C1、C2、C3之间的相对大小)

4)计算的 Matlab 程序如下:
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
-173-
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
纯文本文件txt3.txt中的数据格式如下:
1 1 1 4 1 1/2
1 1 2 4 1 1/2
1 1/2 1 5 3 1/2
1/4 1/4 1/5 1 1/3 1/3
1 1 1/3 3 1 1
2 2 2 3 3 1
1 1/4 1/2
4 1 3
2 1/3 1
1 1/4 1/5
4 1 1/2
5 2 1
1 3 1/3
1/3 1 1/7
3 7 1
1 1/3 5
3 1 7
1/5 1/7 1
1 1 7
1 1 7
1/7 1/7 1
1 7 9
1/7 1 1
1/9 1 1

《数学建模》之层次分析法相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 病毒传播数学建模matlab分析,数学建模MATLAB之分析法(一)

    [toc] 本篇分别有主成分分析,层次分析,聚类分析,因子分析的简单介绍以及在MATLAB(2018a)上使用的简单介绍 ( 附源码 ) 主成分分析 主成分分析-百度百科 简单讲:主成分分析就是取出几 ...

  10. 备战数学建模9-层次分析法模型

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

最新文章

  1. 计算机能力应用免考证明,青岛学信NIT认证可以免考《管理系统中计算机的应用》笔试+实践...
  2. win7 安装好redis 如何安装扩展
  3. python 仿真_Python SimPy 仿真系列 (2)
  4. Java 运行时数据区域
  5. halcon Matching-3D 3D匹配,持续更新
  6. 一个edit的学习笔记
  7. 在ubuntu 下 编译 在windows 下面使用的adb
  8. 函数式接口,方法引入
  9. DHCPv6相关知识简单总结
  10. 类ResourceBundle详解
  11. 生活,平淡,些许沉思,些许感概
  12. 本门藏经阁 - AndroidX
  13. 老板想留住的人,都具备这些品质
  14. 半监督学习笔记(四):熵最小化、代理变量
  15. 解决Spring JPA自动更新数据库的问题
  16. Success diary
  17. 开源免费录屏和直播软件OBS Studio教程(02)
  18. matlab计算滤波器品质因数,滤波器品质因数概述
  19. openFOAM combustion模块学习笔记——程序结构
  20. omron欧姆龙NJ NX程序 全自动锂电池二封机,主站NJ501-1400+威纶通触摸屏

热门文章

  1. iPhone 4 实现 HTC Sense 时钟动画天气
  2. openlayer5 半径不准 画圆_openlayers绘制圆形时设置半径以米为单位
  3. 响应式布局:CSS3弹性盒flex布局模型
  4. 操作系统 公交车司机与售票员进程协同活动问题 PV操作
  5. RTSP协议学习笔记
  6. 《来自Percal25号行星的哥顿人》
  7. JavaScript专题(二):深入理解iframe
  8. PowerBuilder学习笔记(4)数据窗口(DataWindow)
  9. 使用多个icon 字体图标库样式冲突问题
  10. 智能指针(unique_ptr、shared_ptr、weak_ptr)