数学建模之Monte_Carlo模拟.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学建模之Monte_Carlo模拟

排队问题随机模拟 排队论主要研究随机服务系统的工作过程。 在排队系统中,服务对象的到达时间和服务时间都是随机的。排队论通过对随机服务现象的统计研究,找出反映这些随机现象平均特性的规律指标,如排队的长度、等待的时间及服务利用率等。 [1] 系统的假设: (1) 顾客源是无穷的; (2) 排队的长度没有限制; (3)到达系统的顾客按先后顺序依次进入服务,“先到先服务”。 在某商店有一个售货员,顾客陆续来到,售货员逐个地接待顾客.当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店.设: 1.顾客到来间隔时间服从参数为0.1的指数分布. 2.对顾客的服务时间服从[4,15]上的均匀分布. 3.排队按先到先服务规则,队长无限制. 假定一个工作日为8小时,时间以分钟为单位。 [1]模拟一个工作日内完成服务的个数及顾客平均等待时间t. [2]模拟100个工作日,求出平均每日完成服务的个数及每日顾客的平 均等待时间。 单服务员的排队模型模拟 w:总等待时间; ci:第i个顾客的到达时刻; bi:第i个顾客开始服务时刻; ei:第i个顾客服务结束时刻; xi:第i-1个顾客与第i个顾客之间到达的间隔时间; yi:对第i个顾客的服务时间。 符号说明 c1 b1 c3 c4 c5 c2 e1 b2 e2 b3 e3 b4 e4 b5 ci=ci-1+ xi ei=bi+yi bi=max(ci,ei-1) t 思路分析 初始化:令i=1,ei-1=0,w=0 产生间隔时间随机数xi~参数为0.1的指数分布 ci=xi , bi=xi 产生服务时间随机数yi~[4,15]的均匀分布 ei=bi+yi 累计等待时间:w=w+bi-ci 准备下一次服务:i=i+1 产生间隔时间随机数xi~参数为0.1的指数分布 ci=ci-1+ xi 确定开始服务时间:bi=max(ci,ei-1) bi>480? Y N i=i-1,t=w/i 输出结果:完成服务个数:m=i 平均等待时间:t 停止 流程框图 用蒙特卡洛法解非线性规划问题 基本假设 试验点的第j个分量xj服从[aj ,bj]内的均匀分布. 符号假设 求解过程 先产生一个随机数作为初始试验点,以后则将上一个试验点的第j个分量随机产生,其它分量不变而产生一新的试验点.这样,每产生一个新试验点只需一个新的随机数分量.当KMAXK或PMAXP时停止迭代. 框 图 初始化:给定MAXK,MAXP;k=0,p=0,Q:大整数 xj=aj+R(bj-aj) j=1,2,…,n j=0 j=j+1,p=p+1 PMAXP? Y N xj=aj+R(bj-aj) gi(X)≥0? i=1,2…n Y N jn? f(X)≥Q? Y N X*=X,Q=f(X) k=k+1 kMAXK? Y N 输出X,Q,停止 Y N 在Matlab软件包中编程,共需三个M-文件:randlp.m, mylp.m, lpconst.m.主程序为randlp.m. % mylp.m function z=mylp(x)        %目标函数 z=2*x(1)^2+x(2)^2-x(1)*x(2)-8*x(1)-3*x(2);  %转化为求最小值问题 % randlp.m function [sol,r1,r2]=randlp(a,b,n)   %随机模拟解非线性规划 debug=1; a=0;              %试验点下界 b=10;              %试验点上界 n=1000;             %试验点个数 r1=unifrnd(a,b,n,1);      %[a,b]均匀分布随机数矩阵 r2=unifrnd(a,b,n,1); sol=[r1(1) r2(1)]; z0=inf; for i=1:n x1=r1(i); x2=r2(i); lpc=lpconst([x1 x2]); if lpc==1 z=mylp([x1 x2]); if zz0 z0=z; sol=[x1 x2]; end end end 与Monte Carlo方法相似,但理论基础不同的方法—“拟蒙特卡罗方法”(Quasi-Monte Carlo方法)—近年来也获得迅速发展。这种方法的基本思想是“用确定性的超均匀分布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carl

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档