蒙特卡洛随机模拟—综合评价
文章目录
- 1 随机模拟型综合评价概述
- 2 基于随机模拟的综合评价步骤
- 2.1 问题描述
- 2.2 自主优势量矩阵计算
- 2.3 具体步骤
- 2.4 综合评价计算
- 3 Python实现
1 随机模拟型综合评价概述
目前,大部分综合评价方法均倾向于依据评价信息对被评价对象做出一次性的绝对优劣判断,类似于“球队实力”比较的评价问题,通常很难以一次的比赛给出绝对的评价结论(实力或者小概率事件……的缘故)
这类问题在现实中具有普遍性,如“综合能力”、“发展潜力”等的比较,此类问题统称为“相对评价问题”。
相对评价问题是仅通过一次评价运行无法直接给出方案的优劣结论,需要在大规模比较的基础上对方案的优劣关系进行统计分析,从而给出能够体现方案之间相对优劣的可能性排序结论。
相对评价问题是较传统评价中被评价对象在特定情境中的一次性优劣比较问题(如考试成绩、销售业绩等)而言的一种拓展界定,显然对于该类问题的解决具有重要的理论和实际应用价值
===>提出了,基于“蒙特卡洛仿真”思想的随机模拟型综合评价求解算法
随机模拟型综合评价模式,该评价模式是对传统评价模式的拓展,可进一步拓宽综合评价理论的实际应用范围,即通过参数设置的方式,可将传统评价模式转化为随机模式,求解得到方案之间优劣关系比较的可能性排序结论。
可能性排序结论打破了被评价对象之间“非此即彼”的绝对优劣状态,是对绝对形式评价结论的拓展。
随机模拟型综合评价模式面向相对评价问题,但仍是以传统的综合评价方法为基础的信息处理方法,因而可将随机模拟型综合评价模式看成是一个结构化的方法框架,该框架包括两部分,
- 传统评价方法的随机化设置
- 基于随机模拟算法对相对评价问题的求解
在对传统评价方法进行随机化设置的基础上,需要编制计算机仿真程序进行大规模模拟,按照选用的传统综合评价模式对每次提取的随机信息进行集结求解,在仿真充分的情况下,观测方案(被评价对象)两两之间的优胜次数,形成方案之间“优于”或“劣于”的概率判断信息。对于多个比较方案而言将会得到一个信息矩阵(优胜度矩阵)。优胜度矩阵中蕴涵有各方案的比较信息,需要进一步深入分析,最终得到一个带有概率信息的可能性排序。
2 基于随机模拟的综合评价步骤
对于传统综合评价中优劣判别的绝对性,以及多评价结论非一致性问题,可以构建一种凸显自身优势的自主优势评价方法,评价中运用一种基于概率型随机模拟算法,通过计算各评价对象之间的优胜度,来评判评价对象的优势,得到带有概率信息的评价结论。
2.1 问题描述
设σ1,σ2,⋯,σn\sigma _1,\sigma _2,\cdots ,\sigma _nσ1,σ2,⋯,σn为nnn个被评价对象,x1,x2,⋯,xmx_1,x_2,\cdots ,x_mx1,x2,⋯,xm为mmm个评价指标,xij(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关于指标xjx_jxj的观测值,记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=[xij]=[x11x12⋯x1mx21x22⋯x2m⋮⋮⋮xn1xn2⋯xnm]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=[λij]=[μαij+ηβij]B=\left[ \lambda _{ij} \right] =\left[ \mu \alpha _{ij}+\eta \beta _{ij} \right] B=[λij]=[μαij+ηβij]
λij(i∈N,j∈M)\lambda _{ij}\left( i\in N\text{,}j\in M \right)λij(i∈N,j∈M)可清晰的表征出被评价对象σi\sigma _iσi在指标 xjx_jxj 上的优势程度
式中,
αij=∑k∈N,K≠ixij−xkjn−1,βij=∑p∈M,p≠jxij−xipn−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
αij\alpha _{ij}αij反映了被评价对象σi\sigma _iσi的第jjj项指标与其他n−1n-1n−1个被评价对象之间的差异。
βij\beta _{ij}βij反映了被评价对象σi\sigma _iσi的第jjj项指标与其他m−1m-1m−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∗(若有nnn个被评价对象,共需进行n2−nn^2-nn2−n次比较)
例如:1,2,3
需要比较一下6种:
(111213212223313233)\left( \begin{matrix} 11& 12& 13\\ 21& 22& 23\\ 31& 32& 33\\ \end{matrix} \right) ⎝⎛112131122232132333⎠⎞
步骤2 设置仿真次数计数变量count(初始化时count=0)
步骤3 运用随机发生器随机产生给定区间上服从均匀分布的不确定比值rk(k=2,3,⋯,m)r_k\left( k=2,3,\cdots ,m \right)rk(k=2,3,⋯,m),可根据专家对评价指标xk−1x_{k-1}xk−1与xkx_kxk的重要程度之比rk=wk−1wkr_k=\frac{w_{k-1}}{w_k}rk=wkwk−1,
- 若xk−1x_{k-1}xk−1比xkx_kxk同等重要,则rkr_krk=1.0;
- 若xk−1x_{k-1}xk−1比xkx_kxk稍微重要,则rkr_krk=1.2;
- 若xk−1x_{k-1}xk−1比xkx_kxk明显重要,则rkr_krk=1.4;
- 若xk−1x_{k-1}xk−1比xkx_kxk强烈重要,则rkr_krk=1.6;
- 若xk−1x_{k-1}xk−1比xkx_kxk极端重要,则rkr_krk=1.8。
考虑到专家认识的不确定性,rkr_krk取区间值更符合实际情况,
例如对因素进行分析,专家给出了不确定比值判断
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=2k∑j=ikrj)−1,ωk−1=rkω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=(ωi1,ωi2,⋯,ωim),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=(λi1,λi2,⋯,λim),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 设置计数变量rsr_srs,rer_ere,rfr_frf(初始化时均置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=1mxij′ωj∗>∑j=1mxij∗ωj∗,则rs=rs+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=1mxij′ωj∗=∑j=1mxij∗ωj∗,则re=re+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=1mxij′ωj∗<∑j=1mxij∗ωj∗,则rf=rf+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∗)=rs+0.5resums\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个被评价对象的优胜度矩阵SSS
S=[sij]=[s11s12⋯sins21s22⋯s2n⋮⋮⋮sn1sn2⋯snn]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⎦⎥⎥⎥⎤
式中:sijs_{ij}sij 表达了评价对象 σi\sigma _iσi 优于 σj\sigma _jσj 的概率,SSS对角线上的元素均为0.5,理论上,应满足sij+sji=1s_{ij}+s_{ji}=1sij+sji=1,故只需得到对角线以上(或以下)(n2−n)/2\left( n^2-n \right) /2(n2−n)/2个元素的值即可计算得到 SSS
若 ∣sij+sji−1∣\left| s_{ij}+s_{ji}-1 \right|∣sij+sji−1∣ 足够小,表明结果精确可信;否则,需增加随机模拟仿真次数sum,为了使 SSS 的元素严格满足 sij+sji=1s_{ij}+s_{ji}=1sij+sji=1 ,按照公式sij=[sij+(1−sji)]/2s_{ij}=\left[ s_{ij}+\left( 1-s_{ji} \right) \right] /2sij=[sij+(1−sji)]/2对其进行调整,调整后的优胜度矩阵仍记为 SSS
2.4 综合评价计算
设 ziz_izi 为被评价对象 σi\sigma _iσi 的相对综合评价值,则可通过 n 个被评价对象之间的整体比较函数取最小值求得
{minF(z)=∑i=1n∑j=1n[zi−zj−(sij−sji)]2s.t.z1+z2+⋯+zn=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函数,并对其求导,可得
zi=1n2∑i=1n∑j=1n[(sij−sji)]+1n∑j=1n(sij−sji)+cnz_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
因为
1n2∑i=1n∑j=1n[(sij−sji)]=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
最终
zi=1n∑j=1n(sij−sji)+cnz_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 中大小顺序没有影响,不影响被评价对象最终排序,为使zi≥0z_i\ge 0zi≥0,一般取 c=nc=nc=n
根据相对综合评价值向量,得到被评价对象的综合排序
例如
z1=115∑j=115(s1j−sj1)+1=115×14+1=1.93333z_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
最终可得到全部被评价对象的相对综合评价值向量 ziz_izi,可进行排序
3 Python实现
最后,自己编了该方法的Python代码,可以通过导入数据得到优胜度矩阵S,但是代码有一些小问题,如果确实有需要的小伙伴,可以分享。
参考文献:
[1]易平涛,李伟伟,郭亚军.随机模拟型综合评价模式及其求解算法[J].运筹与管理,2014,23(06):222-228.
[2]郭亚军,易平涛,李玲玉.基于随机模拟的综合评价方法及应用[J].东北大学学报(自然科学版),2010,31(10):1499-1503.
[3]一种基于蒙特卡罗模拟的群体协商评价方法及其应用_张发明
蒙特卡洛随机模拟—综合评价相关推荐
- 蒙特卡洛随机模拟的MATLAB实例解析纪录
蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法. 假设我们有个y=x^2的表达式,如何用MC方法求得函数在[0,1]区间的定积分呢 ...
- 2021-04-09 随机模拟—蒙特卡洛方法 Matlab代码实现
随机模拟-蒙特卡洛方法 Matlab代码实现 蒙特卡洛方法 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出 ...
- 随机模拟的基本思想和常用采样方法(sampling)
文章转自:http://blog.csdn.net/xianlingmao/article/details/7768833 版权归原作者! 通常,我们会遇到很多问题无法用分析的方法来求得精确解,例如由 ...
- GitModel|Task04|随机模拟
目录 动手学随机模拟 1. 如何通过随机模拟估计看涨期权的报酬分布 1.1 金融知识:股票与看涨期权 1.2 问题分析与确定建模思路 1.3 如何模拟股票价格:布朗运动 1.4 如何更真实地模拟股票价 ...
- 【统计分析】(task5) 金融量化分析与随机模拟(通过随机模拟估计看涨期权的报酬分布)
内容总结 学习datawhale的gitmodel教程.小郭为了锁定价格波动风险,签订合约即买进看涨期权:提前给榴莲超市2块权利金,现在榴莲30元一块(期权的标的资产),下个月能用20元买到一块榴莲( ...
- 【R】随机模拟计算定积分
题目:分别用随机投点法与平均值法计算定积分: 1 随机投点法 ▲分析 ▲代码 library(ggplot2) x <- seq(0,1,0.001) #生成[0,1]序列,步长0.001 h= ...
- Python运用蒙特卡洛算法模拟植物生长
(细胞二次分裂呈现对称分布) 细胞到生物.胚胎生长曲线.发展模式是随意形成的吗?为什么大多数人都是两只眼睛,很少出现三眼神童?我相信分形数学的进化一定会重新揭开生命的秘密.就像一把开启潘多拉的魔盒的钥 ...
- 在我方某前沿防守地域 matlab,蒙特卡洛方法模拟小例子
例 在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点. 经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确 ...
- 随机模拟【1】:随机模拟的研究范围与特征
本系列同步发布于本人的知乎专栏:确定性随机 最新想开始再系统学习一次数理统计和随机过程方便的知识,但是耽搁了一段时间,主要原因是不知道从哪里开始.最近,刚好在网上"随机"地买了一本 ...
最新文章
- 深度学习并非万能:你需要避免这三个坑
- java中的进制输出转换_Java I/O : Java中的进制详解
- primefaces_使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证...
- 深度解析开源推荐算法框架EasyRec的核心概念和优势
- java B2B2C Springboot多租户电子商城系统-Eureka源码解析...
- linux安装中文输入法sc,Ubuntu 设置中文输入法
- Linux移植笔记--arm64上的Linux系统移植
- Oracle使用sqluldr2
- 天津大学计算机应用基础考试,天津大学2020秋季《计算机应用基础》在线考核试题B...
- sqlserver中65535_Sql Server数据导出EXCEL 解决行数超过65535问题
- android 高通与MTK编译命令
- Unity 调用Android手机触屏事件
- three.js加载三维模型(obj文件mtl文件)
- 如何自学插画?零基础要知道的技巧!
- 盘盘,这几个特殊的IP地址
- 程序员需要经纪人吗?10x 最好的程序员其生产力相当于同行的 10 倍~
- 网页消重算法(via北大天网课题组)
- 《和声学教程》学习笔记(五):II级和弦和VI级和弦
- 利用三轴加速度求解位移的算法—来自飞思卡尔方案
- Pyrene-PEG-Azide仅用于科学研究,MW:5000
热门文章
- 树莓派各版本下载 (Ubuntu MATE 16.04)
- 硬盘安装到计算机里面读不出来的,新买的硬盘怎么使用?安装到电脑上系统里不显示怎么办?...
- unity 鼠标悬停事件
- 项目思路---接口的权限控制、登陆校验以及白名单的设置
- 安卓效率微商_微商大片app下载_微商大片安卓版 v3.0.0 - Windows10系统之家
- PullNet: Open Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text 论文笔记
- TestComplete下载安装
- echars visualMap属性设置
- 最佳拍档,边缘计算如何为5G贴上“黄金皮肤”?
- mysql 50g 备份多久,MySQL数据库备份过程的注意事项