首页 > 解决方案 > 如何在遗传算法中强制依赖/链接基因?

问题描述

对于当前的项目,我想使用遗传算法——目前我查看了jenetics库。

我怎样才能强迫某些基因相互依赖?我想在基因上映射 CSS,我有基因指示是否显示图像,如果它也是相应的高度和宽度。所以我想把这些基因作为一个整体,因为在交叉之后,染色体会指示“无图像”之类的东西是没有意义的 - 高度 100 像素 - 宽度 0 像素。

有没有办法做到这一点?或者也许另一个支持这个的库(在java中)?

非常感谢!

标签: javagenetic-algorithmjenetics

解决方案


您希望在系统中嵌入更多知识以减少搜索空间。

如果是关于解决方案结构的知识,我建议看一下语法进化(GE)。您的知识似乎更多地是关于密码子的有效组合,因此 GE 不容易适用。

将几个特征组合成一个密码子是可能的,但这可能是不希望的和/或不可行的(例如,由于大量可能的组合)。

但实际上你在这里没有问题:

  • 拥有无意义的基因型很好——它们将由于选择压力而被删除
  • 有无意义的密码子序列很好——它被称为“膨胀”;膨胀在一些进化算法中很常见(通常在遗传编程的背景下讨论)并且严格来说还不错;与臃肿作斗争会降低搜索性能

推荐阅读