1 回答
TA贡献1827条经验 获得超8个赞
Local Solve Error withremote=False 您引用的错误是因为求解器未能找到解决方案,或者因为您在 MacOS 上并且需要一些带有gcc. 如果您使用的是 MacOS,请尝试安装gcc以获取所需的共享库,如MacOS 上本地解决方案的 GitHub 问题讨论中所述。
brew install gcc
如果是求解器问题,您可以在显示求解器输出时看到错误消息:
m.solve(disp=True)
由于 IPOPT 中线性求解器的许可限制或您的本地可执行文件没有求解器之一,本地求解有时与远程服务器求解不同(例如,IPOPT 不适用于MacOS、ARM Linux 上的本地求解,或 x86-64 Linux)。如果请求的求解器选项不可用,则处理本地请求的apm可执行文件会自动恢复到下一个可用的求解器选项。您可以尝试m.options.SOLVER=1将 APPOPT 或m.options.SOLVER=2BPOPT 作为不同的求解器。
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 地址。
添加回答
举报