Open Decade-rider opened 2 hours ago
这是demo用evalVars写的:
def evalVars(self, Vars): # 目标函数
x = Vars.astype(int)
f1 = np.sum(self.P[x, [0, 1, 2, 3, 4]], 1)
f2 = np.sum(self.R[x, [0, 1, 2, 3, 4]], 1)
print(f1.shape)
print(f2.shape)
# 采用可行性法则处理约束
CV = np.array([np.sum(self.C[x, [0, 1, 2, 3, 4]], 1)]).T - 92
ObjV = np.vstack([f1, f2]).T
print(CV.shape)
print(ObjV.shape)
return ObjV, CV
两者似乎没什么区别,可为什么用aimFunc就不合法呢
对于moea_demo3中的例子,我尝试用aimFunc改写,但是始终显示Objv不合法,经过检查我的objv1、objv2和Objv都是符合要求的,他们分别为:(30,),(30,),(30,2) ,下面是我改写的:
我的种群数设置的是30,调用的模板是NSGA-II