http://cran.r-project.org/web/packages/quadprog/quadprog.pdf
Le package R ne quadprog
semble pouvoir résoudre le problème de programmation quadratique que lorsque la matrice est définie positive.
Cependant, il existe un cas où la matrice n'est pas définie positive. tel que
Comment puis-je résoudre ce genre de problème?
r
optimization
user67275
la source
la source
Réponses:
Il existe des routines d'optimisation spécifiquement pour l'optimisation locale ou globale des problèmes de programmation quadratique, que la fonction objectif soit convexe ou non.
BARON est un optimiseur global à usage général qui peut gérer et tirer parti des problèmes de programmation quadratique, convexe ou non.
CPLEX possède un solveur de programmation quadratique qui peut être appelé avec solutiontarget = 2 pour trouver un optimum local ou = 3 pour trouver un optimum global. Dans MATLAB, cela peut être invoqué avec cplexqp.
Des optimiseurs locaux à usage général qui peuvent gérer des contraintes linéaires peuvent également être utilisés pour trouver un optimum local. Un exemple dans R est https://cran.r-project.org/web/packages/trust/trust.pdf . Les optimiseurs pour R sont répertoriés sur https://cran.r-project.org/web/views/Optimization.html .
Dans MATLAB, la fonction quadprog de la boîte à outils d'optimisation peut être utilisée pour trouver un optimum local.
Dans Julia, il existe une variété d'optimiseurs disponibles.
«N'importe quel» algorithme de descente de gradient peut ne pas vous amener sur quoi que ce soit, sans parler des contraintes. Utilisez un package développé par quelqu'un qui sait ce qu'il fait.
L'exemple de problème fourni est facilement résolu en une optimalité globale prouvable. Peut-être qu'avec le passage de plus de 2 ans, il n'est plus nécessaire, ou peut-être un exemple qu'il n'a jamais été, mais en tout cas, l'optimum global est à x = 0,321429, y = 0,535714
la source
Vous pouvez construire une solution de contournement à l'aide
nearPD
duMatrix
paquet comme ceci:nearPD(D)$mat
.nearPD
calcule la matrice définie positive la plus proche.la source