如何使用pymoo在算法的每次迭代中获得目标函数值和变量值?

2024-05-04 00:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在算法的每次迭代中得到目标和决策变量的值。有办法吗?我尝试使用历史记录,但它不包含值。我试图用pymoo解决一个单目标优化问题。这个目标函数就像一个黑箱函数,它不是一个很好的封闭形式

f = objective(x, fitted_model, lam)
g1 = x[:, 0] - 3.5
g2 = 1.14 - x[:, 0]
g3 = x[:, 1] - 103
g4 = 44.4 - x[:, 1]
g5 = x[:, 2] - 107
g6 = 58.6 - x[:, 2]
g7 = x[:, 3] - 223
g8 = 176.3 - x[:, 3]
g9 = x[:, 4] - 364.9
g10 = 325.9 - x[:, 4]
out["F"] = f
out["G"] = anp.column_stack([g1, g2, g3, g4, g5, g6, g7, g8, g9, g10])

现在我想在每次迭代中得到f和x的值

res = minimize(MyProblem(), algorithm, seed=1, save_history=True, verbose=True)

这样做有什么好处吗


Tags: 函数算法true目标outg4g1g2