遗传算法-Java-模式理论

时间:2011-03-21 17:35:03

标签: schema theory genetic-algorithm

您好 我一直在阅读模式理论,虽然我理解它背后的理论,但我很难理解如何在我的遗传算法java代码中实现它。有人有伪代码吗?我应该定义对我的程序的适应度函数特别感兴趣的四个模式(例如,1 *···*和0 *···*)。 我不知道该怎么做。

问题

实施简单的GA,其具有适应度比例选择,轮盘抽样,群体大小100,单点交叉率pc = 0.7,以及按位突变率pm = 0.001。尝试使用以下适应度函数:ƒ(x)= x中的1的数量,其中x是长度为20的染色体。(我已编码此部分)

基于GA中的代码但是在单独的文件上,定义对上述问题1的适应度函数特别感兴趣的四个模式(例如,1 * ... *和0 * ... *)。重新运行问题1中的GA(使用相同的参数)并在每一代记录每个模式的总体中有多少个实例

3 个答案:

答案 0 :(得分:1)

模式本质上是一种带有一些通配符的基因型。因此模式01 **可以参考基因型0100,0101,0110或0111。

问题是要求你为一个计数适应度函数提出四个相关的模式。因此,您有兴趣了解GA的运行次数如何增加 - 您的第一个架构可能只有几个架构,其余架构作为通配符。然后,您可以通过将一些通配符替换为更多通配符来形成另一个模式。

然后要求你计算,每一代人口中有多少人匹配这些模式中的每一个 - 所以,如果你的模式是11111 ***************,那么你d计算前五位中有多少人拥有一个。

答案 1 :(得分:1)

Jivlain的回答非常清楚,但如果你想要更多关于这个主题的话,Goldberg的Genetic Algorithms in Search, Optimization, and Machine Learning已经详尽地介绍了模式理论以及如何识别给定域的模式(带有示例)。

答案 2 :(得分:0)

我已经在遗传算法中进行了广泛的编码,如果你能准确地解答你的问题,你可能除了精确答案之外......另外,为了更好地理解图式理论,请参阅梅兰妮米切尔关于GA的书。它是以非常清晰的条件给出的。

AVID