You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gurobi的addConstrs内嵌套循环添加取派节点时间约束报错如何解决

问题原因

你数据表中associati列的每个单元格存储的是关联取件节点ID的列表,原有代码中遍历df_d.loc[df_d.id == i,"associati"]拿到的j是完整列表,不是单个节点ID,传入B[j]时会触发索引类型不匹配报错。

解决方案

直接对列表内的节点ID做二次遍历即可,参考修改代码如下:

for i in df_d.id:
    # 先取到当前派件节点i对应的关联取件节点列表,再遍历列表内的每个节点ID
    m.addConstrs((B[i] >= B[j] 
                  for assoc_list in df_d.loc[df_d.id == i, "associati"]
                  for j in assoc_list), 
                 name=f"temporal_{i}")

如果id是df_d的主键、每个id仅对应一行数据,可以简化为更易读的写法:

for i in df_d.id:
    related_pickup_ids = df_d.loc[df_d.id == i, "associati"].iloc[0]
    m.addConstrs((B[i] >= B[j] for j in related_pickup_ids), name=f"temporal_{i}")

内容的提问来源于stack exchange,提问作者user12239061

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 13:06:03