Pymoo 抛出“输入维度 20 不等于 n_var 1!”问题内

问题描述

作为序言,我想说明这是我第一次使用 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 (将#修改为@)