2009-11-06 3 views
1

Я взял класс на «Intelligent Decision Making» (который был в основном классом оптимизации задач). В классе мы узнали о AMPL и о том, как расширить решатели. Я не очень много слышал об этом в последнее время, и я не видел для него объявлений о работе.Кто-нибудь использует AMPL больше

Мой вопрос: Является ли AMPL еще в эксплуатации? Если да, то для чего он используется?

Да, я понимаю, что AMPL можно заменить на Matlab, однако AMPL свободен, а Matlab даже не закрыт.

ответ

0

Набор инструментов Matlab под названием YALMIP позволяет вам делать рецептуру в Matlab. Это, в свою очередь, очень легко интегрируется с другими требованиями предварительной обработки или последующей обработки.

Я был пользователем AMPL ранее, но после обнаружения YALMIP я больше не использую AMPL. Поскольку это экономит время при написании кода, чтобы подготовить данные, которые поступают в AMPL и обрабатывать выходные данные.

18

Вы очень смущены.

AMPL и Matlab - две совершенно разные вещи, они могут пересекаться в некоторых доменах приложений, но они предназначены для решения совершенно разных типов проблем.

AMPL - это язык для описания проблем оптимизации. Он ничего не делает сам по себе: он предоставляет только средства для взаимодействия пользователя с решателем. Решатели могут быть для линейного программирования (CPLEX), нелинейного программирования (Ipopt) или других, более эзотерических разновидностей.

Matlab - это язык для технических вычислений: линейная алгебра, дифференциальные уравнения, статистика и -порядки. Некоторая оптимизация - возможности оптимизации Matlab, карликовые рядом с AMPL.

AMPL предоставляет точные первые и вторые производные посредством автоматической дифференциации, это ключевая функция, которую может измерить только GAMS, вы можете не знать, насколько это важно и сложно, но, полагайте, что это так.

Никто не будет предлагать работу для «AMPL coder», потому что этого не происходит. Работа предлагается человеку, который знает, что такое оптимизация и какие инструменты находятся на переднем крае. Точно так же никто не предлагает работу для «Matlab coder», они предлагают работу инженеру, который ЗНАЕТ Matlab.

И наконец, AMPL не является бесплатным. Вы можете бесплатно использовать версию для учащихся только для учебных целей. Такая версия ограничивает вас 100 переменными и ограничениями (я полагаю, вы знаете, что это означает). Если вы хотите полноценный AMPL, вам нужно заплатить за лицензию и лицензии решателей, каждый из них! Ipopt является открытым исходным кодом, но Cplex довольно дорогой.

Да, AMPL все еще используется и очень нравится. Я использую его для вычисления оптимальных траекторий космических аппаратов, и, поверьте, ничто не приближается. Я люблю Matlab, но использование Matlab для серьезной оптимизации - это использовать ложку, чтобы открыть банку с едой - вы можете добиться успеха, но будут кровь и слезы.

AMPL и Matlab имеют одну общую черту: оба они были созданы блестящим ученым (Moler-> Matlab, Gay-> AMPL) на переднем крае их полей.

+1

Есть много заданий для программистов Matlab. – monksy

+0

http://www.indeed.com/jobs?q=matlab&l= – monksy

+7

Я хочу сказать, что работа не для разработчиков Matlab как таковых, а для технических специалистов, которые могут использовать Matlab для решения проблем в определенном домене приложений. Matlab, будучи настолько популярным, скорее всего, будет цитироваться непосредственно в предложениях о работе, но AMPL (пункт этой статьи) не обязательно будет цитироваться. Если вы инженер, и вы ищете «Работы Matlab», вы серьезно ограничиваете себя, если не хотите работать в Mathworks. Если бы я брал интервью у кадита, который сказал мне, что он здесь, потому что мы используем Matlab, я бы отказал этому кандидату. Matlab - это инструмент, а не самоцель. – Escualo

0

Хотя GAMS и AMPL являются доменами, я теперь предпочитаю библиотеки оптимизации в общедоступных языках.

Вы получаете современные функции языка программирования, редакторы, отладчики, большую базу поддержки, легкую интеграцию с другими библиотеками (например,к IO или визуализации данных) и простое внедрение конкретной модели оптимизации в более крупные модели.

Pyomo (для Python) и Jump (для Julia), возможно, являются двумя наиболее известными, быстрыми и полнофункциональными реализациями для написания задач оптимизации, в том числе нелинейных.

Смежные вопросы