本影片經由 GAMS 提供並同意轉載,非經同意請勿任意轉載及下載。
排除技術性問題 模型和用戶介面獨立
GAMS為General Algebraic Modeling Systems的縮寫,透過簡單的操作模式,GAMS排除了許多技術性問題,讓使用者能專心於模組的建立。其語言編輯器近似於其他常用的程式語言,讓更多的使用者能受惠於GAMS。在使用過程中,運算資料可以經由常用的表格載入、清晰的模組架構讓使用者可以隨時重複利用之前撰寫的模組,進行代數符號的修改。GAMS亦可以對包含時間序列的動態模組進行運算。
模型和用戶界面的獨立性
(1) GAMS面向對象的API允許將GAMS無縫集成到應用程序中,為GAMS的交互提供適當的類。 面向對象的GAMS API的三個版本:.NET,Java和Python與.NET框架4(Visual Studio 2010),Java SE 5及以上版本以及Python 3.4,2.7和2.6相關。
(2) 除了面向對象的GAMS API之外,還有專家級(或低級)GAMS API,其使用需要對GAMS組件庫的高級知識。 有關API的更多信息,請參閱我們的文檔。
(3) 除了API之外,GAMS提供到MS Excel,MatLab或R等應用程序的智能鏈接。通過這些,用戶可以繼續在他的生產工具環境中工作,同時應用程序通過API訪問GAMS的所有優化功能。 這允許例如在(4) 應用程序中可視化和分析模型數據和結果。
簡單操作處理複雜技術性問題
專注於建模者
(1) GAMS允許其用戶以與其數學描述非常相似的方式來形成數學模型。看一下這個簡單的例子,說明了GAMS模型的基本結構和特徵,以及它與數學公式的關係。GAMS教程以更廣泛的方式解釋相同的模型,或者在我們的YouTube頻道上查看此視頻。
(2) 通過這一點,GAMS讓用戶專注於建模。 GAMS通過要求對實體和關係進行簡明明確的規範,鼓勵良好的建模習慣。 GAMS語言與通用編程語言正式類似。因此,任何有編程經驗的人都很熟悉。但是,由於該模型是以類似於其數學描述的方式製定的,所以它不僅可以由程序員來理解和維護,而且可以由實際的領域專家來理解和維護。 GAMS專注於建模者,並允許他自己做所有相關的事情。
(3) 聲明和程序元素的平衡組合允許構建複雜算法,甚至在GAMS中實現分解方法。這對於解決異常問題的模型尤其重要,這通常伴隨著性能問題。
(4) 差異化設計原則 模型和數據的獨立性
有差異的設計原則
GAMS專注於其核心競爭力:使用戶能夠構建可讀,可維護的模型,並通過任何可用的最佳解決方案來解決這些問題。 我們的開放架構和提供的許多數據接口允許與外部系統的無縫通信。
模型、求解器、數據、平台和用戶界面分開獨立,可以輕鬆切換求解器,使用多個數據集,在多個平台上運行,並將GAMS集成到現有的應用程序,結構和工作流程中。
模型和數據的獨立性
(1) 您可以獨立於數據編寫模型,並包括許多不同類型的數據源,從普通ASCII到Excel或Access等等,例如使用GDX(GAMS Data eXchange)文件格式。
(2) GDX文件是存儲一個或多個GAMS符號的值的文件,例如集合、參數變量和等式。 GDX文件可用於為GAMS模型準備數據,顯示GAMS模型的結果,使用不同參數等存儲同一模型的結果。GDX文件不存儲模型公式或可執行語句。
(3) GDX文件是可在不同平台之間移植的二進製文件。
系統需求
- Windows,Linux, and other UNIX operating systems
- (AIX, Tru64Unix, HPUX, SGI, Solaris)
補充說明
支援的模型類型:GAMS支援的模型類型相當廣泛,包括有LP、MIP及NLPs