skip to Main Content

minimize sum(j in tavail) 0.2*(ptn[j]*1000000-pln[j]1000000+sum(k in nport)pevch[j][k]-
sum(k in nport)(DOD1[k][j]-dod[k][j])cap[k][j]1000)
+0.8
(sum(j in tavail)(-sum(k in nport)(-32768
DOD1[k][j]+49546)
(DOD1[k][j]-dod[k][j])*cap[k][j]*1000);

This is the mentioned objective function. Here the weight taken is 0.2 and 0.8. With change in weightage values only objective function value is changing. Decision variable is not changing. I have done this by lexicographic method. Is there any other method other than this for doing multi objective optimization. Whether C-PLEX doesn’t support weighted optimization? .

2

Answers


  1. In order to use lexicographic multi objective you can rely on staticLex as in https://github.com/AlexFleischerParis/zooopl/blob/master/zoomultiobjective.mod

    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
      staticLex(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");
    }
    

    If you want to use weighted sum, change

    staticLex(cost,co2emission);
    

    into

    10000*cost+co2emission;
    
    Login or Signup to reply.
  2. Other methods for multi-objective-
    1)Priority – weigh your objectives with an integer value like (1,2,3)-as priority.
    2) Goal programming – solve using objectives separately. Then introduce equality constraints using upper and lower deviations for each of the corresponding optima and their objective functions. Then minimize sum of the deviations.
    3) Solve all but one objectives individually. Then add constraints (<= or >= depending upon max/min for each of the optima and objective function. Then solve the final objective.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search