Domanda

Quando eseguo solve.QP sul mio problema, ottengo il seguente errore da R:

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

La mia matrice di sigma è simmetrica, ma non è definita positiva. Perché questo bisogno? Se ho risolto io stesso utilizzando le funzioni Lagrangiane, sono in grado di ottenere la soluzione. Allora perché è R impone questo requisito?

È stato utile?

Soluzione

L'algoritmo Goldfarb-Idnani inizia calcolando il soluzione non vincolata. Pertanto, è necessario che la matrice D nella funzione obiettivo è definita positiva.

Estratto dal Fortran file sorgente 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.

Altri suggerimenti

La auglag funzione nel pacchetto alabama fornisce i moltiplicatori di Lagrange alla soluzione per qualsiasi problema di ottimizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top