- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排队系统仿真 包含C
排队系统仿真实验
1. 实验目的
离散事件系统大量存在于现实生活中。离散事件系统往往是随机的,具有复杂的变化关系,难以用常规的微分方程、差分方程等模型来描述,计算机仿真技术是解决这类问题的有效手段。排队系统是一种非常重要的离散事件系统,也是最早研究的离散事件系统。本实验通过设计一种最简单的单服务台排队系统仿真程序,深入理解排队系统的建模与仿真方法,掌握排队系统仿真的基本步骤和程序设计技术,了解离散事件系统仿真的一般原理。
2. 排队系统仿真程序功能
模拟一个单服务台单队列排队系统的运行过程,完成一定数量活动实体的服务过程,输出排队系统的常用统计指标。
仿真运行时间(可由活动实体数确定)、活动实体到达平均时间间隔、平均服务时间作为参数在程序运行时输入。
3. 关键技术
(1)随机数发生器——乘同余法
递推公式:
程序中采用:
(2)随机变量的产生——变换抽样法
指数分布随机变量的产生:
其中,λ为到达(或服务)速率,1/λ到达时间平均间隔(或平均服务时间),u为随机数。
(3)排队、到达、服务模式
排队规则:先到先服务(FIFO);
到达模式:泊松到达,即相邻两个顾客到达的时间间隔服从指数分布;
服务模式:服务台为活动实体提供服务的时间是随机的,服从指数分布。
(4)常用统计性能指标计算
平均延误时间:
其中,Di为第i个活动实体在队列中耽误的时间。
平均滞留时间:
其中,Wi为第i个活动实体在系统中滞留的时间,Si为第i个活动实体接受服务台服务的时间。
平均队长:
其中,Q(t)为t时刻系统中队列的长度。
平均实体数:
其中,L(t)为t时刻系统中的活动实体数,Q(t)为t时刻队列的长度,S(t)为t时刻接受服务台服务的活动实体数。
4. 程序架构
(1)基本模块
void initialize(void); /*变量初始化*/
void timing(void); /*时间调度*/
void arrive(void); /*到达事件处理*/
void depart(void); /*离开事件处理*/
void report(void); /*统计量输出*/
void update_time_avg_stats(void); /*统计量的更新*/
float expon(float mean); /*指数分布随机变量的变换抽样法*/
(2)程序流程(main()函数)
(3)到达事件处理流程(arrive()函数)
(4)离开事件处理流程(depart()函数)
5. 程序设计
(1)定义
#include stdio.h
#include math.h
/*#include lcgrand.h Header file for random-number generator. */
#define Q_LIMIT 100 /* Limit on queue length. */
#define BUSY 1 /* Mnemonics for servers being busy */
#define IDLE 0 /* and idle. */
int next_event_type, num_custs_delayed, num_delays_required, num_events,
num_in_q, server_status;
float area_num_in_q, area_server_status, mean_interarrival, mean_service,
sim_time, time_arrival[Q_LIMIT + 1], time_last_event, time_next_event[3],
total_of_delays;
FILE *infile, *outfile;
float lcgrand(int stream);
void initialize(void);
void timing(void);
void arrive(void);
void depart(void);
void report(void);
void update_time_avg_stats(void);
float expon(float mean);
(2)主程序
main() /* Main function. */
{
/* Open input and output files. */
infile = fopen(mm1.in, r);
outfile = fopen(mm1.out, w);
/* Specify
您可能关注的文档
- 小学德育序列化校本课程(六年级全册).doc
- 小学生百科知识竞赛试题(一二三年级).doc
- 小学生百科知识竞赛试题(四五六年级).doc
- 小学生百科知识竞赛试题三四年级.doc
- 小学生人际关系1.ppt
- 小学英语校本课程开发的设想.doc
- 小学科学实验创新大赛教案设计《电磁铁的磁力》.doc
- 小学经典诵读社团材料.doc
- 小学语文一年级(江苏版)看拼音写汉字 田字格版.doc
- 小学音乐 第一节 手拉手,地球村课件.ppt
- 中国国家标准 GB/T 4797.3-2024环境条件分类 自然环境条件 第3部分:生物.pdf
- GB/T 4797.3-2024环境条件分类 自然环境条件 第3部分:生物.pdf
- 《GB/T 10395.28-2024农业机械 安全 第28部分:移动式谷物螺旋输送机》.pdf
- 中国国家标准 GB/T 10395.28-2024农业机械 安全 第28部分:移动式谷物螺旋输送机.pdf
- GB/T 10395.28-2024农业机械 安全 第28部分:移动式谷物螺旋输送机.pdf
- 高中数学学考复习优化练习20空间点、直线、平面之间的位置关系含答案.docx
- 刘静心 82003005 材加概论结课论文(2).pdf
- 社会实践登记表1.doc
- 刘静心 82003005 材加概论结课论文.docx
- 十三五全面二孩政策解读.ppt
文档评论(0)