Pregunta

Cuando corro solve.QP en mi problema, me sale el siguiente error de R:

Error in solve.QP(sigma, rep(0, 5), t(Amat), bvec, meq = 2) : 
  matrix D in quadratic function is not positive definite!

Mi matriz sigma es simétrica, pero no es definida positiva. Por qué es necesario esto? Si resuelvo yo mismo usando las funciones de Lagrange, soy capaz de obtener la solución. Entonces ¿por qué se impone este requisito R?

¿Fue útil?

Solución

El algoritmo Goldfarb-Idnani comienza por el cálculo de la solución sin restricciones. Por lo tanto, se requiere que la matriz D en el función objetivo es definida positiva.

Extracto de Fortran archivo de origen solve.QP.f:

c  this routine uses the Goldfarb/Idnani algorithm to solve the
c  following minimization problem:
c
c        minimize  -d^T x + 1/2 *  x^T D x
c        where   A1^T x  = b1
c                A2^T x >= b2
c
c  the matrix D is assumed to be positive definite.  Especially,
c  w.l.o.g. D is assumed to be symmetric.

Otros consejos

El auglag función en alabama paquete proporciona los multiplicadores de Lagrange en la solución para cualquier problema de optimización.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top