GAMSCHK 用户文档


简版 GAMSCHK 用户文档 - 版本 1.1
检查 GAMS 模型实例结构和求解属性的系统

作者:Bruce A. McCarl, 教授, 农业经济系, 德克萨斯 A&M 大学
日期:2013年4月

目录

GAMSCHK 用户文档

本文档描述了旨在帮助用户检查经验性 GAMS 模型可能存在的缺陷的过程。其中许多例程的概念基础在 McCarl 和 Spreen 以及 McCarl 等人的著作中有提供。

GAMSCHK 的具体组件功能如下:

  • 使用 DISPLAYCR 过程列出用户选择的方程和/或变量的系数。
  • 使用 MATCHIT 列出所选变量和/或方程组的特征。
  • 使用 BLOCKLIST 列出方程和变量块的特征。
  • 使用 ANALYSIS 检查 GAMS 模型,查看是否有任何变量和方程包含规范错误。
  • 使用 BLOCKPIC 生成描述系数按变量和方程块特征的示意图。
  • 使用 PICTURE 生成小型 GAMS 模型或大型模型部分的示意图,按符号和幅度描述系数位置。
  • 使用 POSTOPT 在模型求解后重建变量的简约成本和方程内的活动。
  • 使用 NONOPTADVISORY 帮助解决无界或不可行模型的问题。

包使用的一般说明

GAMSCHK 必须替换一个求解器。通过使用 GAMS 选项语句完成:

  OPTION LP= GAMSCHK;
  或 OPTION NLP=GAMSCHK;
  或 OPTION MIP=GAMSCHK;

这将特定模型类型的求解器替换为 GAMSCHK。接着,用户使用以下语句调用求解器:

   SOLVE MODELNAME USING LP MINIMIZING OBJNAME;

其中 MODELNAME 是 GAMS MODEL 语句中使用的名称;OBJNAME 是模型的目标变量名称;求解器类型必须是 GAMSCHK 能替代的(LP、NLP、MIP 等)。例如:

  OPTION NLP=GAMSCHK;
  SOLVE TRANSPORT USING NLP MINIMIZING Z;
  或
  OPTION LP=GAMSCHK;
  SOLVE FEED USING LP MINIMIZING COST;
  或
  OPTION MIP=GAMSCHK;
  SOLVE RESOURCE USING MIP MAXIMIZING PROFIT;

选择过程并提供输入 - *.GCK 文件

GAMSCHK 要求用户指示要使用哪些过程。通过 *.GCK 文件指定,其中 * 指 GAMS 执行指令中的文件名。文件的一般格式为:

  第一个过程名称
      项目选择输入

  第二个过程名称
      项目选择输入

输入中忽略空格和大小写。例如,*.GCK 文件可以如下:

   DISPLAYCR
            variables
                SELL(*,*,FANCY)
                maketable
            Invariables 
                transport(plant2,*,fancy)
            Equations
                objT
                notthere
            inequations
                resourceq(plant1)
  PICTURE

关于选择条目的一些假设:

  1. 如果 *.GCK 文件为空,则假定选择了 BLOCKPIC 过程。
  2. 在 GCK 输入文件中可以自由使用空格。
  3. 接受大写、小写或混合大小写输入。
  4. GAMSCHK 识别某些关键词(见附录 A),不能用作变量或方程名称。

*.GCK 文件:项目选择的一般说明

某些过程允许选择变量、方程或函数。关于选择请求的一般说明:

  1. 可以通过输入关键字 VARIABLE 或 VARIABLES(可能带修饰符)后跟变量选择语句来选择变量。
  2. 也可以使用 INEQUATION 或 INEQUATIONS 语法后跟方程名称来选择变量(选择这些方程中具有系数的变量)。
  3. 通过输入关键字 EQUATION 或 EQUATIONS(可能带修饰符)后跟方程选择语句来选择方程。
  4. 也可以使用 INVARIABLE 或 INVARIABLES 语法后跟变量名称来选择方程(选择这些变量具有系数的方程)。
  5. 某些修饰关键字因过程而异:INTERSECT(DISPLAYCR/POSTOPT)、INEQUATION/INVARIABLE(DISPLAYCR/PICTURE/POSTOPT)、LISTEQUATION/LISTVARIABLE(MATCHIT)、INSOLUTION/NOTINSOLUTION/BINDING/NOTBINDING(POSTOPT)、VERBOSE/IDENTIFY(NONOPT)。
  6. 如果变量或方程名称后没有关键字,通常假定选择了所有变量或方程。

过程输出

所有 GAMSCHK 输出将出现在 GAMS 程序输出的 lst 文件中。输出以标准的 GAMSCHK 标题开头,后跟过程结果的描述。

非线性项

GAMSCHK 过程通常假设模型是线性的。如果模型中存在非线性项,某些分析可能不适用。

在 *.GCK 文件中输入注释

以 ? 或 # 开头的行被视为注释,将被忽略。

控制 *.GCK 文件中的页面宽度

页面宽度由 PW= 关键字控制,但不能超过 GAMS 页面宽度。

运行多个过程

可以在一个 *.GCK 文件中指定多个过程,它们将按顺序执行。

过程的使用

GAMSCHK 包含以下过程:

  • DISPLAYCR:列出用户选择的方程和/或变量的系数。
  • MATCHIT:列出所选变量和/或方程组的特征。
  • ANALYSIS:检查 GAMS 模型,查看是否有任何变量和方程包含规范错误。
  • BLOCKLIST:列出方程和变量块的特征。
  • BLOCKPIC:生成描述系数按变量和方程块特征的示意图。
  • PICTURE:生成小型模型的示意图,描述系数位置、符号和幅度。
  • POSTOPT:在模型求解后重建变量的简约成本和方程内的活动。
  • ADVISORY:提供模型改进建议。
  • NONOPT:帮助解决无界或不可行模型的问题。

选项文件

GAMSCHK 支持通过选项文件控制其行为,包括:

  • 求解器选择选项:指定用于不同类型问题的求解器(LP、NLP、MIP、CNS 等)
  • SOLVE/NOSOLVE:控制是否实际求解问题
  • 缩放控制:使用 DESCALE 选项控制缩放处理
  • NONOPT 过滤器:LEVELFILT 和 MARGFILT 控制无界水平和不可行边际的阈值
  • 块限制:EQUBLOCK 和 VARBLOCK 控制方程和变量块的最大数量

选项在 GAMS 模型文件中使用 GAMSCHK 选项语句设置,或在求解器选项文件中配置。

已知错误

Known Bugs

表格

Table 1

表 1:建模者在方程无非线性项时应注意潜在困难的条件。

Table 3.1

表 3:模型元素可能无界或不可行的条件。

Table 3.2

Table 3.3

Table 4

表 4:基于变量边界可能导致方程不可行或冗余的条件。

附录 A:保留名称

以下为 GAMSCHK 保留的关键词,不能用作变量或方程名称:

VARIABLE, VARIABLES, EQUATION, EQUATIONS, INVARIABLE, INVARIABLES,
INEQUATION, INEQUATIONS, LISTVARIABLE, LISTVARIABLES, LISTEQUATION,
LISTEQUATIONS, POSTOPT, DISPLAYCR, PICTURE, BLOCKPIC, ANALYSIS,
MATCHIT, BLOCKLIST, NONOPT, INSOLUTION, NOTINSOLUTION, VERBOSE,
ADVISORY, BINDING, NOTBINDING, INTERSECT, IDENTIFY, PW=

附录 B:GAMSCHK 一页摘要

GAMSCHK One Page Summary

其他说明:

  • 上面标记 * 的项目后跟项目选择语句。
  • 标记 ++ 的项目修改所选变量、方程和系数的类型。
  • 在项目选择中,* 是多个字符的通配符,. 是单个字符的通配符。
  • 在任何输入中,空格和大小写都无关紧要。
  • 选项文件控制缩放、求解器选择、NONOPT 过滤器和允许的最大选择数。
  • 页面宽度由 PW= 关键字控制,但不能超过 GAMS 页面宽度。
  • 以 ? 或 # 开头的行被视为注释。

附录 C:GAMSCHK 选项摘要

选项描述默认值
CNSCNS 问题的求解器
DESCALE控制缩放处理part
DNLPDNLP 问题的求解器
EQUBLOCK允许的方程块最大数量-5
LEVELFILT"无界水平"的指数数值6
LPLP 问题的求解器
MARGFILT"不可行边际"的指数数值6
MCPMCP 问题的求解器
MINLPMINLP 问题的求解器
MIPMIP 问题的求解器
MPECMPEC 问题的求解器
NLPNLP 问题的求解器
NOSOLVE禁止求解问题
OPTFILE求解器选项文件编号
RMINLPRMINLP 问题的求解器
RMIPRMIP 问题的求解器
RMPECRMPEC 问题的求解器
SOLVE强制求解问题
SOLVERNAME任意问题的求解器
VARBLOCK允许的变量块最大数量-5

参考文献

  • Brooke, A., D. Kendrick, and A. Meeraus. GAMS: A User's Guide. The Scientific Press, 1988.
  • McCarl, B.A. "So Your GAMS Model Didn't Work Right: A Guide to Model Repair." Texas A&M University, 1994.
  • McCarl, B.A., and T.H. Spreen. "Applied Mathematical Programming Using Algebraic Systems." Draft Book, Texas A&M University, 1996.
  • McCarl, B.A. GAMSCHK Slides, INFORMS, 1996.
  • McCarl, B.A. GAMSCHK 旧版用户文档额外 GAMS 示例.

 


 

在线留言

尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。

 

 

 

 

联系我们

 

微信公众号

咨询微信

企业店铺

400-621-1085

(节假日期间办公室座机如无人接听,请选择其他联系方式,感谢理解!祝您节日快乐!)

 

联系我们 快速链接 相关产品 上海卡贝信息技术有限公司

©2025  上海卡贝信息技术有限公司

产品中心

下载中心

站点地图

隐私政策

 

销售QQ咨询

产品QQ咨询

淘宝店铺

 

GAMS:概述

最近更新

相关文档

下载试用

购买咨询

Berkeley Madonna

iThink

Stella Architect

IBM SPSS Modeler

DecisionTools Suite

NeuralTools

Frontier Analyst

Vensim

RISKOptimizer

PrecisionTree

LINGO

LINDO API

What'sBest!

@RISK

BARON

BayesiaLab

Oracle Crystal Ball

GEMPACK

GTAP Database

TreeAge