プログラムに問題が発生しました。どこにいるのかはわかりますが、理由はわかりません。
これが私のコードです:
#include <ilcplex/ilocplex.h>
ILOSTLBEGIN
using namespace std;
typedef IloArray<IloNumArray> NumMatrix;
typedef IloArray<IloNumVarArray> NumVarMatrix;
int main() {
IloEnv env;
IloInt i, j, k;
IloModel model(env);
IloInt pro = 4;
IloInt empl = 5;
IloNumArray e(env, project, 2, 2, 2, 3);
IloNumArray pr(env, project, 1000, 2000, 500, 1500);
IloNumVarArray p(env, project, 0, 1);
NumVarMatrix x(env, project);
for(k = 0; k < pro; k++) {
x[k] = IloNumVarArray(env, empl+1, 0, 1);
}
for(k = 0; k < pro; k++) {
IloExpr sum_over_i(env);
for(i = 0; i < empl; i++)
sum_over_i += x[i][k];
model.add(sum_over_i >= e[k] * p[k]);
sum_over_i.end();
}
}
proとemplが同じ値であるか、emplがproよりも小さい場合、すべてが機能します。しかし、emplがpro以上の場合、それはもう機能しません。
なぜemplがproよりも大きくなることができないのか誰かが知っていますか?
ありがとう