Mosek - Computer Sciences Department
Mosek - Computer Sciences Department Mosek - Computer Sciences Department
MOSEK 41.5 Nonlinear ProgramsMOSEK can efficiently solve convex programs, but is not intended for nonconvex optimization. For nonconvexprograms, MOSEK can detect some nonconvexities and will print out a warning message and terminate. IfMOSEK does not detect nonconvexities for a nonconvex model, the optimizer may continue but stagnate. Hencecare must be taken when solving nonlinear programs if convexity is not immediately known.1.6 Modeling Issues Involving Convex ProgramsIt is often preferable to model convex programs in seperable form, if it is possible. Consider the following exampleof minizing an objective function f(x):f(x) = log(a ′ ∗ x)where a ∈ R n is a parameter and x ∈ R n the decision variable. The equation implies an implicit constraint ofa ′ ∗ x > 0. Unfortunately, domain violations can still occur because no restrictions are set on a ′ ∗ x. A betterapproach is to introduce an intermediate variable y:f(x) = log(y)y = a ′ ∗ xy ≥ 0This accomplishes two things. It implies an explicit bound on a ′ ∗x, thereby reducing the risk of domain violations.Secondly, it speeds up computation since computations of gradients and Hessians in the first (non-seperable) formare more expensive. Finally, it reduces the amount of memory needed (see the section on “Memory Options”)2 Conic ProgrammingMOSEK is well suited for solving generalized linear programs involving nonlinear conic constraints. Conic programmingis useful in a wide variety of application areas 1 including engineering and financial management .Conic programming has been used, for example, in antenna array weight design, grasping force optimization,finite impulse response (FIR) filter design, and portfolio optimization.This section gives an overview of conic programming and how conic constraints are implemented in GAMS.2.1 IntroductionConic programs can be thought of as generalized linear programs with the additional nonlinear constraint x ∈ C,where C is required to be a convex cone. The resulting class of problems is known as conic optimization and hasthe following form:minimize c T xsubject to Ax ≤ r c ,x ∈ [l x , u x ]x ∈ Cwhere A ∈ R m×n is the constraint matrix, x ∈ R n the decision variable, and c ∈ R n the objective function costcoefficients. The vector r c ∈ R m represents the right hand side and the vectors l x , u x ∈ R n are lower and upperbounds on the decision variable x.1 See M. Lobo, L. Vandenberghe, S. Boyd, and H. Lebret, Applications of second-order cone programming Linear Algebra and itsApplications, 284:193-228, Special Issue on Linear Algebra in Control, Signals and Image Processing. November, 1998.
MOSEK 5Now partition the set of decision variables x into sets S t , t = 1, ..., k, such that each decision variables x is amember of at most one set S t . For example, we could have⎡ ⎤⎡ ⎤xx 61S 1 = ⎣ x 4⎦ and S 2 = ⎢ x 5⎥⎣ xx 3⎦ . (1.1)7x 2Let x S tdenote the variables x belonging to set S t . Then definewhere C t must have one of the following forms:• Quadratic cone: (also referred to as Lorentz or ice cream cone)⎧⎨C t =⎩ x ∈ ∑Rnt : x 1 ≥ √ ntC := {x ∈ R n : x S t ∈ C t , t = 1, ..., k} (1.2)j=2x 2 j⎫⎬⎭ . (1.3)• Rotated quadratic cone: (also referred to as hyberbolic constraints)⎧⎫⎨C t =⎩ x ∈ ∑n t⎬Rnt : 2x 1 x 2 ≥ x 2 j, x 1 , x 2 ≥ 0⎭ . (1.4)These two types of cones allow the formulation of quadratic, quadratically constrained, and many other classesof nonlinear convex optimization problems.j=32.2 Implemention of Conic Constraints in GAMSGAMS handles conic equations using the =C= equation type. The conic cases are written as:• Quadratic cone:• Rotated quadratic cone:x(‘1‘) = C = sum(i$[not sameas(i, ‘1‘)], x(i)); (1.5)x(‘1‘) + x(‘2‘) = C = sum(i$[not sameas(i, ‘1‘) and not sameas(i, ‘2‘)], x(i)); (1.6)Note that the resulting nonlinear conic constraints result in “linear” constraints in GAMS. Thus the originalnonlinear formulation is in fact a linear model in GAMS. We remark that we could formulate conic problems asregular NLP using constraints:• Quadratic cone:x(‘1‘) = G = sqrt[sum(i$[not sameas(i, ‘1‘)], sqr[x(i)])]; (1.7)• Rotated quadratic cone: x( ′ 1 ′ ) and x( ′ 2 ′ ) are positive variables2 ∗ x(‘1‘) ∗ x(‘2‘) = G = sum(i$[not sameas(i, ‘1‘) and not sameas(i, ‘2‘)], sqr[x(i)]); (1.8)The example below illustrates the different formulations for conic programming problems. Note that the conicoptimizer in MOSEK usually outperforms a general NLP method for the reformulated (NLP) cone problems.2.3 ExampleConsider the following example (cone2.gms) which illustrates the use of rotated conic constraints. We will givereformulations of the original problem in regular NLP form using conic constraints and in conic form.
- Page 2 and 3: MOSEK 2• Interior-point optimizer
- Page 6 and 7: MOSEK 6The original problem is:∑d
- Page 8 and 9: MOSEK 8The first option specifies t
- Page 10 and 11: MOSEK 10MSK IPAR LOG BIoutput contr
- Page 12 and 13: MOSEK 12MSK IPAR SIM PRIMAL CRASHpr
- Page 14 and 15: MOSEK 14MSK IPAR PRESOLVE LINDEP US
- Page 16 and 17: MOSEK 16MSK DPAR DATA TOL QIJ (real
- Page 18 and 19: MOSEK 18MSK DPAR INTPNT CO TOL NEAR
- Page 20 and 21: MOSEK 20MSK IPAR INTPNT STARTING PO
- Page 22 and 23: MOSEK 22MSK IPAR SIM PRIMAL CRASH (
- Page 24 and 25: MOSEK 24Coefficient reduction +512G
- Page 26 and 27: MOSEK 268 The optimizer for nonconv
- Page 28 and 29: MOSEK 28Simplex - cpu time: 0.00Pri
- Page 30: MOSEK 30Presolve - time : 0.00Preso
MOSEK 41.5 Nonlinear ProgramsMOSEK can efficiently solve convex programs, but is not intended for nonconvex optimization. For nonconvexprograms, MOSEK can detect some nonconvexities and will print out a warning message and terminate. IfMOSEK does not detect nonconvexities for a nonconvex model, the optimizer may continue but stagnate. Hencecare must be taken when solving nonlinear programs if convexity is not immediately known.1.6 Modeling Issues Involving Convex ProgramsIt is often preferable to model convex programs in seperable form, if it is possible. Consider the following exampleof minizing an objective function f(x):f(x) = log(a ′ ∗ x)where a ∈ R n is a parameter and x ∈ R n the decision variable. The equation implies an implicit constraint ofa ′ ∗ x > 0. Unfortunately, domain violations can still occur because no restrictions are set on a ′ ∗ x. A betterapproach is to introduce an intermediate variable y:f(x) = log(y)y = a ′ ∗ xy ≥ 0This accomplishes two things. It implies an explicit bound on a ′ ∗x, thereby reducing the risk of domain violations.Secondly, it speeds up computation since computations of gradients and Hessians in the first (non-seperable) formare more expensive. Finally, it reduces the amount of memory needed (see the section on “Memory Options”)2 Conic ProgrammingMOSEK is well suited for solving generalized linear programs involving nonlinear conic constraints. Conic programmingis useful in a wide variety of application areas 1 including engineering and financial management .Conic programming has been used, for example, in antenna array weight design, grasping force optimization,finite impulse response (FIR) filter design, and portfolio optimization.This section gives an overview of conic programming and how conic constraints are implemented in GAMS.2.1 IntroductionConic programs can be thought of as generalized linear programs with the additional nonlinear constraint x ∈ C,where C is required to be a convex cone. The resulting class of problems is known as conic optimization and hasthe following form:minimize c T xsubject to Ax ≤ r c ,x ∈ [l x , u x ]x ∈ Cwhere A ∈ R m×n is the constraint matrix, x ∈ R n the decision variable, and c ∈ R n the objective function costcoefficients. The vector r c ∈ R m represents the right hand side and the vectors l x , u x ∈ R n are lower and upperbounds on the decision variable x.1 See M. Lobo, L. Vandenberghe, S. Boyd, and H. Lebret, Applications of second-order cone programming Linear Algebra and itsApplications, 284:193-228, Special Issue on Linear Algebra in Control, Signals and Image Processing. November, 1998.