我从来没有上过正式的GA课程,所以这个问题可能很模糊:我想看看我是否能很好地解决这个问题。
通常,基因组被表示为同质元素的序列,如二进制数、逻辑门、初等函数等,然后这些元素可以组装成一个同构结构,就像计算机程序或3D对象的语法树一样。
我的问题涉及到进化一个组件图,比方说X、Y和Z:图可以有N个节点,每个节点都是X、Y或Z的一个实例。在基因组中编码这样一个图结构是相当简单的,然而,我也需要为X、Y和Z本身所做的事情附加附加信息--这实际上是GA的主要目标。
因此,我的基因组似乎应该编码一个异构实体:一个由结构图和功能规范组成的实体。并不是不可能将编码结构的元素(基因)和在单亲“基因”下编码功能的元素(基因)包含在一起,然后在组装实体时简单地将它们分开,但这并不是正确的方法。
这是遗传算法中常见的问题吗?在这种情况下,我是否应该找到一个“低层次”的代表/基因组编码?有关的考虑是甚麽?
发布于 2018-09-21 00:10:25
是的,你可以用遗传算法做到这一点,但严格地说,你将使用遗传编程(GP),而不是遗传算法。GP被认为是遗传算法的一个特例,其中基因组表示是异质的。这意味着你的个人是一个“计算机程序”,而不仅仅是“原始数据”look here和here。这意味着你真的可以在这个“计算机程序”的意思,如何表示和处理它的创造性。
关于附加信息,只要您的所有遗传操作人员都认为这个表示为,就应该是可以的。比如你的交叉。它可以准备交换一半的树和一半的父母的额外信息。如果由于某些原因,额外的信息不能分开,你的交叉可能决定克隆它的父母之一。
这种高度调优方法的主要缺点是,您可能无法使用高级别的GA/GP框架(我只是假设,我对它们不太了解)。
https://stackoverflow.com/questions/52429198
复制相似问题