我试图通过将问题提交给 NEOS 并使用 ipopt 作为 slover 来解决问题:
solver_manager = SolverManagerFactory('neos')
results = solver_manager.solve(self.miqp_instance, opt='ipopt', load_solutions=True, tee=True)
self.miqp_instance.solutions.store_to(results)
results.write()
但我遇到了这个问题:
WARNING: NEOS is temporarily unavailable.
Traceback (most recent call last):
File "/root/PycharmProjects/PPRule-MIQP/main.py", line 32, in <module>
miqp.solve_problem()
File "/root/PycharmProjects/PPRule-MIQP/MIQP.py", line 406, in solve_problem
results = solver_manager.solve(self.miqp_instance, opt='ipopt', load_solutions=True, tee=True)
File "/root/anaconda3/lib/python3.7/site-packages/pyomo/opt/parallel/async_solver.py", line 28, in solve
return self.execute(*args, **kwds)
File "/root/anaconda3/lib/python3.7/site-packages/pyomo/opt/parallel/manager.py", line 107, in execute
ah = self.queue(*args, **kwds)
File "/root/anaconda3/lib/python3.7/site-packages/pyomo/opt/parallel/manager.py", line 122, in queue
return self._perform_queue(ah, *args, **kwds)
File "/root/anaconda3/lib/python3.7/site-packages/pyomo/neos/plugins/kestrel_plugin.py", line 131, in _perform_queue
% (solver_name, str(sorted(self._solvers.keys()))))
pyomo.opt.parallel.manager.ActionManagerError: Solver 'ipopt' is not recognized by NEOS. Solver names recognized:
[]
我已经ipopt
安装在我的机器上,但我怀疑这是原因。