1 随机模拟型综合评价概述
目前,大部分综合评价方法均倾向于依据评价信息对被评价对象做出一次性的绝对优劣判断,类似于“球队实力”比较的评价问题,通常很难以一次的比赛给出绝对的评价结论(实力或者小概率事件……的缘故)
这类问题在现实中具有普遍性,如“综合能力”、“发展潜力”等的比较,此类问题统称为“相对评价问题”。
相对评价问题是仅通过一次评价运行无法直接给出方案的优劣结论,需要在大规模比较的基础上对方案的优劣关系进行统计分析,从而给出能够体现方案之间相对优劣的可能性排序结论。
相对评价问题是较传统评价中被评价对象在特定情境中的一次性优劣比较问题(如考试成绩、销售业绩等)而言的一种拓展界定,显然对于该类问题的解决具有重要的理论和实际应用价值
===>提出了,基于“蒙特卡洛仿真”思想的随机模拟型综合评价求解算法
随机模拟型综合评价模式,该评价模式是对传统评价模式的拓展,可进一步拓宽综合评价理论的实际应用范围,即通过参数设置的方式,可将传统评价模式转化为随机模式,求解得到方案之间优劣关系比较的可能性排序结论。
可能性排序结论打破了被评价对象之间“非此即彼”的绝对优劣状态,是对绝对形式评价结论的拓展。
随机模拟型综合评价模式面向相对评价问题,但仍是以传统的综合评价方法为基础的信息处理方法,因而可将随机模拟型综合评价模式看成是一个结构化的方法框架,该框架包括两部分,
- 传统评价方法的随机化设置
- 基于随机模拟算法对相对评价问题的求解
在对传统评价方法进行随机化设置的基础上,需要编制计算机仿真程序进行大规模模拟,按照选用的传统综合评价模式对每次提取的随机信息进行集结求解,在仿真充分的情况下,观测方案(被评价对象)两两之间的优胜次数,形成方案之间“优于”或“劣于”的概率判断信息。对于多个比较方案而言将会得到一个信息矩阵(优胜度矩阵)。优胜度矩阵中蕴涵有各方案的比较信息,需要进一步深入分析,最终得到一个带有概率信息的可能性排序。
2 基于随机模拟的综合评价步骤
对于传统综合评价中优劣判别的绝对性,以及多评价结论非一致性问题,可以构建一种凸显自身优势的自主优势评价方法,评价中运用一种基于概率型随机模拟算法,通过计算各评价对象之间的优胜度,来评判评价对象的优势,得到带有概率信息的评价结论。
2.1 问题描述
设 σ 1 , σ 2 , ⋯ , σ n \sigma _1,\sigma _2,\cdots ,\sigma _n σ1,σ2,⋯,σn为 n n n个被评价对象, x 1 , x 2 , ⋯ , x m x_1,x_2,\cdots ,x_m x1,x2,⋯,xm为 m m m个评价指标, x i j ( i = 1 , 2 , ⋯ , n ; j = 1 , 2 , ⋯ , m ) x_{ij}\left( i=1,2,\cdots ,n\ ;\ j=1,2,\cdots ,m \right) xij(i=1,2,⋯,n ; j=1,2,⋯,m)为被评价对象 σ i \sigma _i σi关于指标 x j x_j xj的观测值,记 N = { i = 1 , 2 , ⋯ , n } , M = { j = 1 , 2 , ⋯ , m } N=\left\{ i=1,2,\cdots ,n \right\} ,M=\left\{ j=1,2,\cdots ,m \right\} N={i=1,2,⋯,n},M={j=1,2,⋯,m}
例如
指标1 | 指标2 | ⋯ \cdots ⋯ | 指标m | |
---|---|---|---|---|
样本1 | xx | xx | xx | xx |
样本2 | xx | xx | xx | xx |
⋮ \vdots ⋮ | xx | xx | xx | xx |
样本n | xx | xx | xx | xx |
经过标准化处理后的数据矩阵表示为:
A
=
[
x
i
j
]
=
[
x
11
x
12
⋯
x
1
m
x
21
x
22
⋯
x
2
m
⋮
⋮
⋮
x
n
1
x
n
2
⋯
x
n
m
]
A=\left[ x_{ij} \right] =\left[ \begin{matrix} x_{11}& x_{12}& \cdots& x_{1m}\\ x_{21}& x_{22}& \cdots& x_{2m}\\ \vdots& \vdots& & \vdots\\ x_{n1}& x_{n2}& \cdots& x_{nm}\\ \end{matrix} \right]
A=[xij]=⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋯x1mx2m⋮xnm⎦⎥⎥⎥⎤
无量纲化处理总结
图片来自:数据无量纲化处理(归一化VS标准化)
2.2 自主优势量矩阵计算
定义自主优势量矩阵为:
B
=
[
λ
i
j
]
=
[
μ
α
i
j
+
η
β
i
j
]
B=\left[ \lambda _{ij} \right] =\left[ \mu \alpha _{ij}+\eta \beta _{ij} \right]
B=[λij]=[μαij+ηβij]
λ
i
j
(
i
∈
N
,
j
∈
M
)
\lambda _{ij}\left( i\in N\text{,}j\in M \right)
λij(i∈N,j∈M)可清晰的表征出被评价对象
σ
i
\sigma _i
σi在指标
x
j
x_j
xj 上的优势程度
式中,
α
i
j
=
∑
k
∈
N
,
K
≠
i
x
i
j
−
x
k
j
n
−
1
,
β
i
j
=
∑
p
∈
M
,
p
≠
j
x
i
j
−
x
i
p
n
−
1
,
i
∈
N
,
j
∈
M
\alpha _{ij}=\sum_{k\in N,K\ne i}{\frac{x_{ij}-x_{kj}}{n-1}}\text{,}\beta _{ij}=\sum_{p\in M,p\ne j}{\frac{x_{ij}-x_{ip}}{n-1}}\text{,}i\in N,j\in M
αij=k∈N,K=i∑n−1xij−xkj,βij=p∈M,p=j∑n−1xij−xip,i∈N,j∈M
α i j \alpha _{ij} αij反映了被评价对象 σ i \sigma _i σi的第 j j j项指标与其他 n − 1 n-1 n−1个被评价对象之间的差异。
β i j \beta _{ij} βij反映了被评价对象 σ i \sigma _i σi的第 j j j项指标与其他 m − 1 m-1 m−1个被评价指标整体的优势差异。
μ 和 η \mu \text{和}\eta μ和η分别为竞争性、发展性目标偏爱系数, μ 、 η ∈ [ 0 , 1 ] , μ + η = 1 \mu \text{、}\eta \in \left[ 0,1 \right] \text{,}\mu +\eta =1 μ、η∈[0,1],μ+η=1,通常取0.5。
2.3 具体步骤
利用MonteCarlo随机模拟求解被评价对象的优胜度矩阵和优势权向量,具体步骤如下:
步骤1 任意选取2个被评价对象 σ i ′ , σ i ∗ \sigma _{i}^{'}\text{,}\sigma _{i}^{*} σi′,σi∗(若有 n n n个被评价对象,共需进行 n 2 − n n^2-n n2−n次比较)
例如:1,2,3
需要比较一下6种:
(
11
12
13
21
22
23
31
32
33
)
\left( \begin{matrix} 11& 12& 13\\ 21& 22& 23\\ 31& 32& 33\\ \end{matrix} \right)
⎝⎛112131122232132333⎠⎞
步骤2 设置仿真次数计数变量count(初始化时count=0)
步骤3 运用随机发生器随机产生给定区间上服从均匀分布的不确定比值 r k ( k = 2 , 3 , ⋯ , m ) r_k\left( k=2,3,\cdots ,m \right) rk(k=2,3,⋯,m),可根据专家对评价指标 x k − 1 x_{k-1} xk−1与 x k x_k xk的重要程度之比 r k = w k − 1 w k r_k=\frac{w_{k-1}}{w_k} rk=wkwk−1,
- 若 x k − 1 x_{k-1} xk−1比 x k x_k xk同等重要,则 r k r_k rk=1.0;
- 若 x k − 1 x_{k-1} xk−1比 x k x_k xk稍微重要,则 r k r_k rk=1.2;
- 若 x k − 1 x_{k-1} xk−1比 x k x_k xk明显重要,则 r k r_k rk=1.4;
- 若 x k − 1 x_{k-1} xk−1比 x k x_k xk强烈重要,则 r k r_k rk=1.6;
- 若 x k − 1 x_{k-1} xk−1比 x k x_k xk极端重要,则 r k r_k rk=1.8。
考虑到专家认识的不确定性,
r
k
r_k
rk取区间值更符合实际情况,
例如对因素进行分析,专家给出了不确定比值判断
r
~
k
=
(
[
0.97
,
1.07
]
,
[
1.10
,
1.20
]
,
[
0.95
,
1.05
]
,
[
1.63
,
1.73
]
)
,
k
=
2
,
3
,
⋯
,
m
\tilde{r}_k=\left( \left[ 0.97,1.07 \right] ,\left[ 1.10,1.20 \right] ,\left[ 0.95,1.05 \right] ,\left[ 1.63,1.73 \right] \right) ,k=2,3,\cdots ,m
r~k=([0.97,1.07],[1.10,1.20],[0.95,1.05],[1.63,1.73]),k=2,3,⋯,m
按照公式
ω k = ( 1 + ∑ i = 2 k ∑ j = i k r j ) − 1 , ω k − 1 = r k ω k , k = m , m − 1 , ⋯ , 2 \omega _k=\left( 1+\sum_{i=2}^k{\sum_{j=i}^k{r_j}} \right) ^{-1}\text{,}\omega _{k-1}=r_k\omega _k\text{,}k=m,m-1,\cdots ,2 ωk=(1+i=2∑kj=i∑krj)−1,ωk−1=rkωk,k=m,m−1,⋯,2
确定出优势权向量
ω
=
{
ω
1
,
ω
2
,
⋯
,
ω
m
}
\omega =\left\{ \omega _1,\omega _2,\cdots ,\omega _m \right\}
ω={ω1,ω2,⋯,ωm}
若称
ω
i
=
(
ω
i
1
,
ω
i
2
,
⋯
,
ω
i
m
)
,
i
∈
N
\omega _i=\left( \omega _{i1},\omega _{i2},\cdots ,\omega _{im} \right) \text{,}i\in N
ωi=(ωi1,ωi2,⋯,ωim),i∈N
为关于各评价对象
σ
i
\sigma _i
σi的指标优势序组的优势权向量,则可根据自主优势量向量
λ
i
=
(
λ
i
1
,
λ
i
2
,
⋯
,
λ
i
m
)
,
i
∈
N
\lambda _i=\left( \lambda _{i1},\lambda _{i2},\cdots ,\lambda _{im} \right) \text{,}i\in N
λi=(λi1,λi2,⋯,λim),i∈N
各分量由大到小排序,按次序分别对应优势权向量 ω = { ω 1 , ω 2 , ⋯ , ω m } \omega =\left\{ \omega _1,\omega _2,\cdots ,\omega _m \right\} ω={ω1,ω2,⋯,ωm}的各分量获得.
例如
步骤4 设置计数变量 r s r_s rs, r e r_e re, r f r_f rf(初始化时均置0),分别表示 σ i ′ ≻ σ i ∗ 、 σ i ′ = σ i ∗ 、 σ i ′ ≺ σ i ∗ \sigma _{i}^{'}\succ \sigma _{i}^{*}\text{、}\sigma _{i}^{'}=\sigma _{i}^{*}\text{、}\sigma _{i}^{'}\prec \sigma _{i}^{*} σi′≻σi∗、σi′=σi∗、σi′≺σi∗的次数
-
若 ∑ j = 1 m x i j ′ ω j ∗ > ∑ j = 1 m x i j ∗ ω j ∗ ,则 r s = r s + 1 \sum_{j=1}^m{x_{ij}^{'}\omega _{j}^{*}}>\sum_{j=1}^m{x_{ij}^{*}\omega _{j}^{*}}\text{,则}r_s=r_s+1 ∑j=1mxij′ωj∗>∑j=1mxij∗ωj∗,则rs=rs+1
-
若 ∑ j = 1 m x i j ′ ω j ∗ = ∑ j = 1 m x i j ∗ ω j ∗ ,则 r e = r e + 1 \sum_{j=1}^m{x_{ij}^{'}\omega _{j}^{*}}=\sum_{j=1}^m{x_{ij}^{*}\omega _{j}^{*}}\text{,则}r_e=r_e+1 ∑j=1mxij′ωj∗=∑j=1mxij∗ωj∗,则re=re+1
-
若 ∑ j = 1 m x i j ′ ω j ∗ < ∑ j = 1 m x i j ∗ ω j ∗ ,则 r f = r f + 1 \sum_{j=1}^m{x_{ij}^{'}\omega _{j}^{*}}<\sum_{j=1}^m{x_{ij}^{*}\omega _{j}^{*}}\text{,则}r_f=r_f+1 ∑j=1mxij′ωj∗<∑j=1mxij∗ωj∗,则rf=rf+1
步骤5 count= count+1,若count=sum(sum随机仿真总次数,sum初始值为0,一般地,方案个数n越多,sum的值应越大),转步骤6,否则转步骤2;
步骤6 利用公式
s ( σ i ′ ≻ σ i ∗ ) = r s + 0.5 r e s u m s\left( \sigma _{i}^{'}\succ \sigma _{i}^{*} \right) =\frac{r_s+0.5r_e}{sum} s(σi′≻σi∗)=sumrs+0.5re
统计
s
(
σ
i
′
≻
σ
i
∗
)
s\left( \sigma _{i}^{'}\succ \sigma _{i}^{*} \right)
s(σi′≻σi∗)的优胜度随机模拟值,保存数值,通过模拟仿真可以得到n个被评价对象的优胜度矩阵
S
S
S
S
=
[
s
i
j
]
=
[
s
11
s
12
⋯
s
i
n
s
21
s
22
⋯
s
2
n
⋮
⋮
⋮
s
n
1
s
n
2
⋯
s
n
n
]
S=\left[ s_{ij} \right] =\left[ \begin{matrix} s_{11}& s_{12}& \cdots& s_{in}\\ s_{21}& s_{22}& \cdots& s_{2n}\\ \vdots& \vdots& & \vdots\\ s_{n1}& s_{n2}& \cdots& s_{nn}\\ \end{matrix} \right]
S=[sij]=⎣⎢⎢⎢⎡s11s21⋮sn1s12s22⋮sn2⋯⋯⋯sins2n⋮snn⎦⎥⎥⎥⎤
式中:
s
i
j
s_{ij}
sij 表达了评价对象
σ
i
\sigma _i
σi 优于
σ
j
\sigma _j
σj 的概率,
S
S
S对角线上的元素均为0.5,理论上,应满足
s
i
j
+
s
j
i
=
1
s_{ij}+s_{ji}=1
sij+sji=1,故只需得到对角线以上(或以下)
(
n
2
−
n
)
/
2
\left( n^2-n \right) /2
(n2−n)/2个元素的值即可计算得到
S
S
S
若 ∣ s i j + s j i − 1 ∣ \left| s_{ij}+s_{ji}-1 \right| ∣sij+sji−1∣ 足够小,表明结果精确可信;否则,需增加随机模拟仿真次数sum,为了使 S S S 的元素严格满足 s i j + s j i = 1 s_{ij}+s_{ji}=1 sij+sji=1 ,按照公式 s i j = [ s i j + ( 1 − s j i ) ] / 2 s_{ij}=\left[ s_{ij}+\left( 1-s_{ji} \right) \right] /2 sij=[sij+(1−sji)]/2对其进行调整,调整后的优胜度矩阵仍记为 S S S
2.4 综合评价计算
设 z i z_i zi 为被评价对象 σ i \sigma _i σi 的相对综合评价值,则可通过 n 个被评价对象之间的整体比较函数取最小值求得
{ min F ( z ) = ∑ i = 1 n ∑ j = 1 n [ z i − z j − ( s i j − s j i ) ] 2 s . t . z 1 + z 2 + ⋯ + z n = c \left\{ \begin{array}{l} \min\text{\ }F\left( z \right) =\sum_{i=1}^n{\sum_{j=1}^n{\left[ z_i-z_j-\left( s_{ij}-s_{ji} \right) \right] ^2}}\\ \\ s.t.\ \ z_1+z_2+\cdots +z_n=c\\ \end{array} \right. ⎩⎨⎧min F(z)=∑i=1n∑j=1n[zi−zj−(sij−sji)]2s.t. z1+z2+⋯+zn=c
通过构造公式上述的拉格朗日Lagrange函数,并对其求导,可得
z i = 1 n 2 ∑ i = 1 n ∑ j = 1 n [ ( s i j − s j i ) ] + 1 n ∑ j = 1 n ( s i j − s j i ) + c n z_i=\frac{1}{n^2}\sum_{i=1}^n{\sum_{j=1}^n{\left[ \left( s_{ij}-s_{ji} \right) \right] +\frac{1}{n}\sum_{j=1}^n{\left( s_{ij}-s_{ji} \right)}+\frac{c}{n}}} zi=n21i=1∑nj=1∑n[(sij−sji)]+n1j=1∑n(sij−sji)+nc
因为
1
n
2
∑
i
=
1
n
∑
j
=
1
n
[
(
s
i
j
−
s
j
i
)
]
=
0
\frac{1}{n^2}\sum_{i=1}^n{\sum_{j=1}^n{\left[ \left( s_{ij}-s_{ji} \right) \right]}}=0
n21i=1∑nj=1∑n[(sij−sji)]=0
最终
z
i
=
1
n
∑
j
=
1
n
(
s
i
j
−
s
j
i
)
+
c
n
z_i=\frac{1}{n}\sum_{j=1}^n{\left( s_{ij}-s_{ji} \right)}+\frac{c}{n}
zi=n1j=1∑n(sij−sji)+nc
式中,c 为常数,c 值选取对 z 中大小顺序没有影响,不影响被评价对象最终排序,为使 z i ≥ 0 z_i\ge 0 zi≥0,一般取 c = n c=n c=n
根据相对综合评价值向量,得到被评价对象的综合排序
例如
z
1
=
1
15
∑
j
=
1
15
(
s
1
j
−
s
j
1
)
+
1
=
1
15
×
14
+
1
=
1.93333
z_1=\frac{1}{15}\sum_{j=1}^{15}{\left( s_{1j}-s_{j1} \right)}+1=\frac{1}{15}\times 14+1=1.93333
z1=151j=1∑15(s1j−sj1)+1=151×14+1=1.93333
最终可得到全部被评价对象的相对综合评价值向量 z i z_i zi,可进行排序
3 Python实现
最后,自己编了该方法的Python代码,可以通过导入数据得到优胜度矩阵S,但是代码有一些小问题,如果确实有需要的小伙伴,可以分享。
参考文献:
[1]易平涛,李伟伟,郭亚军.随机模拟型综合评价模式及其求解算法[J].运筹与管理,2014,23(06):222-228.
[2]郭亚军,易平涛,李玲玉.基于随机模拟的综合评价方法及应用[J].东北大学学报(自然科学版),2010,31(10):1499-1503.
[3]一种基于蒙特卡罗模拟的群体协商评价方法及其应用_张发明