进化算法 - 旅行推销员

时间:2013-06-13 08:46:43

标签: genetic-algorithm traveling-salesman

我尝试使用遗传算法解决这个问题,并且难以选择适应度函数。 我的问题与原来的旅行商问题有点不同,因为人口,也许胜利单位不一定包含所有城市。

所以,每个单位我有2个值:他访问的城市数量,他访问城市的总时间和顺序。 我尝试了2-3次健身功能,但他们没有给予良好的闷热。

我需要考虑良好的健身功能,考虑到他所访问的城市数量以及总时间。

谢谢!

2 个答案:

答案 0 :(得分:2)

除了Peladao关于使用帕累托方法或某种加权和的建议之外,为了完整起见,还有两种可能性我想提及。

首先,您可以优先考虑您的健身功能。因此,人口中的个体按第一个目标排名,然后是第二个目标,然后是第三个目标。因此,只有当第一个目标中两个人相等时,他们才会被第二个目标进行比较。如果你的目标明显占主导地位,这可能是一种可行的方法。

其次,您可以将两个目标定义为仅在超过特定阈值时才会受到惩罚的约束。例如,这可能是可行的。城市数量不应该在一定范围内,例如[4; 7],但如果它是4或5则无关紧要。这类似于加权和方法,其中各个目标对组合适应值的贡献相差几个数量级。

帕累托方法是唯一一个同等重视所有目标的方法。它需要适合多目标优化的特殊算法,例如NSGA-II,SPEA2,AbYSS,PAES,MO-TS,......

在任何情况下,如果您能够显示您尝试过的2-3个健身功能,那将是一件好事。也许有相当简单的错误。

答案 1 :(得分:1)

可以使用Pareto optimal实现多目标适应度函数。

您还可以使用不同适合度值的加权和。

对于多目标优化和GA的良好且可读的介绍:http://www.calresco.org/lucas/pmo.htm