Вы можете получить значения, отличные от 0,1,2 и т. Д., Введя коэффициент масштабирования с помощью целочисленной переменной. Это включает в себя определение новой переменной (y), такой как:
from gekko import GEKKO
m = GEKKO()
x = m.Var(integer=True,lb=0,ub=10)
y = m.Intermediate(x*5)
m.Obj((y-17)**2)
m.options.SOLVER=1
m.solve()
print(y.value)
Это находит значение y, кратное 5, которое ближе всего к значению 17. В этом случае он находит, что 15 является оптимальным.
Джон Хеденгрен из BYU любезно дал мне это предложение.