我正在尝试使用下面的代码来解决非线性优化问题,并且遇到如上所述的未绑定局部错误。请告知我如何使它工作。
目标是通过同时考虑稀释风险来优化收入。如果我在客观方程式中考虑稀释风险,我会得到一个错误,否则我不会。 ipopt,bonmin和couenne求解器也是如此。
如果删除风险方程式,我看不到错误。我发现术语(Price_New [week-1]-min(Price_New [15:week-1])引起了问题。
我的一位同事可以使用CVXPY创建相同的目标函数,而我无法使用PYOMO。
与模型实例有关吗?它是局部作用域的,因此我看到了错误。要使其全球化或克服它,需要做些什么。
我尝试在目标函数中引入模型实例,变量和约束,然后根据范围将模型局部化。
使用了诸如global_option之类的东西,但由于无法识别目标函数obj_rule而失败了。
错误:
错误:为目标obj生成表达式时,规则失败: UnboundLocalError:赋值之前引用了局部变量“ p” 错误:从data = None构造组件'obj'失败:UnboundLocalError: 赋值之前引用的本地变量“ p”