I have the following multiobjective problem.

I need to minimize the user-perceived latency while doing so aggressively minimizing user-perceived latency generates large switching cost (Reconfiguration overhead) which effects the user-perceived latency and downtime in the application. My question is how to balance this user-perceived delay- switching cost trade-off in a cost-efficient manner.

To optimize the conflicting objectives (i.e., perceived latency and switching cost) in a balanced manner, different weights are assigned to the defined objectives and then minimize the weighted sum of them. Given a finite time horizon T, then the problem is formulated as follows:

enter image description here

where ωt are the dynamic weights of user-perceived latency and switching cost respectively, which can be set through the running application demands.

How the values for the dynamic weights can be assigned will this be learned during the application deployment of the application lifecycle. Would anyone clear my concept on this issue? I am completely stuck on how to solve this problem.

I also need to ask which algorithm/approach can be used to solve these conflicting objectives. Any suggestion for solving this problem through some fast and lightweight approach. Help is highly appreciated. Thanks


There is a rich literature on reconciling multiple objectives (which I will not attempt to repeat in its entirety here, although what follows is long-winded enough to appear to do so). The ones I know (possibly not all of them) fall into the following categories.

  1. Optimize a weighted combination of the objectives (as you have written). The big problem here is finding appropriate weights (which is particularly challenging when the objectives are not directly comparable, as in your case).
  2. Optimize one objective while constraining how bad the others can get. For instance, minimize switching cost subject to user latency never going above some limit. Among the problems with this approach is finding an appropriate limit for each objective not being optimized.
  3. Goal programming, a variant of the previous approach, sets "aspiration levels" (targets) for each objective and minimizes the amount by which a solution fails to attain those levels. You can set multiple goals for the same objective with different weights in the objective (e.g., "don't let latency exceed and really don't let latency exceed ). Problems with this approach including picking the aspiration levels, scaling them (so that being x short on a latency goal is comparable to being x short on a cost goal) and weight the shortfalls.
  4. Computing some or all of the Pareto frontier (the set of all solutions that are not dominated by any other solution, where dominance means being better on at least on objective and no worse on the other objectives). Problems here include the computation time involved in finding the Pareto frontier and how to choose one solution from among those on the frontier.

Crucial in any of these, I think, will be for you to figure out whom you need to satisfy and get their input. Who will sit in judgment of your solution? If it's the boss, switching costs (directly measurable) may be more important than perceived latency. If it's customers, vice versa. Whoever has the "final say" on the solution will need to provide input on what trade-offs between your two objectives are/are not appropriate. There is no mathematical silver bullet for this.

  • $\begingroup$ Thank you very much @prubin, your help is highly appreciated. I was sitting on this problem for a long time but your suggestions gave me some direction. This platform is so helpful I really can't believe how it helped me and is still helping in my learning process. $\endgroup$ – user1566490 Oct 10 '20 at 9:51
  • $\begingroup$ You're welcome. $\endgroup$ – prubin Oct 11 '20 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.