matlab排队模型和排队系统仿真

1755-宋同学

发表文章数:103

热门标签

首页 » 未分类 » 正文


通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度、忙期长短等)的统计规律,然后根据这些规律来改进服务系统的结构或重新组织被服务对象,使得服务系统既能满足服务对象的需要,又能使机构的费用最经济或某些指标最优。

排队论基本构成与指标

排队论的基本构成

输入过程:描述顾客按照怎样的规律到达排队系统。顾客总体(有限/无限)、到达的类型(单个/成批)、到达时间间隔。
排队规则:指顾客按怎样的规定次序接受服务。常见的有等待制、损失制、混合制、闭合制。
服务机构:服务台的数量; 服务时间服从的分布。

排队系统的数量指标

队长:系统中的平均顾客数(包括正在接受服务的顾客)。
等待队长:系统中处于等待的顾客的数量。
等待时间:等待时间包括顾客的平均逗留时间。
忙期:连续保持服务的时长。

数学表示

A输入过程
B服务时间
C服务台数
n系统容量

模型

默认顾客为泊松分布,除非题里有额外说明
M/M/S/∞输入为泊松分布,服务时间服从负指数分布;系统有S个服务台,系统容量为无穷大的瞪大排队系统
M/M/S/S
顾客到达服从泊松分布,服务台服务时间服从负指数分布,当 S 个服务台被占用后,顾客自动离开,不再等待。
M/M/S/K
顾客到达服从泊松分布,服务台服务时间服从负指数分布,系统容量为 K,当 K 个位置被占用时,顾客自动离开。
M/M/S/K/K
顾客到达服从泊松分布,服务台服务时间服从负指数分布,
系统容量和潜在的顾客数都为 K。
M/M/S/∞
顾客到达规律服从泊松分布,[0,t]时间内到达的顾客平均数为λt。
matlab排队模型和排队系统仿真
顾客接受服务的时间服从参数为μ的负指数分布。每个顾客接受服务的平均时间为1/μ。matlab排队模型和排队系统仿真
当S=1时:
系统的服务强度matlab排队模型和排队系统仿真
无顾客的概率 matlab排队模型和排队系统仿真
有 n 个顾客的概率matlab排队模型和排队系统仿真
平均队长matlab排队模型和排队系统仿真
平均等待队长
matlab排队模型和排队系统仿真
平均逗留时间matlab排队模型和排队系统仿真
平均等待时间matlab排队模型和排队系统仿真
Little 公式matlab排队模型和排队系统仿真
当S>1时
服务能力和强度matlab排队模型和排队系统仿真
服务台都空闲的概率matlab排队模型和排队系统仿真
平均队长
matlab排队模型和排队系统仿真
平均逗留时间matlab排队模型和排队系统仿真
平均等待时间matlab排队模型和排队系统仿真
平均等待队长matlab排队模型和排队系统仿真
对于单服务台,时间状态如下
matlab排队模型和排队系统仿真
matlab排队模型和排队系统仿真
对于多个服务台
假设所有人都是去“办事”
matlab排队模型和排队系统仿真matlab排队模型和排队系统仿真
exprnd函数
其中exprnd(x,y,z),y与z控制生成的矩阵高宽,x具体改变的是……
我直接放图吧,感受效果,这是x=5,10,15的效果
matlab排队模型和排队系统仿真

x=[1:30];
for i=5:5:15
    y=(exprnd(i,1,30))'
    [m,n]=max(y);
    plot(x,y);
    hold on;
    plot(n,m,'*r');
    hold on;
end
legend('5max','5','10max','10','15max','15')

自动取款机案例

银行计划安置取款机, A 机价格和平均服务率都是 B 机的 2倍.。应购置 1 台 A 机还是 2 台 B 机?
顾客平均每分钟到达 1 位, A 型机的平均服务时间为 0.9, B型机为 1.8 分钟, 顾客到达间隔和服务时间都服从指数分布。

%一台A机器
people_num=100;%设置访问人数
at=1;ft=0.9;%到达和服务的指数分布参数
at_dis=cumsum(exprnd(at,1,people_num));%客户到达的时间分布
ft_dis=exprnd(ft,1,people_num);%每个客户需要的服务时间
ser_time=zeros(people_num,1);%新建服务时刻数组
lea_time=zeros(people_num,1);%新建离开时刻数组
wai_time=zeros(people_num,1);%新建等待时长数组
ser_time(1)=at_dis(1);%第一个客户出现
lea_time(1)=at_dis(1)+ft_dis(1);%第一个客户结束服务——离开时刻
wai_time(1)=0;%等待时长
for i=2:people_num
    ser_time(i)=max(at_dis(i),lea_time(i-1));%服务时刻
    lea_time(i)=ser_time(i)+ft_dis(i);%离开时刻
    wai_time(i)=at_dis(i)-lea_time(i-1);%等待时长
end
%两台B机器
ft_b=1.8;
ft_dis_b=exprnd(ft_b,1,people_num);
ser_time_b=zeros(people_num,1);%新建服务时刻数组
lea_time_b=zeros(people_num,1);%新建离开时刻数组
wai_time_b=zeros(people_num,1);%新建等待时长数组
cou=[0 0];%初始柜台
ser_time_b(1)=at_dis(1);%第一个客户出现
lea_time_b(1)=at_dis(1)+ft_dis(1);%第一个客户结束服务——离开时刻
wai_time_b(1)=0;%等待时长
cou(1)=lea_time(1);
for i=2:people_num
    [mi w]=min(cou);
    ser_time_b(i)=max(at_dis(i),cou(w));%服务时刻
    lea_time_b(i)=ser_time(i)+ft_dis_b(i);%离开时刻
    cou(w)=lea_time_b(i);
    wai_time_b(i)=at_dis(i)-cou(w);%等待时长
end
x=[1:people_num];
plot(x,at_dis,'r',x,ft_dis_b,'k',x,lea_time_b,'b',x,ft_dis,':k',x,lea_time,':b')
legend('到达时间','B服务时长','B离开时间','A服务时长','A离开时刻')

说实在的效果不是很明显,离开时间差的也不多。
matlab排队模型和排队系统仿真
两台B机,M/M/S/K模型下的程序编写
链接

标签:

拜师教育学员文章:作者:1755-宋同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《matlab排队模型和排队系统仿真》 发布于2020-10-12

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录