# How do computer scientists find a minimum of a tuple?

In multiobjective optimization, what does it mean to minimize a function of the form $$F(a)=(O_1,-O_2,...,O_n)$$? I mean, in mathematics, we can order every set by Zorn's lemma but I think we need some kind of criteria how to compare different tuples as in general there is no unique way to order for example complex numbers. The notation appears in the article Direct policy search for robust multi-objective management of deeply uncertain socio-ecological tipping points.

• This really belongs on our sister site, Computer Science. This site is for questions about how to teach CS. I can migrate it, but you'll lose control of the question, so I'll give you a few hours to close this question and ask it there first. Commented Jun 3 at 13:39

As you note there is no unique way to order a tuple. The meaning of the minimum depends on context. One can order complex numbers in various ways and such an ordering might be useful for some things and not for others. "Minimum real part" for example has meaning for ordering complex numbers. So does taking weighted averages of the components of a tuple. There are a lot of possibilities.

But given some interpretation in context it is likely not especially difficult to compute a minimum.

There is, in general, no unique way to minimize or maximize a multi-valued objective function (i.e. a tuple or a vector). If you insist on a unique minimum, one approach is to fix an ordering on the tuple and find the lexicographic minimum. Another is to apply a single-valued function to the tuple and minimize the result. Of course, this can be rather arbitrary, depending on the problem.

Usually, we would like to find solutions to these problems that lie on the Pareto front, but there can be many such solutions, and computing all of them is often quite expensive. The paper seems to suggest they want to find a solution that lies on the Pareto front, but is not very specific beyond that.

What I think happens in the paper is that the authors do not want to give a formal definition of their objective function, but instead run a bunch of algorithms and evaluate the results. This is not something a more theoretically inclined computer scientist would approve of, but also not uncommon in fields outside CS that apply CS techniques.

And, well, if evaluating solutions is much simpler than providing a formal definition, this can be a reasonable approach. In a way, machine learning is also based on this concept. Do we have a mathematical definition of when a $$100\times 100$$ pixel image contains an aircraft? No. Not that people haven't tried. But we do have methods to evaluate aircraft detection algorithms.

Perhaps it helps to also look at Ward et al.(2015), the paper that they cite for the main model; I think this paper is a bit clearer about this optimization approach.

Unless it's sorted, you do the "beauty contest" thing. You have to traverse the entire tuple to be assured of finding the minimum. You can use your favorite comparator in lieu of <

def min(tuple):
if len(tuple) == 0:
raise ValueError
least = tuple[0]
for k in tuple[1:]:
if k < least:
k = least
return least