蒙特卡罗仿真机及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
结束语
在对蒙特卡罗方法和仿真技术学习的基础
3
上, 提出了蒙特卡罗仿真机, 说明了其工作原理, 并通过圆周率的计算, 实践了它的应用过程。 蒙特 卡罗仿真机能很大程度的简化待解问题的复杂 性, 提高仿真的准确性。 它可以解决现实中许多复 杂的随机性强的问题, 如在核装置设计领域, 软件 可靠性测试领域等。 参考文献:
4
5/+; 5/+. 5/++ 5/+ 5/"? 圆 5/"; 周 5/". 率 5/"+ 5/" 5/!? +!!! .!!! ;!!! ?!!! "!!!! "+!!!
图5
模拟计算结果
可以看出, 随着投针试验次数的增加, 圆周率 计算值逐渐趋近于公认值。本文模拟到一万余次 的投针试验, 如果继续增加试验次数, 则圆周率的 计算精度还会得到进一步的提高。 另外, 从理论上 讲, 模拟次数和提供随机数据越多, 精度越高, 所 耗机时也越长; 模拟次数过少, 则误差过大。 因此, 需权衡模拟次数和误差。
第!期
马海云等: 蒙特卡罗仿真机及其应用
・+・
近似解, 解的精度可用估计值的标准误差表示。
符合其特点的概率模型,同时产生出预期的理论 仿真结果; (#) 基于概率模型产生仿真所需的随机数; (%) 进行仿真试验, 得出仿真结果; (&) 若这个结果和预期理论结果不相符, 则说 明仿真失败, 重新回到第一步。否则, 此次仿真过 程成功。 仿真过程如图 ! 所示:
方法,该方法是在平坦桌面上划一组相距为 6 的 平行线, 然后向桌面随意地投掷长度为 6 的细针, 设细针与平行线的垂直方向的夹角为 7 ,则细针 与平行线相交的概率为 898!:;4<7:" 由于 7= 是在
・!#・
电脑与信息技术
第 !" 卷
[! , 间均匀分布的, 所以细针与平行线相交的 !] 概率等于 " # !
!"#$% &’()" *+,-)’$+"# &",.-$%( ’#/ +$0 ’..)+1’$+"#
#) .@E5FG=, H, IE@<5JG=
(KLM<<B <N #@>MO@>EL P ,=N<AO@>E<= , &E@=QMGE *<AO@B %=ER?AQE>F, &E@=QMGE, 0@=QG :;2332, !ME=@)
随机数
分析待 解问题
概率 模型
仿真
仿真 结果
图!
仿真过程图
%"#
随机数的产生 利用蒙特卡罗方法, 在模型建立的情况下, 要
先产生随机抽样值,即在给定运行中各参数的统 计分布规律的条件下,在计算机上产生符合其分 布规律的随机数抽样值,这个过程称为伪随机数 的模拟。由于伪随机数的特性会影响测试用例的 覆盖性, 采用产生随机数的另一种方法: 类同余
230$(’1$: #<=>? !@AB< KEOGB@>E<= ?=S@S? E= L<OTG>@>E<=@B QEOGB@>E<= >< >M? Q><LM@Q>EL TA<UB?OQ VE>M #<=>? !@AB< O?>M<WX@=W NE=W @ Q<BG>E<= <N =??W A?Q<BRE=S YG?Q>E<=SD,= <AW?A >< A?Q?@ALM L<OTBEL@>?W Q><LM@Q>EL TA<UB?OQX ,= >MEQ T@T?AX E> TG> N<AV@AW #<=>? !@AB< KEOGB@>E<= !<OTG>?A <N U@Q?W <= #<=>? !@AB< Q><LM@Q>EL QEOGB@>?W O?>M<WX@=W EBBGQ>A@>?Q E>Q NG=W@O?=>@B >?=?>Q D&< >M? L@BLGB@>E<= <N A@>E<= <N >M? LEALGON?A?=L? <N @ LEALB? >< E>Q WE@O?>?A XE> TA@L>EL?Q @TTBE?W TA<L?QQ <N #<=>? !@AB< KEOGB@>E<= !<OTG>?AD,> QM<VQ @W>@=>@S? @=W S?=?A@B @W@T>@UEBE>F <N #<=>? !@AB< KEOGB@>E<= !<OTG>?A N<A W?@BE=S VE>M Q><LM@Q>EL TA<UB?OQD 4%5 6"(/0: #<=>? !@AB< #?>M<W; L<OTG>@>E<=@B QEOGB@>E<=; A@=W<O =GOU?A Q?YG?=L?
第 !" 卷
第#期
电脑与信息技术 电脑与信息技术
第 !" 卷 ’()*!" +(*#
$%%& 年 & 月
!"#$%&’( )*+ ,*-"(#)&,"* &’!.*"/"01
,-.* $%%&
文章编号: (6338 ) 233452667 3953337539
蒙特卡罗仿真机及其应用
马海云, 齐小军
(天水师范学院数信学院, 甘肃 天水 摘
[(] 法 。在对这些生成的随机数通过程序进行简单
#
计算机仿真
系统仿真是通过对系统模型的实验研究一个
的处理, 组成初步的满足测试目标的随机数集, 然 后针对这个随机数集采用贪心算法、启发式算法 或整数规划等方法来进行精简,去掉一些冗余的
[)*+] 随机数, 生成最优随机数 。它就是满足条件的
存在的或设计中的系统 。对于给定目标, 仿真过
预期理 论仿真 结果
!"#
蒙特卡罗方法基本原理 蒙特卡罗方法以随机模拟和统计试验为手
段, 是一种从随机变量的概率分布中, 通过随机选 择数字的方法产生一种符合该随机变量概率分布 特性的随机数值序列,作为输入变量序列进行特
[#] 定的模拟试验、 求解的方法 。在应用方法时, 要
求产生的随机数序列应符合该随机变量特定的概 率分布。 而产生各种特定的、 不均匀的概率分布的 随机数序列,其可行的方法是先产生一种均匀分 布的随机数序列,然后再设法转换成特定要求的 概率分布的随机数序列,以此作为数字模拟试验 的输入变量序列进行模拟求解。基本步骤如下$ (! ) 建立概率模型, 即对所研究的问题构造一 个符合其特点的概率模型(随机事件,随机变量 等) , 包括确定性问题, 须把具体问题变为概率问 题, 建立概率模型; (#) 产生随机数序列, 作为系统的抽样输入进 行大量的数字模拟试验, 以得到模拟试验值; 对模拟试验结果进行统计处理 (计 算 频 (% ) 率、 均值等特征值) , 给出所求问题的解和解的精 度的估计。
:;2332)
要: 蒙特卡罗仿真机是通过对随机性问题采用 #<=>? !@AB< 方法进行计算机仿真, 从而
得出待解问题的解。为了研究复杂的随机问题, 文中提出了基于蒙特卡罗的随机模拟法的蒙 特卡罗仿真机, 并说明了它的基本原理。通过圆周率的计算, 实践了蒙特卡罗仿真机的应用 过程, 从而显示出蒙特卡罗仿真法处理随机性问题的优越性和仿真普遍的适用性。 关键词: 蒙特卡罗方法; 计算机模拟; 随机数 中图分类号: &$9C2DC 文献标识码: )
则说明细针已不在选定的区域, 应舍 4"7" 或 4+9!, 弃并回到 (5) ; 否则投针有效, 投 针 次 数 加 ", ,* ,:"; (; ) 判断细针是否与平行线相交。如果 3"7பைடு நூலகம்/0 且 3+7!/0, 或者 3"9!/0 且 3+9!/0 , 则细针与平行线 不相交, 回到 (+) ; 否则相交, 并令 -*-:"; (< ) 如果 ,*,2(3, 试验结束, 输出结果, 否则回 到 (+) , 继续下一次投针试验。 ./+/5 计算结果 模拟计算结果如图 5 所示:
[2]
2
2D2
蒙特卡罗方法
蒙特卡罗方法简介 随机模拟方法又称蒙特卡罗方法,它的基本
思想是: 首先构造 2 个模型 (概率模型或模拟系统 模型) ,使所求问题的解正好是该模型的参数、 特 征量或有关量。 然后通过模拟—统计试验, 给出模 型参数或特征量的估计值,最后得出所求问题的
收稿日期: 修订日期 Z6338539567 6338536566 ; 作者简介: 马海云 (2C:;5 ) , 男, 甘肃徽县人, 讲师, 研究生, 研究方向: 蒙特卡罗方法的应用, 软件测试; 齐小军 (2C:85 ) , 男, 助教, 研究 方向: 蒙特卡罗方法。
! $%&’($)(*+ # !。设进行了 , 次投
!
!
针试验, 有 - 次与平行线相交, 当 , 足够大时, 细 针与平行线相交的频率就等于以上的概率,于是 得到计算的 ! 公式为
!*+, # ./+ ./+/"
计算方法和结果 模型 在二维平面 上 画 三 条 相 距 为 !/0, 长 度 为 1 的平行线, 取细针长度为 !/0, 如图 + 所示。 因为本 文所用随机数在 [!, 之间, 所以平行线的有效长 "] 度为 1,也就是说所有投掷试验都等效于在上述 边长为 1 的正方形区域内进行。
3
引言
计算机的出现和计算技术的发展为仿真技术
决这类问题的一种能力很强的特殊的数值方法。 本文把蒙特卡罗方法和仿真技术结合起来, 产生出蒙特卡罗仿真系统或蒙特卡罗仿真机, 试 图解决复杂的随机性问题。
的发展提供了强有力的手段和工具,尤其是微型 计算机的发展和普及,使很多大计算量的仿真系 统得以实现, 并且在国民生产、 科学研究等领域得 到了广泛的应用。 现代科技发展中提出来愈来愈复杂的随机性 问题, 除极少数外, 要想给出其严格解是根本不可 能的, 用确定性方法给出其近似解也很困难, 甚至 不可能。蒙特卡罗方法以对随机性问题进行仿真 为其基本特征 , 这就决定 了 蒙 特 卡 罗 方 法 是 解
%
%"!
蒙特卡罗仿真机
蒙特卡罗仿真机的工作原理 蒙特卡罗方法能够处理一些其他方法所不能
&
&"!
投针试验
试验 著名的 02345 投针实验是一种求 ! 近似值的
处理的复杂问题,并且容易在计算机上模拟实际 概率过程, 然后加以统计处理。由上可知, 可以把 蒙特卡罗方法和仿真技术结合起来,这样就产生 了蒙特卡罗仿真系统或蒙特卡罗仿真机,其工作 原理叙述如下: (!) 基于对待解问题的详细分析, 建立详细的
[%]
程可大致分为仿真建模、 程序实现、 仿真结果的统 计分析三大部分 。其中仿真建模是最基础的、 关
[&]
系整个仿真成败的环节。如果有软件能够辅助用 户方便快捷地完成仿真建模工作,那么不仅可大 大减少工作量,而且还可使用户集中精力以提高
[’] 建模质量 。
随机数的来源。 在运用 ,-./-0 进行产品开发的 时候,经常会遇到数据采集等直接对硬件进行操 作的问题。 通常在该问题的处理上, 采用语言直接 进行编程, 或是在 ,-./-0 中插入软件接口进行 编 程[!1] , 因此, 可 以 用 ,-./-0 进 行 随 机 数 采 集 与仿真。
+ 细针端点的纵坐标 4+*4"8 "!/0+6 (3+63") ,如果
">?>/
[+] 徐钟济 / 蒙特卡罗方法 [-] / 上海 = 上海科学技术出版社, ">?0/ [5 ] 李书臣, 赵礼峰 / 仿真技术的现状及发展 [@ ] / 自动化与 仪 表 , (; ) ">>> , ". ="6./ [. ] 徐庚保/ 系统仿真的过去、 现在和未来 [@] / 计算机仿真, ">>?, (5 ) "0 = +6./ [0 ] 惠天舒, 李裕山, 陈宗基 / 仿真模型的可重用性研究 [@ ] /北 京 航空航天大学学报, (5 ) ">>> , +0 = 5+>6555/ [; ] 陆银根 / 用类同余法产生随机数及其检验 [@] / 数理 统 计 与 管 理 /+!!+ , (; ) +" =0!60+/ [< ] ABCD E F , 1(G - H/ I DCJ BCGKL’ML% N&K MC’M ’GLMC KC)G%6 [@] [@ ] , ">>? , ML&D / ODN&K2(ML&D (D) P&NMJ(KC EC%BD&Q&R4 .! (0 # ; ) =5.<650./ [? ] ABCD E F , 1(G - H/ I ’L2GQ(ML&D ’MG)4 &D ’&2C BCGKL’6
[" ] 裴 鹿 成 / 计 算 机 随 机 模 拟 [- ] /长 沙=湖 南 科 学 技 术 出 版 社 ,
图+
投针示意图
./+/+
算法
(" ) 为计算作准备。取总投针次数初始值 ,* 相交次数 -*!, 设定总投针试验次数 ,2(3; !, (+ ) 由蒙特卡罗方法产生两个 [!, 间均匀分 "] 布的随机数,并作为随机构造的细针的一个端点 ; 的坐标 (3", 4+) 再产生一个随机数, 作为细针另一端点的 (5 ) 横坐标 3+; (.) 如 果 $3+63"$7!/0 , 则说明本次欲构造的细 针长度已超过 !/0, 应舍弃并回到上步; (0) 利用细针长度为 !/0 这个约束条件, 计算