首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多权值DEAP算法

多权值DEAP算法
EN

Stack Overflow用户
提问于 2019-05-17 11:46:28
回答 1查看 1.1K关注 0票数 1

我对DEAP非常陌生,看看我看到的几个地方和例子,它使用这种方法为遗传算法创建类:

代码语言:javascript
复制
creator.create('FitnessMax', base.Fitness, weights=(1.0, -0.5,))
creator.create('Individual', list, fitness=creator.FitnessMax)

我不明白的是权重参数。假设DEAP可以用来解决多目标问题(最大化和最小化),这就是为什么权重可以是正的或负的。

但它与健身/目标函数是如何联系的呢?健身功能必须返回几个值,一个为每个重量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-11 18:40:57

对于多目标问题,您的适应度函数必须返回与指定的权重数相同的结果元组,例如:

代码语言:javascript
复制
creator.create('Fitness', base.Fitness, weights=(1.0, -0.5,))
creator.create('Individual', list, fitness=creator.Fitness)

[...]

toolbox.register('evaluate', fitness)

def function_minimize(individual):
    return individual[0] - sum(individual[1:])

def function_maximize(individual):
    return sum(individual)

def fitness(individual):
    return (function_maximize(individual), function_minimize(individual)),

此外,请记住,您的选择方法必须支持多目标问题,例如锦标赛选择,所以如果您使用它,权重将被忽略)。支持这种问题的一种选择方法是NSGA2

代码语言:javascript
复制
toolbox.register('select', tools.selNSGA2)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56185786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档