文档详情

第六章随机数生成器.ppt

发布:2017-06-06约2.59千字共25页下载文档
文本预览下载声明
第六章 随机数生成器 随机数 在离散系统仿真中,随机数是一个必不可少的基本元素 (0,1)均匀分布随机数是产生其他许多分布的随机数的基础 一个随机数序列必须满足两个重要的统计性质:均匀性和独立性 随机数的性质 均匀性 如果将区间[0,1]分为n个等长的子区间,那么在每个区间的期望观测次数为N/n,其中N为观测的总次数 独立性 观测值落在某个特定区间的概率与以前的观测值无关 随机数的产生方法 物理方法:利用某些物理过程来产生均匀分布随机数 随机数表:利用物理过程得到的大量随机数,制成随机数表 随机数产生程序:按照一定的算法计算出具有类似于均匀分布随机变量的独立取样值性质的数 伪随机数 计算机产生随机数的要求 产生的随机数要尽可能的逼近理想的均匀性和独立性统计性质 产生的随机数要有足够长的周期 产生随机数的速度要快,占用的内存空间要小 随机数必须是可重复的 对于给定的起始点或初始条件,应当能够产生相同的随机数序列,而且与正被仿真的系统完全无关 产生随机数的算法是利用递推公式: 平方取中法 20世纪40年代由冯·诺依曼提出的第一个随机数生成器 例:设有一个4位正整数Z0,对之取平方得到一个8位正整数(如果不够8位数,可以在左侧加上0补足8位)。而后取中间的4位获得一个新的4位正整数Z1。将Z1/10000得到一个[0,1]之间的小数,则获得第一个“随机数”U1。然后基于Z1重复上述操作,得到Z2和U2,依次类推…… 线性同余随机数生成器(LCG) 其中,a称为乘法因子,c称为加法因子,m为模数 当a=1时,为加同余法; 当c=0时,为乘同余法; 当a≠1、c≠0时,为混合同余法 例: 使用线性同余法产生随机数序列,其中Z0=27、a=17、c=43、m=100。 解:Zk=(aZk-1+c)mod m Z1=(17×27+43) mod 100=502mod100=2 Z2=(17×2+43) mod 100=77mod100=77 Z3=(17×77+43) mod 100=1352mod100=52 …… U1=2/100=0.02, U2=77/100=0.77, U3=0.52 LCG的周期 用LCG方法产生的随机数序列会出现周期循环的现象,一旦Zi取值和以前出现的某个值相同,此后的随机数序列就开始循环。循环的长度称为生成器的周期; 由于0≤Zi≤m-1,因此最大周期是m,称之为满周期; 为了产生成百上千的随机数,必须采用周期足够长的LCG,最好是满周期的生成器,这样对随机数的均匀性也很有利。 定理: LCG具有满周期,当且仅当以下3个条件成立: 1. m和c互质; 2. 存在一个质数q,能够同时整除m和a-1; 3. m和a-1能够被4整除。 模数m的取值 为了使LCG的周期足够长,m的取值应该较大; 为了加快计算机的处理速度,选择m=2b,其中b为计算机CPU一次能处理的最大位数;目前b=32-1=31 例:使用不同种子的周期 使用乘同余法,对a=13、m=26=64且Z0=1,2,3,4, 求产生器的周期。 i Xi Xi Xi Xi 0 1 2 3 4 1 13 26 39 52 2 41 18 59 36 3 21 42 63 20 4 17 34 51 4 5 29 58 23 6 57 50 43 7 37 10 47 8 33 2 35 9 45 7 10 9 27 11 53 31 12 49 19 13 61 55 14 25 11 15 5 15 16 1 3 随机数的检验 为了检验产生的随机数序列是否满足均匀性和独立性,有必要进行一系列的检验: 均匀性检验(频率检验) 序列检验 游程检验 相关性检验 均匀性检验 其中,Oi为第i组中数据的观测值个数,Ei为第i 组中数据的期望个数,n为组数。 均匀性检验 H0:Ri服从U[0,1] H1:Ri不服从U[0,1] 检验方法:选定一个显著性水平 如果 序列检验 序列检验是运用 检验来检验随机数序列的n维均匀性,以此判断随机数序列的独立性。 假设Ui是独立同分布U(0,1)的随机变量,则构造n个d维随机变量: U1=(U1,U2,…,Ud), U2=(Ud+1,Ud+2,…,U2d),… 将[0,1]等分为k个子区间,则在d维空间中共有kd个子区间,n个随机变量落在每个区间的个数期望值(期望频度)为n/kd。设fj1,j2,…,jd为落在子区间j1j2…jd的观测值个数(观
显示全部
相似文档