Tag: 高斯

如何在Java中实现遗传算法的高斯变异算子

我尝试为我的项目学习并实现一个简单的遗传算法库。 此时,人口的进化,选择已经准备就绪,我正在尝试为Java和Scala中的遗传进化引擎实现一个简单的好变异算子,如高斯变异算子 (GMO)。 我在基于多目标进化算法的Pareto排名 (PM Mateo,I。Alberto),第6页和第7页的论文A变异算子中找到了关于高斯变异算子(GMO)的一些信息。 但我有一些问题需要找到有关如何在Java中实现此高斯变异算子和此运算符的其他有用变体的其他信息。 我该怎么办? 我正在使用随机Java util的random.nextGaussian()函数,但此方法仅返回0到1之间的随机数。 所以, a)在这种情况下,如何修改返回编号的精度? (例如,我想获得一个介于0和1之间的随机双数,步长等于0.00001。) b)我如何为这个函数指定mu和sigma ,因为我想在本地搜索我的基因组的值,而不是在-1和1之间。我怎样才能调整我的基因组价值的本地研究? 经过研究,我找到了b)问题的答案。 似乎我可以取代高斯随机数,如下所示: newGenomeValue = oldGenomeValue + (( gaussiandRndNumber * sigma ) + mean ) 其中mean =我的基因组值。 (参见底部的方法如何生成具有正态或高斯分布的随机数? )

Random.nextgaussian()可以从具有不同均值和标准差的分布中采样值吗?

这是一个综合的Java和基本数学问题。 来自Random.nextGaussian()的文档声明它从正态分布中采样,均值为0,标准差为1.如果我想从具有不同均值和方差的正态分布中进行采样,该怎么办?