计算机模拟程设计.doc

计算机模拟程设计.doc

ID:55716868

大小:50.00 KB

页数:12页

时间:2020-05-26

计算机模拟程设计.doc_第1页
计算机模拟程设计.doc_第2页
计算机模拟程设计.doc_第3页
计算机模拟程设计.doc_第4页
计算机模拟程设计.doc_第5页
资源描述:

《计算机模拟程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、问题某服务机构配备了5个服务台,5个服务台具有相同的服务质量,顾客独立地随机到达。顾客到达的时间服从(6,14)的均匀分布,服务时间服从参数为40的指数分布。方案1:让顾客排成1个队列。顾客到来时选择空闲的服务台为其服务,否则排队。方案2:让顾客排成5个队列(即每个服务台前一个队列)。顾客到来时若有空闲服务台,则让其服务,否则选择队列最短的队伍参加排队,中途不允许换队。对两种方案进行建模,以顾客在系统中的平均逗留时间为指标评价两种方案的优劣。二、系统建模分析方案一为单队多服务台排队系统,方案二为多队多服务台排队系统。两者系统中的实体有顾客

2、和服务台两种。顾客的状态就是系统中的顾客数,服务台的状态是忙或闲,分别用1和0表示。三、系统状态的事件该系统中的事件类型有:顾客到达事件,服务台开始服务事件,服务台结束服务事件和顾客离开事件。由于顾客到达事件和服务台开始服务事件同时发生,服务台结束服务事件和顾客离开事件同时发生。所以改变系统状态的事件可归结为四个事件:0:顾客到达事件1:1号服务台顾客离开事件2:2号服务台顾客离开事件3:3号服务台顾客离开事件4:4号服务台顾客离开事件5:5号服务台顾客离开事件四、系统建模1.该系统输入离散事件系统;实体:顾客、服务台;状态:服务台的忙与闲、

3、顾客的排队与被服务;事件:顾客的到达与离开;五、模型变量的说明对于第一个方案:输入变量:mservta:顾客到达最短时间mservtb:顾客到达最长时间nevnts:时间类型数目totcus:预订接受服务的顾客总数模拟变量:aniq:派对系统中顾客数目的时间积分值delay:顾客排队的等待时间nextt:下次时间类型niq:排队等待的顾客数numcus:系统中接受服务的顾客数rmin:确定最近事件时间的变量status:服务台的状态tarrvl[i]:在队列中等待的第i个顾客的到达时间clock:模拟时钟tlevnt:上次事件的发生时间fel

4、[i]:第i类事件的下次发生时间totdel:已接受服务的所有顾客的派对时间累加值sertim:服务太的某次服务时间statum:服务台的工作时间累加值输出变量:avgnis:系统中的平均顾客数avgniq:派对队列中的顾客数avgsel:顾客在系统中的平均逗留时间avgdel:顾客在队列中的平均排队时间serate:服务台的平均利用率程序清单:#include"stdio.h"#include#includevoidmain(){floatuni(inta,intb);floatexpon();float

5、tarrvl[101]={0},stasum[5]={0},status[5]={0},serate[5]={0},sertim[5]={0},fel[6]={0,1E+30,1E+30,1E+30,1E+30,1E+30};clock=0,tlevnt=0,totdel=0,aniq=0,delay=0,seratet=0,stasumt=0,avgdel,avgniq,avgsel,avgnis,mservta,mservtb;intnumcus=0,numcusf=0,totcus=0,niq=0,nextt,i,nevnts;prin

6、tf("到达时间:,MIN服务时间:,MAX服务时间:,服务台数:,顾客总数:");scanf("%d,%d,%d,%d:",&mservta,&mservtb,&nevnts,&totcus);fel[0]=clock+uni(mservta,mservtb);do{floatrmin=1E+29;nextt=0;for(i=0;i<=nevnts;i++){if(fel[i]

7、ni(mservta,mservtb);for(i=1;i<=nevnts;i++){if(status[i]==0)break;}if(i<=nevnts){status[i]=1;sertim[i]=expon();fel[i]=clock+sertim[i];}else{aniq=aniq+(float)niq*(clock-tlevnt);tlevnt=clock;niq=niq+1;tarrvl[niq]=clock;}}break;case1:case2:case3:case4:case5:{numcus=numcus+1;if(

8、((rand()+80)/(32767.0+80))<0.1)numcusf+=1;stasum[nextt]+=sertim[nextt];if(niq==0){

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。