Можно ли решить задачу смешанно-целочисленного нелинейного программирования (MINLP) с помощью CPLEX? - PullRequest
1 голос
/ 06 мая 2020

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

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

Спасибо.

1 Ответ

2 голосов
/ 06 мая 2020

Проблемы этого типа невозможно решить с помощью CPLEX или docplex. Если вы хотите использовать эти инструменты для своей модели, то единственный вариант - переформулировать целевую функцию. Вы можете, например, сформулировать цель как кусочно-линейную функцию.

Иногда эти произведения нескольких переменных можно линеаризовать. Например, произведение трех двоичных переменных равно 1 тогда и только тогда, когда все переменные равны 1. Это можно выразить, введя новую переменную, которая представляет продукт, и ограничения, которые заставляют переменную равняться 1, если все двоичные файлы равны 1, и 0. в противном случае. То же самое можно сделать и в других случаях.

...