gpt4 book ai didi

python-3.x - 如何在 GEKKO 中使用自己的求解方法?

转载 作者:行者123 更新时间:2023-12-03 16:54:17 27 4
gpt4 key购买 nike

我想使用我自己的遗传算法 (GA) 来解决混合整数问题:

https://mintoc.de/index.php/Batch_reactor

我可以在 GEKKO 中加入我的求解方法吗?

就像是...

m = GEKKO()
.
.
.

m.options.SOLVER = 'my_GA'

最佳答案

GEKKO 目前仅支持基于梯度的内置求解器。如果您打算使用遗传算法 (Chapter 6 for GA overview),您可以使用 GEKKO 运行函数评估,以在不同的试验条件下返回目标值。您需要输入 m.solve()每一代 GA 都在循环中执行命令。在 GEKKO 中,您还需要使用 m.options.TIME_SHIFT=0不更新初始条件。这将允许在您更改设计变量(例如 MintOC 中的 T(t))时进行重复评估,以找到最佳目标函数值(例如 MintOC 中的 x2(tf))。

m = GEKKO()

# define model
x2 = m.Var()
T = m.Param()
.
.
.
m.options.TIME_SHIFT=0
m.options.IMODE = 4 # or 7
# GA loop
for i in range(generations):
T.value = [values from GA]
m.solve()
obj = x2.value[-1] # objective

# additional GA steps to decide new T values

Here is some additional information from the documentation : SOLVER 选择求解器以尝试找到解决方案。有免费求解器:1:APOPT,2:BPOPT,3:IPOPT,随软件的公共(public)版本一起分发。公共(public)版本中不包含其他求解器,需要商业许可证。 IPOPT 通常最适用于具有大量自由度的问题,或者在没有良好初始猜测的情况下开始。已发现 BPOPT 是系统生物学应用的最佳选择。当从先前的解热启动或自由度数(变量数 - 方程数)小于 2000 时,APOPT 通常是最好的。APOPT 也是唯一处理混合整数问题的求解器。使用选项 0 比较所有可用的求解器。

关于python-3.x - 如何在 GEKKO 中使用自己的求解方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55625617/

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