[英]Using Gekko in Python, for a multi-objective optimization problem, do all objective functions have to be of the same unit?
根据 Gekko 文档,对多个目标函数求和,并求解一个总体目标值。 这是否意味着所有目标函数都必须具有相同的尺寸或单位(m3 或 USD 或 kg)? 如果是这样,有没有办法让不同单位的多个目标? 另外,附带问题,是否可以轻松提取每个目标 function 的最佳目标值(除了求解器给出的总体目标值)?
Gekko 将目标函数一起添加到单个目标语句中。 Gekko 不跟踪单位,因此像Maximize(flow1)
in kg/hr
和Maximize(flow2)
in gm/hr
这样的单位不会被 Gekko 缩放。 这是一个简单的示例问题,显示了如何解决多目标 function 语句:
from gekko import GEKKO
m = GEKKO(remote=False)
x = m.Var()
obj1 = m.Intermediate((x-3)**2)
obj2 = m.Intermediate((x-2)**2)
m.Minimize(obj1)
m.Minimize(obj2)
m.solve(disp=False)
print('Obj Total: ',m.options.OBJFCNVAL)
print('Obj1: ',obj1.value[0])
print('Obj2: ',obj2.value[0])
print('x: ',x.value[0])
正如预期的那样,解决方案是x=2.5
:
Obj Total: 0.5
Obj1: 0.25
Obj2: 0.25
x: 2.5
将这两个目标加在一起以创建总体目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.