0

我正在尝试解决许多时隙(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'
4

0 回答 0