2010-01-21 6 views
14

GAMS 및 AMPL 사용자로부터 각 언어의 강점과 약점에 대한 의견을 얻는 데 관심이 있습니다.GAMS 대 AMPL 대수 모델링 언어 비교

+0

카누 머리,이 질문에 gams 태그를 추가 할 충분한 평판을 얻은 것으로 보입니다. 그거 할까? (http://stackoverflow.com/q/22666921/1470262도 참조하십시오.) 감사합니다! –

답변

11

기능 측면에서 볼 때 거의 모든 유형의 최적화 문제를 표현할 수 있습니다. 개인적으로, 나는 AMPL을 선호하는데, 직관적이고 표현적인 문법이 있기 때문이며 book에 매우 잘 설명되어 있습니다. AMPL의 또 다른 중요한 이점은 오픈 소스 대안 - GNU MathProg이 있기 때문에 그것이 상업적이라는 사실에도 불구하고 벤더 종속을 피할 수 있다는 것입니다. 반면에 GAMS는 새로운 AMPL IDE의 도입과 함께 변경되었지만 AMPL을 위해 존재했던 IDE보다 더 고급 IDE를 사용했습니다.

AktL 및 GAMS에서 공식화 된 George Dantzig의 위키피디아 관련 기사 (AMPLGAMS)와 같은 운송 문제의 예를 찾을 수 있습니다.

+1

감사합니다. AMPL을 사용하여 결국 당신이 참조한 책의 훌륭한 문서화로 인해 끝났습니다. – Emmanuel

+0

현재 책은 온라인에서 무료로 제공됩니다. – vitaut

2

This blog는 말을 다음과 같습니다

두 시스템은 그들이 무엇을하고 있는지에 아주 좋은 널리 사용되는, 그래서 당신은 정말 중 하나를 선택할 수있는 잘못 수 없습니다. 동료 및 공동 작업자가 사용하는 모델링 시스템에 추가 점 을 추가 할 것을 제안합니다. 그 등 문제, 트릭, 문제를 쉽게 논의 할 때 또한 모델과 데이터를 쉽고 교환하게

밥 Fourer (AMPL)는 대답

그것은 두 가지에 똑같이 전문가의 조언을 줄 수있는 사람을 찾기 어렵다 시스템을 경쟁하면 다른 하나에 대해 계속 배우는 데 많은 인센티브가있는 보통 이 없기 때문에 그 중 하나에 익숙해지면됩니다. 그러나 여기에 약간의 의견 내 거의 편견없는 전망에서 있습니다.

AMPL은 수학 표기법 에 훨씬 가깝고 일반적으로 GAMS보다 자연스럽게 사용하기 위해 설계되었으며, 그 점은 점수에서 우수합니다. GAMS 모델은 일반적으로 AMPL보다 더 특수한 규칙과 재구성을 사용합니다. 예를 들어 다양한 조건을 부과하기 위해 GAMS $ 연산자를 사용하는 경우가 종종 있습니다 ( ). 또한 IDE 에도 불구하고 GAMS는 근본적으로 배치 시스템에 가깝지만 AMPL 은 모델과 결과를 대화식으로 탐 색할 수있는보다 융통성있는 옵션을 제공합니다. 마지막으로 특정 영역에서 GAMS가 오랫동안 사용되어 왔지만, 특히 기존 GAMS 모델에 의존하지 않는 새 프로젝트를 수행 할 때 AMPL을 선택하는 모델러는 입니다.

제 생각에는 AMPL과 GAMS가 여기 제시된 것보다 더 가깝습니다 (예 :GAMS에서 $를 사용하면 AMPL에서 다음을 사용합니다). 실제로 좀 더 작고 더 작기 때문에GAMS 구문을 선호합니다.이 경우 조금 더 작아서 합계가 어느 곳에서나 끝납니다 (AMPL에서는 연산자 우선 순위에 따라 GAMS에서 괄호로 묶음을 시각적으로 묶습니다).).

+0

링크를 제공해 주셔서 감사합니다. – Emmanuel

0

제 생각에는 모든 구문 고려 사항은 실제로 맛의 문제입니다. AMPL과 GAMS 언어는 모두 배우기 쉽고, 고려할 수있는 모델의 유형면에서 틀림없이 같은 범위를 제공합니다.

이 글을 쓰는 순간 GAMS는 더 많은 수의 솔버를 제공합니다. 즉, AMPL의 solver 목록은 GAMS solver 목록의 일부는 아닙니다. 특정 애플리케이션의 경우, AMPL 또는 GAMS (예 : 최적화를 위해 NEOS 서버를 통해)를 구매하기 전에 벤치마킹 솔버를 제안합니다.

필자는 개인적으로 AMPL의 구문이 수학적 표기법에 가깝기 때문에 선호합니다. 그러나 저는 주로 산업 어플리케이션에서 GAMS를 선호합니다. 왜냐하면 주로 솔버 가용성과 많은 업계에서 임베디드/입증 되었기 때문입니다. 이는 종종 GAMS를 사용하는 산업 파트너/고객과의 대화를 단순화합니다.