Ссылка ниже о документе SimpleGADriver в OpenMDAO описывает «По умолчанию - пустой дикт, где каждая неопределенная переменная считается целым числом, а число битов вычисляется автоматически»
В примере вВ документе значение «xI» рассчитывается в процессе оптимизации как целочисленное значение с диапазоном от -5 до 10.
Однако, когда я изменяю диапазон от -6 до 11 (не длина 2^ (n)), значение «xI» рассчитывается как действительное значение.
Хотя значение «xI» является неопределенной переменной, кажется, что биты значения не рассчитываются автоматически, как указано в документе.
ссылка на документ
[Пример в документе]
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", даже если его диапазон изменился?