Introducing SOSTOOLS: A General Purpose Sum of Squares Programming Solver Stephen Prajna∗,1 , Antonis Papachristodoulou∗,1 , and Pablo A. Parrilo† ∗

Control and Dynamical Systems, California Inst. of Tech., Pasadena, CA 91125 - USA †

Institut f¨r Automatik, ETH Z¨rich, CH-8092 Z¨rich - Switzerland u u u Abstract singular value µ. Examples of these problems, as well as several other optimization-related examples, are provided and solved in the demo ﬁles that are distributed together with SOSTOOLS. This paper is based on the SOSTOOLS User’s Guide [12], and is organized as follows. In Section 2 a brief review on sum of squares polynomials is given and the notion of sum of squares programs is introduced. Section 3 describes the main features of SOSTOOLS, including the system requirements. To illustrate how SOSTOOLS is used, a step-by-step example in ﬁnding a Lyapunov function for a system with a rational vector ﬁeld is given in Section 4, and ﬁnally some additional application examples are presented in Section 5. 2 Sum of Squares Polynomials and Sum of Squares Programs A multivariate polynomial p(x1 , ..., xn ) p(x) is a sum of squares (SOS, for brevity), if there exist polynomials f1 (x), ..., fm (x) such that m

SOSTOOLS is a MATLAB toolbox for constructing and solving sum of squares programs. It can be used in combination with semideﬁnite programming software, such as SeDuMi, to solve many continuous and combinatorial optimization problems, as well as various control-related problems. This paper provides an overview on sum of squares programming, describes the primary features of SOSTOOLS, and shows how SOSTOOLS is used to solve sum of squares programs. Some applications from diﬀerent areas are presented to show the wide applicability of sum of squares programming in general and SOSTOOLS in particular. 1 Introduction SOSTOOLS is a free, third-party MATLAB2 toolbox for solving sum of squares programs. The techniques behind it are based on the sum of squares decomposition for multivariate polynomials [1], which can be eﬃciently computed using semideﬁnite programming [16]. SOSTOOLS is developed as a consequence of the recent interest in sum of squares polynomials [14, 1, 13, 9, 10, 7, 6], partly due to the fact that these techniques provide convex relaxations for many hard problems such as global, constrained, and boolean optimization. In addition to the optimization problems mentioned above, sum of squares polynomials (and hence SOSTOOLS) ﬁnd applications in several control theory problems. For instance: construction of Lyapunov functions to prove stability of a dynamical system, and computation of tight upper bounds for the structured 1 Work of the ﬁrst and second authors was supported by AFOSR MURI “Mathematical Infrastructure for Robust Virtual Engineering” and “Uniﬁed Theory for Complex Biological and Engineering Networks”, NIH/NIGMS AfCS (Alliance for Cellular Signalling), DARPA “Enlightened multiscale simulation of biochemical networks”, the Kitano ERATO Systems Biology Project, and URI “Protecting Infrastructures from Themselves.”. 2 A registered trademark of The MathWorks, Inc.

p(x) =

i=1

fi2 (x).

(1)

It is clear from the deﬁnition that the set of sums of squares polynomials on n variables is a convex cone, and it is also true (but not obvious) that it is closed [13]. Condition (1) can be shown to be equivalent to the existence of a positive semideﬁnite matrix Q, such that p(x) = Z T (x)QZ(x), (2)

where Z(x) is some properly chosen vector of monomials. Expressing an SOS polynomial using a quadratic form as in (2) has also been referred to as the Gram matrix method [1, 11]. As mentioned in the introduction, sums of squares techniques can be used to provide tractable relaxations for many hard optimization problems. A very general and powerful relaxation methodology, introduced in [9, 10], 1

is based on the Positivstellensatz, a central result in real algebraic...