Кто-нибудь больше использует AMPL?
Я взял урок "Интеллектуальное принятие решений" (в основном это был класс "Оптимизация проблем"). В классе мы узнали о AMPL и о том, как расширить решатели. Я не много слышал об этом в последнее время, и я не видел списки вакансий для этого.
Мой вопрос: AMPL все еще используется? Если да, то для чего он используется?
Да, я понимаю, что AMPL можно заменить на Matlab, однако AMPL бесплатен, а Matlab даже не близок.
3 ответа
Набор инструментов Matlab под названием YALMIP позволяет вам создавать формулы в Matlab. Это, в свою очередь, упрощает интеграцию с другими требованиями к предварительной или последующей обработке.
Ранее я был пользователем AMPL, однако после нахождения YALMIP я больше не пользуюсь AMPL. Поскольку это экономит мое время при написании кода, чтобы подготовить данные, которые поступают в AMPL, и обработать вывод.
Вы очень смущены.
AMPL и Matlab - две совершенно разные вещи, они могут пересекаться в некоторых областях приложений, но они предназначены для решения совершенно разных типов проблем.
AMPL - это язык для описания проблем оптимизации. Он ничего не делает сам по себе: он только предоставляет пользователю средства для взаимодействия с решателем. Решающими могут быть линейное программирование (CPLEX), нелинейное программирование (Ipopt) или другие, более эзотерические разновидности.
Matlab - это язык для технических вычислений: линейная алгебра, дифференциальные уравнения, статистика и, конечно, некоторая оптимизация. Оптимизационные возможности Matlab превзошли AMPL.
AMPL обеспечивает точное первое и второе производные с помощью автоматического дифференцирования, это ключевая особенность, которую может измерять только GAMS, вы можете не знать, насколько это важно и сложно, но, поверьте мне, это так.
Никто не предложил бы работу для "кодировщика AMPL", потому что такого нет. Работа предлагается человеку, который знает, что такое оптимизация и какие инструменты находятся на переднем крае. Кроме того, никто не предлагает работу для "Matlab Coder", они предлагают работу инженеру, который ЗНАЕТ Matlab.
Наконец, AMPL не является бесплатным. Вы можете бесплатно использовать студенческую версию ТОЛЬКО в учебных целях. Такая версия ограничивает вас до 100 переменных и ограничений (я полагаю, вы знаете, что это значит). Если вы хотите полноценный AMPL, вам нужно заплатить за лицензию И лицензии солверов, каждый из них! Ipopt с открытым исходным кодом, но Cplex довольно дорогой.
Да, AMPL все еще используется и очень много. Я использую его для вычисления оптимальных траекторий космического корабля и, поверьте мне, ничто не может сравниться даже близко. Я люблю Matlab, но использовать Matlab для серьезной оптимизации - это все равно, что использовать ложку, чтобы открыть банку с едой - возможно, вы добьетесь успеха, но будут кровь и слезы.
У AMPL и Matlab есть одна общая черта: они оба были созданы блестящим ученым (Moler->Matlab, Gay->AMPL) на переднем крае своих полей.
Хотя GAMS и AMPL являются языками, специфичными для предметной области, в настоящее время я бы предпочел библиотеки оптимизации в языках общего назначения.
Вы получаете современные возможности языка программирования, редакторы, отладчики, обширную базу поддержки, простую интеграцию с другими библиотеками (например, для ввода-вывода или визуализации данных) и простое встраивание конкретной модели оптимизации в более крупные модели.
Pyomo (для Python) и Jump (для Julia), возможно, являются двумя наиболее известными, быстрыми и полнофункциональными реализациями для написания задач оптимизации, включая нелинейные.