排队论的计算机模拟,8.2 排队论模型(二)-----计算机模拟.pdf
排隊論模型計算機模擬
排隊論中的問題有的可以通過理論計算解決,但當理論計算難以
解決時,則可以考慮采用計算機模擬的方法解決。
問題1 收款臺服務(wù)問題
該問題中顧客服務(wù)時間服從正態(tài)分布,不再是負指數(shù)分布,不能直接采用前面的
模型計算,因此我們可以考慮采用計算機模擬計算得到需要的結(jié)果。
程序見后,某次仿真結(jié)果為:
顧客平均逗留時間 13.32秒, 系統(tǒng)工作強度 0.659
Matlab模擬計算程序:
n=10000; %模擬顧客數(shù)
dt=exprnd(10,1,n); %到達時間間隔
st=normrnd(6.5,1.2,1,n); %服務(wù)臺服務(wù)時間
%st=exprnd(2.5,1,n); %服務(wù)臺服務(wù)時間
a=zeros(1,n); %每個人到達時間
b=zeros(1,n); %每個人開始接受服務(wù)時間
c=zeros(1,n);%每個人離開時間
a(1)=0;
for i=2:n
a(i)=a(i-1)+dt(i-1);%第i個人到達時間
end
b(1)=0;%第1個人開始服務(wù)時間為到達時間
c(1)=b(1)+st(1); %第1個人離開時間為服務(wù)時間
for i=2:n
if(a(i)<=c(i-1)) b(i)=c(i-1);
else b(i)=a(i);
end
c(i)=b(i)+st(i); %第i個人離開時間為其開始服務(wù)時間+接受服務(wù)時間
end
cost=zeros(1,n); %記錄每個人在系統(tǒng)逗留時間
for i=1:n
cost(i)=c(i)-a(i); %第i個人在系統(tǒng)逗留時間
end
T=c(n); p=sum(st)/T; %服務(wù)率
avert=sum(cost)/n; %每個人系統(tǒng)平均逗留時間
fprintf('顧客平均逗留時間%6.2f秒\n',avert);
fprintf('系統(tǒng)工作強度%6.3f\n',p);
問題2 卸貨問題
解答:該問題可以看作單服務(wù)臺的排隊系統(tǒng)。到達時間服從的是給定的離散分
布,服務(wù)時間也不服從負指數(shù)分布。不能直接利用理論公式求解,可采用計算機模
擬求解。
1. 隨機到達船數(shù)的產(chǎn)生
首先我們需要產(chǎn)生每天隨機到達的船數(shù),該隨機數(shù)服從離散分布
,可以先產(chǎn)生一個0~1之間的均勻隨機數(shù),其落在不同區(qū)間則壽命取
不同值,具體見表2 。
2. 計算機仿真分析
某次模擬結(jié)果為:
每天推遲卸貨的平均船數(shù)2.68 。
下面是Matlab實現(xiàn)程序
1) 產(chǎn)生隨機到達船數(shù)的函數(shù)BoatNumber.m
function X=BoatNumber
Boat=0:7; %到達船數(shù)取值范圍
%到達船數(shù)概率分布
Prob=[0.05,0.1,0.1,0.25,0.20,0.15,0.1,0.05];
n=length(Prob);
Qu=zeros(1,n+1);
Qu(1)=0;
for i=1:n
Qu(i+1)=Qu(i)+Prob(i); %產(chǎn)生概率區(qū)間
end
Qu(n+1)=1.01;
%將最后一個數(shù)值超過1,便于后面的隨機數(shù)r取到1
%產(chǎn)生一次到達船數(shù)
r=rand(1); %產(chǎn)生一個[0,1]隨機變量
for i=1:n
if(r>=Qu(i)&&r
end
end
return
2) 模擬計算的主程序Boat.m
n=10000; %模擬總天數(shù)
x=zeros(n,1); %存儲每天到達船數(shù)
a=zeros(n,1); %存儲每天需要卸貨的船數(shù)
b=zeros(n,1); %存儲每天實際卸貨的船數(shù)
d=zeros(n,1); %存儲每天推遲卸貨的船數(shù)
for i=1:n
x(i)=BoatNumber; %模擬n天到達船數(shù)
end
a(1)=x(1);
if a(1)>4 b(1)=4; %計算每天實際卸貨船數(shù)
e
總結(jié)
以上是生活随笔為你收集整理的排队论的计算机模拟,8.2 排队论模型(二)-----计算机模拟.pdf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【蓝桥杯单片机(18)】第七届省赛-模拟
- 下一篇: 下载视频网站中ts格式的视频