多服务台排队系统的仿真_第1页
多服务台排队系统的仿真_第2页
多服务台排队系统的仿真_第3页
多服务台排队系统的仿真_第4页
多服务台排队系统的仿真_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验实验 3-多服务台排队系统的仿真多服务台排队系统的仿真 姓名: 学号: 一、一、目标任务目标任务 已知一个系统有 N 个服务员,能力相等,服务时间服从指数分布。顾客的到达时间间 隔服从指数分布。用 Monte-Carlo 仿真,分别求按下列方案的总体平均排队时间: M|M|N。 N 个单通道系统并列,按 1/N 概率分裂到达流。 N 个单通道并列,挑选最短的队。 要求: 给出程序设计的过程。 如果采用固定的 N,则要求 N2。 至少取 =0.3 和 =0.7 两种强度运行程序。 对结果进行分析。 二、二、编程语言编程语言 Matlab 三、三、关键代码关键代码 方案一:方案一: N = 3; % 服务员人数 r = 6; % 顾客到达流强度 u = 20; % 服务员服务强度 T = 1000000; % 仿真运行时间 avg_wait_time = ; % 平均等待时间 for i=1:100 % 模拟排队函数 server_time = 0.0, 0.0, 0.0; % 用来保存服务员下一空闲时间 time = 0; % 绝对时钟,初始为 0 client_num = 0; % 顾客总数,初始为 0 CRTime = 0; % 顾客到达时间间隔 ServeTime = 0; % 顾客服务时间 server_id = 0; % 当前进入排队窗口的服务员编号 total_wait_time = 0;% 系统中到达顾客的总等待时间 while 1 CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔 time = time + CRTime; % 更新系统的绝对时钟 if time T break; end client_num = client_num + 1; % 顾客数加 1 ServeTime = exprnd(1/u); % 按指数分布产生顾客服务间隔 server_id = mod(client_num, N); % 按 1N 的顺序循环排入服务员窗口 if server_id =0 server_id = N; end if server_time(1, server_id) T break; end client_num = client_num + 1; % 顾客数加 1 ServeTime = exprnd(1/u); % 按指数分布产生顾客服务时间间隔 server_id = randi(1 N); % 按 1/N 的概率排入服务员窗口 if server_time(1, server_id) T break; end client_num = client_num + 1; % 顾客数加 1 ServeTime = exprnd(1/u); % 按指数分布产生顾客服务时间间隔 temp = min(server_time); % 寻找排队时间最短的服务员窗口 x, y = find(temp = min(min(server_time); server_id = y; % 按队伍最短排入服务员窗口 if server_time(1, server_id) T, 输出 total_wait_time/client_num; 4. Client_num +; 5. 按照指数分布产生顾客到达时间间隔 ServeTime; 6. 按服务员的顺序生成当前服务员的 server_id; 7. 如果当前 server_id 号服务员空闲, 则更新服务员下一空闲时间为当前绝对时钟加 上当前服务时间并存入 server_time对应数组。 否则所有服务员都在忙碌, 顾客要 排队等候, 总的排队时间加上顾客排队等候时间, 等候时间为当前服务员下一空闲 时间减去绝对时钟。 再更新当前服务员下一空闲时间加上服务时间 ServeTime。 8. 转到 3; 方案二:方案二: 图 3 方案二仿真的平均等待时间散点图 图 4 方案二平均等待时间 N 个单通道系统并列, 按 1/N 概率分裂到达流 1. 输入参数: 服务员人数 N, 顾客到达流强度 r, 服务员服务强度 u, 仿真运行 时间 T; 2. 各变量初始值置 0: 绝对时钟 time, 服务员下一空闲时刻数组 server_time( 其 中按顺序保存每一个服务员的下一空闲时刻) , 顾客总数 client_num, 顾客到达时 间间隔 CRTime, 顾客服务时间 ServeTime, 当前进入排队窗口的服务员编号 server_id, 系统中顾客总等待时间 total_wait_time; 3. 按照指数分布产生下一顾客到达的时间间隔 CRTime, time+=CRTime。 若 timeT, 输出 total_wait_time/client_num; 4. Client_num +; 5. 按照指数分布产生顾客到达时间间隔 ServeTime; 6. 按 1/N 概率生成当前服务员的 server_id; 7. 如果当前 server_id 号服务员空闲, 则更新服务员下一空闲时间为当前绝对时钟加 上当前服务时间并存入 server_time对应数组。 否则所有服务员都在忙碌, 顾客要 排队等候, 总的排队时间加上顾客排队等候时间, 等候时间为当前服务员下一空闲 时间减去绝对时钟。 再更新当前服务员下一空闲时间加上服务时间 ServeTime。 8. 转到 3; 方案三:方案三: 图 4 方案三仿真的平均等待时间散点图 图 5 方案三仿真的平均等待时间散点图 N 个单通道并列, 挑选最短的队 1. 输入参数: 服务员人数 N, 顾客到达流强度 r, 服务员服务强度 u, 仿真运行时间 T; 2. 各变量初始值置 0: 绝对时钟 time, 服务员下一空闲时刻数组 server_time( 其中按 顺序保存每一个服务员的下一空闲时刻) , 顾客总数 client_num, 顾客到达时间间隔 CRTime, 顾客服务时间 ServeTime, 当前进入排队窗口的服务员编号 server_id, 系统中 顾客总等待时间 total_wait_time; 3. 按照指数分布产生下一顾客到达的时间间隔 CRTime, time+=CRTime。 若 timeT, 输出 total_wait_time/client_num; 4. Client_num +; 5. 按照指数分布产生顾客到达时间间隔 ServeTime; 6. 按服务员下一空闲时刻数组 server_time中最小的时刻生成当前服务员的 server_id; 7. 如果当前 server_id 号服务员空闲, 则更新服务员下一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论