У меня есть линейная программа с порядком N^4 переменных и порядок ограничений N^4. Если я хочу решить это в AMPL, я определяю ограничения один за другим, не беспокоясь о точных матрицах коэффициентов. Проблемы с памятью не возникают. Однако, используя стандартный LP-решатель в Matlab, я должен явно определить матрицы.Большие линейные программы в Matlab
Когда у меня есть переменные с четырьмя индексами, это приведет к массовой разреженной матрице размерного порядка N^4 x N^4. Эта матрица даже не поместится в памяти для нетривиальных размеров проблем.
Есть ли способ обойти эту проблему, используя Matlab, помимо различных методов создания столбцов/резки? Поскольку AMPL справляется с этим, я полагаю, что они либо автоматизируют какую-то декомпозицию, либо каким-то образом решают ЛП, явно не работая с этой разреженной матрицей-монстром.
Вы посмотрели на матрицы MATLAB ['sparse'] (http://mathworks.com/help/matlab/ref/sparse.html)? –
О, это фантастика. Благодаря! –
@ м.с. Подумайте о том, чтобы ответить на этот вопрос, я его выдвину – krisdestruction