Сравнение языков GAMS и AMPL с алгебраическим моделированием

Мне было бы интересно узнать мнение пользователей GAMS и AMPL о том, каковы силы и недостатки каждого из этих языков.

Ответы

Ответ 1

В терминах функциональности они почти одинаковы, что позволяет выражать большинство типов проблем оптимизации. Лично я предпочитаю AMPL, потому что он имеет интуитивный и выразительный синтаксис, и он хорошо документирован в book. Еще одно важное преимущество AMPL заключается в том, что, несмотря на то, что он коммерческий, вы можете избежать блокировки поставщика, поскольку есть альтернатива с открытым исходным кодом - GNU MathProg. GAMS, с другой стороны, использовала более продвинутую среду IDE, чем те, которые существовали для AMPL, хотя она изменилась с введением новой AMPL и GAMS.

Ответ 2

В этом блоге есть следующее:

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

Боб Фурнер (AMPL) ответил:

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

AMPL был разработан с идеей приблизиться к математической нотации и, как правило, гораздо более естественным для использования, чем GAMS, и он превосходит Гол. Модель GAMS обычно опирается на более специальные соглашения и переформулировки, чем его AMPL-аналог; примером является часто обширный использование оператора GAMS $для введения различных условий. Кроме того, IDE несмотря на это, GAMS в корне больше, чем в пакетной системе, тогда как AMPL предлагает более гибкий вариант интерактивного изучения моделей и результатов. Наконец, хотя в некоторых областях GAMS устанавливается с помощью длительного использования, все же я вижу модельеры в этих областях, выбирающие AMPL, особенно когда они предпринимают новые проекты, которые не зависят от существующих моделей GAMS.

По моему мнению, AMPL и GAMS на практике более близки, чем предлагается здесь (например, где вы используете $в GAMS, можно использовать: в AMPL). Я немного предпочитаю синтаксис GAMS при выполнении реальной работы, так как он немного компактнее и он очевидно, где заканчивается суммирование (в AMPL это основано на приоритете оператора, в GAMS сумма визуально заключена в скобки круглыми скобками).

Ответ 3

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

На момент написания этого сообщения GAMS предлагает большее количество решателей. При этом список решателей AMPL не является подмножеством списка решателей GAMS. Для конкретного приложения я предлагаю решающие задачи, прежде чем покупать AMPL или GAMS (например, с помощью NEOS-сервера для оптимизации).

Лично я предпочитаю синтаксис AMPL, поскольку он ближе к математической нотации. Однако я предпочитаю GAMS для промышленных приложений в основном из-за доступности решения и потому, что он встроен/доказан во многих отраслях. Это часто упрощает диалог с промышленным партнером/клиентом, который уже использует GAMS.