I’ve been wondering about how convex optimization can be usefully fit into a framework of categorical combinators for some time. Convex optimization (linear programs, quadratic programs, sdp) is a very tractable set of problems with wonderful applications and mathematics.

I am tempted by the fact that the ADMM algorithm appears to be a compositional algorithm for convex optimization, that taking the convex hull can be seen as a monad, and that the relaxation of integer programs to convex continuous ones can be thought of as an adjunction/galois connection. In particular in trajectory optimization problems, it is natural to think of the trajectories of systems composing in time, and monoidally composing in parallel. And hence kalman filters / model predictive controllers.

This later post http://www.philipzucker.com/categorical-lqr-control-with-linear-relations/ is actually a somewhat but not entirely satisfying implementation of exactly what I was referring to when I mentioned Quadratic objectives with linear equality constraints. I do use haskell and Hmatrix to implement a kalman filter. It is not satisfying in the sense that I had to do a lot of paper and pencil to convert the natural formulation as a quadratic optimization problem into linear relations via the KKT conditions/lagrange multiplier method. But perhaps this is the general purpose way forward? It seems to fit with a method for bilevel programming, which has the flavor of a game which would be a natural place to attempt to formulate solvers in the style of Jules Hedges compositional game theory. Pursuit evasion games is an fascinating intersection of control and game theory that I’d only recently heard of.

There is some ugliness that the natural way to combine objective functions is to add them, which means their relative weighting is important. The constraints don’t work that way. I have some vague intuitive sense that satisfaction problems are easier to formulate / more fundamental than optimization problems.

Part of the problem is that categorical combinators seem too tempted to reach outside of the realm of expressivity of single quantifier / convex optimization problems. In relation algebra, just having composition and no division seems to severely undercut the expressivity of the system, but relation composition is pretty easy and division is kind of hard to compute. And mixing them seems to drive you up the polynomial hierarchy.

]]>Are you trying to implement that in Haskell using HMatrix, but for these `open networks’?

]]>But there is one more problem i have to solve: how can i save the corner dates as return values to give it to another function in my script?

Cheers! Johannes

]]>