Bibliothèque d'optimisation contrainte pour les contraintes d'égalité et d'inégalité

14

Des recommandations pour le choix d'une bibliothèque d'optimisation contrainte adaptée à ma fonction d'optimisation? Je minimise ai) une fonction non linéaire avec des contraintes d'égalité et d'inégalité linéaires, et ii) dispose du gradient et de la toile de jute de la fonction.

Si cela aide, la fonction que je minimise est la divergence Kullback-Liebler .

constrOptim ne traite que des contraintes d'inégalité. Quadprog gère les quadratiques. La confiance ne prend pas en charge les contraintes. La divergence KL ne rentre donc pas dans ces solutions.

Il y a pas mal de solutions sur la page des tâches R Cran pour l'optimisation . Je suis capable d'effectuer l'optimisation dans MATLAB en utilisant la fonction fmincon () qui semble utiliser un point intérieur ou une zone de confiance réfléchissante. Idéalement, il existe une bibliothèque bien adaptée au problème défini.

Ram Ahluwalia
la source
Les contraintes sont-elles linéaires?
Cardinal
@cardinal - oui - les contraintes sont linéaires
Ram Ahluwalia
2
UNEX=bconstrOptimUNEXbUNEXb
C'est très intelligent. Je vais explorer cela et voir comment cela fonctionne. Vous devriez envisager de poster ceci comme réponse. Je garderai la question ouverte pendant quelques jours pour voir quels autres outils sont disponibles
Ram Ahluwalia
2
L'astuce @cardinal n'aide pas pour la méthode des points intérieurs, comme celle de constrOptim, car la méthode a besoin d'un point de départ à l'intérieur de la région possible - pas à la frontière
stackovergio

Réponses:

14

Les deux packages, alabama et Rsolnp, contiennent "[i] des implémentations de la méthode du multiplicateur de lagrange augmentée pour l'optimisation générale non linéaire" --- comme le dit la vue de la tâche d'optimisation --- et sont assez fiables et robustes. Le peut gérer à nouveau les contraintes d'égalité et d'inégalité définies comme des fonctions (non linéaires).

J'ai travaillé avec les deux packages. Parfois, les contraintes sont un peu plus faciles à formuler avec Rsolnp, alors que l'alabama semble parfois un peu plus rapide.

Il existe également le package Rdonlp2 qui repose sur une bibliothèque de logiciels bien connue de la communauté d'optimisation et externe. Malheureusement, son statut de licence est un peu incertain pour le moment.

Hans W.
la source
1
Je veux juste ajouter une propriété des contraintes d'inégalité de l'Alabama que j'ai trouvée aujourd'hui. Si vos contraintes d'inégalité créent une région irréalisable, le code s'exécute sans aucun message d'avertissement / d'erreur et prend la valeur moyenne des limites comme valeur fixe du paramètre. Par exemple, si vous avez x> 6 et x <4, la solution fournira une solution avec x = 5 sans aucun avertissement.
Gaurav Singhal
1
Il semble que cette réponse soit toujours visitée et lue. Par conséquent, je voudrais ajouter qu'il existe un nouveau package NlcOptim (depuis 2015). Il résout les problèmes d'optimisation avec les fonctions d'objectif et de contrainte non linéaires, où les contraintes d'égalité et d'inégalité non linéaires sont autorisées. Je l'utilise régulièrement.
Hans