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

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

3 ответов


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

вы можете найти пример той же транспортной проблемы от Джорджа Данцига, сформулированной в AMPL и GAMS в своих статьях Википедии:Ампл и ГАМС.


этот блог сказал следующее:

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

Bob Fourer (AMPL) ответ:

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

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

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


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

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

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