我想用变量x [i] [j] [k]建模问题。
参考手册中没有提及如何创建大小超过1维的变量。
答案 0 :(得分:4)
此片段显示了在[0,1]中创建三个索引连续变量x,x [i] [j] [t]的示例:
IloNumVar[][][] x = new IloNumVar[numNodes][numNodes][numDays];
for(int i = 0; i < numNodes; i++)
{
for(int j = 0; j < numNodes; j++)
{
//cplex is an instance of class IloCplex
x[i][j] = cplex.numVarArray(numDays, 0, 1);
}
}
答案 1 :(得分:1)
多维建模非常常规。
Here's an example, provided by IBM.
此外,IBM的"Modeling with IBM ILOG CPLEX CP Optimizer – Practical Scheduling Examples"实际上是一个非常好的起点。它有许多多维的例子,尽管大多数都是在OPL中,你不必使用它们。
And, Here's a full example that uses 2 dimensions. 具体来说,变量nutrPerFood具有i和j两个维度。
// nutrPerFood[i][j] nutrition amount of nutrient i in food j
double[][] nutrPerFood;
并在调用IloMPModeler
This tutorial对于熟悉各种Ilog调用也很有帮助。
希望有所帮助。