关于数模的一些模型
一、层次分析法(AHP)基本模型
1、基本步骤
1. 分析各因素之间的关系,建立系统的递阶层次结构。
2. 通过相互比较确定各准则对于目标的权重及各方案对于每一准则的权重,构造成比对比较阵/正互反矩阵(判断矩阵)。
a(i)(j)表示的意义是:与指标j相比,i的重要程度。(i=j时同等重要出记为1)
a(i)(j)*a(j)(i)=1
其余矩阵如下
3. 由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能用)。
就景色单独讨论。设苏杭 = A、北戴河 = B、桂林 = C;
苏杭比北戴河景色好一点( A > B),苏杭和桂林景色一样好(A = C),北戴河比桂林景色好一点(B > C)得出矛盾。
由此,引入一致矩阵。
性质:
1、a(i)(j) = i的重要程度 / j的重要程度,a(j)(k) = j的重要程度 / k的重要程度,a(i)(k)= i的重要程度 / k的重要程度 = a(i)(j) × a(j)(k) 。
2、矩阵各行(各列)之间成倍数关系。
我们构造的矩阵难免出现矛盾,但我们可以向一致矩阵靠拢。只要差距不超一定范围,原判断矩阵也是可以使用的。这个判断差距的过程叫做一致性检验。
一致性检验步骤:
修正时将现有矩阵向一致矩阵调整、靠拢。
计算权重有三种方法: 算数平均法求权重、几何平均法求权重以及特征值法求权重。
以下图为例
法一:算数平均法求权重
step1:将判断矩阵按照列归一化(每个元素除以其所在列的和,如1/(1+0.5+0.2)=0.5882)
step2:将归一化的列相加(按行求和)
step3: 将相加后得到的向量中的每个元素除以 n 即可得到权重向量
数学表达式
法二:几何平均法求权重
step1: 将A的元素按照行相乘得到一个新的列向量
step2: 将新的向量的每个分量开n次方
step3: 对该列向量进行归一化即可得到权重向量#### 法三:特征值法求权重
数学表达式
法三:特征值法求权重
一致矩阵有一个特征值为 n,其余特征值均为 0。当特征值为 n 时,对应的特征向量刚好为:我们可以直接将特征向量归一化即可求得特征向量。
4. 填充权重矩阵,根据矩阵计算得分,得出结果。
以第三种结果填充,有
最终计算结果
苏杭得分:0.5954×0.2636+0.0819×0.4758+0.4286×0.0538+0.6337×0.0981+0.1667×0.1087=0.299;
北戴河得分为0.245,桂林得分为0.455。
二、MATLAB代码段
基本语法
1. 每行句子结束加分号;(英)
2. ctrl+R————注释语句
3. ctrl+T————取消注释
4. clear ————清除工作区所有文本
5. clc—————清除命令行窗口的所有文本
6. clear;clc———初始化
7. disp————输出函数(不一定要分号) 例:disp(a)输出a
8. 合并字符串——可用strcat( 'str1 ' , ' str2 ')或者[ ' str1 ' , ' str2 ' ]
9. num2str ————数字变字符串
10. input————输入函数(句末加分号不显示结果,不加分号显示结果)
11. sum————求和函数
A为向量,sum(A)得A内向量和;
A为矩阵,则sum(A)或sum(A,1)为按列求和,sum(A,2)为按行求和,sum(sum(A))或sum(A(: ))为对整个矩阵求和)
12.
未完待续…
三、局限性
- 评价的决策不能太多,否则n很大,判断矩阵和一致矩阵差异可能会很大。
(平均随机一致性指标RI表格中n最多为15) - 决策层指标数据已知,层次分析法不容易将这些已知数据应用在其中
四、一些话述
比赛时最好三种方法都使用:为了保证结果的稳健性,本文采用了三种方法分别求出了权重,再根据得到的权重矩阵计算各方案的得分,并进行排序和综合分析,这样避免了采用单一方法所产生的偏差,得到的结论将更全面,更有效。