0

所以我运行了示例代码,并为我的问题写了一些额外的东西

   problem = MyProblem(avg_vec,cov_mat,cor_mat,num_vars,num_obj,num_con,lb,ub,func_list,cons_list)
        print(problem)
        algorithm = NSGA2()

        print(algorithm)
        res = minimize(problem,
               algorithm,
               ('n_gen', 20000),
               seed=1)

当我运行它时,我得到以下输出

# name: MyProblem
# n_var: 3133
# n_obj: 2
# n_constr: 1


<pymoo.algorithms.nsga2.NSGA2 object at 0x000001B00B384D88>
Traceback (most recent call last):
  File "port_runner.py", line 72, in <module>
    my_port.sharp_moo(func_list,con_list,test_prices, max_port_amount, max_stocks,back_prop_data)
  line 468, in sharp_moo
    seed=1)
TypeError: 'int' object is not callable

我有点困惑问题出在哪里,因为这些函数都不是整数——它甚至没有调用我的评估函数来最小化。

4

1 回答 1

0

我在导入 pymoo 后导入了 pyomo。这两个库都有一个最小化功能,但是由于我第二次导入了 pyomo,所以它使用了具有不同输入结构的库。可以通过显式调用 pymoo 的最小化来轻松解决它。

于 2021-07-21T17:58:34.163 回答