1、(3)服务机构。(1)输入过程:输入即指顾客到达排队系统,可能有下列各种不同情况,当然这些情况并不是彼此排斥的。顾客的总体(称为顾客源)的组成可能是有限的,也可能是无限的。顾客到来的方式可能是一个一个的,也可能是成批的。顾客相继到达的间隔时间可以是确定型的,也可以是随机型的。顾客的到达可以是相互独立的。就是说,以前的到达情况对以后顾客的到来没有影响,否则就是有关联的。输入过程可以是平稳的,或称对时间是齐次的,是指描述相继到达的间隔时间分布和所含参数(如期望,方差)都是与时间无关的,否则称为非平稳的。(2)排队规则:顾客到达时,如所有服务台都正被占用,在这种情形下顾客可以随即离去,也可以排队等候
2、。前者称为即时制或损失制,排队等候的称为等待制。等待制可以采用先到先服务规则;后到先服务规则;随机服务规则;有优先权规则。(3)服务机构:(A)服务机构可以没有服务台(服务员),也可以有一个或多个。(B)在有多个服务台的情形中,它们可以是平行排列、先后排列和混合排列。(C)服务方式是,可以对单个顾客进行,也可以成批顾客进行。(D)和输入过程一样,服务时间也分确定型和随机型。(E)和输入过程一样,服务时间的分布我们总假定是平稳的,即分布的期望值、方差等参数都不受时间的影响。2.2 排队机模型的分类排队模型按主要特征进行分类。一般是以相继顾客到达系统的间隔时间分布、服务时间的分布和服务台数目为分类
3、标志。现代常用的分类方法是英国数学家D.G.肯德尔提出的分类方法,即用肯德尔记号 X/Y/Z进行分类。 X处填写相继到达间隔时间的分布;Y处填写服务时间分布; Z处填写并列的服务台数目。目前典型的排队机模型有M/M/1,M/D/1和D/D/1(其中,M表示到达过程为泊松过程或负指数分布;D表示定长输入)。其中,D/D/1表示顾客按照确定的时间间隔到达、服务时间为确定的时间间隔和单个服务台的模型;M/D/1表示顾客相继到达的间隔时间为负指数分布、确定的服务时间间隔和单个服务台的模型;M/M/1表示顾客相继到达的时间间隔为负指数分布、服务时间间隔为负指数分布和单个服务台的模型。2.3 M/M/1
4、计算模型2.3.1 标准的M/M/1模型标准的M/M/1计算模型是指适合下列条件的排队系统:顾客源是无限的,顾客单个到来,相互独立,一定时间的到达数服从泊松分布,到达过程是平稳的。单队,且对队长没有限制,先到先服务;单服务台,各顾客的服务时间是相互独立的,服从相同的负指数分布。此外,还假定到达间隔时间和服务时间是相互独立的。2.3.2 达到与服务的概率分布用表示顾客平均达到率,表示服务台平均服务率。对于泊松流,在时间内,系统内有个顾客的概率服务泊松分布:若顾客流为泊松流时,顾客到达的时间间隔服从负指数分布:从而可求得到达的时间间隔均值为;到达时间间隔方差为在这种计算模型中,由于服务机构只有一个
5、服务台,对一个顾客的服务时间,即忙期内两顾客离开系统的时间间隔,服从参数为的负指数分布,为平均服务率,即单位时间内离开系统的顾客平均数。服务时间的均值和方差为:综上所述,在M/M/1计算模型中,达到的顾客数服从泊松分布,服务时间服从负指数分布。2.3.3 服务系统的运行指标1.系统中无顾客的概率2.平均排队的顾客数3.系统中的平均顾客数4.顾客花在排队上的平均等待时间5.顾客在系统中的平均逗留时间6.顾客得不到及时服务必须排队等待的概率7、系统中恰好有n个顾客的概率此外,还有,平均队长:系统状态的数学期望(顾客数的期望值)平均排队长:排队顾客数的期望值逗留时间分布为所以平均逗留时间平均排队时间
6、:关于:服务强度,反映了服务员忙期所占的比例,同时实际上也是平均服务台数。指标参数之间的关系:。忙期与闲期,服务员平均连续忙的时间平均连续闲的时间2.4 M/D/1计算模型M/D/1表示顾客相继到达的间隔时间为负指数分布、确定的服务时间间隔和单个服务台的模型。它是M/G/1计算模型(G表示一般相互独立的随机分布)的一种特殊情况,即M/G/1模型中服务时间均方差=0的情况。表示单位时间顾客的平均达到数;表示单位时间内的平均服务顾客数,则一个顾客的平均服务时间为,服务时间的均方差为在M/G/1计算模型中,达到的顾客数服从泊松分布,服务时间为一般的服务时间。而作为M/G/1的特殊情况M/D/1计算模
7、型,其达到的顾客数亦服从泊松分布,但服务时间为固定时间。M/G/1服务系统的运行指标包括:5.系统中顾客的平均逗留时间6.系统中顾客必须排队等待的概率7.系统中恰好有n个顾客的概率2.5 D/D/1计算模型D/D/1计算模型是一种表示顾客按照确定的时间间隔到达、服务时间为确定的时间间隔和单个服务台的模型,它是三个排队模型中最特殊的情况。值得注意的是D/D/1模型一定要求服务时间为确定的时间。在D/D/1模型中,用,与此同时,如果顾客到达率小于服务率(),则此时处于无需等待D/D/1队列中。3.实验仿真结果图3.1 几种排队模型主要的仿真程序 3.1.1M/M/1仿真程序 在M/M/1仿真程序中
8、,我们假设包的到达速率是1packet/s,到达间隔时间服从指数分布,链路的处理速度恒定,定为44000bits/s,包的大小服从指数分布(这样可以代替服务时间的指数分布),分布的参数为44000/(8*u),其中u1.1 packets/s (模拟服务器处理速度) 此时参数大致已经设定,贴源码如下:set ns new Simulatorset tf open out.tr w$ns trace-all $tfset lambda1set mu 1.1set n1$ns nodeset n2 $ns nodeset link $ns simplex-link $n1$n2 44kb 0ms
9、DropTail$ns queue-limit $n1$n2100000set InterArrivalTime new RandomVariable/Exponential$InterArrivalTime set avg_ expr1/$lambdaset pktSize new RandomVariable/Exponential$pktSize set avg_ expr 44000.0/(8*$mu)将n1定义为srcset src new Agent/UDP$ns attach-agent $n1 $src# 监听队列set qmon $ns monitor-queue $n1$n
10、2 open qm.out w 0.1$link queue-sample-timeout#定义队列中包的个数,初始化为0set pktAmount 0proc finish global ns tf$ns flush-traceclose $tfexit 0proc sendpacket global ns src InterArrivalTime pktSize pktAmountset time $ns now set tempTime $InterArrivalTime value $ns at expr $time + $tempTime sendpacketset tempSize
11、 expr round ($pktSize value)set bytes $tempSize#在处理完传进的包后,删除掉一个包,delpacket在下面定义,这里来记录包个数有点问题,这里做法是在当前时刻的 $tempSize*8/44000处理完进来包的时间后将包的个数减少1,忽略了等待的过程 $ns at expr $time + expr $tempSize*8/44000 delpacket#puts $time $bytes$src send $bytes#发送后将包数加一set pktAmount expr $pktAmount+1puts $time $pktAmountpro
12、c delpacket global pktAmountset pktAmount expr $pktAmount-1 set sink new Agent/Null$ns attach-agent $n2 $sink$ns connect $src $sink$ns at 0.0001$ns at1000.0 finish$ns run3.1.2 M/D/1仿真程序M/D/1的仿真程序是将M/M/1中的 $pktSize set avg_ expr 44000.0/(8*$mu)代码改成set pktSize 5000即可。3.1.3 D/D/1仿真程序 set ns new Simulatorset tracefile1 open out.tr w$ns trace-all $tracefile1#Open the NAM trace fileset namfile open out.nam w$ns namtrace-all $namfile#Define a finish procedure global ns tracefile1 namfile $ns flush-trace close $tracefile1 close $namfile exec nam out.n
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1