Я просматривал документацию по командам / классам [смешанной] целочисленной линейной программы ([M] ILP) Matlab, чтобы узнать, есть ли способ определить «проблему оптимизации» (optimproblem
) и вызовите внешний решатель [M] ILP с помощью API, а не с помощью собственного < a href = "http://www.mathworks.com/help/optim/ug/intlinprog.html" rel = "nofollow noreferrer"> intlinprog
. Я еще не нашел никаких признаков того, что это возможно, если не считать преобразования проблемы в матричный / решающий формат (prob2struct
) и создание собственного промежуточного файла данных ILP. Это было бы за то, что я готов сделать.
На самом деле нет никакого способа напрямую вызвать сторонний решатель?
Если есть способ, может кто-нибудь направить меня на соответствующую страницу документации?
Если на самом деле нет никакой возможности, может кто-нибудь подтвердить это?
Спасибо.
Уточнение. Вопрос подчеркивает использование optimproblem
Я ценю ответы и комментарии на сегодняшний день, но я понимаю из них, что мне нужно подчеркнуть ключевой момент в этом вопросе. Моя цель - использовать высокоуровневую спецификацию проблемы optimproblem
, который использует синтаксис массива Matlab для компактного представления большого количества ограничений, длинных внутренних произведений для них и для целевой функции. Это так называемый основанный на проблемах подход, который на высоком уровне похож на AMPL .
Напротив, мое впечатление от первоначального просмотра цитируемых документов сторонними решающими программами заключается в том, что их входные данные находятся на более низком уровне абстракции. Это так называемый решатель на основе подход, который коллеги также назвали «матричным уровнем», по следующей причине: предполагается, что архетипические массивы x, Aeq, beq, Aineq, bineq и т. д. составлены, и это до аналитик должен отслеживать, какие элементы в x соответствуют каким (более) реальным параметрам, т. е. тем, которые используются в проблемном подходе.
Я надеялся, что есть способ использовать optimproblem
и использовать для этого сторонний решатель, чтобы мне не приходилось иметь дело с уровнем матрицы. Примером последнего будет использование {{X1} } для генерации массивов для явной передачи внешним решателям через API-интерфейсы Matlab (если они есть). Я хочу избежать этого, потому что я не хочу отслеживать, какие переменные, основанные на задачах, сопоставляются с переменными, основанными на решателе, тем более что первая часто имеет высокую размерность. Конечно, varindex
упрощает бухгалтерия, но не кодирование такой бухгалтерии гораздо предпочтительнее.
2 ответа
Согласно TMW, ответ «нет» в настоящее время (30 мая 2019 года).
Новые вопросы
matlab
MATLAB - это высокоуровневая языковая и интерактивная среда программирования для численных расчетов и визуализации, разработанная MathWorks. Не используйте оба тега [matlab] и [octave], если явно не задан вопрос о сходстве или различии между ними. При использовании этого тега, пожалуйста, укажите версию MATLAB, с которой вы работаете (например, R2017a).