0

我正在尝试学习如何将优化问题发送到 NEOS Server 以使用 BARON 解决它,但我收到一条错误消息,提示 NEOS 当前不可用,尽管我已经尝试了一段时间。我已经看到存在另一个具有相同错误代码的问题,但尚未解决,人们怀疑它是由使用代理引起的(我没有)因此我打开了另一个问题。

from pyomo.environ import *
model = ConcreteModel()

model.x = Var(initialize=1.5)

model.y = Var(initialize=1.5)

def rosenbrock(model):

return (1.0-model.x)**2 + 100.0*(model.y - model.x**2)**2

model.obj = Objective(rule=rosenbrock, sense=minimize)

solver_manager = SolverManagerFactory('neos')
results = solver_manager.solve(model, opt='baron')

results.write()

输出是:

WARNING: NEOS is temporarily unavailable.
Traceback (most recent call last):
File "/Users/dorukeski/untitled/sa.py", line 15, in <module>
results = solver_manager.solve(model, opt='baron')
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- 
packages/pyomo/opt/parallel/async_solver.py", line 28, in solve
return self.execute(*args, **kwds)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- 
packages/pyomo/opt/parallel/manager.py", line 119, in execute
ah = self.queue(*args, **kwds)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- 
packages/pyomo/opt/parallel/manager.py", line 134, in queue
return self._perform_queue(ah, *args, **kwds)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- 
packages/pyomo/neos/plugins/kestrel_plugin.py", line 128, in _perform_queue
raise ActionManagerError(
pyomo.opt.parallel.manager.ActionManagerError: Solver 'baron' is not recognized by NEOS. 
Solver names recognized:
[]
4

1 回答 1

0

虽然这篇文章是一篇旧文章。我看到有人在此链接中提出了修复建议,https://github.com/Pyomo/pyomo/issues/2162

解决方案1:pip install --upgrade certifi

解决方案 2 如果解决方案 1 不起作用:

1 - 以管理员身份打开 Internet Explorer(即右键单击 Internet Explorer 并选择“以管理员身份运行”)

2 - 导航到https://neos-server.org

3 - 单击锁定图标

点击查看图片

4 - 点击“查看证书”

5 - 单击“安装证书...”

6 - 选择用户或本地机器,任何合适的

7 - 选择“将所有证书放在以下存储中”并选择“受信任的根”

8 - 认证机构”

于 2021-12-03T16:34:32.660 回答