全球FlexSim系统仿真中文论坛

标题: 关于统计分布中“随机数流stream”的解释 [打印本页]

作者: zorsite    时间: 2013-3-25 13:54
标题: 关于统计分布中“随机数流stream”的解释
资料来自《实用系统仿真建模与分析——使用Flexsim》,作者秦天保 周向阳
5 n0 R6 i( t2 ^6 `4 x1 v% ~第四章 随机数和随机变数的生成
; i+ m& Q0 Z& x3 e. d& S8 @3 u7 R* F! E4 k( O* g3 U
仿真软件一般会将整个随机数序列分成若干段,例如100000个数为一段。- _. G/ D( m* r; m0 h5 [8 K" _; j
每段成为一个随机数流(stream),每个流会指定一个编号,如0号流,1号流等等。) ^) D) V! ]  g$ a. h/ q

# a4 _# U6 @' V5 E7 t: Z  N. v在Flexsim中调用指数分布函数的形式为exponential(location,scal,stream),其中第3个参数stream就是指定从哪一个流求取下一个随机数,如果省略参数流,则默认使用0号随机数流。1 g: n/ k# Q; B
( [$ R$ G/ A  F4 Q
Flexsim系统已经初始化了100个随机数流(0~99号),可供直接使用。
8 K- j6 c6 d0 R* y
5 h, z7 H; s$ B; z+ B如果一个流的随机数在模型运行过程中,经过不断调用耗净了,根据递推公式下一个随机数就会侵入下一个流中去了,这会导致不想要的相关性。为了提高模型输出数据的准确性和精度,建议为模型中的每个对象甚至每个随机因素指定不同的流号。( ^: k7 \# H3 D3 J2 T$ u; b; W
: s+ F* ?+ L9 l' e
参考文献:, J. b5 Y# X3 A1 w% d

5 V( Z6 ?8 W7 [* J. u[attach]1289[/attach]
( t  E  B# _) ?" U# @% @
$ V( z$ C! O! H' a- c  L) K/ \% r' f[attach]1290[/attach]
作者: king    时间: 2013-3-28 23:37
学习学习
作者: 嗜血黑猫    时间: 2013-4-24 22:45
非常需要这方面知识啊谢谢
作者: lisa527    时间: 2013-11-18 13:26
本帖最后由 lisa527 于 2013-11-18 13:39 编辑
- p7 j. c7 }- ~& c( P" m# t
6 a3 e* q( o9 r; Y, F) Z这个问题困扰我好久了,现在一次性了结, P9 Q( ~2 G- @( _
---------------------------------------------------------------------------------------------------
7 [3 i$ o$ X' z8 z-随机数是怎么生成的# T6 A# X4 b2 i6 O
基于计算机方法生成的随机数称为伪随机数,因为其计算方法已知,不是完全的随机。现在比较流行的生产伪随机数的方法是 Linear Congruential Generation (混合同余法).0 ^% o7 R* f% V$ ^
Linear Congruential Generation (LCG)[1]方法如下:( P: A3 I+ Y6 |* p
X_i=(aX_(i-1)+c)mod m                            (1)
5 z" s5 d# H7 J; wR_i= X_i/m
' `# x- S9 K* u" ySeed: X_0
+ m2 \  j$ B* }. d& f2 z8 ]( Y. X; Y, w; l
-什么是stream?
  M" T4 s% P3 f6 P* S8 V基于m的限制,生成的随机数都是循环的,而且最大的循环周期是m。假设生成的随机数周期为P,随机数序列可以写作: X_0,X_1,…X_P,X_0,X_1…  V* Z+ P$ H7 d( f
正因为它的循环性,取0-P之间任何一个数做seed都可以生成整个随机数列。
. y$ [; U# @# ]; \2 }  e: q3 M$ n为了方便起见,我们把长度为P的随机数分为若干个随机数流(stream),比如说,分成b个,每个stream的长度为P/b: {X_0,X_1,…X_(P/b-1)}, {X_(P/b),…X_(2P/b-1)}…" O  s# M% _, a- ~/ J% g( v

0 f. Q2 R9 E/ n4 p# \) ~-Stream有什么用?
# e+ n# Q$ z8 l- Z通过观察(1)式可以得知,X_i  和 X_(i-1)是相关的。为了避免这种相关性,仿真时常常会选取不同的stream产生各个过程的随机数。
4 [) g* e, [; W# N
! ~  p) y. \2 ~) {+ F为此专门写了篇blog在http://blog.sina.com.cn/sui5277
作者: 加油陶陶    时间: 2014-7-11 09:30
学习一下 谢谢分享
作者: 风灵之石    时间: 2021-1-3 20:01
谢谢分享!




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3