Decision Optimization

 View Only

Multi-objective optimization

  • 1.  Multi-objective optimization

    Posted Fri March 26, 2021 08:15 AM
    Dear community team,

    I'm trying to solve an optimization problem by using the epsilon-constraint method. As I cannot find any related document about, how we can do that by OPL (just a simple template might be found in StackOverflow) I have worked with the tiny example that was illustrated by Alex Fleischer to do that. The problem is as follows:
    int nbKids=200;
    float costBus40=500;
    float costBus30=400;
    float costBus50=625;
    
    dvar int+ nbBus40;
    dvar int+ nbBus30;
    dvar int+ nbBus50;
    
    dvar float cost;
    dvar float co2emission;
         
    minimize
      cost + co2emission;
         
    subject to
    {
     cost>=costBus40*nbBus40  +nbBus30*costBus30+nbBus50*costBus50;
     co2emission>=nbBus50+nbBus40*1.1+nbBus30*1.2;
    
      40*nbBus40+nbBus30*30+nbBus50*50>=nbKids;
    }
    
    execute DISPLAY_After_SOLVE
    {
      writeln("The minimum cost is ",cost);
      writeln("CO2 emission is ",co2emission);
      writeln("We will use ",nbBus40," 40 seats buses ",nbBus30,
      " 30 seats buses and ", nbBus50," buses 50 seats");
      writeln("===============================================================");
    };
    
     main {
      var epsilon=0.0001; 
      thisOplModel.generate();
      cplex.setObjCoef(thisOplModel.co2emission,0);
      cplex.solve();
      thisOplModel.postProcess();
      var cost=thisOplModel.cost.solutionValue;
      thisOplModel.cost.LB=cost;
      thisOplModel.cost.UB=cost+epsilon;
      cplex.setObjCoef(thisOplModel.co2emission,1);
      cplex.solve();
      thisOplModel.postProcess();
    };​

    After solving the problem the results are:

    The minimum cost is 2500
    CO2 emission is 6
    We will use 5 40 seats buses 0 30 seats buses and 0 buses 50 seats
    ===============================================================
    The minimum cost is 2500
    CO2 emission is 4
    We will use 0 40 seats buses 0 30 seats buses and 4 buses 50 seats
    ===============================================================

    As far as I know, the e-constraints method can produce a non-dominance solution, in contrast to the lexicographic method.
    What I am interested to know is, how the above solution is non-dominance?


    Thanks in advance
    Abbas



    ------------------------------
    Abbas Omidi
    ------------------------------


    #DecisionOptimization