Сравнение GAMS и AMPL алгебраических языков моделирования - PullRequest
16 голосов
/ 21 января 2010

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

Ответы [ 3 ]

15 голосов
/ 24 октября 2010

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

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

2 голосов
/ 02 июня 2010

Этот блог может сказать следующее:

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

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

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

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

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

0 голосов
/ 22 августа 2013

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

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

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

...