【问题标题】:Evolutionary algorithm - Traveling Salesman进化算法 - 旅行推销员
【发布时间】:2013-06-09 14:08:27
【问题描述】:

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

所以,每个单位我有 2 个值:他访问的城市数量、总时间和他访问城市的顺序。 我尝试了 2-3 种健身功能,但效果不佳。

我需要考虑到他访问过的城市数量以及总时间的良好适应度函数。

谢谢!

【问题讨论】:

    标签: genetic-algorithm traveling-salesman


    【解决方案1】:

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

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

    其次,您可以将您的两个目标定义为仅当它们超过某个阈值时才进行惩罚的约束。这可能是可行的,例如城市的数量不应在一定范围内,例如[4;7],但不管是 4 还是 5。这类似于加权求和方法,其中各个目标对组合适应度值的贡献相差几个数量级。

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

    无论如何,如果您能展示您尝试过的 2-3 个适应度函数,那就太好了。也许有相当简单的错误。

    【讨论】:

    • 谢谢。我会使用这个想法。我认为我的问题在于交叉,我会在上面发布新问题。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-01-19
      • 2016-02-11
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2021-07-18
      相关资源
      最近更新 更多