Matlab optimproblem: можно ли использовать сторонний ILP решатель? - PullRequest
1 голос
/ 27 мая 2019

Я просматривал документацию по командам / классам [смешанной] целочисленной линейной программы ([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 упрощает бухгалтерию, но не нужно кодировать такую ​​бухгалтерию. Это гораздо предпочтительнее.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Согласно TMW, в настоящее время ответ «нет» (30 мая 2019 г.).

0 голосов
/ 28 мая 2019

Да - различные сторонние решения по оптимизации имеют API-интерфейсы MATLAB.Например, CPLEX и Gurobi оба имеют API-интерфейсы MATLAB.Но вы вызываете их через их собственные вызовы функций, а не через intlinprog.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...