#!/bin/env python # Solve a simple quadratic optimization problem. Given a matrix # Q and a point x0, minimize the quadratic function # # x' (Q + alpha I) x # # subject to the linear system Q (x - x0) = 1 and nonnegativity on all # variables. Report solution if available from __future__ import print_function import xpress as xp import numpy as np N = 10 Q = np.arange (1,N**2 + 1).reshape (N, N) x = np.array ([xp.var () for i in range (N)]) x0 = np.random.random (N) p = xp.problem() p.addVariable (x) # c1 and c2 are two systems of constraints of size N each written as # # (x-x0)' Q = 1 # # Qx >= 0 c1 = - xp.Dot ((x - x0), Q) == 1 c2 = xp.Dot (Q, x) >= 0 # The objective function is quadratic: p.addConstraint (c1,c2) p.setObjective (xp.Dot (x, Q + N**3 * np.eye (N), x)) p.solve("") print ("nrows, ncols:", p.attributes.rows, p.attributes.cols) print ("solution:", p.getSolution ()) p.write ("test5-qp", "lp")