gpt4 book ai didi

pyomo - 如何通过 Pyomo 指定 GAMS 求解器特定选项?

转载 作者:行者123 更新时间:2023-12-04 17:32:50 30 4
gpt4 key购买 nike

我正在尝试使用 ANTIGONE 求解器(在 GAMS 中获得许可)解决 MINLP 问题,但我很难更改求解器的高级设置。

首先,我按如下方式从 Pyomo 调用求解器。

solver = pe.SolverFactory('gams')
solver.options['mtype']= "minlp"
solution = solver.solve(model, solver = 'antigone')

这部分工作正常,但是 ANTIGONE 无法缩小最优性差距,所以我想更改此处提供的一些更高级的选项 https://www.gams.com/latest/docs/S_ANTIGONE.html .

所以我首先尝试的是将求解器调用更改为以下行。

solution = solver.solve(model, solver='antigone', add_options=['option number_of_partitions 2;'])

但是,add_options 似乎仅适用于内置的 GAMS 选项,而不适用于特定于求解器的选项。

作为旁注,在 GAMS 中使用这些高级求解器选项时,标准程序是创建一个选项文件(即 antigone.opt),我们在其中指定所需的选项。

number_of_partitions 2

antigone.opt保存在同一目录下,.gms文件用GAMS_MODEL.optfile;行调用该文件。

回到我的问题,当从 Pyomo 修改这个选项时,我尝试了

solution = solver.solve(model, solver='antigone', add_options=['GAMS_MODEL.optfile;'])

但问题是 Pyomo 创建了一个临时文件来解决问题,因此我无法在它开始解决之前添加文件 antigone.opt

因此,我可以看到两个选择:(i) 我可以找到一种方法在求解器开始求解之前通过 Pyomo 在临时文件中创建 antigone.opt 文件(不太理想,但它应该有效),或者 (ii) 我应该直接更改 Pyomo 的选项(首选)。

如果您能提供任何帮助,我们将不胜感激,并提前感谢您的宝贵时间!

最佳答案

也许这个答案对你来说有点晚了,但我认为这可能会对其他人有所帮助。

我遇到了和你一样的问题。经过长时间的讨伐并通过将许多 Stack Overflow 帖子放在一起,我终于让它只使用 Pyomo 就可以了。

这条线,

solution = solver.solve(model, solver='antigone', add_options = ['GAMS_MODEL.optfile;'])

应该替换为,

solution = solver.solve(model, solver='antigone', add_options = ['GAMS_MODEL.optfile = 1;','$onecho > antigone.opt', 'number_of_partitions 2', '$offecho'])

因此第一个选项指定使用 antigone.opt 文件,其余行告诉 GAMS 创建并写入 antigone.opt 文件。

关于pyomo - 如何通过 Pyomo 指定 GAMS 求解器特定选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965894/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com