2016-02-17 2 views
1

J'utilise Pulp avec Python pour résoudre un problème d'optimisation.Comment obtenir les variables d'optimisation optimales dans Pulp avec Python?

J'utilise

import pulp 
# code 
pulp.prob.objective.value() 

Maintenant, je voudrais accéder aux variables d'optimisation. Comment faire ça?

Dans le documentation of Pulp, j'ai trouvé quelque chose comme use_vars[i].varValue mais je devrais boucler pour obtenir le vecteur entier. Puis-je l'obtenir directement comme dans la valeur objective? Quelqu'un connaît-il Pulp?

Répondre

1

Pour obtenir le vecteur ensemble d'optimisation que vous pouvez faire

pulp.prob.variables() 

qui renvoie une liste de toutes vos variables. Pour accéder à l'élément i-ième de votre liste, ou les variables i-e, vous devez faire

pulp.prob.variables()[i].varValue 

Vous pouvez retourner la valeur objective et les variables dans une fonction comme

return pulp.prob.objective.value(), pulp.prob.variables() 

et puis accéder à vos variables en utilisant une boucle comme

varsdict = {} 
for v in prob.variables(): 
    varsdict[v.name] = v.varValue 

les résultats finaux seront un dictionnaire varsdict qui ressemble à

varsdict = {'x_10': 0.0, 'x_0': 1.0, ...}