GAMS接口
GAMS 是一款针对数学规划问题的商业高级建模系统,支持多种 商业和开源求解器, 可用于求解线性规划、非线性规划及整数规划等多种优化问题,并且提供了 丰富的扩展功能,有着广泛的商业及学术用户群体。为了方便用户在GAMS建模环境中使用杉数求解器, 我们提供了GAMS接口,本章将介绍如何在GAMS中使用杉数求解器。
配置GAMS接口
在GAMS中调用杉数求解器求解之前,用户需要正确安装与配置GAMS和杉数求解器,详情可参考 如何安装杉数求解器 。请按照下述说明配置杉数求解器的GAMS接口。
Windows
对于Windows系统,假定GAMS安装路径为:"C:\GAMS\win64\27.3"
,杉数求解器安装路径为:
"C:\Program Files\COPT"
,则杉数求解器的GAMS接口文件在杉数求解器安装路径的子目录
"lib\gams"
下。请用户将该目录下的 cptcclib64.dll
文件复制到GAMS安装路径下,
然后打开子目录 config
中的 gmscmpNT.txt
文件,复制其中的全部内容粘贴至
GAMS安装路径下的 gmscmpNT.txt
文件中。
Linux
对于Linux系统,假定GAMS安装路径为:"/opt/gams"
,杉数求解器安装路径为:
/opt/copt71 ,则杉数求解器的GAMS接口文件在杉数求解器安装路径的子目录
"lib/gams"
下。请用户将该目录下的 libcptcclib64.so
文件复制到GAMS安装路径下,
然后打开子目录 config
中的 gmscmpun_unix.txt
文件,复制其中的全部内容粘贴至
GAMS安装路径下的 gmscmpun.txt
文件中。
MacOS
对于MacOS系统,假定GAMS安装路径为:"/Applications/GAMS27.3"
,杉数求解器安装路径为:
/Applications/copt71 ,则杉数求解器的GAMS接口文件在子目录 "lib/gams"
下。
请用户将该目录下的 libcptcclib64.dylib
文件复制到GAMS安装路径的子目录
sysdir
下,然后打开子目录 config
中的 gmscmpun_osx.txt
文件,复制其中的
全部内容粘贴至GAMS安装路径的子目录 sysdir
下的 gmscmpun.txt
文件中。
功能介绍
用户按照上述说明配置GAMS接口后,可通过执行下述操作检查是否配置成功。
以命令行下调用GAMS接口求解为例,打开命令行,执行下述命令:
gamslib trnsport
获取GAMS自带的LP示例 trnsport.gms
。
然后执行命令调用杉数求解器的GAMS接口进行求解:
gams trnsport.gms lp=copt
观察GAMS的输出,若求解正常,则表示用户已正确配置好杉数求解器的GAMS接口。
杉数求解器的GAMS接口支持求解 LP
、MIP
和 RMIP
类型的优化问题。对于 MIP
类型的优化问题,支持 SOS1
和 SOS2
类型约束、支持Indicator约束。
对于参数文件 copt.opt
的格式要求,与杉数求解器的参数文件格式一致。
对于模型的Indicator约束信息,由参数 indicatorfile
设置。例如,从文件 COPT.indic
中读取模型的Indicator约束信息,则在参数文件 copt.opt
中添加如下参数即可:
indicatorfile COPT.indic
关于GAMS对于Indicator约束的支持,详见官方文档 GAMS中实现Indicator约束 。
对于获取整数规划模型的解池信息,由参数 solnpool
和参数 solnpoolMerge
设置。
若设置参数 solnpool
,则将解池中的解依次写入 soln_copt_p1.gdx
等文件,
其中数字编号表示解池中解的编号。若设置参数 solnpoolMerge
,则将解池中的解合并后
写入指定的文件中。