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参数。●ContainergetDomainViolationshasDomainViolationscountDomainViolationsdropDomainViolationshasDuplicateRecordscountDuplicateRecordsdropDuplicateRecordsisValidwrite
●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 方法的错误。