2016-08-21 18 views
0

Вопрос 1: х, у являются целыми неотрицательными переменнымиУсловные контрсилами в линейном программировании для не булевых переменных

я есть условие - если х> 0, то у = 0

Вопрос 2: а, б , c, d, e - целые неотрицательные переменные , если какой-либо из вышеперечисленных> 0, то остальные 4 будут равны нулю.

Как сформулировать выше ограничение как линейные уравнения. Я знаю, как обрабатывать выше для булевых переменных, но не может сделать для целочисленной переменной. Я пробовал искать на других форумах и в WEB, но не смог найти решение.

ответ

0

В качестве отправной точки попробуйте создать дополнительные логические переменные, по одному для каждой из ваших небулевых переменных. Затем вы можете использовать типичное моделирование «большого м» для каждого. Когда у вас есть что-то, что работает, вы можете попробовать переработать его, чтобы получить лучшую модель.

+0

Спасибо за ответ, не могли бы вы привести пример с уравнениями. –

+0

@MohammadShariq Просто указатель-указатель google в MIP или прочитайте [Руководство по моделированию AIMMS - Целевые трюки программирования] (http://www.idi.ntnu.no/~mlh/algkon/ip_tricks.pdf) (например, глава 7.4) – sascha

+0

спасибо много для вашей помощи. документ очень приятный. –

0

Вы можете использовать логическую импликацию в CPLEX (if-then). Пожалуйста, ознакомьтесь со следующей страницей: Logical constraints for CPLEX