我正在尝试解决许多时隙(m 个时隙)中的能量优化问题,我正在使用 GurobiPy 和库 RSOME。我不想迭代地求解每个时隙,而是想向我的求解器提供未来时隙的所有参数和输入数据,以便影响其当前的决策。在这种情况下,我的决策变量 Pimp(输入能量)和 Pex(输出能量)的维度是 m 数组。
#Import libraries
from rsome import ro
from rsome import grb_solver as grb
m = 3 # 3 timeslots
#create a model object
model = ro.Model('model')
#create decision variables
Pimp = model.dvar(m)
Pexp = model.dvar(m)
当我尝试编写使能源成本最小化的目标函数时
#objective function
model.min (PriceImp*Pimp[t] - PriceEx * Pexp[t] for t in range(0,m)) #the min objective
我收到以下关于维度的错误(在定义我的约束时我也可能会遇到)。我想同时在所有时隙上解决这个整体模型,那么我该怎么做?这个错误来源是什么?
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-51-9dc6dda719ea> in <module>
1 #objective function
----> 2 model.min (PriceImp*Pimp[t] - PriceEx * Pexp[t] for t in range(0,m)) #the min objective
3 #model.min(Pimp + Pexp) #the min objective
/opt/conda/lib/python3.8/site-packages/rsome/ro.py in min(self, obj)
130 """
131
--> 132 if obj.size > 1:
133 raise ValueError('Incorrect function dimension.')
134
AttributeError: 'generator' object has no attribute 'size'