Graph 遗传算法在路径搜索中的应用——交叉与变异

Graph 遗传算法在路径搜索中的应用——交叉与变异,graph,genetic-algorithm,path-finding,mutation,Graph,Genetic Algorithm,Path Finding,Mutation,我想用遗传算法在无向图中寻找最短路径。关于交叉和变异,我有两个问题。我一直在研究如何在类似的情况下进行交叉,最流行的算法似乎是PMX,我的理解是在两个父染色体之间交换部分路径以产生后代。我现在面临的问题是,几乎所有的后代都有很大的机会变得无效,不是吗?我想知道你是否能帮我确认这一点,如果我错了,请纠正我并解释一下 单独但相关的注释;我确实有办法做到这一点,但我不知道这是否是一个好主意,只需选择两个父节点,它们在路径中共享同一节点,然后在该点交叉,这样所有子节点都保持有效 我的第二个问题是突变;我

我想用遗传算法在无向图中寻找最短路径。关于交叉和变异,我有两个问题。我一直在研究如何在类似的情况下进行交叉,最流行的算法似乎是PMX,我的理解是在两个父染色体之间交换部分路径以产生后代。我现在面临的问题是,几乎所有的后代都有很大的机会变得无效,不是吗?我想知道你是否能帮我确认这一点,如果我错了,请纠正我并解释一下

单独但相关的注释;我确实有办法做到这一点,但我不知道这是否是一个好主意,只需选择两个父节点,它们在路径中共享同一节点,然后在该点交叉,这样所有子节点都保持有效

我的第二个问题是突变;我对如何做到这一点有一个大致的想法;明智的做法是选择一个节点并将其删除,然后通过其他方式重新链接路径吗


谢谢:)

首先你研究的是交叉和变异,因为你说你可能会失去一些有效率的父母,但这是遗传算法中“精英主义”的概念。您应该通过建议的交叉方法来克服。因为在交叉本身,我们有n种方法要做,我建议你们做第二种变异交叉顺序。这不是墨菲定律,所以努力吧,你会成功的。

如果我可以问:你为什么要这样做?通过A*找到最佳路径非常快;即使你很受时间的限制,也有一种方法可以很快给出很好的,紧密有界的近似值。这个问题不需要遗传编程。