Programacion Cuadratica

6

Click here to load reader

Transcript of Programacion Cuadratica

Page 1: Programacion Cuadratica

Programación cuadrática

José F. NievesMathematical methods research

MATH 6350Prof. Balbino García

Page 2: Programacion Cuadratica

La programación cuadrática es un problema de optimización matemática. La cual busca minimizar o maximizar una función cuadrática con diferentes variables sujeto a limitaciones lineales sobre estas variables.

Definición

Page 3: Programacion Cuadratica

La programación cuadrática se puede formular de la siguiente forma:

Se asume que x representa . .Q es una matriz simétrica nxn y que c es cualquier vector nx1.

Page 4: Programacion Cuadratica

Examples Find values of x that minimize

subject to x1 + x2 ≤ 2

–x1 + 2x2 ≤ 22x1 + x2 ≤ 30 ≤ x1, 0 ≤ x2.

First, note that this function can be written in matrix notation aswhere Enter these coefficient matrices.H = [1 -1; -1 2] f = [-2; -6] A = [1 1; -1 2; 2 1] b = [2; 2; 3] lb = zeros(2,1) Next, invoke a quadratic programming routine.[x,fval,exitflag,output,lambda] = ... quadprog(H,f,A,b,[],[],lb) This generates the solutionx = 0.6667 1.3333 fval = -8.2222 exitflag = 1 output = iterations: 3 algorithm: 'medium-scale: active-set' firstorderopt: [] cgiterations: [] message: 'Optimization terminated.' lambda = lower: [2x1 double] upper: [2x1 double] eqlin: [0x1 double] ineqlin: [3x1 double] lambda.ineqlin ans = 3.1111 0.4444 0 lambda.lower ans = 0 0 Nonzero elements of the vectors in the fields of lambda indicate active constraints at the solution. In this case, the first and second inequality constraints (in lambda.ineqlin) are active constraints (i.e., the solution is on their constraint boundaries). For this problem, all the lower bounds are inactive

Ejemplos

Page 5: Programacion Cuadratica

Quadratic programming codes: ◦ BQPD from Roger Fletcher ◦ CPLEX Barrier/QP solver ◦ CPLEX Simplex/QP solver ◦ CPLEX Mixed-integer QP solver ◦ The Xpress-MP Newton-barrier QP solver from Dash Optimization ◦ HOPDM from Jacek Gondzio and Anna Altman ◦ LINDO ◦ The packages QPC, QPB and QPA from GALAHAD ◦ The packages VE02, VE09, VE17, HSL_VE12 and HSL_VE19 from HSL (formerly known as the Harwell Subroutine Library) ◦ LOQO from Bob Vanderbei ◦ MINQ for convex general and non-convex bound constrained problems, in Matlab, by Arnold Neumaier ◦ CirCut for finding approximate solutions to certain binary quadratic programs, including the Max-Cut and the Max-Bisection

problems, by Yin Zhang ◦ The subroutines E04NCF, E04NFF, E04NKF, H02CBF and H02CEF from the NAG fortran library ◦ The package nag_qp_sol from the NAG fl90 library ◦ The subroutines nag_opt_lin_lsq and nag_opt_sparse_convex_qp from the NAG C library ◦ KNITRO from Ziena Optimization Inc. is highly QP-capable. ◦ LSSOL from SOL Optimization Software ◦ OOQP by Mike Gertz and Steve Wright ◦ QPOPT again from SOL Optimization Software ◦ The C/Python QP package which is part of CVXOPT ◦ The package IQP, by Linda Kaufman and Jessica Hodgins, from the PORT Mathematical Subroutine Library ◦ The MOSEK package from Erling and Knud Andersen ◦ The subroutine HSQP from John Betts, which is Algorithm 559 from the Collected Algorithms of the ACM ◦ The COPL_QP package of Xiong Zhang and Yinyu Ye ◦ Berwin Turlach's QuadProg, a Fortran 77 package for convex QP based on Goldfarb and Idnani's dual active-set method. ◦ QuadProg++, a C++ solver for (strictly) convex problems from Luca Di Gaspero ◦ The exact solver QP_solver, part of the Computational Geometry Algorithms Library (CGAL)

Codigos