2017-05-30 3 views
1
opt = SolverFactory("glpk") 
opt.options["mipgap"] = 0.05 
opt.options["FeasibilityTol"] = 1e-05 
solver_manager = SolverManagerFactory("serial") 
# results = solver_manager.solve(instance, opt=opt, tee=True,timelimit=None, mipgap=0.1) 

results = solver_manager.solve(model, opt=opt, tee=True, timelimit=None) 

# sends results to stdout 
# results.write() 

def pyomo_save_results(options=None, instance=None, results=None): 
    OUTPUT = open(r'Results_generic_hub.txt', 'w') 
    print(results, file=OUTPUT) 
    OUTPUT.close() 

Il génère l'erreur suivante. GLPK est installé avec GLPSOL - aide à partir de n'importe quel répertoire. Est-ce un problème avec le module GLPK? Ou avec le modèle lui-même? Environnement: - Conda, Mac OS Yosemite.Comment interfacer Pyomo avec GLPK?


File "<ipython-input-7-ba156f9322b2>", line 7, in <module> 
results = solver_manager.solve(model, opt=opt, tee=True,timelimit=None) 

File "/anaconda/lib/python3.6/site- 
packages/pyomo/opt/parallel/async_solver.py", line 34, in solve 
return self.execute(*args, **kwds) 

File "/anaconda/lib/python3.6/site- 
packages/pyomo/opt/parallel/manager.py", line 107, in execute 
ah = self.queue(*args, **kwds) 

File "/anaconda/lib/python3.6/site- 
packages/pyomo/opt/parallel/manager.py", line 122, in queue 
return self._perform_queue(ah, *args, **kwds) 

File "/anaconda/lib/python3.6/site- 
packages/pyomo/opt/parallel/local.py", line 59, in _perform_queue 
results = opt.solve(*args, **kwds) 

File "/anaconda/lib/python3.6/site-packages/pyomo/opt/base/solvers.py", line 582, in solve 
self._presolve(*args, **kwds) 

File "/anaconda/lib/python3.6/site-packages/pyomo/opt/solver/shellcmd.py", line 196, in _presolve 
OptSolver._presolve(self, *args, **kwds) 

File "/anaconda/lib/python3.6/site-packages/pyomo/opt/base/solvers.py", line 661, in _presolve 
**kwds) 

File "/anaconda/lib/python3.6/site-packages/pyomo/opt/base/solvers.py", line 729, in _convert_problem 
**kwds) 

File "/anaconda/lib/python3.6/site-packages/pyomo/opt/base/convert.py", line 110, in convert_problem 
problem_files, symbol_map = converter.apply(*tmp, **tmpkw) 

File "/anaconda/lib/python3.6/site-packages/pyomo/solvers/plugins/converter/model.py", line 86, in apply 
io_options=io_options) 

File "/anaconda/lib/python3.6/site-packages/pyomo/core/base/block.py", line 1646, in write 
io_options) 

File "/anaconda/lib/python3.6/site-packages/pyomo/repn/plugins/cpxlp.py", line 163, in __call__ 
include_all_variable_bounds=include_all_variable_bounds) 

File "/anaconda/lib/python3.6/site-packages/pyomo/repn/plugins/cpxlp.py", line 575, in _print_model_LP 
" cannot write legal LP file" % str(model.name)) 

ValueError: ERROR: No objectives defined for input model 'unknown'; cannot write legal LP file 

Répondre

0

L'erreur que vous voyez:

"ERROR: No objectives defined for input model 'unknown'; cannot write legal LP file" 

indique que Pyomo ne peut pas trouver un élément objectif actif sur votre modèle (soit vous jamais ajouté un au modèle ou le composant Objectif (s) ont tous été désactivés). Quoi qu'il en soit, les fichiers LP valides (qui sont les interfaces de Pyomo avec GLPK) nécessitent un objectif. Corriger votre modèle en ajoutant un objectif devrait résoudre cette erreur.