Я просматривал документацию по командам / классам [смешанной] целочисленной линейной программы ([M] ILP) Matlab, чтобы увидеть, есть ли способ определить «проблему оптимизации» (optimproblem
) и вызвать внешний решатель [M] ILP с помощью API, а не с использованием собственного intlinprog
.Я еще не нашел никаких признаков того, что это возможно, если не считать преобразования проблемы в матричный / решающий формат (prob2struct
) и создания собственного промежуточного файла данных ILP.Это было бы за то, что я готов сделать.
Нет ли на самом деле способа напрямую вызвать стороннее решение?
Если есть способ, может кто-нибудь направить меня кправильная страница документации?
Если на самом деле нет способа, может кто-нибудь подтвердить это?
Спасибо.
Пояснение: Вопрос подчеркивает использование optimproblem
Я ценю ответы и комментарии на сегодняшний день, но я понимаю из них, что мне нужно подчеркнуть ключевой момент в вопросе.Моя цель - использовать высокоуровневую спецификацию задачи optimproblem
, которая использует синтаксис массива Matlab для компактного представления большого количества ограничений, длинных внутренних произведений для них и для целевой функции.Это так называемый основанный на проблемах подход , который сродни высокому уровню AMPL .
Напротив, мое впечатление от первоначального просмотра цитируемых документовПо мнению сторонних решателей, их вклады находятся на более низком уровне абстракции.Это так называемый основанный на решателе подход , который коллеги также назвали «матричным уровнем» по следующей причине: архетипические массивы x, Aeq, beq, Aineq, bineq и т. Д.предполагается, что он составлен, и аналитик должен отслеживать, какие элементы в x соответствуют каким (более) параметрам реального мира, т. е. элементам, основанным на проблемном подходе.
Я былнадеясь, что был способ использовать optimproblem
и использовать сторонний решатель, чтобы мне не приходилось иметь дело с уровнем матрицы.Примером последнего будет использование prob2struct
для генерации массивов для явной передачи внешним решателям через API-интерфейсы Matlab (если они есть).Я хочу избежать этого, потому что я не хочу отслеживать, какие переменные, основанные на задачах, сопоставляются с переменными, основанными на решателе, тем более что первая часто имеет высокую размерность.Конечно, varindex
упрощает бухгалтерию, но не нужно кодировать такую бухгалтерию. Это гораздо предпочтительнее.