Credible autocoding of convex optimization algorithms

The efficiency of modern optimization methods, coupled with increasing computational resources, has led to the possibility of real-time optimization algorithms acting in safety-critical roles. There is a considerable body of mathematical proofs on on-line optimization algorithms which can be leveraged to assist in the development and verification of their implementation. In this paper, we demonstrate how theoretical proofs of real-time optimization algorithms can be used to describe functional properties at the level of the code, thereby making it accessible for the formal methods community. The running example used in this paper is a generic semi-definite programming solver. Semi-definite programs can encode a wide variety of optimization problems and can be solved in polynomial time at a given accuracy. We describe a top-down approach that transforms a high-level analysis of the algorithm into useful code annotations. We formulate some general remarks on how such a task can be incorporated into a convex programming autocoder. We then take a first step towards the automatic verification of the optimization program by identifying key issues to be addressed in future work.

[1]  Stephen P. Boyd,et al.  CVXGEN: a code generator for embedded convex optimization , 2011, Optimization and Engineering.

[2]  J. Lofberg,et al.  YALMIP : a toolbox for modeling and optimization in MATLAB , 2004, 2004 IEEE International Conference on Robotics and Automation (IEEE Cat. No.04CH37508).

[3]  Eric Feron,et al.  From Design to Implementation: an Automated, Credible Autocoding Chain for Control Systems , 2013, ArXiv.

[4]  Manfred Morari,et al.  Certification aspects of the fast gradient method for solving the dual of parametric convex programs , 2013, Math. Methods Oper. Res..

[5]  Timothy Wang,et al.  Credible autocoding of control software , 2015 .

[6]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[7]  Jos F. Sturm,et al.  A Matlab toolbox for optimization over symmetric cones , 1999 .

[8]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[9]  Michael J. Todd,et al.  Primal-Dual Interior-Point Methods for Self-Scaled Cones , 1998, SIAM J. Optim..

[10]  Romain Jobredeaux Formal verification of control software , 2015 .

[11]  Timothy Wang,et al.  A graphical environment to express the semantics of control systems , 2011, 1108.4048.

[12]  Nikolai Kosmatov,et al.  Frama-C - A Software Analysis Perspective , 2012, SEFM.

[13]  M. Rinard Credible Compilation , 1999 .

[14]  Farid Alizadeh,et al.  Interior Point Methods in Semidefinite Programming with Applications to Combinatorial Optimization , 1995, SIAM J. Optim..

[15]  Kim-Chuan Toh,et al.  On the Nesterov-Todd Direction in Semidefinite Programming , 1998, SIAM J. Optim..

[16]  J. Filliâtre,et al.  ACSL: ANSI/ISO C Specification Language , 2008 .

[17]  Robert J. Vanderbei,et al.  An Interior-Point Method for Semidefinite Programming , 1996, SIAM J. Optim..

[18]  M. Todd A study of search directions in primal-dual interior-point methods for semidefinite programming , 1999 .

[19]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[20]  Lawrence Kent McGovern Computational analysis of real-time convex optimization for control systems , 2000 .

[21]  L.K. McGovern,et al.  Requirements and hard computational bounds for real-time optimization in safety-critical control systems , 1998, Proceedings of the 37th IEEE Conference on Decision and Control (Cat. No.98CH36171).

[22]  R. Stephenson A and V , 1962, The British journal of ophthalmology.

[23]  Renato D. C. Monteiro,et al.  Primal-Dual Path-Following Algorithms for Semidefinite Programming , 1997, SIAM J. Optim..

[24]  Makoto Yamashita,et al.  Latest Developments in the SDPA Family for Solving Large-Scale SDPs , 2012 .

[25]  Marc Pantel,et al.  Model-based formal specification of a DSL library for a qualified code generator , 2012, OCL '12.

[26]  P. Gahinet,et al.  A linear matrix inequality approach to H∞ control , 1994 .

[27]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[28]  A. M. Turing,et al.  Checking a large routine , 1989 .

[29]  Shinji Hara,et al.  Interior-Point Methods for the Monotone Semidefinite Linear Complementarity Problem in Symmetric Matrices , 1997, SIAM J. Optim..

[30]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[31]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[32]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[33]  Michael L. Overton,et al.  Primal-Dual Interior-Point Methods for Semidefinite Programming: Convergence Rates, Stability and Numerical Results , 1998, SIAM J. Optim..

[34]  Yurii Nesterov,et al.  Interior-point polynomial algorithms in convex programming , 1994, Siam studies in applied mathematics.

[35]  Kim-Chuan Toh,et al.  SDPT3 -- A Matlab Software Package for Semidefinite Programming , 1996 .

[36]  Eric Feron,et al.  A generic ellipsoid abstract domain for linear time invariant systems , 2012, HSCC '12.

[37]  Yin Zhang,et al.  A unified analysis for a class of long-step primal-dual path-following interior-point algorithms for semidefinite programming , 1998, Math. Program..

[38]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[39]  Stephen P. Boyd,et al.  Convex Optimization , 2004, Algorithms and Theory of Computation Handbook.

[40]  Jacek Gondzio,et al.  Interior point methods 25 years later , 2012, Eur. J. Oper. Res..

[41]  Stephen P. Boyd,et al.  Linear Matrix Inequalities in Systems and Control Theory , 1994 .

[42]  G. Gentzen Untersuchungen über das logische Schließen. I , 1935 .

[43]  Shuzhong Zhang,et al.  Quadratic maximization and semidefinite relaxation , 2000, Math. Program..

[44]  Marc Bodson,et al.  Evaluation of optimization methods for control allocation , 2001 .