将交叉和变异应用于图(遗传算法)

我正在使用一个遗传算法,我希望用它来进化图。你们知道当染色体是图时,如何应用交叉和变异吗?

或者,我是否遗漏了一种图的编码方式,可以让我对位字符串应用“常规”的交叉和变异?

非常感谢!任何帮助,即使与我的问题没有直接关系,我都很感激!

曼努埃尔


回答:

我喜欢Sandor的建议,即使用 Ken Stanley 的 NEAT 算法

NEAT 旨在进化具有任意拓扑结构的神经网络,但这些基本上只是有向图。 在 NEAT 之前有很多方法可以进化神经网络,但 NEAT 最重要的贡献之一是它提供了一种在具有不同拓扑结构的两个网络之间进行有意义的交叉的方法。

为了实现这一点,NEAT 使用附加到每个基因的历史标记,以便在交叉过程中“对齐”两个基因组的基因(生物学家称之为联会)。 例如:

crossover with different topologies in NEAT
(来源: natekohl.net)

(在此示例中,每个基因都是一个框,代表两个节点之间的连接。每个基因顶部的数字是该基因的历史标记。)

总结:基于历史标记对齐基因是一种在两个网络之间执行交叉的原则性方法,无需昂贵的拓扑分析。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注