【问题标题】:How to generate random number between 0 and 1 in genetic algorithm toolbox, Deap如何在遗传算法工具箱,Deap 中生成 0 到 1 之间的随机数
【发布时间】:2017-01-06 02:22:54
【问题描述】:

我在 Python 中使用genetic algorithm toolbox。代码:

toolbox.register("attr_bool", random.randint, 0, 1) 通常定义要生成的随机数01。问题是我正在寻找 01 之间的随机数。我使用了toolbox.register("attr_bool", random.uniform(0, 1)),但它给我带来了以下错误: TypeError: the first argument must be callable

【问题讨论】:

标签: python random genetic-algorithm


【解决方案1】:

错误告诉您它必须能够调用第一个参数,这意味着它必须能够充当函数。 random.randint 是一个函数,但 random.uniform(0, 1) 不是。它是一个浮点数。要解决这个问题,您可以简单地使用 lambda 关键字创建一个匿名包装函数:

toolbox.register("attr_bool", lambda: random.uniform(0, 1))

【讨论】:

  • TypeError: integer argument expected, got float.
  • 也许我们应该改变:
  • toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, 100) toolbox.register("population", tools.initRepeat, list, toolbox.individual)
  • 如果它需要一个整数,你为什么要给它一个浮点数?
  • 因为参数应该在0到1之间,最优值也在那个范围内。
猜你喜欢
  • 1970-01-01
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多