【问题标题】:Parameters when using Genetic Algorithm to solve TSP使用遗传算法求解 TSP 时的参数
【发布时间】:2012-06-17 14:25:27
【问题描述】:

我刚开始接触遗传算法,我正在用它来解决旅行商问题。但是,我对应该使用哪些参数感到困惑。让我解释一下参数的含义。

参数:

人口规模

生育子女数

突变数

我确信上述参数取决于我遇到的问题中的城市数量,以及我的 crossovermutations 规范的确切形式。但到底是什么关系呢?

对于什么参数应该是什么类型或经验法则?任何形式的提示或建议都会很棒。

这是我对 5 个城市问题所做的详细说明:

1) 我生成了 20 条随机路径,population = 20

2) 选出 14 条最佳路径(丢弃 6 条最差路径)

3) 从 14 条最佳路径中随机选择的两条路径创建 2 个突变体

突变数 = 2

(对于突变,我只是随机交换了两个城市的顺序 例如:0,1,2,3,4,0 可以变成 0,1,3,2,4,0

4) 我从 8 条最佳路径中创建了 4 个孩子。

孩子数 = 4

(对于交叉,我保留了共同的子路径,其余的都是 随机生成) 例如:父 1:0,1,2,3,4,0,父 2:0,2,1,3,4,0

3,4 是共同的,因此子路径将从 3,4,其余随机。子路径可能是: 0,3,4,1,2,00,2,3,4,1,0

5) 现在我有 2 个突变体和 4 个孩子,我将它们添加到我的 14 条最佳路径中 我有 20 条路径。

6) 执行步骤 2)、3)、4)、5),依此类推。

我纯粹是随意设置参数?他们还好吗?我应该用什么?对于 15 个城市的问题,我应该使用哪些参数? 48个城市? 500 个城市?

提前致谢。

【问题讨论】:

    标签: algorithm genetic-algorithm


    【解决方案1】:

    您的问题非常有趣和困难,我很遗憾地说没有确切的答案。我写了一本关于遗传算法的书,在这近 500 页的书里,我一再坚持认为参数取决于你的问题。

    关于您的具体示例,让我们分析您的参数。您有 20 个人口,每一代您将产生 6 个不同的孩子。假设您有 50 代,您将分析 314 个解决方案(20 个原始个体加上 49*6)。假设您有 5 个城市,则您有 5!=120 个可能的解决方案,因此您使用 GA 比穷举搜索更耗时。

    我知道这是一个象征性问题,您关心的是更大的问题(15、48 和 500,使用您的示例)。尽管如此,经验法则是覆盖搜索空间的一小部分(在 48 和 500 的情况下,这是自动的),以便使用 GA 的良好特性来指导搜索,您可能会得到一个好结果。我建议将高达 0,001% 的搜索空间视为整个执行过程中生成的个体总数(在 500 个城市这样的巨大问题的情况下,它可能仍然太多)。

    在使用的运算符方面,有很多话要说(在我的书中,它有50多页)。因此,我将向您推荐Larrañaga et al 撰写的一篇不错的评论。即使它有点旧,它也会为您更好地探索您的问题提供指导。如果您想要更快的参考,请考虑this Wikipedia article

    很抱歉打了广告,但它不是为了卖书(毕竟我的书只有葡萄牙语和西班牙语,所以我认为这个列表中的大多数人不会购买它)。我只是想指出,有很多关于这个主题的文献。如果您需要有趣的阅读(而且您不会说葡萄牙语),我建议您使用Michaewicz's book,它所提出的观点肯定会帮助您更深入地解决问题。

    【讨论】:

    • 感谢您的帮助。你的帖子很有帮助。我现在意识到,我应该问另一个问题,看看我应该对 GA 有什么期望。
    猜你喜欢
    • 2012-06-17
    • 2019-08-19
    • 2022-06-23
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2016-08-13
    • 2015-05-08
    相关资源
    最近更新 更多