【数学建模】1.1层次分析法模型

模型介绍

建模比赛中最基础的模型之一,主要用于解决评价类问题(选择哪种方案最好,哪位员工表现得更加优秀等)

例题分析

评价类问题可以用打分解决

小明同学想出去旅游,在查了网上的攻略之后,他初步选择了苏杭,北戴河和桂林三地之一作为目标景点。

请你确定评价指标,形成评价体系来为小明同学选择最佳的方案。

解决评价类问题,首先要想到三个问题:

  1. 我们评价的目标是什么?

    为小明同学选择最佳的旅游景点

  2. 我们为了达到这个目标有哪几种可行的方案?

    三种,分别是去苏杭,北戴河和桂林

  3. 评价的准则或者说指标是什么?

    需要查阅相关资料(可以选择知网,万方,百度学术,谷歌学术等平台)

假如我们查询资料后选择了五个指标:

  • 景点景色

  • 旅游花费

  • 居住情况

  • 饮食情况

  • 交通便利程度

填写权重表格,得到判断矩阵

其中同色格子内容相加和为一

我们先来确定第一列的权重(景色,花费,居住,饮食,交通的指标权重)

问题:一次性考虑这五个指标之间的关系,往往考虑不周

解决方法:两个两个指标进行比较,最终根据两两比较的结果来推算出权重

可以采用下面表格中的方法(用1-9表示满意程度或重要程度,用于两两比较)

可以得到下面的表格

景色 花费 北戴河 饮食 交通
景色 1
花费 1
居住 1
饮食 1
交通 1

剩下的内容就需要我们自己判断来填写

比如说我们得到了下面的表格:

景色 花费 北戴河 饮食 交通
景色 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

这是一个5×5的方阵,我们记为 A,对应的元素为aij

这个方阵有如下特点

  • aij表示的意义是,与指标 j 相比,i 的重要程度
  • 当 i = j 时,两个指标相同,因此同等重要记为1,这就解释了主对角线元素为1
  • aij > 0 且满足 aij ×aji = 1

我们称满足这一条件的矩阵为正互反矩阵

即为层次分析法中的判断矩阵

接下来得到剩下的四个判断矩阵

判断矩阵进行一次性检验

遇到的问题:出现了矛盾之处(不一致的现象)

苏杭 = A,北戴河 = B,桂林 = C

苏杭比北戴河景色好 A > B

苏杭和桂林景色一样好 A = C

北戴河比桂林景色好 B > C

一致矩阵

若矩阵中每个元素 aij > 0,且满足aij × aji = 1,则为正互反矩阵

在层次分析法中,我们构造的判断矩阵均为正互反矩阵

若正互反矩阵满足 aij × ajk = aik ,则我们称其为一致矩阵

注意:在使用判断矩阵求权重之前,必须对其进行一致性检验

一致性检验

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

判断矩阵越不一致时,最大特征值与 n 相差越大

一致性检验的步骤

第一步:计算一致性指标CI

第二步:查找对应的平均随即一致性指标RI

第三步:计算一致性比例CR

如果 CR < 0.1,则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。

计算权重

一致矩阵计算权重

景色 苏杭 北戴河 桂林
苏杭 1 2 4
北戴河 1/2 1 2
桂林 1/4 1/2 1

苏杭 = 1 /(1 + 0.5 + 0.25)

北戴河 = 0.5 /(1 + 0.5 + 0.25)

桂林 = 0.25 /(1 + 0.5 + 0.25)

判断矩阵计算权重

方法一:算术平均法求权重

景色 苏杭 北戴河 桂林
苏杭 1 2 5
北戴河 1/2 1 2
桂林 1/5 1/2 1

第一步:将判断矩阵按照列归一化(每一个元素除以所在列的和)

仅使用第一列的数据,计算出来的权重:

苏杭 = 1 /(1 + 0.5 + 0.2)= 0.5882

北戴河 = 0.5 /(1 + 0.5 + 0.2)= 0.2941

桂林 = 0.25 /(1 + 0.5 + 0.2)= 0.1177

使用第二列的数据,计算出来的权重:

苏杭 = 2 /(2 + 1 + 0.5)= 0.5714

北戴河 = 1 /(2 + 1 + 0.5)= …

桂林 = 0.5 /(2 + 1 + 0.5)= …

使用第三列的数据,计算出来的权重:

苏杭 = 5 /(5 + 2 + 1)= 0.625

北戴河 = 2 /(5 + 2 + 1)= …

桂林 = 1 /(5 + 2 + 1)= …

第二步:将归一化的各列相加(按行求和)

第三步:将相加后得到的向量中每个元素除以 n 即可得到权重向量

综合上述三列,求出平均权重

数学符号表示:

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

第一步:将A的元素按照行相乘得到一个新的列向量

第二步:将新的向量的每个分量开 n 次方

第三步:对该列向量进行归一化即可得到权重向量

数学符号表示:

方法三:特征值法求权重

第一步:求出矩阵 A 的最大特征值以及对应的特征向量

第二步:对求出的特征向量进行归一化即可得到权重

注:常用特征值法!

结果

方法总结

第一步:分析建立系统的层次结构

分析系统中各因素之间的关系,建立系统的递阶层次结构

第二步:构造判断矩阵

对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)

第三步:计算权重,一致性检验

由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能使用)

三种方法:算术平均法,几何平均法,特征值法

建议在比赛时同时使用三种方法:

“为了保证结果的稳健性,本文采用了三种方法分别求出了权重”,再根据得到的权重矩阵计算各方案得分,这样得出的结论更全面更有效。

第四步:计算合成权重并排序

最后举个栗子

模型拓展

多层准则

方案不对应所有准则

将相应权重设置为 0 即可。

Author: iwannaeat
Link: https://iwannaeat.github.io/2020/01/31/【数学建模】1-1层次分析法模型/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.