5

我阅读了有关此的各种资料并了解所涉及的原理和概念,但是,没有一篇论文提到如何计算涉及不直接连接的相邻城市(在染色体中)的染色体(代表一条路线)的适应度的细节由一条边(在图中)。

例如,给定一条染色体 1|3|2|8|4|5|6|7,其中每个基因代表一个城市在图/地图上的索引,我们如何计算它的适应度(即总和行进的距离)如果,比如说,城市 2 和 8 之间没有直接的边缘/链接。我们是否遵循某种贪心算法来计算出 2 和 8 之间的路线,并将这条路线的距离加到总距离中?

在将 GA 应用于 TSP 时,这个问题似乎很常见。有做过的朋友请分享一下经验。谢谢。

4

3 回答 3

6

如果您的图上 2 和 8 之间没有联系,那么任何带有 2|8 或 8|2 的染色体对于经典的旅行商问题都是无效的。如果您在 2 和 8 之间找到其他路线,您可能会违反“访问每个位置一次”的要求。

一个非常狡猾但实用的解决方案是在这些节点之间包含具有难以置信的高距离的边缘,或者如果您的语言支持它甚至是 +INF。这样,您的标准最小化适应度函数自然会修剪它们。

我认为问题的原始表述包括所有节点之间的边,所以这不是问题。

于 2010-03-30T00:40:14.553 回答
1

这是确切的问题类型,专门的交叉和变异方法已应用于基于 GA 的 TSP 问题解决方案。看到这个问题

于 2010-04-02T07:44:31.157 回答
1

如果染色体不代表有效的解决方案,那么它完全不适合解决问题。所以取决于你如何订购健身。即,如果较小的数字代表更多的适应度(当适应度代表总成本时可能是一个好主意),那么当您获得无效的基因序列时,您将为其分配一个最大值并中断对该染色体的任何进一步适应度计算。

(反之亦然,如果更高的适应度意味着染色体更适合这项工作,则将其分配为零适应度)

however as others have pointed out it could be better to ensure that invalid chromosones dont occur. However if that is itself an overly compex process then allowing them and ensuring that broken chromosones are unlikely to make it into successive generations could be an acceptable approach.

于 2012-10-09T16:17:03.847 回答