java - 在 cplex 中输出一个二维变量数组
问题描述
目前我正在尝试在 CPLEX 中输出一个二维变量数组。数组定义如下:
IloNumVar[][] y = new IloNumVar[numJobs][];
for(int j=0; j<numJobs; j++){
y[j]= cplex.numVarArray(numJobs,0, 1, IloNumVarType.Int);//ILP
}
解决 ILP 后,应打印这些变量。我尝试通过以下方式打印它们:
for (int i = 0; i < numJobs; i++) {
for(int j=0; j < y[i].length; j++){
System.out.println(cplex.getValues(y[i][j])+ ", ");
}
}
作为错误,我收到“CPLEX 错误:IloCplex 未知对象”
如果我设置 j=1 只打印 i=0 的值..
有谁知道如何解决这个问题?
提前谢谢了!
解决方案
CPLEX 错误:IloCplex 未知对象
当您没有向模型中添加对象时,通常会出现此错误(即,该特定对象IloNumVar
既没有出现在任何约束也没有出现在目标中)。您可能希望使用exportModel方法将模型导出为 LP 格式,以检查其公式是否正确(即,如您所料)。
一种可能的解决方法是在调用之前将所有变量显式添加到模型中solve()
。例如:
for (IloNumVar[] v : y)
cplex.add(v);
有了这个,您应该能够查询所有的IloNumVar
'sy
并且应该不再发生错误。
推荐阅读
- c - CP/M 获取运行程序名
- ios - Cocoapods 无法与远程 Artifactory 存储库一起使用
- android - MyFragment 开始新的意图,然后如果它关闭,它意图到 MyFragment
- swift - 使 @MainActor 类或演员符合 Codable
- c# - 无法将“System.String”类型的对象转换为“System.Byte []”类型的 ASP.NET Web 应用程序
- python - 直接使用win32库捕获ROI
- python - 如何以符号方式解决python中的差分方程
- typescript - Jest 需要 10 秒来运行两个琐碎的 TypeScript 测试,我如何确定它为什么很慢?
- browser-cache - 为什么 woff 缓存在 Chrome 中不起作用?
- primefaces - 使用 p:selectOneMenu 时出错