Path 遗传算法.路径的交叉和变异算子
我想知道是否有人知道图中路径的直觉交叉和变异算子?谢谢 Emm。。这是一个非常困难的问题,人们为此写论文,但仍然没有正确的答案 一般规则是“一切取决于你的领域” 有一些通用GA库可以为您做一些工作,但为了获得最佳结果,建议您自己实现GA操作,特别是针对您的域 你可能会有更多的幸运的答案,但你需要扩大你的问题更多,并添加更多关于你的任务和领域的细节 更新: 所以你有一个图表。在GA术语中,通过图的路径代表一个个体,路径中的节点将是染色体。 在这种情况下,我会说变异可以表示为路径偏离原始路径的某个位置-其中一个节点被移动到某个位置,路径被调整,因此路径中的起始值和结束值保持不变 突变可能导致无效个体。在这种情况下,你需要做出一个决定:允许无效的,并希望它们会收敛到一些未经探索的解决方案。或者当场杀了他们。当我使用GA时,我确实允许使用无效的解决方案,在适合度的同时添加“不适合度”值。一些研究人员认为,这有助于广泛探索溶液空间 交叉只能发生在相互交叉的路径上:在交叉点上,将路径的剩余部分与父路径交换 请记住,交叉有多种方式:个人可以在多个点上交叉,也可以只在一个点上交叉。在图形的情况下,可以有多个交叉点,这自然会导致多个子图形Path 遗传算法.路径的交叉和变异算子,path,genetic-algorithm,mutation,Path,Genetic Algorithm,Mutation,我想知道是否有人知道图中路径的直觉交叉和变异算子?谢谢 Emm。。这是一个非常困难的问题,人们为此写论文,但仍然没有正确的答案 一般规则是“一切取决于你的领域” 有一些通用GA库可以为您做一些工作,但为了获得最佳结果,建议您自己实现GA操作,特别是针对您的域 你可能会有更多的幸运的答案,但你需要扩大你的问题更多,并添加更多关于你的任务和领域的细节 更新: 所以你有一个图表。在GA术语中,通过图的路径代表一个个体,路径中的节点将是染色体。 在这种情况下,我会说变异可以表示为路径偏离原始路径的某个位
正如我之前所说,做这件事没有对错之分,但你只能通过实验来找出最好的方法。这个问题有点老了,但这个问题似乎没有过时或解决,所以我认为我的研究可能对某些人还是有帮助的 至于TSP问题中的变异和交叉问题,在最短路径或最优路径的情况下,每个变异都是有效的(这是因为染色体代表访问固定节点的顺序-交换顺序总是可以产生有效的结果),其中染色体是精确的路径表示,这不适用,也不是很明显。下面是我如何用遗传算法解决最优路径的问题 对于交叉,有几个选项:
5133417129160
家长2:519332512431560
潜在交叉点为33和12。我们可以得到以下子项:519334712431560
和513325129160
,它们是使用这两个交叉点交叉的结果51 33 41 7 12 91 60
,随机点:33和12,随机/最短路径:33 29 71 12
,突变染色体:51 33 29 71 12 91 60
<强>注:在这种情况下,该方法显然可能有性能缺陷,当找到替代的子路径(使用随机或启发式方法)将停留在某个地方或找到非常长且无用的子路径时,考虑考虑执行或试验次数的时间。 对于我的例子来说,这些方法是非常有效的,并且给出了一个很好的结果,即在最大化顶点和权重的同时保持节点和的权重小于给定的界限。如果您有任何问题,请随时提问。还有,对不起我的MS绘画技巧;)
更新 一个重要提示:我基本上在我的实现中使用了这种方法,但是使用随机路径生成有一个很大的缺点。我决定切换到使用最短路径遍历随机选取的点生成半随机路径-效率更高(但显然可能不适用于所有问题)。哦,我想找到