gpt4 book ai didi

python - OpenMDAO 的 SimpleGADriver 中自动计算的具有整数值的位

转载 作者:行者123 更新时间:2023-11-28 17:04:05 25 4
gpt4 key购买 nike

下面关于 OpenMDAO 中 SimpleGADriver 文档的链接描述了“默认是一个空字典,其中每个未指定的变量都被假定为一个整数,并且位数是自动计算的”

在文档的例子中,“xI”的值在优化过程中被计算为一个整数值,范围从-5到10。

但是,当我将范围从 -6 更改为 11(不是 2^(n) 的长度)时,“xI”值被计算为实际值。

虽然“xI”值是未指定的变量,但似乎没有像文档中提到的那样自动计算值的位。

link of the document

[文档中的例子]

from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver
from openmdao.test_suite.components.branin import Branin

prob = Problem()
model = prob.model = Group()

model.add_subsystem('p1', IndepVarComp('xC', 7.5))
model.add_subsystem('p2', IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())

model.connect('p2.xI', 'comp.x0')
model.connect('p1.xC', 'comp.x1')

model.add_design_var('p2.xI', lower=-5.0, upper=10.0)
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')

prob.driver = SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}

prob.setup()
prob.run_driver()

“xI”整数值即使范围改变了,有什么解决办法吗?

最佳答案

这是一个错误,已添加到跟踪器中。

目前的解决方法是选择一个范围 (max - min),它是 2 的幂,但大于您想要的范围,然后将您的组件修改为:

  1. 当您超出所需范围时,向目标值“f”添加较大的惩罚(针对最小化问题),

  1. 当您超出所需范围时,引发 AnalysisError(可以从 openmndao.api 导入)。 AnalysisError 告诉 GA 这个点是无效的,并给它一个很大的目标值。

关于python - OpenMDAO 的 SimpleGADriver 中自动计算的具有整数值的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52437416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com