Я хочу решить задачу целочисленного программирования, в которой переменные решения ограничены в определенном наборе.Python Pyomo: ошибка доменов переменных в Pyomo
Например, переменные решения xi должны быть выбраны в [2,5,7,10].
Для тестирования я написал код питона, используя Pyomo следующим образом:
from pyomo.environ import *
model = AbstractModel()
model.X = Set(initialize=[2, 5, 7, 10])
model.x = Var(within=model.X)
model.obj = Objective(expr=model.x+1)
m = model.create_instance()
opt = SolverFactory("glpk")
results = opt.solve(m)
Когда эти коды будут выполнены, я получил сообщение об ошибке: «TypeError: Invalid тип домена для переменной с именем„х“ . Переменный не является непрерывным, целым числом, или двоичным»
Вот мои вопросы:
- Что является причиной этой ошибки?
- Как с этим бороться?
- Есть ли другие инструменты оптимизации, которые могут справиться с такими проблемами?
Спасибо за помощь!
Использование Var (в пределах = Целые числа, границы = (1,3)) –
Я не описал проблему четко. Исправьте это. Я прочитал ответы, на которые вы ответили на другие вопросы. Кажется, что вы автор Пиомо? Очень благодарен вам за помощь. Как я могу справиться с этой проблемой? @GabeHackebeil – Pang