I want to minimize two different functions simultaneously who have the same inputs. The functions are both linear and non-exponential.

$$F_1(X_1, X_2) = a_1X_1 + a_2X_2$$ $$F_2(X_1, X_2) = b_1X_1 + b_2X_2$$

I would prefer to do this in R.

Thanks again

  • 4
    $\begingroup$ There's no unique minimizer, since your objective is not scalar, so the problem is not well-posed. (Which is smaller: (0,1) or (1,0)?). Can you elaborate a bit about the background? $\endgroup$ Jun 3 '14 at 19:01
  • $\begingroup$ Why do want to minimize the simultaneously? If you just want to solve each problem independently, there's no restriction on what order you solve them in. if you want to, say, minimize the sum of the two function, that is a single minimization problem with an objective function that is the sum of the two you give. $\endgroup$ Jun 3 '14 at 19:37
  • $\begingroup$ the two input variables are number of employees and number of calls. The problem is simulating a call center where i'm trying to simultaneously minimize the number of missed calls as well as the number of idle hours(amount of time our employees sit idle and do nothing). $\endgroup$
    – user136482
    Jun 3 '14 at 19:42
  • 4
    $\begingroup$ In this case, the real-world background provides a natural scalarization: Presumably, you are actually interested in minimizing loss to revenue, so if you figure out how much each missed call and each idle employee-hour costs you, you can multiply each function by that number and minimize the sum, thus minimizing total loss. $\endgroup$ Jun 3 '14 at 19:59
  • 1
    $\begingroup$ Are there any constraints? $\endgroup$ Jun 3 '14 at 21:41

The problem posed is a multiobjective optimization problem, and the usual notion of optimality for these types of problems is Pareto optimality.

Scalarization (as proposed in the comments by ChristianClason, TheNobleSunfish, Paul, and DougLipinski) is one way to solve the problem. This approach leverages the large body of theory and algorithms for single objective optimization problems, at which point R packages for single objective optimization could be used. A list of these packages can be found here.

There are other methods for solving multiobjective optimization problems. I haven't had more than a single class on multiobjective optimization methods, so I don't claim to be an expert, but I would look at that literature for details on solution methods. In terms of R packages, you might try looking at mco or emoa. Both methods appear to use evolutionary algorithms, which at first glance look to belong to the same class of algorithms as genetic algorithms.


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.