Gekko, использующий APOPT, не оптимизирует ни одно линейное уравнение, представленное в виде PWL.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Gekko, использующий APOPT, не оптимизирует ни одно линейное уравнение, представленное в виде PWL.

Сообщение Anonymous »

Я столкнулся с проблемой, из-за которой я не могу заставить APOPT оптимизировать неограниченную одиночную кусочно-линейную операцию, и это действительно заводит меня в замешательство. Я чувствую, что что-то не понимаю в model.pwl, но мне сложно (мне) найти документацию за пределами документации GEKKO. Вот мой минимальный пример:

Код: Выделить всё

model = GEKKO(remote=False)
model.options.SOLVER = 1
model.solver_options = ["minlp_as_nlp 0"]

x = model.sos1([0, 1, 2, 3, 4]) # This can also be model.Var(lb=0, ub=4), same result.
pwl = model.Var()

model.pwl(x, pwl, [0, 1, 2, 3, 4], [30, 30.1, 30.2, 30.3, 30.4], bound_x=True)

model.Minimize(pwl)

model.solve(display=True)

print(x.value)
print(pwl.value)
print(model.options.objfcnval)
Я получаю следующий результат:

Код: Выделить всё

 ----------------------------------------------------------------
APMonitor, Version 1.0.3
APMonitor Optimization Suite
----------------------------------------------------------------

--------- APM Model Size ------------
Each time step contains
Objects      :            1
Constants    :            0
Variables    :            2
Intermediates:            0
Connections  :            2
Equations    :            1
Residuals    :            1

Piece-wise linear model pwl1points:            5
Number of state variables:             12
Number of total equations: -            5
Number of slack variables: -            0
---------------------------------------
Degrees of freedom       :              7

----------------------------------------------
Steady State Optimization with APOPT Solver
----------------------------------------------

Iter    Objective  Convergence
0  3.39503E+01  3.01000E+01
1  3.22900E+01  1.00000E-10
2  3.22000E+01  2.22045E-16
4  3.22000E+01  0.00000E+00
Successful solution

---------------------------------------------------
Solver         :  APOPT (v1.0)
Solution time  :   3.819999999541324E-002 sec
Objective      :    32.2000000000000
Successful solution
---------------------------------------------------

2.0
30.2
32.2
Для меня это неожиданно, поскольку очевидное минимальное значение для pwl — 30.

Подробнее здесь: https://stackoverflow.com/questions/793 ... d-as-a-pwl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Gekko, использующий APOPT, не оптимизирует ни одно линейное уравнение, представленное в виде PWL.
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Функция обратного вызова смешанной целочисленной оптимизации GEKKO с решателем APOPT
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Функция обратного вызова смешанной целочисленной оптимизации GEKKO с решателем APOPT
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как решить линейное прямоугольное матричное уравнение по модулю 2?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Кривая не линейное уравнение
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»