Я использую Джулию с JuMP и Gurobi для решения проблемы оптимизации.
Два из моих ограничений имеют свойства if / else. Мне нужно, чтобы значения были меньше суммы действительных чисел, но если действительное число больше единицы, мне нужно, чтобы оно равнялось единице.
Я сделал функцию, которая возвращает сумму, если они меньше единицы, и сумму, если они не равны. Я сделал аналогичное решение для моего другого ограничения.
@constraint(m, [l in Locations, i in Locations, r in Rotor_size, wd in WD],
wake_rot[l, wd, r] <= isone(wake_loc, wd, l, i, r))
с изоном
function isone(wake_loc, wd, l, i, r)
a = wake_loc[wd, l, i] + Adj_wake[r]
if a > 1
return 1
else
return a
end
end
Моя модель не ограничена (или неосуществима), и мне интересно, может ли это быть источником моих проблем.