Originally posted by: JoeBen
I just started working with cplex and Java and I wish to solve an optimization problem :
Pp = [1.2 3.4 3.9 12.0]
Pb = [2.9 -4.2 6.4 2.9]
Pl = [11.3 2.2 3.4 6.9]
Ep = Eb = 2.3;
t= 4;
manimize Cp = 1/2300* ∑ (pp(ti)-pl(ti))dt
ti
subject to{
Pp_optimal(ti) > 0
Pl_optimal(ti) > 0
Pl_min<Pl_optimal<Pl_max
Ep*Pp(ti)- Pl(ti) = Eb*Pb(ti)
if(Pp(ti)> Pl(ti)/Ep){
Pb_optimal(ti) = 1/2300* ∑ (Pp(ti)-Pl(i)-Pb(ti))
}
}
I started creating code:
public class CodeCplex {
public static void main(String[] args) {
try {
IloCplex cplex = new IloCplex();
int n = 4;
double[] Pp = {1.2, 3.4, 3.9, 12.0};
double[] Pb = {2.9, -4.2, 6.4, 2.9};
double[] Pl = {11.3, 2.2, 3.4, 6.9};
double Ep = 2.3;
double Eb = 2.3;
//define variables
IloNumVar[] Pp_optimal = new IloNumVar[n];
IloNumVar[] Pb_optimal = new IloNumVar[n];
IloNumVar[] Pl_optimal = new IloNumVar[n];
for (int i=0; i<n; i++) {
Pp_optimal[i] = cplex.numVar(0,Pp[i]);
Pb_optimal[i] = cplex.numVar(0,Pl[i]);
Pl_optimal[i] = cplex.numVar(Pl_min,Pl_max);
}
//define constraints
for (int i=0; i<n; i++) {
cplex.addEq(cplex.prod(Ep, Pp[i]),.....); // Here I get error : Cannot
//convert double to IloNumVar.
}
...
...
//solve model
if (cplex.solve()) {
System.out.println("obj = "+cplex.getObjValue());
}
else {
System.out.println("Model not solved");
}
cplex.end();
} catch (IloException e) {
System.err.println("Concert exception caught: " + e);
}
}
}
But I don't know how I can solve my problem cause I get errors as I cannot convert double to IloNumVar?
#CPLEXOptimizers#DecisionOptimization