Могу ли я использовать объективную функцию, которая использует несколько функций в бинарном программировании в Gekko?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Могу ли я использовать объективную функцию, которая использует несколько функций в бинарном программировании в Gekko?

Сообщение Anonymous »

Я пытаюсь минимизировать норму L2 пиковых потоков в дренажной системе. Я хочу использовать Gekko, так как он может обрабатывать целочисленное бинарное программирование. < /P>
В моей программе моя цель-минимизировать пиковые потоки. Я создал функцию, которая < /p>

Вводит вектор в файл INP модели дренажа, запускает и сохраняет его как новый файл. < /Li>
Извлекать пиковые потоки в новом файле. Сложность, я создал функции для каждого шага в моей целевой функции. Таким образом, моя функция OBJ имеет функции. Я проверил свою функцию OBJ с различными входами, и она работает гладко. < /P>
Вход - это вектор с 8 элементами. Каждый элемент должен быть 1 или 0.
Единственное ограничение состоит в том, что сумма элементов составляет 4. < /p>
К сожалению, когда я использую Gekko, он продолжает иметь ошибку: < /p>
Exception: @error: Model Expression
*** Error in syntax of function string: Invalid element:

Position: 1

?
< /code>
Я даже пытался иметь integer = false и просто добавил преобразователь в мою целевую функцию. Ошибка все же. Я предполагаю, что ошибка произошла из моей объективной функции. Кто -нибудь может мне помочь? Ваш ответ был бы хорошо оценен. < /P>
from gekko import GEKKO

m = GEKKO(remote=False)

x = m.Array(m.Var,8,lb=0,ub=1,integer=True)

x0,x1,x2,x3,x4,x5,x6,x7 = x

def Func(x):
#Inputs x in the inp file, determines the peak flows with the new x, and saves a new file.
Mod_File('Example1.inp',x)
#Creates the file name of the modified file.
Mod_File_name = Mod_File_Name('Example1.inp')
#Extracts the Peak flows in the mod file and computes the L2 norm.
L2_Norm = Norm_Peak_Flows(Mod_File_name ,Dict_Links('Example1.inp'))

return L2_Norm

x0.value = 0
x1.value = 1
x2.value = 0
x3.value = 1
x4.value = 0
x5.value = 1
x6.value = 0
x7.value = 1

m.Minimize(Func)
m.Equation(sum(x)==4)
m.options.SOLVER=1
m.solve()
print(x)


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Scipy минимизируется с линейными ограничениями, пытаясь вызвать объективную функцию в NAN
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Python Linprog, чтобы максимизировать объективную функцию
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как понять следующую рекурсивную функцию в бинарном дереве?
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как понять следующую рекурсивную функцию в бинарном дереве?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Нахождение глубины элемента в бинарном дереве кортежей
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

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