Я пытаюсь решить MIP с нелинейной целью, такой как sum(a(i)*x(i))/sum(b(i)*x(i))
, где a (i) и b (i) являются параметрами. Поскольку CPLEX не может извлечь это выражение, я попытался использовать CP.
Однако, у меня есть ограничение, утверждающее, что переменная решения x (i) должна быть множителем 2,5, поэтому число с плавающей запятой. Поскольку CP не может обрабатывать числа с плавающей запятой, я установил x как целое число, и подразумевается, что он должен быть умножен на 25. Во всех остальных ограничениях и выражениях я разделил x на 10, чтобы вычисления оставались такими же.
Во-первых, Я решил модель с множителем 5, я получил решение с очень маленьким зазором, и это нормально. Когда я изменил множитель на 25, модель не может завершиться в течение 2 часов (застрял с разрывом в 90%). Я полагаю, что это произошло из-за масштабирования, но все еще не могу понять это, так как я не знаком с алгоритмом CP.
Я все еще работаю над линеаризацией oblective, но любые предложения как для CPLEX, так и для CP-движков будет высоко оценен Заранее спасибо.