排队论的matlab仿真(包括仿真代码).docx
《排队论的matlab仿真(包括仿真代码).docx》由会员分享,可在线阅读,更多相关《排队论的matlab仿真(包括仿真代码).docx(21页珍藏版)》请在冰点文库上搜索。
WirelessNetwork
ExperimentThree:
QueuingTheory
ABSTRACT
Thisexperimentisdesignedtolearnthefundamentalsofthequeuingtheory.MainlyabouttheM/M/SandM/M/n/nqueuingmodels.
KEYWORDS:
queuingtheory,M/M/s,M/M/n/n,ErlangB,ErlangC.
INTRODUCTION
Aqueueisawaitinglineandqueueingtheoryisthemathematicaltheoryofwaitinglines.Moregenerally,queueingtheoryisconcernedwiththemathematicalmodelingandanalysisofsystemsthatprovideservicetorandomdemands.Incommunicationnetworks,queuesareencounteredeverywhere.Forexample,theincomingdatapacketsarerandomlyarrivedandbuffered,waitingfortheroutertodeliver.Suchsituationisconsideredasaqueue.Aqueueingmodelisanabstractdescriptionofsuchasystem.Typically,aqueueingmodelrepresents
(1)thesystem'sphysicalconfiguration,byspecifyingthenumberandarrangementoftheservers,and
(2)thestochasticnatureofthedemands,byspecifyingthevariabilityinthearrivalprocessandintheserviceprocess.
Theessenceofqueueingtheoryisthatittakesintoaccounttherandomnessofthearrivalprocessandtherandomnessoftheserviceprocess.ThemostcommonassumptionaboutthearrivalprocessisthatthecustomerarrivalsfollowaPoissonprocess,wherethetimesbetweenarrivalsareexponentiallydistributed.Theprobabilityoftheexponentialdistributionfunctionisft=λe-λt.
lErlangBmodel
OneofthemostimportantqueueingmodelsistheErlangBmodel(i.e.,M/M/n/n).ItassumesthatthearrivalsfollowaPoissonprocessandhaveafinitenservers.InErlangBmodel,itassumesthatthearrivalcustomersareblockedandclearedwhenalltheserversarebusy.TheblockedprobabilityofaErlangBmodelisgivenbythefamousErlangBformula,
wherenisthenumberofserversandA=λ/μistheofferedloadinErlangs,λisthearrivalrateand1/μistheaverageservicetime.Formula(1.1)ishardtocalculatedirectlyfromitsrightsidewhennandAarelarge.However,itiseasytocalculateitusingthefollowingiterativescheme:
lErlangCmodel
TheErlangdelaymodel(M/M/n)issimilartoErlangBmodel,exceptthatnowitassumesthatthearrivalcustomersarewaitinginaqueueforaservertobecomeavailablewithoutconsideringthelengthofthequeue.Theprobabilityofblocking(alltheserversarebusy)isgivenbytheErlangCformula,
Whereρ=1ifA>nandρ=AnifAwherePB(n,A)isdefinedinEq.(1.1).
DESCRIPTIONOFTHEEXPERIMENTS
1.Usingtheformula(1.2),calculatetheblockingprobabilityoftheErlangBmodel.DrawtherelationshipoftheblockingprobabilityPB(n,A)andofferedtrafficAwithn=1,2,10,20,30,40,50,60,70,80,90,100.Compareitwiththetableinthetextbook(P.281,table10.3).
Fromtheintroduction,weknowthatwhenthenandAarelarge,itiseasytocalculatetheblockingprobabilityusingtheformula1.2asfollows.
PBn,A=APB(n-1,A)m+APB(n-1,A)
itusethetheoryofrecursionforthecalculation.Butthedenominatorandthenumeratoroftheformulabothneedtorecurs(PBn-1,A)whendoingthematlabcalculation,itwastetimeandreducethematlabcalculationefficient.Sowechangetheformulatobe:
PBn,A=APB(n-1,A)n+APB(n-1,A)=1n+APBn-1,AAPBn-1,A=1(1+nAPBn-1,A)
Thenthecalculationonlyneedrecursoncetimeandismoreefficient.
Thematlabcodefortheformulais:
erlang_b.m
%**************************************
%File:
erlanb_b.m
%A=offeredtrafficinErlangs.
%n=numberoftrunckedchannels.
%Pbistheresultblockingprobability.
%**************************************
function[Pb]=erlang_b(A,n)
ifn==0
Pb=1;%P(0,A)=1
else
Pb=1/(1+n/(A*erlang_b(A,n-1)));%userecursion"erlang(A,n-1)"
end
end
Aswecanseefromthetableonthetextbooks,itusesthelogarithmcoordinate,sowealsousethelogarithmcoordinatetoplottheresult.Wedividethenumberofservers(n)intothreeparts,foreachpartwecandefineaintervalofthetrafficintensity(A)basedonthefigureonthetextbooks:
1.when02.when103.when30Foreachpart,usethe“erlang_b”functiontocalculateandthenuse“loglog”functiontofigurethelogarithmcoordinate.
Thematlabcodeis:
%*****************************************
%forthethreeparts.
%nisthenumberservers.
%Aisthetrafficindensity.
%Pistheblockingprobability.
%*****************************************
n_1=[1:
2];
A_1=linspace(0.1,10,50);%50pointsbetween0.1and10.
n_2=[10:
10:
20];
A_2=linspace(3,20,50);
n_3=[30:
10:
100];
A_3=linspace(13,120,50);
%*****************************************
%foreachpart,calltheerlang_b()function.
%*****************************************
fori=1:
length(n_1)
forj=1:
length(A_1)
p_1(j,i)=erlang_b(A_1(j),n_1(i));
end
end
fori=1:
length(n_2)
forj=1:
length(A_2)
p_2(j,i)=erlang_b(A_2(j),n_2(i));
end
end
fori=1:
length(n_3)
forj=1:
length(A_3)
p_3(j,i)=erlang_b(A_3(j),n_3(i));
end
end
%*****************************************
%useloglogtofiguretheresultwithinlogarithmcoordinate.
%*****************************************
loglog(A_1,p_1,'k-',A_2,p_2,'k-',A_3,p_3,'k-');
xlabel('TrafficindensityinErlangs(A)')
ylabel('ProbabilityofBlocking(P)')
axis([0.11200.0010.1])
text(.115,.115,'n=1')
text(.6,.115,'n=2')
text(7,.115,'10')
text(17,.115,'20')
text(27,.115,'30')
text(45,.115,'50')
text(100,.115,'100')
Thefigureonthetextbooksisasfollow:
Wecanseefromthetwopicturesthat,theyareexactlythesamewitheachotherexceptthattheresultoftheexperimenthavenotconsideredthesituationwithn=3,4,5,…,12,14,16,18.
2.Usingtheformula(1.4),calculatetheblockingprobabilityoftheErlangCmodel.DrawtherelationshipoftheblockingprobabilityPC(n,A)andofferedtrafficAwithn=1,2,10,20,30,40,50,60,70,80,90,100.
Fromtheintroduction,weknowthattheformula1.4is:
PCn,A=nPB(n,A)n-A(1-PB(n,A))
SinceeachtimewecalculatethePBn,A,weneedtorecursntimes,sotheformulaisnotefficient.Wechangeittobe:
PCn,A=nPB(n,A)n-A(1-PB(n,A))=1n-A(1-PB(n,A))nPB(n,A)=1(An+n-AnPBn,A)
Thenweonlyneedrecursonce.PBn,Aiscalculatedbythe“erlang_b”functionasstep1.
Thematlabcodefortheformulais:
erlang_c.m
%**************************************
%File:
erlanb_b.m
%A=offeredtrafficinErlangs.
%n=numberoftrunckedchannels.
%Pbistheresultblockingprobability.
%erlang_b(A,n)isthefunctionofstep1.
%**************************************
function[Pc]=erlang_c(A,n)
Pc=1/((A/n)+(n-A)/(n*erlang_b(A,n)));
end
Thentofigureoutthetableinthelogarithmcoordinateaswhatshowninthestep1.
Thematlabcodeis:
%*****************************************
%forthethreeparts.
%nisthenumberservers.
%Aisthetrafficindensity.
%P_cistheblockingprobabilityoferlangCmodel.
%*****************************************
n_1=[1:
2];
A_1=linspace(0.1,10,50);%50pointsbetween0.1and10.
n_2=[10:
10:
20];
A_2=linspace(3,20,50);
n_3=[30:
10:
100];
A_3=linspace(13,120,50);
%*****************************************
%foreachpart,calltheerlang_c()function.
%*****************************************
fori=1:
length(n_1)
forj=1:
length(A_1)
p_1_c(j,i)=erlang_c(A_1(j),n_1(i));
%µ÷Óú¯Êýerlang_c
end
end
fori=1:
length(n_2)
forj=1:
length(A_2)
p_2_c(j,i)=erlang_c(A_2(j),n_2(i));
end
end
fori=1:
length(n_3)
forj=1:
length(A_3)
p_3_c(j,i)=erlang_c(A_3(j),n_3(i));
end
end
%*****************************************
%useloglogtofiguretheresultwithinlogarithmcoordinate.
%*****************************************
loglog(A_1,p_1_c,'g*-',A_2,p_2_c,'g*-',A_3,p_3_c,'g*-');
xlabel('TrafficindensityinErlangs(A)')
ylabel('ProbabilityofBlocking(P)')
axis([0.11200.0010.1])
text(.115,.115,'n=1')
text(.6,.115,'n=2')
text(6,.115,'10')
text(14,.115,'20')
text(20,.115,'30')
text(30,.115,'40')
text(39,.115,'50')
text(47,.115,'60')
text(55,.115,'70')
text(65,.115,'80')
text(75,.115,'90')
text(85,.115,'100')
TheresultofblockingprobabilitytableoferlangCmodel.
ThenweputthetableoferlangBanderlangCintheonefigure,tocomparetheircharacteristic.
100
10-1
Thelinewith‘*’istheerlangCmodel,thelinewithout‘*’istheerlangBmodel.Wecanseefromthepicturethat,foraconstanttrafficintensity(A),theerlangCmodelhasahigherblockingprobabilitythanerlangBmodel.Theblockingprobabilityisincreasingwithtrafficintensity.Thesystemperformsbetterwhenhasalargern.
ADDITIONALBONUS
WriteaprogramtosimulateaM/M/kqueuesystemwithinputparametersoflamda,mu,k.
Inthispart,wewillfirstlysimulatetheM/M/kqueuesystemusematlabtogetthefigureoftheperformanceofthesystemsuchastheleavetimeofeachcustomerandthequeuelengthofthesystem.
Aboutthesimulation,wefirstlycalculatethearrivetimeandtheleavetimeforeachcustomer.Thenanalysisoutthequeuelengthandthewaittimeforeachcustomeruse“for”loops.
Thenwelettheinputtobelamda=3,mu=1