Transcript for:
Multi-Objective Optimization Lecture

Hello everybody! Today we are talking  about multi-objective optimization. First let's discuss some context for  multi-objective optimization. The goal   of multi-objective optimization is to optimize  multiple objective functions simultaneously.   This falls firmly under the optimization  umbrella for the topics covered in this course. First I'll introduce the weighted sum method.   Imagine that you're trying to optimize  a function here f_objective of x.   In one case we could just have a single objective  function where f is equal to g of x. However,   we could also have a kind of combination  or a summation of two different objective   functions. In this case we care both about the  performance of g and the performance of h. The   simplest and most naïve way to combine these two  objective functions into one is to simply add   them together into a single objective function, in  this case f, which we then optimize over. However,   we may care more about one objective or the other.  So here I will introduce the weighted sum aspect. The weighted aspect of this means that we have  scalars on each of the objective functions,   in this case alpha and beta. Additionally  we have some notion of g_0 and h_0 or some   scalars that are relevant for each one of the  objective functions. These scalars are necessary,   especially if each objective function has wildly  different magnitudes. One example would be in the   case of aircraft design. We might care about the  structural weight and the coefficient of drag of   an aircraft. So if we're trying to minimize the  structural weight and the coefficient of drag   and simply add these two functions together we  could get an answer. But the answer will probably   be not what we're looking for. This is because  the structural weight is often on the order of   thousands of kilograms whereas the coefficient  of drag is on the order of 0.025. Thus we need   to scale each one of these objectives using this  g_0 and h_0 values. There's some kind of nominal   scaling value based on realistic physical  quantities associated with each one of them. Additionally the alpha and beta values say how  much we care about each one of the objective   functions. We could simply split them 50/50 so  that alpha and beta are equal. Or if we care   more about the structural weight as compared  to the coefficient of drag we can have 0.9 and   0.1. Or we could also have 0.1 and 0.9 or any  other values. Commonly we see alpha and beta   add up to one but you can use any kind of  scaling values you want. Additionally for   these examples we're only talking about  bi-objective optimization however this   can be extended to n objective optimization  in the multi-objective optimization sense. Now that we've established the  weighted sum method let's go on   to the Pareto fronts or Pareto Frontiers.  They help show trade-offs between optimal   designs for multiple objectives.  Again for all examples here we'll   just look at two objectives but this can  be extended into hyperdimensional space. Here is a plot of fuel burn versus zero fuel  weight for an aircraft design problem. We might   be trying to minimize both of these things  simultaneously in a multi-objective setup.   This means that we want to minimize the fuel  burn for a given aircraft for a given mission   but also want to minimize the weight of the  aircraft when there is no fuel inside of it.   The whole idea here is to get operating  costs or fuel burn down and capital costs   or zero fuel weight down. Shown on the  scatter plot here are multiple different   designs. These designs do not necessarily  come from an optimizer. Each design here   has some value associated with both of the  objective functions. However, if we want to   look at the best designs we want to examine  the Pareto front. This is the set of designs   that cannot be improved in one objective without  sacrificing performance in the other objective. This green line here shows all of the designs  that are "Pareto optimal." Let's take a look   at one design here shown in white.  If we try to move left by optimizing   the zero fuel weight to be lower we can  improve on it based on what we see in the   Pareto front. Additionally we can also  improve by moving down to minimize fuel   burn even further. That means that design is  "dominated" by designs along the Pareto front. One way to construct a Pareto front is by sweeping  through different scalars on a bi-objective   optimization setup. This is an example for  one paper from Tim Brooks et al in 2020.   Here they are looking to minimize  both the fuel burn and the zero fuel   weight and they did this by performing six  different optimization problems. These six   different optimization problems were  scaled differently by using different   beta scalar values. This constructs a Pareto  front by connecting the dots between them. Another way to construct a Pareto front  is through the Epsilon constraint method.   The goal here is to minimize just one objective  value - not a summation of them - while   constraining another objective value. You can  think of this by constructing the same axis that   we had before then drawing vertical lines. These  vertical lines represent the constraint on one   of the objective functions. Then the optimizer  essentially has a one objective optimization   problem but it is constrained by this additional  constraint based on the other objective.   Each one of these points then moves to  their optimal design by performing an   optimization at each given point and we  can construct a Pareto front this way. This Epsilon constraint method is the preferred  way of constructing Pareto fronts. It often   results in a more robust curve and in the  case of a non-convex Pareto front it can   accurately capture the real physical trends.  It also allows for even spacing in a plot. So the main takeaways concerning multi-objective  optimization is that it's somewhat of a misnomer.   If you actually care about multiple objectives  simultaneously you need to have some predefined   weightings or treat them as constraints. A Pareto  front is a good way to examine trade-offs between   objectives and the Epsilon constraint method  is the preferred way to construct the front. The notebook activities associated with  this lecture will help you construct   your own Pareto fronts for any given  design or model that you're looking   to examine in more detail. Thank you for watching!