首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DEAP1.3: mutPolynomialBounded()时出错

使用DEAP1.3: mutPolynomialBounded()时出错
EN

Stack Overflow用户
提问于 2020-12-21 14:52:15
回答 1查看 93关注 0票数 0

在我的优化中,运行在mutPolynomialBounded错误中。

我的代码:

代码语言:javascript
复制
print('MinVals',MinVals)
print('MaxVals',MaxVals)        
toolbox.register("mate"  , tools.cxSimulatedBinaryBounded, low=MinVals, up=MaxVals,eta=20.)
toolbox.register("mutate", tools.mutPolynomialBounded, low=MinVals, up=MaxVals,eta=40.)
toolbox.register("select", tools.selNSGA2)
[...]
for Mutant in Offspring:
    if random.random() < MUTPB:
        print ('Mutant',Mutant)
        toolbox.mutate(Mutant)
        del Mutant.fitness.values

世世代代:

代码语言:javascript
复制
MinVals [7.9, 7.7, 20.0, 3.5, 3.0, 8.0, 0.0, 0.0]
MaxVals [8.1, 8.3, 60.0, 4.5, 4.0, 12.0, 0.5, 1.0]
    
Generation   1
('Mutant', [8.083703848590838, 8.239680639018465, 34.76921146679101, 3.93770884762232, 3.84484135043615, 8.268765311082381, 0.04670044781780919, 0.3362407430103522])
Traceback (most recent call last):

  File "<ipython-input-261-aee1f32cae8a>", line 1, in <module>
    runfile('/home/brunsj/05_Kurzprojekte/ML_Batchmeshing/Source/BatchMesh_DEAP_parallel.py', wdir='/home/brunsj/05_Kurzprojekte/ML_Batchmeshing/Source')

  File "/home/brunsj/.conda/envs/spyder/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "/home/brunsj/.conda/envs/spyder/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 94, in execfile
    builtins.execfile(filename, *where)

  File "/home/brunsj/05_Kurzprojekte/ML_Batchmeshing/Source/BatchMesh_DEAP_parallel.py", line 487, in <module>
    DEAP_Meshing()

  File "/home/brunsj/05_Kurzprojekte/ML_Batchmeshing/Source/BatchMesh_DEAP_parallel.py", line 174, in DEAP_Meshing
    toolbox.mutate(Mutant)

TypeError: mutPolynomialBounded() takes exactly 5 arguments (4 given)

我不知道这里发生了什么..。

如果我使用toolbox.register("mutate", tools.mutGaussian, mu=0, sigma=1, indpb=0.2),它将按预期运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-21 15:01:37

简单错误:我错过了toolbox.register("mutate", tools.mutPolynomialBounded, low=MinVals, up=MaxVals,eta=40.)中的参数indpb

使用toolbox.register("mutate", tools.mutPolynomialBounded, low=MinVals, up=MaxVals,eta=40., indpb=1),它可以运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65394915

复制
相关文章

相似问题

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