mathematical-optimization - 遗传算法

标签 mathematical-optimization genetic-algorithm

我正在尝试实现一种遗传算法来计算 Rastrigin functon 的最小值我有一些问题。
我需要将染色体表示为二进制字符串,并且由于 Rastrigin 的函数将数字列表作为参数,如何将染色体解码为数字列表?
此外,Rastrigin 希望列表中的元素为 -5.12<=x(i)<=5.12 如果当我生成染色体时它会产生不在该区间内的数字会发生什么?

最佳答案

您正在寻找实现遗传算法。您的实现应该适用于任何通用的最小化(或最大化)问题,而不仅仅是 拉斯特里金 功能。您可以决定实现二进制编码的 GA 或实数编码的 GA。两者都有自己的用途和利基应用。但对你来说,我建议实现一个真正的编码 GA。根据您关于该怎么做的问题,如果生成的变量值在 [-5.12:5.12] 之外,则实编码 GA 和二进制编码 GA 将以不同方式处理它们。

在开始实现自己的版本之前,拥有引用代码总是好的。如果您正在寻找 C 实现,source section实验室有一个 Real Coded GA 实现,它被我们和其他人广泛用于我们的研究工作。我建议您尝试使用它并尝试其中给出的一些简单优化问题。

Pyevolve是一个用于遗传算法和遗传编程的 Python 库。

现在,我们已经谈到了实现的东西,你的 GA 理解清楚了吗?如果没有,请引用这个tutorial ,它从优化的角度介绍了 GA。请注意,对二进制编码 GA 的交叉和变异的解释不会自动转移到实编码 GA。真正编码的 GA 有其自身的复杂性,您需要时间阅读一些论文并理解它们。不要着急,但只要全职努力,您应该能够轻松上手。

关于mathematical-optimization - 遗传算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179823/

相关文章:

machine-learning - 遗传算法,大群体与小群体

python - Python 中遗传算法的哪些数据类型?

algorithm - 如何有效地计算奇怪的数字

algorithm - 船上运动优化

javascript - JavaScript 中的图像缩放或 DOM 复制算法?

linux - 使用基因加权遗传算法自动选择 GCC 优化选项

algorithm - 生成现实的股票价格

python - 寻找一种也能返回局部最小值的算法

python - python/scipy 中的牛顿法

machine-learning - 训练多层感知器打牌