【发布时间】:2019-04-26 05:25:43
【问题描述】:
我试图在 Pyomo 中声明一个非线性目标约束,每次我尝试使用 Bonmin Solver 解决它时,都会收到以下错误:
错误:求解器 (asl) 返回非零返回码 (3221225477) 错误:求解器日志:Bonmin 1.8.6 使用 Cbc 2.9.9 和 Ipopt 3.12.8 bonmin: Traceback(最近一次调用最后一次):
文件“”,第 2 行,在 结果 = opt.solve(模型)
文件“C:\Anaconda\lib\site-packages\pyomo\opt\base\solvers.py”,第 626 行,在求解 "求解器 (%s) 没有正常退出" % self.name)
ApplicationError: Solver (asl) 没有正常退出
#我的目标函数定义是:
`def obj_func(model):
global summer
summer = 0
global volumer
volumer = 0
for i in range(0,len(data)):
summer += model.x[i]*data.loc[i,'Predicted.Profit']
for j in range(0,len(data)):
volumer += model.x[j]*data.loc[j,'Predicted.Liters.Sold']
return summer/volumer`
我正在通过 SolverFactory 调用求解器, 最后,我还想知道创建约束的最有效方法,因为我有 100+ 范围的约束,其中一些是非线性的。当我尝试使用此模型解决问题时,我的内存使用率飙升至 100%,并且我的计算机挂起。
【问题讨论】:
-
查找日志。它们被写入某个地方。但这听起来就像一个内存错误,然后很难推荐一些不同于解决较小模型或购买 ram 的东西。它看起来像是一般 nlp 求解器通常无法扩展的 ML 任务。
-
“看起来像是一般 nlp 求解器通常无法扩展的 ML 任务”是什么意思?
-
您是否正在使用大数据进行机器学习?然后不要指望能够使用一般的非线性 opt
-
不,我有大小为 (178848,40) 的数据集。我能够非常轻松地运行 CBC,但使用 BONMIN 或 COUENNE 失败
-
这很大,你不应该将线性选择与非线性选择进行比较。
标签: python constraints nonlinear-optimization pyomo