CPLEX装箱模型约束报错:Not an array type问题求助
CPLEX装箱模型报错:Not an array type问题解决
你在基于CPLEX编写装箱(Binpacking)问题模型时,代码中w_j[j]*x[i][j]处触发如下报错:
Description Resource Path Location Type Not an array type.
问题原因
参数w_j的声明类型错误:你在模型里写了float w_j=...;,将其定义为单个浮点数变量,但实际w_j需要存储多个物品的体积,是一个数组。当你用w_j[j]试图通过下标访问元素时,单个变量不支持数组索引操作,因此触发报错。
解决步骤
修正模型中的参数声明
将模型里的参数定义行:float w_j=...; //Volume Item修改为数组类型声明,匹配物品的索引范围:
float w_j[Item]=...; //Volume Item这里用之前定义的
Item范围(1..n)来约束数组维度,和物品数量一一对应。数据读取代码无需修改
你已经通过SheetRead从Excel读取了数组格式的物品体积数据到w_j,只要模型参数类型匹配,就能正常读取并使用。
内容的提问来源于stack exchange,提问作者Fstm
相关产品推荐
相关产品推荐

