Есть ли способ использовать модель APMonitor непосредственно в Gekko? Например, могу ли я решить задачи теста Hock Schittkowski , не переписывая их в Gekko, но все же решать их с помощью Gekko? Примером является задача 43, проблема Розена-Судзуки. В APMonitor это:
Файл: hs043.apm
Model hs43
Variables
x[1:4] = 0
obj
End Variables
Equations
x[1]^2 +x[2]^2 +x[3]^2 +x[4]^2 +x[1] -x[2] +x[3] -x[4] <= 8
x[1]^2 +2*x[2]^2 +x[3]^2 +2*x[4]^2 -x[1] -x[4] <= 10
2*x[1]^2 +x[2]^2 +x[3]^2 +2*x[1] -x[2] -x[4] <= 5
! best known objective = -44
! best known solution
! x[1] = 0
! x[2] = 1
! x[3] = 2
! x[4] = -1
obj = x[1]^2 + x[2]^2 + 2*x[3]^2 + x[4]^2 - 5*x[1] - 5*x[2] - 21*x[3] + 7*x[4]
End Equations
End Model
Модель в Gekko аналогична:
Python Gekko
from gekko import GEKKO
m = GEKKO(remote=False)
x1,x2,x3,x4 = m.Array(m.Var,4)
m.Equation(x1**2+x2**2+x3**2+x4**2+x1-x2+x3-x4<=8)
m.Equation(x1**2+2*x2**2+x3**2+2*x4**2-x1-x4<=10)
m.Equation(2*x1**2+x2**2+x3**2+2*x1-x2-x4<=5)
m.Minimize(x1**2+x2**2+2*x3**2+x4**2-5*x1-5*x2-21*x3+7*x4)
m.solve()
print(x1,x2,x3,x4)
print('Objective: ',m.options.OBJFCNVAL)
Когда я открываю папку запуска с m.open_folder()
с помощью приложения Gekko, я вижу, что Gekko пишет файл APMonitor gk_model0.apm
.
Model
Variables
v1 = 0
v2 = 0
v3 = 0
v4 = 0
End Variables
Equations
(((((((((v1)^(2))+((v2)^(2)))+((v3)^(2)))+((v4)^(2)))+v1)-v2)+v3)-v4)<=8
(((((((v1)^(2))+((2)*(((v2)^(2)))))+((v3)^(2)))+((2)*(((v4)^(2)))))-v1)-v4)<=10
(((((((2)*(((v1)^(2))))+((v2)^(2)))+((v3)^(2)))+((2)*(v1)))-v2)-v4)<=5
minimize (((((((((v1)^(2))+((v2)^(2)))+((2)*(((v3)^(2)))))+((v4)^(2)))-((5)*(v1)))-((5)*(v2)))-((21)*(v3)))+((7)*(v4)))
End Equations
End Model
Могу ли я использовать hs043.apm
вместо