как решить квадратичную задачу в студии оптимизации CPLEX? - PullRequest
0 голосов
/ 16 мая 2019

Я реализовал свою проблему в IBM ILOG CPLEX Optimization Studio.

Теперь я хотел бы изменить целевую функцию, чтобы она была квадратичной и решить проблему.Тем не менее, он показывает ошибку 5002: цель не выпуклая .-> проблема может быть решена до глобальной оптимальности с целью решения 3 ->.

Я прочитал руководство пользователя и руководство, а также различные темы в stackoverflow,и я верю, что версия 12.8 может решать смешанно-целочисленные квадратичные задачи.

    modify my objective from this 

        dexpr float overallcost[f in cars] = holdingTime[f];

    to this

    dexpr float overallcost[f in cars] = holdTime[f]*holdTime[f];

Ошибка 5002: цель не выпуклая .-> проблема может быть решена до глобальной оптимальности с целью решения 3 ->.

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

Как следует из сообщения об ошибке, вы должны попытаться установить целевой параметр решения равным 3, чтобы заставить CPLEX решить вашу модель.

Более подробную информацию об этом можно найти в этой главе руководства пользователя и здесь - документация соответствующего параметра.

Чтобы установить этот параметр в IDE, создайте / добавьте файл настроек в свой проект и затем перейдите к Mathematical Programming -> General -> Type of solution to compute и выберите «Глобальное оптимальное решение».

1 голос
/ 16 мая 2019

См.

https://www.ibm.com/support/knowledgecenter/SSSA5P_12.9.0/ilog.odms.cplex.help/CPLEX/Parameters/topics/OptimalityTarget.html

Чтобы установить этот параметр для решения квадратичных задач.

В вашей модели вы можете добавить:

execute
{
cplex.optimalitytarget=3;
}
...