专注集中 2020-07-31 11:46 采纳率: 40%
浏览 185

如何在pyomo里面写一条特殊的约束

我的模型里面有这样一个约束
图片说明

其中y和u是变量,每个i对应着一个t的范围,每个t又会在求和中产生不同的k的范围,我该如何在pyomo中写这个约束了?

下面是我的想法:

tRange = []
for i in self.unitSet:
    tRange.append([j for j in range(self.G[i] + 1, self.T + 1)])

def start_time_rule(model, i, t):
    return sum(model.y[i, k] for k in range(max(t - self.unitData.loc[i, "MinOnTime"] + 1, 1), t)) <= model.u[i, t]

self.model.startTime = pe.Constraint(self.model.i, tRange[], rule=start_time_rule)

我先把和每个i对应的t的范围求出来,但是我再最后创建约束的时候,不能通过i来选择对应的t的范围,所以最后一行代码有问题,想了很久,不知道如何解决,请高人指点一下,十分的感谢!!!

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-07-31 13:38
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题