【问题标题】:Problems with function getValue(s) cplex c++函数getValue(s)cplex c ++的问题
【发布时间】:2018-03-14 23:05:34
【问题描述】:

大家!

我在求解模型后无法获取变量 x 值。

x 变量是四个索引变量。

我定义了结构:

#define     ILOARRAYNUM2                   IloArray<IloNumArray>
#define     ILOARRAYNUM3                   IloArray<ILOARRAYNUM2 >
#define     ILOARRAYNUM4                   IloArray<ILOARRAYNUM3 >
typedef IloArray<IloNumVarArray> NumVar2Array;
typedef IloArray<NumVar2Array>   NumVar3Array;
typedef IloArray<NumVar3Array>   NumVar4Array;

变量x定义为:

NumVar4Array x; 
ILOARRAYNUM4 _x;

mono.x = NumVar4Array(env, n);
for(int i = 0; i < n; i++) { 
    mono.x[i] = NumVar3Array(env, n);
    for(int j = 0; j < n; j++) {
        mono.x[i][j] = NumVar2Array(env, n);
        for (int k = 0; k < n; k++) {
            mono.x[i][j][k] = IloNumVarArray(env, n, 0.0, 1.0, ILOFLOAT);
        }
    }
}

mono._x = ILOARRAYNUM4(env,n);
for (int i = 0; i < n; i++){
    mono._x[i]    = ILOARRAYNUM3(env,n);
    for (int j = 0; j < n; j++){
        mono._x[i][j]  = ILOARRAYNUM2(env,n);
        for (int k = 0; k < n; k++) {
            mono._x[i][j][k] = IloNumArray(env,n);
        }
    }
}  

要获取 x 的值,我会这样做:

for (int i = 0; i < n; i++) { 
    for (int j  = 0; j < n; j++) { 
        if (w[i][j] != 0){ 
            for (int k = 0; k < n; k++) {
                for (int m = 0; m < n; m++) {
                    if ( (k != m && k != j && m != i) or (k == m) ) {
                        mono.cplex.getValue(mono.x[i][j][k][m], mono._x[i][j][k][m]);
                    }
                }
            }
        }
    }
}

但是,然后,出现以下错误消息:

引用的 IloExtractable 尚未被 IloAlgorithm 提取

我做错了什么?

【问题讨论】:

标签: c++ cplex getvalue


【解决方案1】:

您问题中的约束很可能不包括所有变量;可能存在一些不涉及任何约束的变量。您的代码是否获取某些变量的值?您是否尝试过通过此代码进行调试以查看未提取到 CPLEX 的变量?

CPLEX - Error in accessing solution C++

【讨论】:

  • 感谢您的回答!我在这里写的另一个疑问。我不确定我是否使用了正确的空间。请你看看能不能再帮我一下?
  • 我不明白你的意思。我没有看到任何进一步的问题?
猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 2012-09-28
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多