Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Cplex Code with Java

    Posted 06/24/17 12:37 PM

    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


  • 2.  Re: Cplex Code with Java

    Posted 06/26/17 01:58 AM

    Already your abstract model is unclear. Your objective function contains variables pp and pl but these variables do not appear in any constraints. What appears in your constraints is Pp and Pl but these seem to be fixed data.


    #CPLEXOptimizers
    #DecisionOptimization