Эти типы ограничений исполняются путем изменения Big M Method
Пусть x
переменная решения, соответствующая сумме инвестировать в Фонд 1. Выберите верхнюю оценку M
о возможных значениях x
. Например, если у вас есть только 1 000 000 долларов для инвестиций, дайте M = 1,000,000
. Вам не нужно иметь наименьшую верхнюю границу на x
. M = 2,000,000
будет работать (хотя вы, как правило, получите более быструю конвергенцию и меньше ошибки округления, если M
не является неоправданно большим).
Ввести новую переменную y
, которая ограничена 0
или 1
(то есть бинарной переменной принятия решения). Добавьте следующие два ограничения на модели:
x >= 3000*y
x <= M*y
Если x>0
то второе ограничение добавляется заставляет y
от 0
, следовательно, она заставляет y = 1
так y
является двоичным. Но если y = 1
, это второе ограничение сводится к x <= M
, что автоматически истинно по выбору M
, поэтому оно не добавляет никаких реальных ограничений на x
. Но - с y = 1
в этом случае первое ограничение становится x >= 3000
. Таким образом, два ограничения объединяют x >= 3000
, как только x > 0
. Важно - это делается без использования нелинейной функции if
. Это делает его задачей MILP (смешанное целочисленное линейное программирование), но решатель Excel может справиться с теми, у кого нет проблем (до тех пор, пока количество двоичных переменных не станет слишком большим).