42.1.0 主要版本(2023 年 2 月 1 日)
感谢
我们要感谢所有报告问题并提出改进此版本建议的用户。我们特别感谢沃尔夫冈·布里茨和布赖恩·塞尔吉。
平台
- 正如宣布的那样,放弃了对macOS 10.15(Catalina)的支持。
- 正如宣布的那样,放弃了对Windows 8的支持。
- 添加了对 macOS 13 (Ventura) 的支持。
GAMS系统
- 最终用户许可协议(eula.pdf在 GAMS 系统目录中)已更新到版本 01/2023。
连接
- 添加了新的过滤器代理,通过对标签和数值应用过滤器来减少符号数据。
- PandasExcelReader现在强制执行足够的范围。范围必须涵盖符号的完整尺寸,包括其值(参数)或文本(集)。读取集元素文本是必需的,不能再跳过。可以使用Project代理删除不需要的文本。
- PandasExcelWriter支持.xlsx和.xlsm文件。 不支持.xls文件。对于其他文件格式(如.ods文件),可能需要安装其他 Python 包。
- PandasExcelReader支持.xlsx和.xlsm文件。对于其他文件格式(如 .xls和.ods 文件),可能需要安装其他 Python 包。
- 改进了各种连接代理的异常消息。
- 修复了如果其中一个读取器代理将符号读取为空,写入器代理将失败的错误。
- 修复了 PythonCode 代理中的一个错误,该错误阻止在后续封闭命名空间中访问局部变量。
GAMS
- 配置文件选项的更改:条目Solve Alg已重命名为 Solver。随它一起报告的值现在与模型属性 etSolver 中的值匹配。在以前的版本中,使用 solveLink=0 运行时报告为零。此问题已修复。
- 提高了具有许多标签的模型在 GAMS 和 GDX 中的速度。
- 如果整个 GAMS 程序使用某些外函数,但特定模型实例不使用,则外函数不再加载到求解器链接中。
- 添加了美元控制选项 $save[.keepCode] 以在编译期间创建工作文件。
GMSPython
- GMSPython 的 Python 版本已更新为3.8.16 。
嵌入式 GAMS 代码工具
嵌入式 Python 代码工具
- 修复了在将 LogOption 设置为0(无日志输出)的情况下使用gams.printLog()时崩溃的问题。
求解器
Baron
- 新库 23.1.5.
- 对二次规划、树管理策略和整数预求解进行了重大改进。
CBC
- 报告回 GAMS 的时间(例如,resUsd 属性)现在由clocktype选项指定的时钟测量。
- 我们计划在下一个主要版本中删除 CBC 别名COINCBC。
CONOPT
- 我们计划在下一个主要版本中删除 CONOPT3 别名CONOPTD。
CONVERT
- 将并发模式(值 3)添加到选项 qextractalg。
- 我们计划在下一个主要版本中删除 CONVERT 别名CONVERTD。
COPT
- 新库 6.0.4.
- COPT现在可以解决凸的MIQCP和MISOCPs。为 COPT 启用 GAMS 模型类型 MIQCP。
- 添加了参数调整工具。新选项Tuning,TuneParams,TuneMethod,TuneMode,TuneMeasure,TunePermutes,TuneOutputLevel,TuneTargetRelGap,TuneTargetTime,TuneTimeLimit。
- 选项交叉现在是一个整数选项,可能的值为 -1、0 和 1。
- 为选项 LpMethod增加了可能的值 5:自动选择 LP 方法
- 将选项 IIS 的类型从布尔值更改为整数。添加了值 2 以请求 IIS 计算而不进行先前的求解。
CPLEX
- 新库 22.1.1.0.
- 添加了选项 cardls:决定应用基数本地搜索启发式 (CLSH) 的频率。
- 将并发模式(值 3)添加到选项 qextractalg。
- 将重新运行的默认值更改为 。通过此更改,求解器可能无法再区分无界模型和不可行模型,而可能只会将模型报告为不可行模型。要检查无界模型,请将 rerun 设置为 在关闭 presolve 的情况下重新运行优化。nonoyes
- 我们计划在下一个主要发行版中删除 CPLEX 别名CPLEXD。
DE
DECIS
- 我们计划在下一个主要版本中放弃 EMP-SP 求解器 DECIS。这不会影响随机 LP 求解器 DECISC 和 DECISM。它们将保留在系统中。
GUROBI
- 新库 10.0.0.
- 添加了选项软内存限制:软内存限制。
- 新增选项obbt:控制基于最优的约束紧缩的激进性。
- 新增选项网络:网络单纯形算法。
- 添加了对非线性约束(或)的支持,请参阅 Gurobi:非线性规划。r =e= sigmoid(x)r =e= 1 / (1 + exp(-x))
- 将并发模式(值 3)添加到选项 qextractalg。
- 将重新运行的默认值更改为 -1(否)。通过此更改,求解器可能无法再区分无界模型和不可行模型,而可能只会将模型报告为不可行模型。要检查无界模型,请将 rerun 设置为 1 以在关闭 presolve 的情况下重新运行优化。
- 修复了多mipstart:最初的猜测可能以错误的顺序发送给Gurobi,因此被Gurobi拒绝,例如,因为不可行。
- 删除了使用 mipstart、multimipstart 或 varhint 作为 MIP 的要求,因为 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
- 我们计划在下一个主要版本中删除 IPOPT 别名。COINIPOPT
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。
- 将并发模式(值 3)添加到选项 qextractalg。
LINDO/LINDOGLOBAL
- 新库 14.0.204.
- 在 LINDO中添加了选项 empInfoFile。
MILES
- 我们计划在下一个主要版本中删除 MILES 别名MILESE。
MINOS
- 我们计划删除 MINOS 别名,并在下一个主要版本中删除。MINOS5MINOS55
MOSEK
- 使参数MSK_IPAR_PTF_WRITE_PARAMETERS可用,MSK_IPAR_PTF_WRITE_SOLUTIONS可用。
- 将并发模式(值 3)添加到选项 QEXTRACTALG。
OCTERACT
- 新库 4.6.0.
- 删除了使用 Gurobi 或 Xpress 作为 MIP 求解器的可能性。从选项 MILP_SOLVER 和 MIP_SOLVER 的可能值中删除了 GUROBI 和 XPRESS。
ODHCPLEX
- 将并发模式(值 3)添加到选项 qextractalg。
- 将rerun的默认值更改为nono 。通过此更改,求解器可能无法再区分无界模型和不可行模型,而可能只会将模型报告为不可行模型。要检查无界模型,请将 rerun 设置为yes, 在关闭 presolve 的情况下重新运行优化。
SCIP
- 我们计划在下一个主要版本中删除 SCIP 别名COINSCIP。
SELKIE
- 我们计划在下一个主要版本中放弃SELKIE求解器。
SHOT
- 将并发模式(值 3)添加到选项 ModelingSystem.GAMS.QExtractAlg。
SOPLEX
- 我们计划在下一个主要版本中删除 SOPLEX 别名OSISOPLEX。
XPRESS
- 新库 41.01.01.
- 动态调整伪成本更新的可靠性阈值。
- 改进了具有高度退化目标函数的MIP模型的分支策略。
- 将数字强调的效果扩展到一些约束紧缩减少。这有助于避免在出现数值挑战性问题时的错误答案。
- 新选项 globalBoundingBox:如果非线性问题由于出现无界而无法解决,则可以通过在变量上应用边界框来自动对其进行正则化。
- 新选项 timeLimit:优化器在终止之前运行的最长时间(以秒为单位),包括问题设置时间和解决时间。
- 新选项 solTimeLimit:在找到解决方案的情况下,优化程序在终止 MIP 求解之前运行该求解的最长时间(以秒为单位)。
- 新选项 preConfiguration:确定是否应重新表述只有几个重复系数的二进制行。
- 新选项 primalOps:允许微调原始单纯形求解器中的变量选择。
- cutSelect_gomory和treeCutSelect_gomory的新选择:强力的Chvatal-Gomory切割。
- cutSelect_farkas和treeCutSelect_farkas的新选择:Farkas cuts.。
- 新选项可行性跳转:决定是否应运行可行性跳转启发式。
- cutSelect、treeCutSelect 和 barRegularize 中的新位。
- xslp_solver的新选项值 (2):如果可能,请使用 Xpress-Optimizer(仅限凸二次问题)。
- 选项 xslp_iterLimit 的新默认值:1000。
- 选项 xslp_mipDefaultAlgorithm 的新默认值:3。
- 选项 xslp_postsolve 已从布尔值更改为整数,新的默认值为 -1:如果问题可以解决到最优/不可行性,则进行后求解。
- 选项 maxStallTime 和 maxCutTime 已从整数更改为双精度选项。
- 已弃用的选项maxTime(改用 timeLimit 或 solTimeLimit)、cacheSizel1和 CachesleepOnThreadWait。
- 删除了选项和 .extraPresolvelpThreads
- 将并发模式(值 3)添加到选项 qextractalg。
- 新的位选项barPresolveOps_standard、barPresolveOps_extra,barPresolveOps_full
工具
$LibInclude gdxservice
- 添加了工具 GDX 编码,用于将 GDX 文件中的标签从一种编码转换为另一种编码。
CHK4UPD
- 我们计划在下一个主要版本中删除命令行工具 CHK4UPD。该工具的功能仍将通过 GAMS Studio 提供。
CSDP
- 我们将在未来的 GAMS 版本中删除工具/求解器 csdp。应该改用 GAMS/MOSEK。
GAMS Studo
- 新版本 1.13.1。
- 新功能:GAMS 连接编辑器。
- 项目处理/项目资源管理器改进:
- 项目现在会自动保存到单独的文件中( GSP - GAMS Studio项目)。
- 每个项目都存储在一个单独的文件中,Project Settings显示一个表示。
- 文件菜单和上下文菜单现在提供 Open ProjectNew、projectMove、Project File和Copy Project 。
- Import project和Export project已被删除。
- 项目名称与项目文件的名称相关联。
- 不同路径中具有相同名称的项目将添加一个数字。此编号按“名称和路径”顺序分配,因此更改项目的路径可能会更改分配的编号。
- 修复了项目并不总是正确保存的问题。
- GDX 查看器改进:
- 改进了Full精确使用g-format时 GDX 查看器的数字格式。
- GDX 文件的状态现在即使在重新启动Studio后仍然存在。
- 将符号筛选器添加到 GDX 状态并保留它。
- 添加了对 GDX 查看器导出功能中的标签和值筛选器的支持。
- 改进了“Check for Update”对话框,包括 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。
API
.Net
- 将 GAMS .Net API TargetFramework从 4.0 更改为 4.5。
- 向类RAMSJob中添加了方法unEngineG,以便在 GAMS 引擎上运行作业,而不是在本地运行作业。
Matlab
- 添加了选项后缀代数变量。
- 在期权 PutNR 中添加了期权值 RoundedFloatingDec (3) 和 ForEFloatingDec (4)。
GAMS Transfer Matlab
- 改进了Container.hasSymbols的性能。其中,这在添加许多符号时具有显著效果。
- 添加了对部分写入的支持。
- 向Container.write 、Container.getDomainViolations 、Container.resolveDomainViolations 和Container.isValid中添加了参数symbols。
- 添加了参数allow_merge到Container.renameUELs和Symbol.renameUELs,以支持在重命名时合并 UEL(将 UEL 重命名为现有的 UEL)。
GAMS Transfer Python
- 从域信息自动生成记录的新方法generateRecords。
- 将符号记录透视为各种形状的新便捷方法pivot。
- 在equals方法中删除了用于rtol和atol的可能类型dict。
GAMS Transfer R
- removeSymbols删除其他符号中的符号链接。
- 添加symbols参数到容器方法renameUELs和 removeUELs
- findDuplicateRecords现在返回数据框而不是行索引。
- Breaking:Container data字段现在是包collections中的有序字典,而不是命名列表。代替m$data$<symbolname>,请使用m[<symbolname>]。
- 对Container方法hasSymbols的性能改进。这会导致向容器添加多个符号时显著加快速度。
- 为Container方法getDomainViolations 、hasDomainViolations、countDomainViolations、dropDomainViolations 、hasDuplicateRecords、countDuplicateRecords、dropDuplicateRecords、isValid和write部分操作添加了参数symbols。
- Container方法getSymbols现在始终返回一个列表。
- 添加equals方法到symbols来检查符号是否相等。
- SpecialValues$isNA中的错误修复。
- 标量符号getUELs的错误修复。
- Symbol方法中isValid的错误修复,用于仅包含 NA的符号。
- 错误修正在Variable和Equation中用于数字输入的集记录。
- 为Container和ConstContainer添加了equals方法。
Jupyter Notebooks
删除了方法gams.pivot和gams.pivot2d。.此功能现在可以通过pivot方法从 GAMS Transfer Python 获得。
- 如前所述,该包gams_magic_legacyga已被删除,请改用gms.magic。
Python
- GAMS Python API 结构已修订。有关新结构的详细信息,请参阅 Python API 文档:
- 注意
- 由于 API 结构的更改,现有代码中的import语句可能不再有效 - 有关如何迁移的详细信息,请参阅迁移导入语句。
- 已将distutils的使用替换为setuptools。Python API 的安装/卸载现在使用pip。
- 所有示例都已移至 <sysdir>/api/python/examples并按子包进行组织。
- 文档已经重组,现在包含有关 GAMS numpy API 的信息(以前gams2numpy)。
模型库
GAMS 模型库
- 添加了binpacking.gms:垃圾箱包装问题,用不同的方法来估计垃圾箱的数量。
- maxcut.gms : Goemans/Williamson MaxCut 的随机近似算法 : SDP 现在使用 Mosek 求解,如果调用 .--SDPSOLVER=MOSEK
- tablelayout.gms :在表格单元格中配置文本布局以最小化表格高度:使用现在嵌入的代码 GAMS。
GAMS 测试库
- 添加了scensol10.gms : MCP GUSS Test.
- 添加了cafilter.gms : Test Connect agent Filter.
- 添加了gdxencoding1.gms : Simple gdxencoding test.
- 添加了save3.gms : Test DCO save.
- 添加了embgms01.gms : Test for embedded code facility.
- 添加了embgms02.gms : Test for embedded code facility.
- 添加了embgms03.gms : Test projection operator when loading data from embedded code.
- 添加了embgms04.gms : Test continuation of embedded code blocks.
- 添加了embgms05.gms : Test merge/replace when loading data from embedded code.
- 添加了embgms06.gms : Test domain check/filtered when loading data from embedded code.
- 添加了embgms08.gms : Test filtered load from Embedded Code.
- 添加了embgms09.gms : Test Embedded Code after restart.
- 添加了gdxcopy6.gms : Test gdxcopy with relaxed domain information.
接口库
- 添加了 gdxperf.gms:测试各种 GDX API 并报告运行时间。
- 添加了 generate.gms:生成一些随机但结构化的 GDX 文件。
42.2.0 次要版本(2023 年 2 月 16 日)
感谢
我们要感谢所有报告问题并提出改进此版本建议的用户。我们特别感谢洛雷娜·雷耶斯-鲁比亚诺。
GAMS系统
GAMS
- 修复了不允许将嵌入式代码块作为重复循环中的第一个语句执行的潜在问题。
- 改进了方式,执行网格设施以解决在 GAMS MIRO 下运行 solveLink=3 的 GAMS 模型时的问题。
求解器
CONOPT
- 新库 4.30.
- 修复了具有虚拟目标函数的模型的错误(停止而不终止消息)。
工具
MPS2GMS
- 修复参数无法被设置.COLUMNINTVARSAREBINARY的问题。
- 修复了当 MPS 读数回退到固定 MPS 格式的读取器时,目标函数会丢失的问题。
API
GAMS Transfer R
- 从 GDX 文件读取时显著提高了性能。
- 现在允许通过传递逻辑向量作为参数.domainForwarding来进行部分域转发。
- 添加了自动生成记录.generateRecordsSymbols的方法。
|