排队系统的统计模拟实现
1.3
本文将采用系统模拟方法对排队系统进行模拟。并统计不同情况下服务员人数安排及顾客排队情况。第二章主要介绍[0,1)上均匀分布的伪随机数产生方法。第三章主要介绍在产生了[0,1)上均匀分布的随机数后以它为基石模拟其他各种分布的随机变量的方法。第四章主要介绍了排队系统的基础理论及离散事件模拟方法,并且对具体的排队系统进行模拟统计并讨论实验结果。
因为 ,且 在[0,1)上均匀分布。
3.2
由逆变换法可知,对于连续随机变量的具体算法是:首先产生均匀分布的随机数 ,取 即可。例如X是参数为1的指数型随机变量,其分布函数为 ,如果设 ,则
(3-2)
于是参数1的指数分布的随机变量可由下式产生
(3-3)
用计算机模拟的10000个参数为1的指数分布的随机变数,如图3-1所示。
另一个生成随机数的方法是如下的递推公式
(2-3)
由于它包含乘法和加法因此被称为混合同余法。当采用这种方法生成随机数时,人们常取 为计算机字长,这是由于这是因为这种取法易于非常有效的计算。混合同余法是乘同余法和加同余法的混合,它产生的随机数周期较大且统计特性较佳。
图2-1 [0,1)上均匀分布的伪随机数
逐步计算 , ,其中 和 是给定的正整数。 称为一个伪随机数,它近似服从[0,1)内的均匀分布。
在随机变量的模拟中最常用的方法是逆变换法,它首先产生[0,1)内均匀分布随机数,再通过计算分布函数的反函数得到所要的随机数。设 是[0,1)上均匀分布的随机变量,可以证明对于任一分布函数 ,随机变量
(1-2)
,如果 , (1-4)
则 满足所给随机变量的分布。上述算法被称为离散随机变量的逆变换法。
1.2
排队系统是各种随机系统中最为典型的。计算机系统、通信系统和营业窗口系统都是典型的有形或者无形的排队系统。随机模拟是求解排队系统和分析排队系统系能的非常有效的方法,它是用计算机程序直接建立真实系统的模型,通过计算机系统的随机变化研究其行为的特征。
1.1
随机变量的模拟离不开[0,1)内均匀分布随机数的产生。真正的随机数只能由物理设备产生,由于其产生的效率过低,在实际应用中我们采用计算机递推产生的伪随机数。伪随机数并不是真正的随机数,它虽然符合真随机数的统计特征但实际上是一个周期序列。一种常用的产生随机数的方法是:从初值 出发,利用公式:
(1-1)
符合上述要求。
由上述乘同余法产生伪随机数时,分别取:
; ;
所得到的序列:
从上可以看出,当 能整除 时,最后的序列必定会收敛到零。当 不能整除 时,则所得的序列是周期序列,且最大周期是 。由此可以看出,递推方法计算出来的伪随机数序列实际上是周期序列,而非真正的随机序列。事实上当 取得非常大的时候在模拟中只需取其一个周期即可,这样的伪随机数序列满足均匀分布独立随机变量的一切特征。由上述乘同余法模拟的1000个在[0,1)上服从均匀分布的伪随机数的结果,如图2-1所示。
In real life,weoften need in some conditions completely random cases of one thing analysis and decision making. Due to the use of traditional experimental results verify that the stochastic system requires a lot of manpower and difficult to achieve good results. To save money, we consider using a computer to simulate random system. As a typical stochastic system,queuing system widely exists in life. Using the computer simulation system of queuing system can reduce the cost, improve the system of study efficiency. For managers to make decisions of the practical system provides reliable operation.
一般的,在选取常数 和 时应遵循如下原则:
(1)对于任一初值,产生的序列具有[0,1)上均匀分布独立随机变量的特征。
(2)对已任一初值,在重复出现前产生的随机数序列足够长。
(3)每一数值均可由计算机有效计算。
为满足上述三个条件,可选一个符合计算机字长要求的较大素数作为 。对于32位计算机(其中第一个字节为正负号),已经证明 和
2.3
设随机向量(X,Y)在中心为原点、面积为4的正方形上均匀分布,则在这个正方形里画其内切圆,如果我们大量的在正方形里生成随机点(X,Y)。可以证明这些点落在内切圆内的概率等于 ,即
(2-4)
设U是[0,1)上的均匀分布,则2U是在[0,2)上的均匀分布。2U-1在[-1,1)上均匀分布。因此我们生成2个随机数 令 ,我们可以如此估计 :先生成大量随机数对 ,之后用满足 的随机数对的比例来估计 。以上算法由计算机模拟得到的结果是: ,可以看到与准确值相差不多。
2.4
本章介绍了随机数的产生原理和方法,并给出了随机数的一个简单应用。
第三章
用计算机模拟任何一个随机现象时必然涉及一个给定概率分布的随机变量。例如,在模拟排队系统时,顾客的到达时间和服务时间都是满足一定分布的随机变量。一旦这些随机变量所满足的概率分布函数被选定,则必须有生成该给定概率分布的随机变量的算法,才能在计算机内得到这样的随机变量。而所有的这些方法都基于[0,1)上的均匀分布的随机变量。
(2-2)
逐步计算 , ,其中 和 是给定的正整数,上式表示 为 被 除后的余数。于是每一个 均为 中的一个, 称为一个伪随机数,它近似服从[0,1)上的均匀分布。
由上式产生随机数的方法称为乘同余法。由于每一个 均取值 中的一个,故若干次后(至多 次)所产生的随机数必定重复,且自此之后整个序列也开始重复。于是,我们在选择常数 和 时,希望对任一初值 ,在重复出现前所产生的随机数序列足够长。
(2-1)
为物理设备所能产生的[0,1)内的一串等间隔分布的有理数序(即等差数列)。如果n充分大,则该数列在[0,1)内充分“稠密”。因此,问题的本质在生成一个等概率分布的离散随机数集 。如果这一件事能够办到,则它可以看作[0,1)上均匀分布的随机数的一个近似。
实际上,可以取 ,若能生成 上的等概率分布,则将上述整数等概率随机变量除以n即能得到所需[0,1)上均匀分布随机数序。较常见的一种办法有:取 则 内的任何一个数都可以用一个相应的m位二进制数表示。该二进制数每一位取0或者1。只要等概率的生成0和1就可以得到一个概率 的m位2进制数。最直接的可以用掷硬币的方法等概率地产生0或1。
变量和事件是排队系统最重要的因素。在模拟中我们紧盯某些变量。只要出现一个事件,上述变量的值就会出现改变或更新,我们就要找到相应感兴趣的数据作为输出。为确定下一个事件何时出现,我们需要一个事件列表(此列表给出后面最近的事件和这些事件出现的时间表)。只要出现一个事件我们就重置时间变量、状态变量、计数变量和收集相应的数据。这样我们就可以及时追踪随时间而变化的系统。
3.1
逆变换法(也称反演法或变换法)是在随机变量的模拟中最常用的方法。它首先产生[0,1)内均匀分布随机数,再通过计算分布函数的反函数得到所需要的随机变量。
命题3.1设 是[0,1)上均匀分布的随机数,则对于任一分布函数 ,随机变量
(3-1)
的分布函数为 。
证明:以 记 的分布函数,则
由于 是一分布函数,故它是 的单调递增函数,且不等式“ ”等价于不等式“ ”。于是有
This paper firstly introduces the recursive generate pseudo random by the linear congruence method, based on the substitution method of generating meet specific conditions in the corresponding random variables. Then using discrete event simulation method introduced some basic theoretical queuing system simulation queuing system. Finally, through computer programming realized in the attendant and many waiter situation of simulation and comparison queuing system.
第一章
在现实生活中常需要在某些条件完全随机的情况下对一件事情作出分析和决策。由于用传统实验验证这样的随机系统需要耗费大量的人力物力且难以达到很好的效果。为节省经费我们考虑采用计算机来对随机系统进行模拟。随机系统的模拟是利用计算机上编写的计算机程序语言模拟实际系统的行为。通过观察和分析计算机模型系统的性能,从而掌握和了解实际系统的大致情况,并依此对实际系统作出分析和决策。
图3-1指数型随机变量的模拟
利用逆变换法可以模拟随机变量,但由于某些随机变量分布函数的反函数很难或不可能显式地表出,无法直接应用逆变换法。因此我们考虑采用其他的算法,例如拒绝法、极坐标法等。
的分布函数为 。逆变换法是一种很好的产生指数型随机变量的算法,因为能很快得出指数型变量的分布函数的反函数。但是对某些随机变量,其分布函数的反函数很难或不可能显式地表出,无法直接应用逆变换法,因此我们考虑采用其他的算法。
假设我们希望生成一个满足概率分布为
, (1-3)