数学建模学习笔记
现学现卖,随缘更新QwQ
主要根据b站大师兄的视频整理而成,有不懂的可以去看原视频
List
一、 层次分析法
1.1 矩阵的一致性及其检验
对于矩阵 A A A, a i j a_{ij} aij表示第i个因素的重要程度是第j个因素的A[i][j]倍。
若矩阵A满足: a i j a_{ij} aij * a j k a_{jk} ajk = a i k a_{ik} aik,则称A为 一致矩阵,否则称为 不一致矩阵
对于一致矩阵A,有如下 三条性质:
- r a n k ( A ) rank(A) rank(A) = 1,且唯一非零特征根为n
- A的任意列向量都是对于特征根n的特征向量
上述性质告诉我们,只要满足两两行/列 成倍数关系,就是一致性矩阵。
对于不一致矩阵,其最大特征根 λ m a x \lambda_{max} λmax>n, λ \lambda λ 与n相差越大,其不一致程度越大。由此,给出一致性检验指标 C I CI CI = λ m a x − n n − 1 \frac{ \lambda_{max} - n} {n-1} n−1λmax−n 其中 λ m a x \lambda_{max} λmax表示最大特征值。CI越大,表示一致性越差,越接近0则一致性越好。
由于 C I CI CI受随机因素影响,阶数n越大,该因素越显著。为了衡量 C I CI CI的大小,引入 R I RI RI表示随机一致性指标,并以 一致性比例 C R CR CR= C I R I \frac{CI}{RI} RICI 作为判断依据。若 C R CR CR<0.1,则认为判断矩阵的一致性可以接受,否则需要对判断矩阵进行修正,若不满足,则需构造出更多的倍数关系,直至 C R CR CR < 0.1
1.2 权重计算
层次分析法的最终目的就是获得不同要素的权重,以便于后续进行加权平均。具体地,先将每一列进行 归一化,也即将 a i j a_{ij} aij替换为 a i j ∑ i = 1 n a i j \frac{ a_{ij} }{\sum_{i=1}^{n}a_{ij}} ∑i=1naijaij;
然后,对于非一致矩阵,将 W i = ∑ j = 1 n a i j n W_i=\frac{\sum_{j=1}^{n}a_{ij}}{n} Wi=n∑j=1naij作为第i个要素的权重。这种求权重的方法称为算数平均求权重。由于一致矩阵各列成比例,所以只需取第一列即可,不需要进行算术平均。
另一种求权重的方式为:将最大特征值对应的特征向量进行归一化,第i个分量的值即为 W i W_i Wi。这种方法称为特征值法求权重。
这种方法较于前一种方法更加方便使用,因而在实际比赛和科研中建议使用特征值法。
1.3 具体流程
- 根据专家意见、问卷调查等方式获得判断矩阵 A A A,并对 A A A进行一致性检验,若 C R CR CR<0.1,认为一致性检验通过,否则构造新的判断矩阵
- 将判断矩阵各个列进行归一化,随后对每一行求算数平均,所得即为权重
层次分析法是一种主观确定权重的方式,后续还会有客观确定权重的方式——熵权法
二、模糊综合评测
一般的对立集合具有排中律,即“非此即彼”,而对于不满足排中律的情况,则需要引入隶属函数衡量每个元素对于不同集合的隶属度。换句话说,就是对于一个论域 U U U 构造一个函数 f : U → [ 0 , 1 ] f:U \rightarrow [0,1] f:U→[0,1],以评判 U U U中每一个元素的隶属度。与层次分析法一样,这种方法也属于主观评价方法。
2.1 隶属函数
对于模糊集合 A = “年轻”, U = ( 0 , 120 ) A=“年轻”,U=(0,120) A=“年轻”,U=(0,120),定义隶属函数 μ A \mu_A μA:
μ A = { 1 , 0 < x < 20 40 − x 20 , 20 ≤ x ≤ 40 0 , 40 < x < 120 \mu_A = \begin{cases} 1,0<x<20\\ \displaystyle\frac{40-x}{20},20≤x≤40\\ 0,40<x<120 \end{cases} μA=⎩
⎨
⎧1,0<x<202040−x,20≤x≤400,40<x<120
可以看到,这个函数对U中每一个元素都给出了一个对于 A A A的隶属度,越大则越符合。
模糊集合的表示方法包括扎德表示法,序偶表示法,向量表示法等。
序偶表示法: { ( x 1 , A ( x 1 ) ) , ( x 2 , A ( x 2 ) ) . . . ( x n , A ( x n ) } \{(x_1,A(x_1)),(x_2,A(x_2))...(x_n,A(x_n)\} {(x1,A(x1)),(x2,A(x2))...(xn,A(xn)}
向量表示法: A = { A ( x 1 ) , A ( x 2 ) . . . A ( x n ) } A=\{A(x_1),A(x_2) ... A(x_n)\} A={
A(x1),A(x2)...A(xn)}
当U为无限集时,定义 A = ∫ x ∈ U μ A ( x ) x d x A=\displaystyle\int_{x\in U} \frac{\mu_A(x)}{x} dx A=∫x∈UxμA(x)dx
上面例子中 A = “年轻” A=“年轻” A=“年轻”属于极小型,因为值越小隶属度应当越高。对于这类集合,其隶属函数应形如:
μ A = { 1 , x < a b − x b − a , a ≤ x ≤ b 0 , x > b \mu_A = \begin{cases} 1,x<a\\ \displaystyle\frac{b-x}{b-a},a≤x≤b\\ 0,x>b \end{cases} μA=⎩
⎨
⎧1,x<ab−ab−x,a≤x≤b0,x>b
相应地,对于极大型 ,其形式为:
μ A = { 0 , x < a x − b b − a , a ≤ x ≤ b 1 , x > b \mu_A = \begin{cases} 0,x<a\\ \displaystyle\frac{x-b}{b-a},a≤x≤b\\ 1,x>b \end{cases} μA=⎩
⎨
⎧0,x<ab−ax−b,a≤x≤b1,x>b
对于中间型,其左侧为极大型函数,右侧为极小型函数,不作赘述。
上面的构造方法称为梯形型,事实上还存在k次抛物型、柯西型、正态型等等,在需要时可以自行查阅。
2.2 隶属函数的确定方法
确定隶属函数有模糊统计、F分布、三分法等,至少应该满足如下条件:
- 极小型集合的下界a,小于a的元素均不属于其他集合(极大型同理)
- 增长趋势应符合主观经验
2.3 模糊综合评测
对于一级模糊综合评价,遵循如下步骤:
- 确定因素集 U U U,例如 {工作业绩、工作态度、沟通能力},评语集 V V V,例如 {好,较好,中,差,很差}
- 确定各因素( U U U中各个元素)的权重,若无数据可采用层次分析法,若给出数据则使用熵权法的TOPSiS,也可以不确定权重
- 对每个 u i u_i ui,确定其对于每个 v j v_j vj的隶属度,对指标 u i u_i ui的评判记作: R = [ r i 1 , r i 2 … r i n ] R=[r_{i1},r_{i2}\dots r_{in}] R=[ri1,ri2…rin] ,其中 r i j r_{ij} rij表示 u i u_i ui对于 v j v_j vj的隶属度。
- 对每一列进行加权平均(即左乘行向量),取数值最大的评语作为最后综合评判结果
若将评语集更改为方案集,上述流程可以判断出哪个方案最优! 此时也可称评语集不带有评价色彩。
类似地,对于因素集中、指标过多时,可根据相关性将因素归纳成一个个小集合,从而进行模糊综合评价的嵌套,也即多级模糊综合评测。
三、熵权法
信息熵是衡量混乱程度的量,其定义为:
H ( X ) = ∑ i = 1 n [ p ( x i ) I ( x i ) ] = − ∑ i = 1 n [ p ( x i ) l n ( p ( x i ) ) ] H(X)=\sum_{i=1}^n[p(x_i)I(x_i)]=-\sum_{i=1}^n[p(x_i)ln(p(x_i))] H(X)=i=1∑n[p(xi)I(xi)]=−i=1∑n[p(xi)ln(p(xi))]
其中 I ( x i ) = − l n ( p ( x i ) ) I(x_i)=-ln(p(x_i)) I(xi)=−ln(p(xi))表示 x i x_i xi的信息量。根据公式,可以将信息熵理解为对信息量的期望值。信息熵越大,当前状态的混乱程度最大,也即掌握的信息最少(信息的本质就是减少混乱程度,增大确定性),以该指标衡量对象的可靠性越差,信息有效性也就越小。
3.1 正向化与标准化
在应用熵权法之前,要先对数据进行正向化处理。指标大致可分为四类:极小型(越小越好)、极大型(越大越好)、中间型(越接近越好),区间型(落在区间内最好)。我们的目标是将其余三种类型转换为极大型。
- 将极小型转化为极大型,公式为 m a x − x max-x max−x或 1 x ( x > 0 ) \displaystyle\frac{1}{x}(x>0) x1(x>0), m a x max max表示该指标下的最大值;
- 中间型转化为极大型,公式为 x ~ i = 1 − ∣ x i − x b e s t ∣ M \displaystyle\tilde x_i = 1-\frac{\left|x_i-x_{best}\right|}{M} x~i=1−M∣xi−xbest∣,其中 M = m a x { ∣ x i − x b e s t ∣ } M=max\{\left|x_i-x_{best}\right| \} M=max{ ∣xi−xbest∣}表示指标下的最大偏差;
- 区间型转化为极大型,方式类似于中间型隶属函数, x ~ i = { 1 − a − x i M , x i < a 1 1 , a ≤ x i ≤ b 1 − x i − b M , x i ≥ b \displaystyle\tilde x_i = \begin{cases} 1-\frac{a-x_i}{M},x_i<a_1\\ 1,a\le x_i \le b\\ 1-\frac{x_i-b}{M},x_i\ge b \end{cases} x~i=⎩ ⎨ ⎧1−Ma−xi,xi<a11,a≤xi≤b1−Mxi−b,xi≥b,其中 M = m a x { a − m i n , m a x − b } M=max\{a-min,max-b\} M=max{ a−min,max−b}为最值到边界的最大距离。
- 对于极大型,若存在负元素,则可将每一个元素替换为 x − m i n x-min x−min
这样,三类数据都可以用极大型指标的方式呈现,且均非负。
随后,为了消除量纲的影响,对每个数据进行标准化。设标准化后的矩阵为 Z Z Z,则 Z Z Z满足: z i j = x i j ∑ i = 1 n x i j 2 \displaystyle z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^n x_{ij}^2}} zij=∑i=1nxij2xij
对每一列再做归一化,得到的矩阵 P P P称为比重矩阵
3.2 流程
- 对数据进行正向化、标准化与归一化,最终得到矩阵 P P P
- 令信息熵 e j = − 1 ln n ∑ i = 1 n p i j ln ( p i j ) ( j = 1 , 2 , … , m ) e_j=-\frac{1}{\ln n} \sum _{i=1}^{n} p_{ij} \ln (p_{ij})(j=1,2,\dots ,m) ej=−lnn1∑i=1npijln(pij)(j=1,2,…,m),注意这里新增了 − 1 ln n -\frac{1}{\ln n} −lnn1,以将结果规范到[0,1]之间
- 由此得到信息效用值 d j = 1 − e j d_j=1-e_j dj=1−ej,再将信息效用值归一化,得到熵权 W j = d j / ∑ j = 1 m d j ( j = 1 , 2 , … , m ) W_j = d_j/\sum_{j=1}^m d_j (j=1,2,\dots,m) Wj=dj/∑j=1mdj(j=1,2,…,m)
四、TOPSIS优劣解距离法
该方法用于衡量某一个方案的优劣,具体思想是将每个衡量对象的指标标准化后分析其与最优解与最劣解的距离,进而得出最优解。
- 将数据化为 n × m n \times m n×m的矩阵 A A A,n表示待评测对象个数,m表示指标个数。将 A A A进行正向化、标准化;
- 选出各个指标下最大值 M i M_i Mi与最小值 m i m_i mi(也即每一列最大值),组成最优解向量 M M M与最劣解向量 m m m;
- 对每个待衡量对象(也即 A A A的每个行向量)计算其与 M M M与 m m m的欧氏距离,分别记作 D i + D_i^+ D