代码 / 数学建模

层次分析法

4 分钟阅读
代码数学建模数学建模层次分析法

态度可以转变,生活却不可逆转。-学层次分析法有感

此文章用于记录我学习数学建模的十大模型中层次分析法的学习笔记与自己的理解,本文大多数是由清风老师的数学建模的指导归纳总结得到的,以备今后的数学建模。如果遇到了类似的题目可以尽快的找到相应的模型进行解决。
如果本文能帮助到其他阅读到此文章的同志,我也是不胜荣幸。
如果文章有所纰漏,也欢迎大家指出。

用途:解决评价性问题

层次分析法主要用于解决评价性问题,比如问你,选择哪种方案最好,哪个人或事物更为优秀。
需要注意的是,这种问题不包括已经给出具体数据的问题,更多的是比较模糊、较为主观的问题。你需要根据自己的生活经历,网络上搜集的评价资料和结合背景材料去得到相关的评价指标。
值得注意的是,我们可以在例如知网等比较权威的网站上去查找相关的论文资料并加以引用,可以让你的文章显得更为专业且结合其他人的观点可以让你的文章更为全面。

评判标准

那么评价类问题怎么去评判呢,我们使用打分来解决,根据权重表格计算得分

指标与方案 指标权重 方案1 方案2
指标1
指标2

我们不妨定义 $a_{i j}& 表示为第i行第j列的元素
显然针对每个因素所占的权重必定和为1,指标权重的和为1
即 $a_{1-n 1}$ 之和为1
对于每个指标k, $a_{k 2-n}$ 的和同样为1.
而我们评判每个方案时,是不是就可以通过计算指标权重 $\times$ 方案对应指标的值。通过比较每个方案所对应的结果,我们就可以得知最佳的方案是什么了。

重要程度表

标度 含义
1 A对于B同样重要
3 A对于B稍微重要
5 A对于B明显重要
7 A对于B强烈重要
9 A对于B极端重要
2,4,6,8 两个相邻判断的中值

其中,1/3表示B对于A稍微重要,以此类推

制作判断指标权重的表格

通过以上的重要程度表,我们可以根据专家(自己)的判断,制定一份这样的表格

指标 景色 花费 居住 饮食 交通
景色 1 1/2 4 3 3
花费 2 1 7 5 5
居住 1/4 1/7 1 1/2 1/3
饮食 1/3 1/5 2 1 1
交通 1/3 1/5 3 1 1

$a_{i j}$ 表示与j指标相比,i的重要程度
$a_{i j}$ >0且 $a_{i j}$ * $a_{j i}$ = 1 称之为正互反矩阵。
此矩阵为判断矩阵

一致矩阵

由于 $a_{i j}$ = i的重要程度/j的重要程度
我们可以知道 $a_{i j}$ * $a_{j k}$ = $a_{i k}$ ,列出数学计算公式即可得到
而满足上述关系的矩阵我们称之为一致矩阵
一致矩阵有一个特点,各行或者各列之间成倍数关系,利用这个我们可以直接得出这个矩阵是不是一致矩阵

最大特征值

由于本人大一,太菜,没有学过线性代数,我只能复制清风老师上课给的一个性质。
这个最大特征值你可以不用了解它究竟是个啥,怎么去计算,matlab上面有它的计算函数
我们目前只需要知道对于特征值λ:n阶正互反矩阵A为一致矩阵时当且仅当最大特征值λmax=n否则λmax必定大于n

一致性检验

步骤:

  1. 计算一致性指标CI = ( λmax - n ) / ( n - 1 )
  2. 查找对应的平均随机一致性指标RI
阶数 RI
1 0
2 0
3 0.52
4 0.89
5 1.12
6 1.26
7 1.36
8 1.41
9 1.46
10 1.49
11 1.52
12 1.54
13 1.56
14 1.58
15 1.59
  1. 计算一致性比例CR=CI/RI
    如果CR<0.1则一致性检验可以接受,否则需要修正
    什么,你问我怎么去修正?你是专家,肯定你来修正啊。

计算一致矩阵的权重

直接对第一列进行归一化处理,因为第一列与其他列都是成比例的,直接对第一列进行归一化处理是等于其他列对
归一化处理:
比如说对于如下矩阵

PD|A|B
A|1|2
B|1/2|1

我们直接计算A:1/(1+1/2) B:(1/2)/(1+1/2)即可

计算判断矩阵的权重

我们不妨先假设矩阵A=
a11 a12 … a1n
a21 a22 … a2n
… … … …
an1 an2 … ann

算术平均法求权重

  1. 分别对每一列进行归一化处理
  2. 把每一行的数据分别加起来
  3. 把2得到的数据除以n
    这种方法称之为算术平均法求权重
    那么算术平均法求得得权重向量wi