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