2017-09-13 5 views
0

est-il un moyen reasonnably simple (en très peu de lignes de code) pour demander une analyse de sensibilité d'un AbstractModel dans Pyomo, quel que soit le solveur et le problème? Si oui, les résultats de cette analyse de sensibilité seront-ils accessibles via des objets Pyomo ou Python?analyse de sensibilité Pyomo

Je soupçonne qu'il pourrait avoir quelque chose à voir avec la ligne de code opt.solve(model) (où opt est une instance SolverFactory et model est un défini précédemment AbstractModel).

Répondre

2

Pyomo ne comprend actuellement pas d'outils pour l'analyse de sensibilité, bien que nous sommes dans les premières étapes de l'élaboration d'une extension de l'analyse de sensibilité. Cette extension est au moins un an loin d'être inclus dans une version. Il y a quelques alternatives à considérer qui nécessiteront des efforts de codage pour atteindre votre objectif. Tout d'abord, vous pouvez utiliser le "solveur" gjh pour récupérer les dérivés de votre modèle. Voir la discussion here et here. Vous pouvez également utiliser SIPOPT pour obtenir des informations de sensibilité en suivant l'exemple here. Enfin, la différenciation symbolique a été prototypée dans Pyomo en utilisant Sympy. Cette fonctionnalité est actuellement non documentée et sujette à changement, mais vous pouvez voir des exemples de comment l'utiliser here. Un inconvénient avec tout cela est qu'ils ne fonctionneront pas sur un AbstractModel, ils doivent être appliqués à un ConcreteModel. En effet, les modèles abstraits ne sont pas construits et n'incluent aucune expression à partir de laquelle les dérivées peuvent être extraites.

+1

Merci pour les conseils utiles, cela pourrait s'avérer très utile. Je suis impatient de cette nouvelle fonctionnalité, Pyomo a été un très bon outil de jusqu'à maintenant! –