Привет Я хочу, чтобы решить линейное программирование (ЛП), которая имеет 25000 двоичных переменных и почти 2555 ограничений равенства и 50 неравенства ограничений, поэтому я использовал cplexbilp функция, которая CPLEX API, предусмотренные MATLAB, как это:MATLAB разбился при использовании CPLEX API для линейного программирования
[x,fval,exitflag,output,] = cplexbilp(f, Aineq, bineq, Aeq, beq);
- размер матриц: F = 25000x1, Aineq = 50x25000, bineq = 50x1, Aeq = 2555x25000, BEQ = 2255x1
при запуске сценария, появляется эта ошибка:
Когда я пересматриваю подробную информацию об ошибке, я вижу это сообщение:
0x6df51ba9 C:/Program Файлы/IBM/ILOG/CPLEX_Studio_Preview125/cplexlink125.mexw32 + 00007081 (??? + 000000)
Я думаю cplexlink125.mexw32 - это cplex v12.5 для библиотеки MATLAB.
Итак, мой вопрос заключается в том, как решить эту ошибку? и я хочу знать, является ли размер проблемы (25000 двоичных переменных) основной ошибкой root? Я читал в некоторых ресурсах, что Cplex способен решать проблемы большого масштаба LP.
- версия MATLAB: R2011a
- CPLEX версия: 12.5
Заранее спасибо за любой комментарий или ответить
Можете ли вы решить проблемы меньшего размера? – Inquest
@Inquest, для проблем, число переменных которых меньше 300, сценарий работает хорошо, я имею в виду, что без упомянутой выше ошибки не сходится к оптимальному решению. когда число переменных равно 300, у меня есть 120 ограничений равенства и 15 ограничений неравенства. – oMiD
Во-первых, попробуйте увеличить доступную память. Попытайтесь выяснить, когда он падает. Много раз памяти недостаточно для создания многих переменных. Скорее всего, вам придется изменить свою формулировку (эвристические подходы, Dantzig-Wolfe, .......) – Kalle