我认为我遇到了与此堆栈溢出相同的问题。
昨天我能够解决我的Gekko模型,而今天我什至无法解决Apmonitor网站上的示例。解决需要永远,而我得到以下错误:
ImportError: No solution or server unreachable.
Show errors with m.solve(disp=True).
Try local solve with m=GEKKO(remote=False).
我尝试按照上面提到的堆栈溢出帖子中的建议在本地解决它:
m = GEKKO(remote=False)
但是,然后出现以下错误:
Error: 'results.json' not found. Check above for additional error details
Traceback (most recent call last):
和
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/mr/kgzm2xln40dcc10zkq06drhc0000gn/T/tmpzqxlyw7_gk_model0/options.json'
服务器关闭了,有人可以帮助我在本地解决它吗?
编辑,添加代码:
from gekko import GEKKO
m = GEKKO(remote=False) # create GEKKO model
y = m.Var(value=2) # define new variable, initial value=2
m.Equation(y**2==1) # define new equation
m.options.SOLVER=1 # change solver (1=APOPT,3=IPOPT)
m.solve(disp=True)
print('y: ' + str(y.value)) # print variable value
带有remote=False
的本地求解错误您所引用的错误是由于求解器无法找到解决方案,或者因为您使用的是MacOS并且需要使用共享库gcc
。如果您使用的是MacOS,请尝试进行安装gcc
以获取所需的共享库,如GitHub问题讨论中所述,以获取MacOS上的本地解决方案。
brew install gcc
如果是求解器问题,则显示带有以下内容的求解器输出时,您会看到错误消息:
m.solve(disp=True)
本地解决方案有时与远程服务器解决方案不同,这是因为IPOPT中的线性求解器受到许可限制,或者因为您的本地可执行文件没有其中一个求解器(例如IPOPT在MacOS,ARM Linux,或x86-64 Linux)。apm
如果请求的选项不可用,则处理本地请求的可执行文件将自动转换为下一个可用的求解器选项。您可以尝试m.options.SOLVER=1
将APOPT或m.options.SOLVER=2
BPOPT用作不同的求解器。
另外,1
如果要在求解器无法成功找到解决方案时引发异常,则应将调试级别保持在。否则,设置debug=0
并使用m.options.APPSTATUS
以确定求解器是否成功。
m.solve(disp=True,debug=0)
if m.options.APPSTATUS==0:
print('Solver failed to find a solution')
else:
print('Successful solution')
如果您可以发布一个显示问题的最小示例,则我们可以为您的程序在本地运行提供更具体的建议。
云计算与 remote=True
公用服务器今天无法使用几个小时,但现在已备份。由于Gekko的流行,服务器有时会过载或因偶尔的维护活动而无法使用。如果您想将自己的系统托管在云中或作为专用服务器,则可以将专用的APMonitor服务器用作Linux的计算服务器或Windows的计算服务器。如果您确实创建了自己的服务器,请使用:
m = GEKKO(server='http://10.0.0.10',remote=True)
但代替10.0.0.10
服务器的IP地址。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句