数学建模学习笔记:层次分析法


最近在同学安利下入手华科老学长清风的数学建模课程,在这里记录下笔记。做笔记的目的主要是将70分钟的视频精简成30分钟能看完的文档,方便日后复习用,也希望能给予后来者一点帮助。

一、问题引入

 小明高考完,准备挑大学。
 他有两个选择:华科,武大。
 他从四个方面评判学校:学习氛围,就业前景,男女比例,校园景色。评判权重分别为0.4,0.3,0.2,0.1。
 对这四个方面,小明分别对两个学校打分(打分也是归一化的,即每一方面分数总和是1)如下:
权重打分
 指标权重乘以每一项的分数,求和,就得到某个学校的综合评分。
 于是,小明选择了华科。

二、进一步引入

 我们称这类问题为评价类问题,上面使用的方法叫层次分析法。层次分析法的名字怎么来的最后会介绍。

拿到一个评价类问题,我们一般会问三个问题:

  • 目标是什么?
  • 有几种可供选择的方案?
  • 评价准则是什么?

下面再看一道例题,来正式走一遍层次分析法。
例题 小明去旅游,有苏杭、北戴河、桂林三个待选方案。请你确定评价指标形成评价体系来为小明选择最佳方案。

评价三步走

 评价指标可以根据常识来给出,也可以根据背景材料,还可以上网搜集相关资料来确定。 1
 一通操作之后,我们确定了五个评判指标:景色,花费,居住,饮食,交通。
然后填表,
准备填表

(同一种颜色的格子之和为1)
  如果直接填表,由于填表带有较大的主观性,而且选择越多填表越困难、主观偏差越大。因此我们还是先两两比较,看两两之间谁更重要。  

三、判断矩阵与一致性检验

  先填红色格子,即先确定“景色”这一指标下哪个景点更好。(虽然红色格子在文字意义上表示的是“谁更好”而不是权重,但由于数学处理上的统一,以后同一颜色的格子里面的数都称作权重。)
  一次性考虑三个指标之间的关系困难,先两两比较,作出两两比较矩阵(正式名称:判断矩阵/比较矩阵)。
判断矩阵

   a i j a_{ij} aij表示 重 要 程 度 i 重 要 程 度 j \frac{重要程度i}{重要程度j} ji。矩阵的对称位置相乘应该为1,这样的矩阵称为正互反矩阵。只需要比较 C 5 2 C_{5}^{2} C52次就能填完。
  但是由于填表带有主观因素,很容易出现矛盾现象,比如
矛盾判断矩阵

  为了衡量矛盾程度,我们定义了一致矩阵。一致矩阵就是理想的、没有矛盾的矩阵。
一致判断矩阵

  观察可发现一致矩阵有个特点,就是各行/各列之间呈倍数关系。(证明略)
  比如,第二列的每个元素都是第一列的两倍。

引理 (证明略) :对n阶正互反矩阵A,
若A是不一致矩阵,则其最大特征值 λmax > n。
若A是一致矩阵,则其有一个特征值为n,其他特征值全为0;且特征值n对应的特征向量为 k [ 1 a 11 , 1 a 12 , . . . , 1 a 1 n ] T k{[\frac{1}{{{a_{11}}}},\frac{1}{{{a_{12}}}},...,\frac{1}{{{a_{1n}}}}]^T} k[a111,a121,...,a1n1]T,恰好就是A的第一列。

  因此,我们利用特征值来进行一致性检验。基本思想是,矛盾程度越大,则λmax越大于n。
  一致性检验标准步骤如下,详细证明需学习统计学,此处略。
一致性检验

(其中RI是查表得到的。)

  如果一致性检验未通过,则需要修改判断矩阵,尽可能使其各行各列呈倍数关系。 

四、根据判断矩阵得到权重值

  现在,我们填好了一张表,而且通过了一致性检验,保证我们填的表不会太矛盾。那么,怎么根据填好的判断矩阵(某一方面两两之间的重要性比较)得到权重值(某一方面所有对象间的重要性比较)呢?

1.一致性矩阵

  先从最简单的情况考虑,假如我们的判断矩阵是一致性矩阵,
一致性矩阵

  由于各行各列成比例,我们可以随便找一行/一列,这一行/一列就说明了三者之间的重要程度比较了。
  比如对于本例,看第一列,如果苏杭的重要程度是1,那么北戴河的重要程度就是0.5,桂林的重要程度就是0.25。于是我们可以得出归一化权重,
归一化权重计算

2.非一致矩阵

 有三种方法:算术平均法,几何平均法,特征值法。[2]

 下面以算术平均法为例。
非一致矩阵

  如果矩阵是非一致的,可以对每一列都仿照上述操作,比如苏杭,求出取每一列时苏杭的权重,然后对求出的三个苏杭的权重求平均值即可。
权重计算

上面的操作用矩阵表示即为(矩阵表示,易于用matlab操作)
矩阵表示

用严谨数学语言表示即为(严谨数学语言表述,可写进论文中)
数学表示

  除了算数平均法,论文中常用的是特征值法。
  我们之前说过,一致矩阵对应特征值n的特征向量是 k [ 1 a 11 , 1 a 12 , . . . , 1 a 1 n ] T k{[\frac{1}{{{a_{11}}}},\frac{1}{{{a_{12}}}},...,\frac{1}{{{a_{1n}}}}]^T} k[a111,a121,...,a1n1]T,这恰好是一致矩阵的第一列。也就是说,如果矩阵是一致矩阵,对其特征向量进行归一化就可以得到权重了。
  类比到非一致矩阵,求出非一致矩阵对应其最大特征值λmax的特征向量,然后对此特征向量进行归一化,将归一化后的各值作为权重即可。

至此,我们已经根据两两比较的判断矩阵得到了权重值。2
权重值结果

把算出来的权重值填入总表中,
填表


五、填完总表,计算总分,得出结论

 对其他指标也同理操作,填完黄色、绿色、紫色、粉红色。
 对蓝色格子也是一样的操作,填完蓝色。
填表
  最后,算出各方案的加权总分,比较哪个更好即可。可以把表格放进excel里用函数算。

六、层次分析法小结与拓展

1.层次分析法基本流程

第一步:三问三答,建立层次结构
三问三答
层次结构

第二步:对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵).比如第二层(评价准则的权重)。
在这里插入图片描述

第三步:一致性检验。

第四步:用判断矩阵计算权重。

第五步:完成填表。计算总分。

2.层次分析法的缺点

(1)n不能太大,即每一层的对象数不能太多,否则主观判断误差很大,且RI查表最多只能查到n=15.

(2)如果各层对象有明确的比较数据(比如说,社会调研已经发现,华科的男女比例和武大的男女比例有明确的数据),就不适合主观因素强的层次分析法了,而应该用其他能利用数据进行客观比较的方法。

3.拓展

(1)上面讲的层次分析法都只有三层。实际上可以有很多层。
在这里插入图片描述

(个人疑问:很多层的话,怎么列判断矩阵、总表呢?)

(2)上面讲的层次分析法,上层与下层之间都是全连接。实际上不一定是全连接。
非全连接层次结构

不是全连接的话,对应权重直接设为0就行了。

补充


  1. 小明去旅游那道例题,如何通过上网搜集相关资料来确定评价指标?
    优先级:知网搜索-谷歌搜索-微信搜索-知乎搜索
    搜索关键字:旅游 选择 因素
    能搜到相关论文最好,比如本教程里在知网搜到一篇《大学生周末旅游选择目的地选择影响因素研究》,就很适合。比起引用博客之类的,引用论文显得你更专业。 ↩︎

  2. 以往论文中常用特征值法。但老师建议写论文的时候三种方法都用一遍,把三种方法算出来的权重、进而算出来的综合分数都算出来,然后进行排序、比较,还可以在最后加一段话提高逼格。
    在这里插入图片描述 ↩︎

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值