Cplex cplex = new Cplex(); INumVar[] x = cplex.NumVarArray(n, 0, 100); //INumVar[] y = cplex.NumVarArray(T,0,1); INumVar[] y = cplex.BoolVarArray(T); //****** Ctr1 ******/ for (int t = 0; t < T; t++) { double[] rt = r[t]; cplex.AddGe(cplex.ScalProd(rt, x), cplex.Prod(V, y[t])); } //******************* //****** Ctr2 ******/ cplex.AddGe(cplex.Sum(y), q); //******************* //****** Ctr3 ******/ cplex.AddEq(cplex.Sum(x), 100); //******************* //****** Ctr4 ******/ for (int i = 0; i < x.Length; i++) cplex.AddGe(x[i], 0); for (int i = 0; i < x.Length; i++) cplex.AddLe(x[i], u[i]); //******************* //function ILinearNumExpr expr = cplex.LinearNumExpr(); for (int j = 0; j < n; j++) for (int t = 0; t < T; t++) expr.AddTerm(x[j], r[t][j] / T); cplex.AddMaximize(expr); cplex.SetParam(Cplex.IntParam.ItLim, 15 *60);