- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
排队模型(matlab代码).doc
function out=MMSmteam(s,m,mu1,mu2,T)
%M/M/S/m排队模型
%s——修理工个数
%m——机器源数
%T——时间终止点
%mu1——机器离开-到达时间服从指数分布
%mu2——修理时间服从指数分布
%事件表:
% p_s——修理工空闲概率
% arrive_time——机器到达事件
% leave_time——机器离开事件
%mintime——事件表中的最近事件
%current_time——当前时间
%L——队长
%tt——时间序列
%LL——队长序列
%c——机器到达时间序列
%b——修理开始时间序列
%e——机器离开时间序列
%a_count——到达机器数
%b_count——修理机器数
%e_count——损失机器数
%初始化
arrive_time=exprnd(mu1,1,m);
arrive_time=sort(arrive_time);
leave_time=[];
current_time=0;
L=0;
LL=[L];
tt=[current_time];
c=[];
b=[];
e=[];
a_count=0;
%循环
while min([arrive_time,leave_time])T
current_time=min([arrive_time,leave_time]);
tt=[tt,current_time]; %记录时间序列
if current_time==min(arrive_time) %机器到达子过程
arrive_time(1)=[]; % 从事件表中抹去机器到达事件
a_count=a_count+1; %累加到达机器数
if Ls %有空闲修理工
L=L+1; %更新队长
c=[c,current_time];%记录机器到达时间序列
b=[b,current_time];%记录修理开始时间序列
leave_time=[leave_time,current_time+exprnd(mu2)];%产生新的机器离开事件
leave_time=sort(leave_time);%离开事件表排序
else %无空闲修理工
L=L+1; %更新队长
c=[c,current_time];%记录机器到达时间序列
end
else %机器离开子过程
leave_time(1)=[];%从事件表中抹去机器离开事件
arrive_time=[arrive_time,current_time+exprnd(mu1)];
arrive_time=sort(arrive_time);%到达事件表排序
e=[e,current_time];%记录机器离开时间序列
if Ls %有机器等待
L=L-1; %更新队长
b=[b,current_time];%记录修理开始时间序列
leave_time=[leave_time,current_time+exprnd(mu2)];%产生新的机器离开事件
leave_time=sort(leave_time);%离开事件表排序
else %无机器等待
L=L-1; %更新队长
end
end
LL=[LL,L]; %记录队长序列
end
Ws=sum(e-c(1:length(e)))/length(e);
Wq=sum(b-c(1:length(b)))/length(b);
Wb=sum(e-b(1:length(e)))/length(e);
Ls=sum(diff([tt,T]).*LL)/T;
Lq=sum(diff([tt,T]).*max(LL-s,0))/T;
p_s=1.0/(factorial(m)/factorial(m).*(mu2/mu1)^0+factorial(m)/factorial(m-1).*(mu2/m
文档评论(0)