准生成随机数

拟随机序列

准随机数生成器(QRNGs)产生高度均匀的单位超立方体样本。QRNGs最小化差异产生的点的分布,并用在超立方体的均匀划分的每一子立方体点的相等比例分布之间。其结果是,系统QRNGs填写所产生的准随机序列的任一初始段的“洞”。

与中描述的伪随机序列不同常见的伪随机数产生方法,准随机序列失败的随机性许多统计检验。逼近真实的随机性,但是,是不是他们的目标。准随机序列谋求均匀地填充空间,并且以这样的方式,初始段近似这种行为最多的特定密度这样做。

QRNG应用包括:

  • 准蒙特卡洛(QMC)的集成。蒙特卡洛技术经常使用没有封闭形式解来评价困难,多维积分。QMC采用准随机序列,以提高这些技术的收敛性。

  • 空间实验的设计。在许多实验设置,进行测量每因子设置是昂贵的或不可行的。准随机序列提供设计空间的高效,均匀采样。

  • 全局优化。优化算法通常发现的初始值附近局部最优。通过使用初始值的准随机序列,全局最优搜索均匀地采样所有局部最小值的吸引盆。

示例:使用争夺,飞跃,跳跃

假设有一个简单的1- d序列,它产生从1到10的整数。这是基本的顺序,前三个点是[1,2,3]:

现在看看如何争夺,跳跃飞跃一起工作:

  • 争夺- 扰洗牌中的几种不同的方式一个点。在这个例子中,假定加扰接通序列插入1、3、5、7、9,2,4,6,8,10。前三个点现在(1、3、5):

  • 跳跃- 一个跳跃值指定初始点的数量以忽略。在这个例子中,设置跳跃值为2。序列是5,7,9,2,4,6,8,10前三点是(5、7、9):

  • 飞跃- 一个飞跃值指定的点数为忽略你把每一个。继续与该示例跳跃设置为2,如果你设置了飞跃到1,序列使用了每一个点。在本例中,序列是now5,9,4,8前三点是[5,9,4]:

准随机点集

统计和机器学习工具箱™函数支持以下准随机序列:万博1manbetx

  • 哈尔顿序列。所生产的haltonset函数。这些序列使用不同的素基在每个维度中形成单位间隔的连续更细的统一分区。

  • Sobol序列。所生产的sobolset函数。这些序列的使用2的基底,以形成所述单位间隔的相继更精细均匀的分区,然后重新排序在每个维度的坐标。

  • 拉丁超立方序列。所生产的lhsdesign函数。尽管在最小化差异的意义上不是准随机,这些序列仍然产生在实验设计有用稀疏均匀样品。

拟随机序列是从正整数到单位超立方体的函数。为了在应用中有用,首字母点集一个序列的必须生成。点集大小的矩阵n-通过-d,其中n是点的数量和d在超立方体的维度被采样。功能haltonsetsobolset构造点集与指定的准随机序列的性能。所述点集的初始段通过将所生成的的方法haltonsetsobolset类,但是点可以使用括号索引生成和访问。

由于拟随机序列产生的方式,它们可能包含不希望看到的相关性,特别是在它们的初始片段中,特别是在高维空间中。为了解决这个问题,拟随机点集经常出现跳跃,飞跃结束了,或争夺序列中的值。的haltonsetsobolset功能允许您指定一个都跳跃飞跃拟随机序列的性质,以及争夺的方法haltonsetsobolset类允许您应用各种打乱技术。置乱减少了相关性,同时提高了均匀性。

生成准随机点集

这个例子说明如何使用haltonset构造2-d哈尔顿准随机点集。

创建一个haltonset对象p,跳过序列的前1000个值,然后保留每101个点。

RNG默认的%用于重现p = haltonset (2'跳跃',1E3,'飞跃',1E2)
P =哈尔顿点集在2个维度(89180190640991分)性状:跳过:1000飞跃:100 ScrambleMethod:无

的对象p封装指定的准随机序列的属性。点集是有限的,其长度由跳跃飞跃属性,并通过在点集索引的大小限制。

争夺运用逆向基数扰。

(p, p =争夺'RR2')
属性:跳跃:1000 Leap: 100 ScrambleMethod: RR2

以产生第一500点。

X0 =净(P,500);

这相当于

X0 = p (1:50 0:);

点集的值X0是否生成并存储在内存中,直到您访问p使用或括号索引。

为感谢准随机数的性质,建立在两个维度的散点图X0

散射(X0(:,1),X0(:,2),5,“r”)轴广场标题(“{\ bf拟随机散射}”)

比较这与均匀伪随机数产生的散点兰德函数。

X =兰德(500 2);散射(X (: 1) X (:, 2), 5,“b”)轴广场标题('{\bf均匀随机散射' ')

准随机散射出现更均匀,避免了在伪随机分散的结块。

在统计意义上,拟随机数过于均匀,无法通过传统的随机性检验。例如,由。执行的Kolmogorov-Smirnov测试kstest,用于评估一个点集是否具有均匀随机分布。在均匀伪随机样本上重复执行时,如由兰德,则检验结果为的均匀分布p值。

nTests = 1 e5;sampSize = 50;PVALS = 0 (nTests, 1);nTests x = rand(sampSize,1);[h, pval] =键糟(x (x, x));PVALS(测试)= pval;结束直方图(PVALS,100) h = findobj(gca,'类型',“补丁”);包含('{\它p}  - 值')ylabel(测试的数量)

当在均匀的准随机样本反复执行的测试的结果有很大的不同。

P = haltonset(1,'跳跃',1E3,'飞跃',1E2);(p, p =争夺'RR2');nTests = 1 e5;sampSize = 50;PVALS = 0 (nTests, 1);x = p(test:test+(sampSize-1),:);[h, pval] =键糟(x (x, x));PVALS(测试)= pval;结束直方图(PVALS 100)包含('{\它p}  - 值')ylabel(测试的数量)

p-值对数据均匀分布的原假设提出了质疑。如果假设是正确的,大约5%p- 值预计将下降低于0.05。结果是他们未能挑战假设非常一致。

拟随机流

拟随机,由qrandstream功能,用于生成顺序准随机的输出,而不是一个特定大小的点集。流用于像pseudoRNGS,如兰德当客户端应用程序需要一个准随机数源时,该源的大小不确定,可以间断地访问。准随机流的属性,如它的类型(Halton或Sobol)、维数、跳跃、跳跃和攀登,都是在流构造时设置的。

在实施中,准随机流本质上是非常大的准随机点集,虽然他们访问不同。的状态准随机流的要被从该流采取的下一个点的标量指标。使用qrand的方法qrandstream类从流中生成点,从当前状态开始。使用重启方法的状态复位到1。不像点集,流不支持括号索引。万博1manbetx

生成准随机流

这个例子展示了如何从一个准随机点集生成样本。

haltonset来创建一个拟随机点集p,然后重复将索引增加到点集测试生成不同的样本。

P = haltonset(1,'跳跃',1E3,'飞跃',1E2);(p, p =争夺'RR2');nTests = 1 e5;sampSize = 50;PVALS = 0 (nTests, 1);x = p(test:test+(sampSize-1),:);[h, pval] =键糟(x (x, x));PVALS(测试)= pval;结束

相同的结果,通过使用获得的qrandstream构建一个拟随机流基于点集p并让流照顾增量的指标。

P = haltonset(1,'跳跃',1E3,'飞跃',1E2);(p, p =争夺'RR2');Q = qrandstream(P);nTests = 1 e5;sampSize = 50;PVALS = 0 (nTests, 1);1:nTests X = qrand(q,sampSize);[h, pval] =键糟(X (X, X));PVALS(测试)= pval;结束

相关话题