Оптимизация с помощью заранее определенных переменныхPython

Программы на Python
Ответить
Anonymous
 Оптимизация с помощью заранее определенных переменных

Сообщение Anonymous »

Я изучаю, как решить одну проблему с помощью заранее определенных переменных.
Например, переменная «x» должна иметь одно из значений ниже.
[2, 5, 6, 13]
Но я не знаю, как изменить свои коды.
Исходный код приведен ниже.
from gekko import GEKKO

m = GEKKO(remote=False)
x = m.Array(m.Var,9,lb=0,ub=7,integer=True)

def f(x):
return (481.79/(5+x[0]))+(412.04/(4+x[1]))\
+(365.54/(3+x[2]))+(375.88/(3+x[3]))\
+(379.75/(3+x[4]))+(632.92/(5+x[5]))\
+(127.89/(1+x[6]))+(835.71/(6+x[7]))\
+(200.21/(1+x[8]))

m.Minimize(f(x))
m.Equation(sum(x)==7)
m.options.SOLVER=1
m.solve()
print(x)

Я изменяю его следующим образом, но появляется сообщение об ошибке «TypeError: GEKKO.Array() принимает 3 позиционных аргумента, но было задано 4».
from gekko import GEKKO

m = GEKKO(remote=False)
x = m.Array(m.Var,9,[2, 5, 6, 13])

def f(x):
return (481.79/(5+x[0]))+(412.04/(4+x[1]))\
+(365.54/(3+x[2]))+(375.88/(3+x[3]))\
+(379.75/(3+x[4]))+(632.92/(5+x[5]))\
+(127.89/(1+x[6]))+(835.71/(6+x[7]))\
+(200.21/(1+x[8]))

m.Minimize(f(x))
m.Equation(sum(x)==7)
m.options.SOLVER=1
m.solve()
print(x)


Подробнее здесь: https://stackoverflow.com/questions/793 ... -variables
Ответить

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

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

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

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

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