我正在尝试使用 pygmo 进行优化。我正面临来自 pygmo 包的错误。它基本上是矢量优化。启动填充时出现以下错误:“TypeError:没有注册的转换器能够从这个 numpy.ndarray 类型的 Python 对象生成 double 类型的 C++ 右值”
我试图从我的函数中删除 scipy 命令,但我的函数抛出错误。
class square_fit:
def fitness(self,rect_length):
sq_area = rect_width*rect_length
pulse_area =sc.integrate.simps(vge_reg, dx=0.1)
rmse = pulse_area-sq_area
return [sq_area,pulse_area,rmse]
def get_bounds(self):
return ([2.5],[3.633])
algo = pg.algorithm(uda = pg.nlopt('auglag'))
algo.extract(pg.nlopt).local_optimizer = pg.nlopt('var2')
algo.set_verbosity(200)
pop = pg.population(prob = square_fit(), size = 1) # error happens
pop.problem.c_tol = [1E-6] * 6
pop = algo.evolve(pop)
我想知道我是否可以通过在我的成本函数中包含来自其他 python 包(如 numpy 或 scipy)的命令来在 pygmo 中进行优化。什么是 c++rvalue,哪个变量被称为 numpy.ndarray