


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机仿真单服务员单队列系统仿真实验班级:机设13-4班学 号:2013210360姓名:杨 尚 武授课教师: 翟华日 期:2016年4月13日实验二单服务员单队列系统仿真实验一、实验目的通过实验了解离散事件系统仿真一般过程,了解离散事件系统中典型的单服务员单队列系统的仿真一般过程,了解不同分布随机数的计算机实现过程,了解事件扫描法在离散事件系统中的应用。二、实验要求通过实验了解离散事件系统仿真一般过程,了解离散事件系统中典型的单服 务员单队列系统的仿真一般过程,了解不同分布随机数的计算机实现过程,了解事件扫描法在离散事件系统中的应用。同学能在参考源程序的基础上,独立编写C源程序,或其他高级语
2、言程序,能正 确计算仿真结果,并对结果进行分析。三、参考C语言程序#i nclude "stdio.h"#in elude "math.h"FILE * fp;float seed;int sstop,ip;float miat,msvt,svt;float tval,tlq,tme n;float sigma,time,lqt,lst,tle;float wkst100;float b,mq,s,f, nd,ts,is,ta,ia,clock,fel3;int imevt, nu mevs;void rptge n() /报告生成子程序 float r
3、ho,w,pc,amts,amta,lq,l,wq;rho=b/clock;w=s/nd;pc=f/nd;amts=ts/is;amta=ta/ia;lq=tlq/clock;l=tme n/clock;wq=tlq/nd;if(fp=fope n( "fz22","wb")=NULL)pri ntf("ca nnot ope n file' n");prin tf("time=%fn",time);fprin tf(fp,"miat=%f,msvt=%f,sigma=%f,time=%fn &q
4、uot;,miat,msvt,sigma,time)Jfprin tf(fp,"rho=%f,mq=%f,pc=%f,clock=%fn",rho,mq,pc,clock);fprin tf(fp," nd=%f,amts=%f,amta=%fn", nd,amts,amta);fprin tf(fp,"lq=%f,l=%f,wq=%f,w=%fn",lq,l,wq,w);float rand() /随机数生成子程序float a,c,m;float ra nd1;a=25173.0;c=13849.0;m=65535.0;seed=
5、(seed*a+c)-m*(i nt)(seed*a+c)/m);if(seed=0.0) seed=1.0;ran d1=seed/m;return ran d1;float normal(float ex,float stdx)/正态分布随机数生成子程序/float ex,stdx;float sum,x;int i;float r;sum=0.0;for(i=1;i<=12;i+)r=ra nd();sum=sum+r;x=stdx*(sum-6.0)+ex;printf=“normal=%n” ,x );return x;float expent(float ex)/指数分布随机
6、数生成子程序float r,x;r=ran d();x=-ex*log(r);return x;void ini tlz() /系统初始化子程序float aat;clock=0.0; /置仿真时钟为.0imevt=0;/假定系统在时间为空闲lqt=0.0;/置以下各统计量初值为lst=0.0;tle=0.0;b=0.0;mq=0.0;s=0.0;f=0.0;nd=0.0;ts=0.0;is=0.0;ta=0.0;ia=0.0;tlq=0.0;tmen=0.0;aat=expe nt(miat);fel1=clock+aat; /产生第一次到达,并安排在 FEL()fel2=1.0e+30;/
7、置FEL ()为无穷大,表示系统空闲时,不会发生离开事件void timadv()/时间推进子程序 float fmin;int i;fmin=1.0e+29;imevt=0;for (i=1;i<=numevs;i+)/ 搜索 FEL以找出下一事件if(feli>=fmi n) con ti nue;fmi n=feli;imevt=i;if(imevt>0)/判断有无将来事件clock=felimevt;/设定仿真时钟为下一事件时间,事件将在时间FEL(IMEVT发生tval=clock-tle;tlq=tlq+lqt*tval;tme n=tme n+(lqt+lst)
8、*tval;elserptgen();/若将来事件为空,调用报告子程序sstop=1;void arrvl() /到达事件子程序float aat,svt;if(lst=1.0) goto loop2; /检查服务员是否被占lst=1.0;/若服务员空闲,修改系统状态并记录新的顾客的到达时间wkstip=clock;svt=normal(msvt,sigma);/为新到达顾客产生服务时间并安排离开事件fel2=clock+svt;ts=ts+svt;is=is+1.0;/修改累积统计量tle=clock;if(lqt>mq)mq=lqt;goto loop3;loop2: lqt=lqt
9、+1.0; /若服务员被占,修改系统状态,记录新的顾客到达时间及系统中顾客数ip=lqt+lst;if(ip>100) goto loop4;/现设系统容量为人,若超过即给出报告wkstip=clock;b=b+(clock-tle);/修改累积统计量tle=clock;if(lqt>mq) mq=lqt;Ioop3: aat=expent(miat);/产生一个到达时间间隔并安排下一到达事件ta=ta+aat;ia=ia+1.0;fel1=clock+aat;goto Ioop31;Ioop4: prin tf("overflow in array wkst"
10、);rptge n();sstop=1;loop31:return;void dpart() /离开事件子程序 int i,i1;float rt,svt;b=b+(clock-tle); /修改累积统计量tle=clock;rt=clock-wkstip;s=s+rt;nd=nd+1.0;if(rt>=4.0)f=f+1.0; if(lqt>1.0)for(i=1;i<=lqt;i+) i1=i+1;个位置/记录(累计)停留时间大于等于的顾客数 /检查队列空否/此时至少有一个顾客在队列中,使每个顾客向前移动wksti=wksti1;lqt=lqt-1.0;/队列中的顾客数减
11、svt=normal(msvt,sigma);/对将被服务的顾客产生一个新的服务,时间且安排下一个/离开事件fel2=clock+svt; else lst=0.0;fel2=1.0e+30;/队列空,服务员空闲,下一离开事件置在无穷大时间void mai n()ip=0;seed=2.0;miat=10.0; /主程序/输入随机数种子msvt=3.0;sigma=1.0;time=500.0;numevs=2; /确定事件总数为initlz();/调用初始化子程序sstop=0;/程序终止变量,sstop=0,程序循环,sstop=1,程序终止loop: timadv(); /调用时间推进子
12、程序if(sstop=1) goto loopp; if (imevt=1) arrvl();if(sstop=1) goto loopp; goto loop;if (imevt=2) dpart();if (clockvtime) goto loop; rptge n();loopp:retur n;/判断sstop=1,程序终止IMEVT=1为到达,IMEVT=2为离开/调用到达事件子程序/判断sstop=1,程序终止/程序循环执行/调用离开事件子程序/判断仿真是否结束,若未结束继续循环执行/当仿真结束时生成报告输出四、实验报告1 给出RAN()子程序输出的10个数据,以及对应的符合正态
13、分布和指数分 布的随机数。12345RAND()0.9795530.6640570.5042500.5279160.193561NORMAL)2.97672.49043.00012.64993.2569EXPENT()0.20664.09396.84686.388216.4216678910RAND()0.9597770.6832380.0843370.1624320.080400NORMAL)2.96584.57993.77831.63436.6180EXPENT()0.41053.809124.729418.174925.20742.分别输入下列三组数据,给出相应的计算结果(包括服务员忙度
14、、平均服务时 间、平均到达间隔时间、顾客在系统中平均时间、系统中平均顾客数、队列中平 均顾客数、停留4个小时单位以上的顾客比例等),并加以文字说明。(1)输入数据为:MIAT=10 MSVT=5 SIGMA=2 TIME=100计算结果为:平均到达间隔时间 miat=10.000000平均服务时间msvt=5.000000服务时间标准差sigma=2.000000仿真停止时间time=100.000000服务员忙度rho=0.482677到当前时间为止等待队列的最大长度 mq=2.000000停留4个小时单位以上的顾客比例 pc=0.454545仿真时钟当前时间clock=114.048820
15、到当前时间为止离开的顾客数 nd=11.000000平均服务时间amts=4.362051平均到达间隔时间amta=9.973741队列中平均顾客数lq=1.026730系统中平均顾客数1=1.509407顾客在队列中平均时间 wq=10.645217顾客在系统中平均时间 w=3.600372(2)输入数据为:MIAT=10 MSVT=3 SIGMA=1 TIME=100计算结果为:平均到达间隔时间 miat=10.000000平均服务时间msvt=3.000000服务时间标准差sigma=1.000000仿真停止时间time=100.000000服务员忙度rho=0.242204到当前时间为
16、止等待队列的最大长度 mq=1.000000停留4个小时单位以上的顾客比例 pc=0.111111仿真时钟当前时间clock=108.105759到当前时间为止离开的顾客数 nd=9.000000平均服务时间amts=2.909301平均到达间隔时间amta=11.269994队列中平均顾客数lq=0.682092系统中平均顾客数1=0.924297顾客在队列中平均时间 wq=8.193123顾客在系统中平均时间 w=2.863684(3) 输入数据为:MIAT=10 MSVT=30 SIGMA=2 TIME=100计算结果为:平均到达间隔时间 miat=10.000000平均服务时间msvt=30.000000服务时间标准差sigma=2.000000仿真停止时间time=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业合作备忘录与协议条款
- 综合设计能力对纺织品设计师的重要性试题及答案
- 贵州国企招聘2025贵州省水利水电工程咨询有限责任公司招聘12人笔试参考题库附带答案详解
- 纺织品检测员的知识架构与技能提升试题及答案
- 2025辽宁沈阳地铁集团有限公司所属公司招聘11人笔试参考题库附带答案详解
- 2025河南三门峡卢氏县国有资本投资运营有限公司招聘6人笔试参考题库附带答案详解
- 2025四川南充临江东方建设集团有限公司招聘11人笔试参考题库附带答案详解
- 2025中国华冶科工集团有限公司校园招聘280人笔试参考题库附带答案详解
- 超级宇宙考试题及答案
- 骆驼祥子面试题及答案
- 化妆品合伙协议书
- 2024年无人机飞行表演服务合同
- 2024年普通高等学校招生全国统一考试(新高考I卷)
- 第四届全国院校民航空中乘务专业技能大赛理论考试题库(含答案)
- 高压电力管线施工技术方案
- 骆宾王诗词课件
- JGJ162-2014建筑施工模板安全技术规范-20211102195200
- 水文自动监测数据传输规约DB41-T 1920-2019
- 政工师(高级)理论考试题库及答案
- 【目的论视角下电子游戏的本土化翻译探究:以英雄联盟为例开题报告2500字】
- TGXTC 0008-2024 鹰嘴桃流胶病防治技术规程
评论
0/150
提交评论