我想使用遗传算法在无向图中找到最短路径。关于交叉和突变,我有两个问题。我一直在研究如何在与此类似的情况下执行交叉,并且最流行的算法似乎是 PMX,我对此的理解是在 2 个父染色体之间交换部分路径以产生后代。我遇到的问题是,几乎所有后代都有很大的无效空间,不是吗?我想知道您是否可以为我确认这一点,如果我错了,请纠正我并解释一下。
在单独但相关的说明上;我确实知道如何做到这一点,但我不知道这是否是个好主意,只需选择 2 个父母,他们在他们的路径中共享相同的节点并在那时交叉,因此所有后代都保持有效。
我的第二个问题是突变;我对如何做到这一点有一个大致的想法;选择一个节点并将其删除并通过另一种方式重新链接路径是否明智?
谢谢 :)!