
Intro to Multicriteria Optimization - Zephyr314
http://blog.sigopt.com/post/149041563563/sigopt-in-depth-intro-to-multicriteria
======
mccourt
I wrote this post and am also happy to comment. Hopefully we'll be following
this up soon with a post on treating robustness and cost simultaneously in a
multicriteria setting. Also, special thanks again to Devon Sigler at the
University of Colorado Denver for his help editing this post.

------
oli5679
For anyone looking for a free optimization tool in python, sypy.opimize is
easy to use.

Eg if I have a complicated function revenue([A,B,C,D])

I can define obj([A,B,C,D]) = -1* revenue([A,B,C,D])

and use:

    
    
      >>>import numpy as np
    
      >>>from scipy.optimize import minimize
    
      >>>X0 = np.array([1.5, 0.7, 1.2, 100])
    
      >>>options={'xtol': 1e-4, 'disp': True})
    
      >>>X* = minimize(obj, x0, method='nelder-mead', options)
    

[http://docs.scipy.org/doc/scipy/reference/tutorial/optimize....](http://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html)

~~~
ogrisel
scipy.optimize can only do single-criterion optimization (scalar-valued
objective function instead of vector-valued objective functions).

~~~
radarsat1
> The tradeoffs between these two criteria can either be managed by some
> supervisory decision maker (the driver of the car in this example) or by
> merging the multiple criteria into some single criteria and phrasing the
> problem as a standard optimization problem.

You always have to reduce the problem to a scalar if you want a single answer.

~~~
ogrisel
You might want to discover the full Pareto frontier to gain some insights on
the structure of the trade-off.

I think the best methods to explore the Pareto frontier are based on the
concepts of evolutionary computation like NSGA-II and SPEA-2:

[https://en.wikipedia.org/wiki/Multi-
objective_optimization#A...](https://en.wikipedia.org/wiki/Multi-
objective_optimization#A_posteriori_methods)

------
apathy
I guess the novelty here is that constraint based optimization with no
guarantees on convexity or biconvexity is a PITA?

~~~
mccourt
First off, I am very hesitant to say anything about biconvex problems - I only
see them in passing and they are definitely not in my wheelhouse. If anyone
out there is an expert, or even just has a solid (basic) reference on biconvex
problems, please feel free to drop some knowledge on me.

For this particular problem, which has only one input variable, yes the answer
can be resolved with a good-old fashioned Plug-In-The-Answer strategy. For
problems with more than one input variable, that will almost certainly not be
the case.

Really, all I was trying to say there at the end is that converting the
multicriteria problem to a constraint based problem has potential benefits
over scalarization. Speaking only for myself, I always default to treating
multicriteria problems in some sort of norm-scalarized sense: minimize ||g||
for some vector norm. I thought it was valuable to remind myself, and maybe
others, that there are other ways to naturally rephrase multicriteria problems
as scalar optimization problems. I'm definitely not saying anything about how
easy it is to solve, as in general these constrained problems are going to be
harder than the non-constrained linear (or norm) scalarization.

~~~
LolWolf
The usual reference is this[1] paper which outlines most well-known results on
biconvexity and optimiality thereof.

[1] [http://www2.math.uni-
wuppertal.de/~klamroth/publications/gop...](http://www2.math.uni-
wuppertal.de/~klamroth/publications/gopfkl07.pdf)

~~~
mccourt
That's very helpful. Thanks a lot!

------
Zephyr314
I'm one of the co-founders of SigOpt (YC W15) and am happy to answer any
questions about SigOpt or the methods we apply.

More info on our research (and examples) can be found at
[https://sigopt.com/research](https://sigopt.com/research)

~~~
chaoxu
I do research in combinatorial optimization. Does your company solve any
problems with a combinatorial flavor? (say, things can be optimized using
combinatorial algorithms instead of going for gradient descent.

~~~
pizza
What are the bread and butter of combinatorial optimization? In other words,
the concepts you would first come across, at an undergrad level if possible?

~~~
wolfgke
Doing research in mixed-integer linear optimization (but wrote diploma thesis
about some topic in combinatorial optimization):

> What are the bread and butter of combinatorial optimization? In other words,
> the concepts you would first come across, at an undergrad level if possible?

\- Polyhedral combinatorics (Books: "Alexander Schrijver - Combinatorial
Optimization: Polyhedra and Efficiency" (more focus on polyhedral
combinatorics; IMHO the best book, but not the most approachable), "Bernhard
Korte, Jens Vygen - Combinatorial Optimization: Theory and Algorithms" (more
focus on algorithms; easier to read). This of course includes (mixed-)integer
linear programming ((M)ILP).

\- Of course learning about (M)ILPs means understanding linear programming
(LP). Here I personally prefer "Alexander Schrijver - Theory of Linear and
Integer Programming" (this books also covers ILP aspects, but not MILPs).

\- Other books for learning about ILPs are "Dimitris Bertsimas, Robert
Weismantel - Optimization Over Integers" (main focus is ILP, nevertheless a
good book) and "Conforti, Cornuejols, Zambelli - Integer Programming". There
are no really good books about MILPs that I know of, but these two books at
least will cover some aspects of it.

\- Sometimes semidefinite relaxations will occur (most famous example:
Goemans-Williamson Algorithm; less famous, but also important: Lovasz-
Schrijver hierarchy, Sherali-Adams hierarchy, Lasserre hierarchy)

~~~
mccourt
I'd also like to throw in some work by a former colleague of mine at Argonne,
Sven Leyffer on nonlinear programming: \- A compendium he co-edited named
(appropriately enough) Mixed Integer Nonlinear Programming \- A review paper
he co-authored for Acta Numerica:
[http://www.mcs.anl.gov/papers/P3060-1112.pdf](http://www.mcs.anl.gov/papers/P3060-1112.pdf)

Also, yeah, the "Alexander Schrijver - Theory of Linear and Integer
Programming" reference is solid.

~~~
wolfgke
The survey article by Sven Leyffer is a good paper, but comes from a
completely different direction:

It comes from people from convex optimization trying to additionally apply
some integrality conditions (a little bit as second-class citizen). On the
other hand classical combinatorial optimization is integrality conditions as
first-class citizen. I, coming from (M)ILP, would argue that the MINLP people
coming from convex optimization tend to sidestep all the problems that make
ILP so hard (and interesting). On the other hand MINLP people would equally
vocally argue that the (M)ILP people tend to prefer "academic" problems and
don't grasp how many important research questions they miss.

It's up to the reader to decide which side is right. :-)

My personal opinion in this "flamewar" is that if you come from a computer
science background (in particular theoretical computer science) you will
probably prefer classic MILP culture. On the other hand if you come from
engineering you will probably prefer MINLP theory as outlined in Sven
Leyffer's survey paper.

~~~
mccourt
Yeah, I think that's probably the split - folks from computer science/discrete
math on one side and folks from engineering on the other. I grew up in math,
but I was on the numerical analysis side so I definitely ended up on the MINLP
side, which is why that's what I generally reference. There is certainly
something elegant about ILP problems which gets lost when treating them with
the sledgehammer that is gradient-based convex optimization.

~~~
wolfgke
> There is certainly something elegant about ILP problems which gets lost when
> treating them with the sledgehammer that is gradient-based convex
> optimization.

It is funny that you call gradient-based convex optimization a "sledgehammer"
since people working in combinatorial optimization (opposed to ILP) tend to
denote ILP methods (e.g. cutting plane algorithms, branch & bound, branch &
cut, relaxation hierarchies, ...) also as a "sledgehammer". :-D They are just
jealous. :-)

------
bumbledraven
> The reason this is a more complicated situation is that an ordering of
> vectors in RkRk does not exist... how would one order the vectors u =
> (1,2,3), v = (2,1,3), w = (3,2,1)?

It seems straightforward to order those vectors by first comparing the first
component, then the second, then the third. The result is u,v,w. It's as if
you wanted to sort a multi-column report in Excel. What am I missing?

~~~
pmalynin
Consider a simpler case of two dimensional real vectors. Lets consider the
vector space of R^2, since all finite dimensional vector spaces of same
dimensionality are isomorphic, R^2 is isomorphic to the complex numbers.

How would you order the complex numbers?

~~~
wolfgke
> How would you order the complex numbers?

You can use any order that can be defined on R^2. It's just that you can show
that this order cannot satisfy the axioms of an ordered field.

------
orasis
Here is a much simpler approach that works for many problems: minimize the
distance to a desired multi-variate state.

[https://medium.com/@justchap/using-the-pythagorean-
theorem-t...](https://medium.com/@justchap/using-the-pythagorean-theorem-to-
model-complicated-goals-in-machine-learning-b85f04b34ad4#.9tajh1t0l)

~~~
mccourt
That strategy can be viable; it's discussed in the Wikipedia article:
[https://en.wikipedia.org/wiki/Multi-
objective_optimization#N...](https://en.wikipedia.org/wiki/Multi-
objective_optimization#No-preference_methods)

As is suggested there, though, implementing this no-preference strategy
requires some clean rescaling of the component functions in order to yield
equal significance for all of them. If you have such a rescaling, that's
outstanding; however, as I suggested in the section of the article dealing
with the impact of the choice of currency, rescaling a problem may be a
difficult proposition. This is especially true for problems that aren't as
simple as the toy problem I've proposed here.

