2023年GAMS42 新版本更新,接下來讓我們看一下更新的主要內容:
42.1.0 主要版本
我們要感謝所有報告問題并提出改進此版本建議的用戶。我們特別感謝 Wolfgang Britz 和 Brian Sergi。
Platforms
●正如所宣布的那樣,放棄了對 macOS 10.15 (Catalina) 的支持。
●正如所宣布的那樣,放棄了對 Windows 8 的支持。
●添加了對 macOS 13 (Ventura) 的支持。
GAMS System
●ZUI終用戶許可協議(eula.pdf在 GAMS 系統目錄中)已更新至版本 01/2023。
GAMS
●配置文件選項的更改:條目Solve Alg已重命名為Solver. 它報告的值現在與模型屬性etSolver的值匹配。在以前的版本中,在使用solveLinkSolve Alg =0運行時報告為零。這已得到修復。
●改進了具有許多標簽的模型在 GAMS 和 GDX 中的速度。
●如果整個 GAMS 程序使用一些外部函數但特定模型實例沒有,那么外部函數不再加載到求解器鏈接中。
●添加美元控制選項$save[.keepCode]以在編譯期間創建工作文件。
Connect
●添加了新的過濾器代理,通過對標簽和數值應用過濾器來減少符號數據。
●PandasExcelReader現在強制執行足夠的范圍。范圍必須涵蓋符號的完整維度,包括其值(參數)或文本(集)。閱讀集元素文本是強制性的,不能再跳過。使用投影代理可以刪除不需要的文本。
●PandasExcelWriter支持和.xlsx文件.xlsm。.xls不支持文件。對于其他文件格式,例如.ods文件,可能需要安裝額外的 Python 包。
●PandasExcelReader支持和.xlsx文件.xlsm。對于其他文件格式,例如.xls或.ods文件,可能需要安裝額外的 Python 包。
●改進了各種 Connect 代理的異常消息。
●修復了如果其中一個讀取器代理讀取一個符號為空,寫入器代理將失敗的錯誤。
●修復了PythonCode代理中的一個錯誤,該錯誤阻止了局部變量在后續封閉命名空間中的訪問。
Embedded GAMS Code Facility
●將GAMS添加到受支持的嵌入式代碼語言系列中。
Embedded Python Code Facility
●gams.printLog()修復了在將LogOption設置為0(無日志輸出)時使用時的崩潰。
GMSPython
●GMSPython 的 Python 版本已更新為3.8.16.
Solvers
●新圖書館 23.1.5。
●二次規劃、樹管理策略和整數預求解的重大改進。
CBC
●報告回 GAMS 的時間(例如,resUsd屬性)現在由clocktype選項指定的時鐘測量。
●COINCBC我們計劃在下一個主要版本中刪除 CBC 別名。
CONOPT
●CONOPTD我們計劃在下一個主要版本中刪除 CONOPT3 別名。
CONVERT
●向選項qextractalg添加并發模式(值 3)。
●CONVERTD我們計劃在下一個主要版本中刪除 CONVERT 別名。
COPT
●新庫 6.0.4。
○COPT 現在可以求解凸 MIQCP 和 MISOCP。為 COPT 啟用 GAMS 模型類型 MIQCP。
○添加了參數調整工具。新選項Tuning、TuneParams、TuneMethod、TuneMode、TuneMeasure、TunePermutes、TuneOutputLevel、TuneTargetRelGap、TuneTargetTime、TuneTimeLimit。
○Option Crossover現在是一個整數選項,可能的值為 -1、0 和 1。
○為選項LpMethod添加了可能的值 5 :LP 方法的自動選擇
●將選項iis的類型從布爾值更改為整數。添加值 2 以請求 IIS 計算而無需先前的求解。
CPLEX
●新庫 22.1.1.0。
○添加選項cardls:決定應用基數本地搜索啟發式 (CLSH) 的頻率。
●向選項qextractalg添加并發模式(值 3)。
●將重新運行的默認值更改為nono. 通過此更改,求解器可能無法再區分無界模型和不可行模型,而可能只是報告模型不可行。為了檢查無限模型,將rerun設置為yes以在關閉預求解的情況下重新運行優化。
●CPLEXD我們計劃在下一個主要版本中刪除 CPLEX 別名。
DE
●向 DE添加了選項empInfoFile 。
DECIS
●我們計劃在下一個主要版本中刪除 EMP-SP 求解器 DECIS。這不會影響隨機 LP 求解器DECISC和DECISM。它們將保留在系統中。
GUROBI
●新庫 10.0.0。
○添加選項softmemlimit:軟內存限制。
○添加了選項obbt:控制基于ZUI優性的邊界收緊的積極性。
○添加選項networkalg:網絡單純形算法。
○r =e= sigmoid(x)添加了對非線性約束(或r =e= 1 / (1 + exp(-x)))的支持,請參閱Gurobi:非線性規劃。
●向選項qextractalg添加并發模式(值 3)。
●將重新運行的默認值更改為 -1(否)。通過此更改,求解器可能無法再區分無界模型和不可行模型,而可能只是報告模型不可行。為了檢查無界模型,將rerun設置為 1 以在關閉預求解的情況下重新運行優化。
●修復了multimipstart:初始猜測可能以錯誤的順序發送到 Gurobi,因此被 Gurobi 拒絕,例如,作為不可行的。
●刪除了作為 MIP 使用mipstart、multimipstart或varhint的要求,因為 Gurobi 可能會在求解期間切換到“MIP 模式”(分支定界)(例如,對于非凸 QCP)。
HiGHS
●新圖書館 1.4.1。
○添加選項mipstart:初始級別值可以作為起點傳遞給 MIP(如果不存在半連續或半整數變量)。如果不可行,則 HiGHS 會嘗試通過求解 LP 來找到連續變量的可行分配。
○如果不總是運行交叉,則提高了內點求解器的可靠性。
○選項run_crossover從布爾值更改為字符串。新的可能值“選擇”,僅當沒有交叉的結果不精確時才運行交叉。
○添加選項以啟用和調整“iCrash”:icrash、icrash_approx_iter、icrash_breakpoints、icrash_dualize、icrash_exact、icrash_iterations、icrash_starting_weight、icrash_strategy。
○選項write_solution_style:新值 -1 現在指定“oldraw”格式(之前是值 2);值 2 和新值 3 現在允許以 GMPL 格式打印解決方案。
○新選項presolve_rule_logging和presolve_rule_off。
IPOPT
●COINIPOPT我們計劃在下一個主要版本中刪除 IPOPT 別名。
KNITRO
●新庫 13.2.0。
○新選項presolveop_redundant:確定是否啟用 Knitro presolve 操作來檢測和刪除冗余約束。
○新選項mip_gomory:指定添加 Gomory 混合整數切割的規則。
○選項presolveop_tighten的新值:2 和 3。
○選項mip_clique的新值:-1(新默認值)。刪除值 3。
○選項mip_knapsack的新值:-1(新默認值)。刪除值 3。
○選項mip_zerohalf的新值:-1(新默認值)。刪除值 3。
○選項mip_liftproject的新值:-1(新默認值)。將選項類型更改為整數。
○更改了選項mip_cutting_plane的默認值:1。
●向選項qextractalg添加并發模式(值 3)。
LINDO/LINDOGLOBAL
●新庫 14.0.204。
●為 LINDO添加了選項empInfoFile 。
MILES
●MILESE我們計劃在下一個主要版本中刪除 MILES 別名。
MINOS
●MINOS5我們計劃在下MINOS55一個主要版本中刪除 MINOS 別名。
MOSEK
●使參數MSK_IPAR_PTF_WRITE_PARAMETERS和MSK_IPAR_PTF_WRITE_SOLUTIONS可用。
●向選項QEXTRACTALG添加并發模式(值 3)。
OCTERACT
●新庫 4.6.0。
●刪除了使用 Gurobi 或 Xpress 作為 MIP 求解器的可能性。從選項MILP_SOLVER和MIP_SOLVER的可能值中刪除了 GUROBI 和 XPRESS 。
ODHCPLEX
●向選項qextractalg添加并發模式(值 3)。
●將重新運行的默認值更改為nono. 通過此更改,求解器可能無法再區分無界模型和不可行模型,而可能只是報告模型不可行。為了檢查無限模型,將rerun設置為yes以在關閉預求解的情況下重新運行優化。
SCIP
●COINSCIP我們計劃在下一個主要版本中刪除 SCIP 別名。
SELKIE
●SELKIE我們計劃在下一個主要版本中刪除研究求解器。
SHOT
●向選項ModelingSystem.GAMS.QExtractAlg添加并發模式(值 3)。
SOPLEX
●OSISOPLEX我們計劃在下一個主要版本中刪除 SOPLEX 別名。
XPRESS
●新圖書館 41.01.01。
○動態調整偽成本更新的可靠性閾值。
○改進了具有高度退化目標函數的 MIP 模型的分支策略。
○將numericalEmphasis的效果擴展到一些綁定收緊減少。這有助于避免在遇到具有挑戰性的數字問題時出現錯誤答案。
○新選項globalBoundingBox:如果非線性問題由于出現無界而無法解決,則可以通過在變量上應用邊界框來自動對其進行正則化。
○新選項timeLimit:優化器在終止前運行的ZUI長時間(以秒為單位),包括問題設置時間和求解時間。
○新選項solTimeLimit:假設已找到解決方案,優化器在終止前運行 MIP 求解的ZUI長時間(以秒為單位)。
○新選項preConfiguration:確定是否應重新制定只有少數重復系數的二進制行。
○新選項primalOps:允許微調原始單純形求解器中的變量選擇。
○新選項cutSelect_gomory和treeCutSelect_gomory:強 Chvatal-Gomory 切割。
○新選項cutSelect_farkas和treeCutSelect_farkas:Farkas 削減。
○新選項feasibilityJump:決定是否運行 Feasibility Jump 啟發式算法。
○cutSelect、treeCutSelect和barRegularize中的新位。
○xslp_solver的新選項值 (2) :盡可能使用 Xpress-Optimizer(僅XIAN凸二次問題)。
○選項xslp_iterLimit的新默認值:1000。
○選項xslp_mipDefaultAlgorithm的新默認值:3。
○選項xslp_postsolve已從布爾值更改為具有新默認值 -1 的整數:如果問題可以解決為ZUI優性/不可行性,則進行后求解。
○選項maxStallTime和maxCutTime已從整數選項更改為雙精度選項。
○棄用的選項maxTime(改用timeLimit或solTimeLimit)cacheSize、l1Cache和sleepOnThreadWait。
○刪除選項extraPresolve和lpThreads.
●向選項qextractalg添加并發模式(值 3)。
●新位選項barPresolveOps_standard、barPresolveOps_extra、barPresolveOps_full。
Tools
LibInclude gdxservice
●添加工具GDXEncoding以將 GDX 文件中的標簽從一種編碼轉換為另一種編碼。
CHK4UPD
●我們計劃在下一個主要版本中刪除命令行工具CHK4UPD 。該工具的功能仍可通過GAMS Studio使用。
CSDP
●我們將在未來的 GAMS 版本中刪除工具/求解器csdp 。應該改用GAMS/MOSEK 。
GAMS Studio
●新版本 1.13.1。
○新功能:GAMS Connect 編輯器。
○項目處理/項目瀏覽器改進:
○項目現在自動保存到單獨的文件中(GSP- GAMS Studio 項目)。
○每個項目都存儲在一個單獨的文件中,Project Settings顯示該文件的表示形式。
○文件菜單和上下文菜單現在提供Open Project、New project、Move Project File和Copy Project。
○Import project并Export project已被刪除。
○項目名稱與項目文件的名稱相關聯。
○具有相同名稱的不同路徑中的項目會添加一個數字。此編號按“名稱和路徑”順序分配,因此更改項目的路徑可能會更改分配的編號。
○修復了項目并不總是正確保存的問題。
○g-format精確使用時改進了 GDX 查看器的數字格式Full。
○即使在重新啟動 Studio 后,GDX 文件的狀態現在仍然存在。
○向 GDX 狀態添加符號過濾器并保留它。
○在 GDX 查看器導出功能中添加了對標簽和值過濾器的支持。
○改進的檢查更新對話框,包括 HTML 輸出和文本更新。
○Studio 現在在啟動時在線檢查新的可用 GAMS 版本(可以在設置中更改)。
○穩定性改進、錯誤修復和次要增強,例如:
○改進了 GAMS 引擎服務器通信的請求行為。
○調整Replace All為以明文而不是內部表示形式顯示搜索詞。
GDXCOPY
●修復了復制的 GDX 文件中缺少松弛域信息的問題。
GDXTROLL
●我們將在未來的 GAMS 版本中刪除工具gdxtroll 。
GDX2XLS
●我們將在未來的 GAMS 版本中刪除工具gdx2xls 。應該改用GAMS Connect 代理 PandasExcelWriter 。
MPS2GMS
●用于 LP/MPS 讀取的新庫 HiGHS 1.4.1。
XLS2GMS
●我們將在未來的 GAMS 版本中刪除工具xls2gms 。應該改用 GAMS Connect 代理 PandasExcelReader。
XLSDUMP
●我們將在未來的 GAMS 版本中刪除工具xlsdump 。應該改用 GAMS Connect 代理 RawExcelReader。
APIs
●TargetFramework將GAMS .Net API 從 4.0更改為 4.5。
●RunEngine向GAMSJob類中添加了在 GAMS 引擎上而不是在本地運行作業的方法。
Matlab
●添加選項 SuffixAlgebraVars。
●向選項 PutNR 添加了選項值 RoundedFloatingDec (3) 和 ForEFloatingDec (4)。
GAMS Transfer Matlab
●改進的性能Container.hasSymbols。其中,這在添加許多符號時具有顯著效果。
●添加了對部分寫入的支持。
●symbols為Container.write、Container.getDomainViolations和增加了參數Container.resolveDomainViolations。Container.isValid
●添加參數allow_merge并Container.renameUELs支持Symbol.renameUELs在重命名時合并 UEL(將 UEL 重命名為已存在的 UEL)。
GAMS Transfer Python
●generateRecords從域信息自動生成記錄的新方法。
●pivot將符號記錄轉換為各種形狀的新便捷方法。
●刪除了方法中和方法中可能的dict類型。rtolatolequals
GAMS Transfer R
●removeSymbols刪除其他符號中的符號鏈接。
●symbols為容器方法renameUELs和添加了參數removeUELs。
●findDuplicateRecords現在返回一個數據框而不是行索引。
●中斷:Container data字段現在是包中的有序字典,collections而不是命名列表。而不是mcontent$lt;symbolname>,使用m[<symbolname>]。
●Container方法的性能改進hasSymbols。在向容器中添加多個符號時,這會顯著加快速度。
●為部分操作的方法添加了symbols參數?!馛ontainergetDomainViolationshasDomainViolationscountDomainViolationsdropDomainViolationshasDuplicateRecordscountDuplicateRecordsdropDuplicateRecordsisValidwrite
●Container方法getSymbols現在總是返回一個列表。
●添加了檢查符號是否相等的equals方法。Symbols中的錯誤修復SpecialValues$isNA。
●getUELs標量符號的錯誤修復。
●僅包含. Symbol_isValidNA
●錯誤修復Variable并Equation為數字輸入設置記錄。
●添加了和 的equals方法。ContainerConstContainer
Jupyter Notebooks
●刪除的方法gams.pivot和gams.pivot2d. 現在可以通過pivot方法從 GAMS Transfer Python 獲得此功能。
●正如所宣布的那樣,該軟件包gams_magic_legacy已被刪除,請改用gams.magic。
Python
●修改了 GAMS Python API 結構。有關新結構的詳細信息,請參閱Python API 文檔:
○由于 API 的結構發生了變化,現有代碼中的語句可能不再有效 -有關如何遷移的詳細信息,import請參閱遷移導入語句。
○distutils替換了by的使用setuptools。Python API 的安裝/卸載現在使用pip.
○所有示例都已移至子包<sysdir>/api/python/examples并按子包進行組織。
○文檔已經過重組,現在包含有關GAMS numpy API(以前gams2numpy)的信息。
Model Libraries
GAMS Model Library
●添加了binpacking.gms:用不同方法估計箱子數量的箱子包裝問題。
●maxcut.gms:Goemans/Williamson 用于 MaxCut 的隨機逼近算法:如果使用 調用,SDP 現在可以使用 Mosek 求解--SDPSOLVER=MOSEK。
●tablelayout.gms:配置表格單元格中的文本布局以ZUI小化表格高度:現在使用嵌入式代碼 GAMS。
GAMS Test Library
●添加了scensol10.gms:MCP GUSS 測試。
●添加了cafilter.gms:測試連接代理過濾器。
●添加了gdxencoding1.gms:簡單的 gdxencoding 測試。
●添加了save3.gms:測試 DCO 保存。
●添加了embgms01.gms:測試嵌入式代碼工具。
●添加了embgms02.gms:測試嵌入式代碼設施。
●添加了embgms03.gms:從嵌入式代碼加載數據時測試投影運算符。
●添加了embgms04.gms:測試嵌入式代碼塊的延續性。
●添加了embgms05.gms:從嵌入式代碼加載數據時測試合并/替換。
●添加了embgms06.gms:從嵌入式代碼加載數據時測試域檢查/過濾。
●添加了embgms08.gms:從嵌入式代碼測試過濾負載。
●添加了embgms09.gms:重啟后測試嵌入式代碼。
●添加了gdxcopy6.gms:使用寬松的域信息測試 gdxcopy。
API Library
●添加了gdxperf.gms:測試各種 GDX API 并報告運行時間。
●添加了generate.gms:生成一些隨機但結構化的 GDX 文件。
42.2.0 次要版本
我們要感謝所有報告問題并提出改進此版本建議的用戶。我們特別感謝 Lorena Reyes-Rubiano。
GAMS System
GAMS
●修復了不允許將嵌入式代碼塊作為重復循環中的第YI條語句執行的潛在問題。
●改進方法,執行網格工具以解決在GAMS MIRO下運行solveLink=3 的GAMS 模型時出現的問題。
Solvers
CONOPT
●新圖書館 4.30。
●修復了具有虛擬目標函數的模型的錯誤(沒有終止消息就停止)。
Tools
MPS2GMS
●COLUMNINTVARSAREBINARY修復了無法設置參數的問題。
●修復了如果 MPS 讀取回落到固定 MPS 格式的讀取器,則目標函數會丟失。
APIs
GAMS Transfer R
●從 GDX 文件讀取時性能顯著提高。
●現在允許通過將邏輯向量作為domainForwarding參數傳遞來進行部分域轉發。
●添加了自動生成記錄generateRecords的方法。Symbols
42.3.0 次要版本
我們要感謝所有報告問題并提出改進此版本建議的用戶。我們特別感謝 Yuzar Aryadi、Wolfgang Britz、Geoffroy Duparc-Portier、Scott McDonald 和 Tom Rutherford。
GAMS System
GAMS
●修復了一個錯誤,當在符號屬性的循環中使用選項 clear/kill時,該錯誤可能導致崩潰。
●修復了加載單例集時可能導致轉儲文件錯誤的錯誤。
●修復了一個錯誤,在極少數情況下,當使用寬松的標點符號來聲明符號列表而不用逗號分隔時,該錯誤可能會導致不必要的錯誤。
GAMS Connect
●修復了包含不可打印字符的標簽以及RawExcelReader中錯誤的紙張尺寸計算問題。
●修復了RawExcelReader中工作簿中沒有任何包含數字數據的單元格的問題。
●修復了CSVReader代理中的錯誤,indexSubstitutions在該錯誤中堆疊維度會導致NaN.
●修復了CSVReader代理中indexSubstitutions也會替換參數值列的錯誤。
●修復了CSVReader代理中的索引和文本列被讀取為數字的錯誤。
●修復了CSVWriter代理將集合的文本列轉換為數字的錯誤。
●修復了對于只有 GAMS和記錄的符號, Concatenate代理將 GAMS 轉換NA為 GAMS 的錯誤。UNDFNAUNDF
Solvers
CPLEX
●修復solvefinal失敗的情況:GAMS/CPLEX 現在將從前面的完整求解中返回解決方案。
MOSEK
●添加了當 GAMS/Mosek 鏈接在使用多線程運行 Mosek 后終止時崩潰的解決方法。
Tools
GAMS Studio
●新版本 1.13.3 修復了一些錯誤并進行了一些小的改進,例如:
○在項目級別添加了一個特殊組-GAMS-System-來捆綁文件,如Changelog和gamsconfig.yaml.
○在參考文件查看器中添加了對宏符號的支持。
○在 GDX Viewer 中也啟用了對空符號的控制。
○修復了在表格視圖模式下重新加載空 GDX 符號時的崩潰。
○修復了幾個內存泄漏。
42.4.0 次要版本
我們要感謝所有報告問題并提出改進此版本建議的用戶。我們特別感謝 Erwin Kalvelagen 和 Pedro Andres Sanchez-Perez。
GAMS System
GAMS
●修復了設置$onDollar時輸出文件中某些行的重復打印。
GAMS Connect
●修復了投影代理無意中更改連接數據庫中的源符號的錯誤。
Solvers
BARON
●新圖書館 23.3.11。
●修復了被用戶打斷時報告ZUI大化問題的錯誤雙重綁定 ( SIGINT)。
CONOPT
●在 Linux 上使用 solvelink 5 或更高版本在同一 GAMS 進程中同時使用 CONOPT 3 和 CONOPT 4 時解決了一些庫符號混淆問題。
COPT
●新庫 6.0.5。
CPLEX
修復了執行或忽略mipstopexpr后掛起的程序。
HiGHS
●新圖書館 1.5.1。
○選項write_solution_style的新值 4 。
○將選項presolve_rule_logging的默認值從 1 更改為 0。
MOSEK
●新庫 10.0.38。
SCIP Optimization Suite
●新庫 SCIP 8.0 (1870b6ada8)。
●新庫 PaPILO 2.1 (cf0c6277)。
SHOT
●新庫 1.1 (3ba57397)。
Tools
GAMS Studio
●新版本 1.13.4 修復了一些錯誤并進行了一些小的改進,例如:
○向 Studio 連接編輯器添加了對連接過濾器代理的支持。
○.opt修復了通過 Project Explorer 中的上下文菜單創建文件時的崩潰。
○.opt修復了阻止保存的錯誤文件擴展名。
○在 GAMS 配置編輯器中固定值編輯,并允許刪除minVersion和maxVersion值。
○修復了在 macOS 上打開輸入文件后 GdxDiffDialog 崩潰的問題。
APIs
GAMS Transfer Python
●修復了與長符號描述相關的錯誤
Python
●修復了GamsWorkspace.add_job_from_file在文件不存在的情況下未引發異常的錯誤。
●修復了如果使用GamsModifiers作為參數實例化源實例時GamsModelInstance.copy_modelinstance確實失敗的錯誤。
●修復了_GamsSymbol==及其子類的運算符,即使對于不同的符號也會產生True
●固定GamsWorkspace.add_database_from_gdxgdx_file_name在參數None為或空字符串的情況下不引發異常。
●將GamsSymbolRecord及其子類的運算符的返回類型從 更改為。intbool
42.5.0 次要版本
我們要感謝所有報告問題并提出改進此版本建議的用戶。我們要特別感謝 Jason Hayes 和 Scott McDonald。
GAMS System
GAMS Connect
●修復了投影代理在空符號上失敗的問題。
Installer
●修復了 Windows 安裝程序阻止使用系統帳戶成功安裝的問題(例如,使用 SCCM 時)。
Solvers
PATH and PATHNLP
●新庫 5.0.07。
CONVERT
●修復了 GAMS 格式中線性系數的書寫eps而不是 0。
Tools
●新版本 1.13.5 修復了一些錯誤并進行了一些小的改進,例如:
○添加了創建新項目后自動打開項目編輯器的功能。
○修復了重新加載參考文件時參考文件查看器中的重復選項卡。
○修復了通過在 Finder 中雙擊打開 GAMS 相關文件時 macOS 上的崩潰問題。
○修復了損壞的編譯錯誤鏈接到.gms文件中的.lst文件。
APIs
GAMS Transfer R
●從容器寫入 GDX 文件時的性能顯著提高。
●修復了讀取未使用的 UEL 時容器讀取中的錯誤Symbol。
●todense修復了方法中的錯誤Symbol。
●修復了寫入空容器時的錯誤。
●添加了將符號從一個復制到另一個的Symbol方法。copyContainerConstContainerContainer
●添加Container了將符號復制到另一個容器的ConstContainer方法。copy
●修復了當別名父集不存在時使用 ConstContainer Alias 方法的錯誤。