Here are my notes from the second day of ISMP. (Here are my day 1 notes.) I spent the whole day going to IPM talks:
Meszaros: Unfortunately I missed the plenary talk by Friedrich Eisenbrand due to microbrews. I attended an IPM session after that - first up was Csaba Meszaros - interesting to hear from him because BPMPD has been such an impressive code for so many years. His talk was about recent improvements in BPMPD. BPMPD has been in continuous development for 15 years or so. His recent work appears to focus on a) QCQP b) exploiting "hypersparsity". He is using a primal-dual log barrier method - not a primal-dual HSD method as we at Solver Foundation have chosen for our SOCP solver. So his handling of starting points and infeasibility detection is different. He went into the tradeoffs between using augmented and normal systems for the search direction, which affect both performance and numerical stability. He has implemented both and has logic on top to determine which to use. He also talked about QCQP presolve, which often whittles down the size of "real" models substantially. An interesting bit of trivia: he showed a table that compared lines of code in various modules, "then and now":
2009 1981 Ordering 5700 155 Cholesky 2825 100 Backsolve 820 45
Jacek Gondzio talked about the use of indirect methods (such as preconditioned conjugate gradient) in IPM. This hasn't worked out well in the past because such methods are not able to solve the systems to the accuracy required by IPM search directions. And the problem is still not solved, but for his new approach he did show some impressive results for dense problems. The title of my talk was Interior Point Methods in Solver Foundation. I gave an overview of where IPM sits in the Solver Foundation stack, discussed our user and solver models. (And why different user and solver models are necessary - the "user model" serves Solver Foundation Services as well as programmers, whereas the solver model is structured so as to attain the most numerically stable, high performance solver possible. Separation of concerns!) Then I gave a high-level overview of our solution approach, and talked about a couple of implementation issues including handling of free variables, equality constraints, etc. Lastly I talked about some numerical stability issues. I got nice feedback from people afterwards and there was a lot of curiosity about who is using our stuff and what is next.
I am attending the ISMP math programming conference in Chicago, representing the Solver Foundation team. Here are some of my impressions of Day 1 at ISMP:
Plenary [Steven Boyd]: The plenary speaker was Steve Boyd who talked about real-time embedded convex optimization. He considered cases where problems need to be solved in milliseconds or less: control, signal processing, resource allocation, and even finance (think flash trading). The approach is basically to extend "disciplined convex programming". DCP is a modeling system where problems are convex "by construction" because they combine operators with well-known properties; the system is then able to rewrite the problem in the standard form required by a convex programming solver (such as an IPM QP/SOCP solver). The new step is that the system can now generate highly optimized C code for a custom solver for the particular problem family described by the model. (The algorithm itself is standard IPM.) You can do all sorts of optimizations in this case: the problem structure is known so the symbolic ordering can be done in advance, you can ensure better memory locality, etc. He gave many example where small QP instances were solved in tensof microseconds. Fun stuff.
Morning Sessions: I attended a morning session concerning approaches for nonconvex optimization problems. Jon Lee talked about solving a particular class of parametric nonlinear problems, Kurt Anstreicher talked about *nonconvex* QP and associated bounds. I then went to a straight-up theory session talking about convergence rates & asymptotic costs for IPM - there were a couple of new results and an interesting "corrector-predictor" (instead of the other way around) approach that attains better asymptotic convergence. There is an embarrassment of riches at ISMP: I missed by John Hooker about integrating MIP, constraint & global optimization, a great MIP session including Bob Bixby from Gurobi, and all sorts of other stuff. There are a staggering number of good talks to attend.
Afternoon Sessions [Modeling / Stochastic]: I went to a modeling languages track in the afternoon. The first speaker was from LINDO Systems who talked about their new LINGO offering. The primary new feature is to support stochastic modeling. There were some screenshots from What's Best, their spreadsheet solver. They had a few nice samples as well.
Gautam Mitra from OptiRisk was up next - he talked about SAMPL, stochastic extensions for AMPL. They have extended SAMPL to support:
Chance constraints are interesting - they occur in a range of financial problems including VaR and CVaR calculation. Gautam riffed on the difference between stochastic and robust optimization by invoking Rumsfeld: there are known knowns [deterministic optimization], known unknowns [stochastic], and unknown unknowns [robust optimization]. In robust optimization you may have problem coefficients that are in some range with an unknown distribution and you want the constraints to hold in all (or most) possible circumstances. Robust optimization also has SOCP reformulations, and I am a big believer because I think RO can be cleanly expressed in modeling languages. The last talk in the session was about YALMIP support for robust optimization - YALMIP has had widespread adoption by control theory specialists and has had a long history of improvements. This talk was very code-oriented and fun to watch.
A few overall impressions: I think it is fair to say that SOCP is entering the mainstream with LP/QP/MIP - it came up a lot today. On the modeling side, it was interesting to see that stochastic was featured in all three talks in the session I attended. A larger trend is that MINLP (mixed integer nonlinear programming) is hot. There are tons of tracks on it, and it is [unsurprisingly] being taken on by both the MIP and NLP communities. The problem description is very general so of course there are applications, but the dust has not settled on the solver side.