多服务台排队系统地仿真

上传人:沈*** 文档编号:83453105 上传时间:2022-05-01 格式:DOC 页数:8 大小:173KB
返回 下载 相关 举报
多服务台排队系统地仿真_第1页
第1页 / 共8页
多服务台排队系统地仿真_第2页
第2页 / 共8页
多服务台排队系统地仿真_第3页
第3页 / 共8页
点击查看更多>>
资源描述
word实验3-多服务台排队系统的仿真某某: 学号:一、 目标任务一个系统有N个服务员,能力相等,服务时间服从指数分布。顾客的到达时间间隔服从指数分布。用Monte-Carlo仿真,分别求按如下方案的总体平均排队时间: M|M|N。 N个单通道系统并列,按1/N概率分裂到达流。 N个单通道并列,挑选最短的队。要求: 给出程序设计的过程。 如果采用固定的N,如此要求N2。 至少取=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); % 按1.N的顺序循环排入服务员窗口 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号服务员空闲, 如此更新服务员下一空闲时间为当前绝对时钟加上当前服务时间并存入server_time对应数组。 否如此所有服务员都在忙碌, 顾客要排队等候, 总的排队时间加上顾客排队等候时间, 等候时间为当前服务员下一空闲时间减去绝对时钟。 再更新当前服务员下一空闲时间加上服务时间ServeTime。8. 转到3;8 / 8
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!