问题描述
作为序言,我想说明这是我第一次使用 Pymoo 库,并且到目前为止已遵循适用的官方指南。 我正在尝试使用 Pymoo 为自定义对象类型设置优化系统,使用 NSGA-II 来计算它。但是,问题是抛出两个错误:
默认情况下,如果我的人口规模不等于问题采用的变量数量,则会抛出 Input dimension 20 are not equal to n_var 1!
的错误。
如果我将测试的人口数更改为 1,则会引发错误 Number of values and population size do not match!
。显然,这与我不理解的人口或声明有关。
我的问题代码如下:
def __init__(self,tag_num):
self.n_obj = tag_num
super().__init__(n_var=1,n_obj=tag_num,n_constr=0,elementwise_evaluation=True)
def _evaluate(self,x,out,*args,**kwargs):
fitness_values = x[0].get_tag_fitness_values()
for i in range(self.n_obj):
try:
fitness_values[i] *= -1
except IndexError:
fitness_values[i] = 0
out["F"] = np.array(fitness_values,dtype=float)
其中 x[0].get_tag_fitness_values()
成功提取长度等于 self.n_obj
的浮点值数组。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)