gams

gams全稱The General Algebraic Modeling System ,是一款數學規劃和最佳化的高級建模系統。

基本介紹

  • 中文名:數學規劃和最佳化的高級建模系統
  • 外文名:The General Algebraic Modeling System
GAMS是一款最佳化的計算機數值分析商業軟體。這種商業軟體相當普遍,如 LINDO、DOT 等,以矩陣運算見長的 MATLAB 計算機軟體亦有發展"optimization tool box",可以解各種非線性最佳化問題的數值解。這裡要介紹的GAMS,則是以簡單清楚的使用者接口和強健穩定的數值分析能力見長。
通用代數建模系統(GAMS)是特別為建模線性,非線性和混合整數最最佳化問題而設計的.本系統對於大型的,複雜的問題特別有幫助.GAMS可以運行在個人計算機、工作站、大型機和超級計算機上.
GAMS允許使用者通過制定簡單的設定來把精力放在建模問題上.至於特定機器和系統軟體執行的費時的細節將由GAMS系統來處理.
GAMS對於處理大型的,複雜的,需要多次修訂才能最終確定精確模型的獨一無二的問題特別有幫助.系統以高 度簡潔和自然的方式來建模問題.使用者能夠快速和方便的更改公式,能從一個求解器轉到另一個,甚至稍加費心就能從線性轉換到非線性.
GAMS讓使用者把精力集中到建模上.通過排除考慮純技術上的機器特定的問題的需要,比如地址計算,存儲分配,子程式連結,和輸入輸出和流程控制,GAMS增加了用於概念化和運行模型,和分析結果的時間.GAMS本身構建了良好的建模習慣,通過請求簡明而精確的實體和關係的規範.GAMS語言形式上和通常使用的程式語言相似.因此對於那些有編程檢驗的使用者將非常熟悉.
使用GAMS,數據僅僅需要一次就能在熟悉的列表和表格形式中輸入.模型以簡練的代數聲明來描述,對於人和機器都很容易讀懂.非常相關的約束的整個集合都被輸入到一個聲明中.GAMS自動生成每個約束等式,並讓使用者處理例外情況,假使那裡一般來說是不需要的.在模型中的聲明能夠被重用,而不需要更改代數式,當其它的實例是相同的或出現了相關問題.錯誤的位置和類型會在嘗試解決方案前被查明.GAMS處理動態模型,包括時間序列,滯後,及暫時終點的提示和處理.
GAMS是靈活而強大的.模型可以非常方便的從一個計算機平台移到另外一個,只要GAMS已經在每個平台被安裝好.GAMS很容易進行敏感度分析.使用者能夠方便的規劃模型來求解一個成分的不同值,然後生成一個輸出報告,列出了每種情況的解決方案特徵.模型能夠同時被開發和文檔化,因為GAMS允許使用者包含解釋性的文本來作為任意符號和等式的定義和解釋.
GAMS不斷的在被增強和擴展.2.25版本包含了多個語言擴展,例如在一個循環中的SOLVE聲明,INCLUDE聲明,IF-ELSE聲明,和使用PUT聲明進行報告編寫的功能.其它的加強包括增加的系統集成特徵,性能改善,新的子系統,和另外的計算機平台支持.
當前版本2.50包括一個基於Intel Windows平台(95/98/ME和NT/2K/XP)的集成開發環境(IDE).GAMS 2.50的新的分發包含新的語言特徵和新發表的全新/更新的求解器,一年至少4次.請檢查版本聲明.
示例:
從著名的1963書(由George Dantzig編寫)中提取的一個運輸問題,用來描述GAMS的有效性.這個模型只是模型庫中的部分,模型庫中還包含了大量的完整GAMS模型.
支持模型的類型:
GAMS模型類型包括LP,MIP和NLPs的不同形式.這裡列出了GAMS支持的所有的模型類型.
GAMS 的發展背景
GAMS 是"General Algebraic Modeling System"(一般性代數仿真系統)的縮寫,最早是由美國的世界銀行(World Bank)的 Meeraus 和 Brooke [Brooke, Kendrickm and Meeraus, 1992]所發展。"GAMS"事實上並不代表任何最佳化數值算法,而只是一個高級語言的使用者接口,利用 GAMS 可以很容易建立、修改、除錯你的最佳化模型輸入檔案,而輸入檔經過編譯後,成為較低階的最佳化數值算法程式所能接受的格式,再加以執行並寫出輸出檔。
數值算法方面,對線性與非線性規劃問題,GAMS 使用由新南韋爾斯大學的Murtagh、及史丹福大學的 Gill、Marray、Saunders、Wright 等所發展的 MINOS [Murtagh and Saunders, 1983] 算法。MINOS是 "Modular In-core Non-linear Optimization System"的縮寫,這個算法綜合了縮減梯度法和準牛頓法,是專門為大型、複雜的線性與非線性問題設計的算法。對混合整數規劃問題,則採用亞歷桑那大學的 Marsten 及巴爾第摩大學的 Singhal[1987]共同發展的 ZOOM(Zero/One Optimization Method)算法。
GAMS 使用範例說明
如前所述,GAMS 本身有非常完整的英文版使用者手冊,GAMS 的計算機軟體中也附帶了許多學習範例的檔案。這裡所作的 GAMS 使用範例說明,目的絕非在取代原版的使用者手冊,而是要配合本課程說明的形式,重新編寫使用範例輸入檔案,使讀者能很快的進入情況,了解其使用程式。
GAMS 的操作大抵可分為三個步驟:建立 GAMS 輸入檔案,執行 GAMS 程式,檢視 GAMS 輸出檔內容。

相關詞條

熱門詞條

聯絡我們