《GAMS用户指南》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:魏传江,王浩,谢新民,孙秀芬等编译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2009
  • ISBN:9787508469775
  • 页数:491 页
图书介绍:GAMS软件是建立和求解大型数学规划问题的优秀软件包之一,在各领域有着广泛的应用。本书是GAMS软件用户指南,全书分两篇,第一篇为Windows GAMS 2.5用户指南,详细地介绍了GAMS语言的各个组成部分,并对一些高级主题进行了专门讨论;第二篇讨论几个常用的求解器,包括BARON、Cplex 10、DICOPT、MINOS、MOSEK、PATH 4.6、SBB、MPSGE。

第一篇 Windows GAMS 2.50用户指南 3

1 概述 3

1.1 开发研究GAMS的动因 3

1.2 GAMS的基本特征 3

1.2.1 一般原理 3

1.2.2 文件 4

1.2.3 可移植性 4

1.2.4 用户界面 4

1.2.5 模型库 4

1.3 本书的组成 4

2 GAMS指南 6

2.1 简介 6

2.2 GAMS模型的结构 8

2.3 集合 9

2.4 数据 10

2.4.1 列表数据输入 10

2.4.2 表格数据输入 11

2.4.3 直接赋值数据输入 12

2.5 变量 13

2.6 方程 13

2.6.1 方程声明 14

2.6.2 GAMS求和(和求积)符号 14

2.6.3 方程定义 15

2.7 目标函数 16

2.8 模型和求解语句 16

2.9 显示语句 17

2.10 ‘.lo,.l,.up,.m’数据库 17

2.10.1 变量的边界和初值的赋值 17

2.10.2 最优值的转换和显示 18

2.11 GAMS输出 19

2.11.1 返回输出 19

2.11.2 错误信息 21

2.11.3 引用映射 23

2.11.4 方程列表 24

2.11.5 模型统计 25

2.11.6 状态报告 25

2.11.7 求解报告 26

2.12 小结 27

3 GAMS程序 29

3.1 简介 29

3.2 GAMS程序的结构 29

3.2.1 GAMS输入的格式 29

3.2.2 GAMS语句的分类 30

3.2.3 GAMS程序的组织 30

3.3 数据类型和定义 31

3.4 语言条目 32

3.4.1 字符 32

3.4.2 保留字 33

3.4.3 标识符 33

3.4.4 标签 33

3.4.5 文本 34

3.4.6 数字 34

3.4.7 分隔符 35

3.4.8 注释 35

3.5 小结 36

4 集合定义 37

4.1 简介 37

4.2 简单集合 37

4.2.1 语法 37

4.2.2 集合名称 37

4.2.3 集合元素 38

4.2.4 关联的文本 38

4.2.5 集合元素的顺序 39

4.2.6 多重集合的声明 39

4.3 alias语句:集合的多重命名 40

4.4 子集和范围检查 41

4.5 多维集合 41

4.5.1 一对一映射 41

4.5.2 多对多映射 42

4.6 小结 43

5 数据输入:参数、标量和表格 44

5.1 简介 44

5.2 标量 44

5.2.1 语法 44

5.2.2 实例 44

5.3 参数 45

5.3.1 语法 45

5.3.2 实例 45

5.3.3 更高维数的参数数据 46

5.4 表格 46

5.4.1 语法 47

5.4.2 实例 47

5.4.3 连续表格 48

5.4.4 维以上的表格 48

5.4.5 压缩表格 49

5.4.6 处理长行标签 49

5.5 缩写 50

5.5.1 语法 50

5.5.2 实例 50

5.6 小结 50

6 带参数的数据处理 51

6.1 简介 51

6.2 赋值语句 51

6.2.1 scalar赋值 51

6.2.2 带索引赋值 51

6.2.3 显式标签赋值 52

6.2.4 子集赋值 52

6.2.5 控制索引问题 52

6.2.6 赋值中的扩展范围标识符 53

6.2.7 赋值中的缩写 53

6.3 表达式 53

6.3.1 标准的算术操作符 53

6.3.2 带索引操作 54

6.3.3 函数 55

6.3.4 扩展范围的算法和错误处理 56

6.4 小结 57

7 变量 58

7.1 简介 58

7.2 变量声明 58

7.2.1 语法 58

7.2.2 变量类型 59

7.2.3 变量声明的方式 59

7.3 变量的属性 60

7.3.1 变量的边界 60

7.3.2 固定变量 60

7.3.3 变量的活动水平 60

7.4 显示和赋值语句中的变量 61

7.4.1 变量属性的赋值 61

7.4.2 赋值中的变量属性 61

7.4.3 显示变量的属性 62

7.5 小结 62

8 方程 63

8.1 简介 63

8.2 方程声明 63

8.2.1 语法 63

8.2.2 实例 63

8.3 方程定义 64

8.3.1 语法 64

8.3.2 实例 64

8.3.3 标量方程 64

8.3.4 带索引的方程 65

8.3.5 方程中明确使用标签 65

8.4 方程定义中的表达式 65

8.4.1 方程定义中的算术操作符 65

8.4.2 方程定义中的函数 66

8.4.3 方程中防止未定义操作 67

8.5 方程的数据处理方面 67

9 模型和求解语句 69

9.1 简介 69

9.2 model语句 69

9.2.1 语法 69

9.2.2 模型分类 70

9.2.3 模型属性 70

9.3 solve语句 71

9.3.1 语法 72

9.3.2 有效solve语句的必要条件 72

9.3.3 solve语句触发的操作 72

9.4 有多个solve语句的程序 73

9.4.1 几个模型 73

9.4.2 灵敏性或情景分析 73

9.4.3 非标准算法的迭代 74

9.5 利用GAMS新求解器 75

10 GAMS输出 76

10.1 简介 76

10.2 实例模型 76

10.3 编译输出 77

10.3.1 输入文件的返回打印 77

10.3.2 符号引用映射 79

10.3.3 符号列表映射 80

10.3.4 唯一的元素列表——映射 81

10.3.5 用途广泛的$控制指令 81

10.4 执行输出 82

10.5 求解语句产生的输出 82

10.5.1 方程列表 82

10.5.2 列列表 84

10.5.3 模型统计 84

10.5.4 求解摘要 85

10.5.5 求解器报告 88

10.5.6 求解列表 89

10.5.7 报告摘要 90

10.5.8 文件摘要 90

10.6 错误报告 90

10.6.1 编译错误 91

10.6.2 编译时间错误 92

10.6.3 执行错误 93

10.6.4 求解错误 93

10.7 小结 94

11 条件表达式、赋值和方程 95

11.1 简介 95

11.2 逻辑条件 95

11.2.1 数值表达式作为逻辑条件 95

11.2.2 数值关系运算符 95

11.2.3 逻辑运算符 96

11.2.4 集合成员 96

11.2.5 首字母缩写词的逻辑条件 96

11.2.6 逻辑条件的数值 96

11.2.7 混合逻辑条件:运算符的优先顺序 97

11.2.8 混合逻辑条件:实例 97

11.3 $条件 98

11.3.1 实例 98

11.3.2 嵌套的$条件 98

11.4 条件赋值 98

11.4.1 赋值语句左边$条件 99

11.4.2 赋值语句右边$条件 99

11.4.3 索引操作中过滤控制索引 100

11.4.4 赋值语句过滤集合 100

11.5 条件索引操作 101

11.5.1 索引操作中过滤控制索引 102

11.6 条件方程 103

11.6.1 代数式内的$运算符 103

11.6.2 定义域上的$控制 103

11.6.3 过滤定义域 103

12 动态集合 105

12.1 简介 105

12.2 指定动态集合的元素 105

12.2.1 语法 105

12.2.2 实例 105

12.2.3 多重索引的动态集合 106

12.2.4 动态集合域上的赋值 106

12.2.5 动态集合域上定义的方程 106

12.3 在动态集合内使用$控制 107

12.3.1 赋值 107

12.3.2 索引操作 107

12.3.3 方程 108

12.3.4 通过动态集合过滤 108

12.4 集合运算 108

12.4.1 并集 108

12.4.2 交集 109

12.4.3 补集 109

12.4.4 差集 109

12.5 小结 109

13 集合顺序:有序集合 110

13.1 简介 110

13.2 有序集合和无序集合 110

13.3 ord和card 111

13.3.1 ord运算符 111

13.3.2 card运算符 112

13.4 lag和lead运算符 112

13.5 赋值中的lag和lead 113

13.5.1 线性lag和lead运算符——引用 113

13.5.2 线性lag和lead运算符——赋值 113

13.5.3 循环lag和lead运算符 114

13.6 方程中的lag和lead 115

13.6.1 线性lag和lead运算符——域控制 115

13.6.2 线性lag和lead运算符——引用 116

13.6.3 循环lag和lead运算符 116

13.7 小结 116

14 display语句 117

14.1 简介 117

14.2 语法 117

14.3 实例 117

14.4 display中的索引顺序 118

14.4.1 实例 119

14.5 display控制 120

14.5.1 全局display控制 120

14.5.2 局部display控制 120

14.5.3 用列表格式产生数据的display语句 121

15 put输出工具 123

15.1 简介 123

15.2 语法 123

15.3 实例 123

15.4 输出文件 125

15.4.1 定义文件 125

15.4.2 指定文件 126

15.4.3 关闭文件 126

15.4.4 追加到文件 126

15.5 页面格式 126

15.6 页面区域 127

15.6.1 访问各页面区 128

15.6.2 分页 128

15.7 页面上定位光标 129

15.8 系统后缀 129

15.9 输出项 129

15.9.1 文本项 130

15.9.2 数字项 131

15.9.3 集合值项 131

15.10 全局项格式化 131

15.10.1 字段调整 131

15.10.2 字段宽度 132

15.11 局部项格式化 132

15.12 附加数字显示控制 133

15.13 光标控制 134

15.13.1 当前光标列 134

15.13.2 当前光标行 135

15.13.3 末行控制 135

15.14 分页控制 136

15.15 异常处理 136

15.16 与put语句有关的错误的来源 136

15.16.1 语法错误 136

15.16.2 put错误 137

15.17 简单的电子数据表/数据库应用 137

15.17.1 实例 137

16 程序流控制特性 139

16.1 简介 139

16.2 loop语句 139

16.2.1 语法 139

16.2.2 实例 139

16.3 if—elseif—else语句 140

16.3.1 语法 141

16.3.2 实例 141

16.4 while语句 142

16.4.1 语法 142

16.4.2 实例 142

16.5 for语句 143

16.5.1 语法 143

16.5.2 实例 143

17 专用语言的特点 145

17.1 简介 145

17.2 专用MIP的特点 145

17.2.1 离散变量的类型 145

17.2.2 类型1特殊排序集合(SOS1) 145

17.2.3 类型2特殊排序集合(SOS2) 146

17.2.4 半连续型变量 147

17.2.5 半整数型变量 147

17.2.6 设置分支优先级 148

17.3 模型比例缩放——比例选项 148

17.3.1 比例选项 148

17.3.2 变量比例缩放 149

17.3.3 方程比例缩放 149

17.3.4 导数比例缩放 150

附录 151

A 术语表 151

B GAMS模型库 156

B.1 模型 157

C GAMS调用 168

C.1 一般“直接的”GAMS调用 168

C.1.1 通过命令行指定选项 168

C.2 命令行参数列表 168

C.3 命令行参数的详细描述 169

D $控制选项 189

D.1 简介 189

D.1.1 语法 189

D.2 $控制选项列表 189

D.3 $控制选项的详细描述 191

E 选项语句 219

E.1 概述 219

E.1.1 语法 219

E.2 选项列表 220

E.3 选项的详细描述 221

F 保存和重新开始特性 224

F.1 简介 224

F.2 保存和重新开始特性 224

F.2.1 保存工作文件 225

F.2.2 从工作文件重新开始 225

F.3 工作文件使用的方式 226

F.3.1 模型和数据的分离 226

F.3.2 渐进式程序开发 227

F.3.3 跟踪复杂问题的求解过程 227

F.3.4 多种方案 227

G GDX工具 229

G.1 简介 229

G.2 在GAMS中使用GDX工具 229

G.2.1 编译阶段 229

G.2.2 执行阶段 231

G.3 检查GDX文件 233

G.4 GDX的用途 233

G.5 GDXXRW 233

G.5.1 GDXXRW参数和选项 234

G.5.2 GDXXRW警告 239

G.5.3 GDXXRW例子 239

G.6 GDXDUMP 245

G.6.1 GDXDUMP例子 246

G.7 GDXDIFF 246

G.7.1 GDXDIFF例子 247

G.8 GDXMERGE 248

G.8.1 GDXMERGE例子 248

G.9 GDXRANK 249

G.9.1 GDXRANK例子 249

G.10 GDXCOPY 250

G.10.1 GDXCOPY例子 250

H 安全工作文件 252

H.1 简介 252

H.2 第一个例子 253

H.3 安全工作文件 254

H.4 访问控制命令 255

H.5 访问控制的高级应用 255

H.6 限制条件和未来需求 257

I 压缩和加密输入文件 258

I.1 简介 258

I.2 第一个例子 258

I.3 CEFILES Gamslib模型 259

I.4 ENCRYPT CAMSLIB模型 260

J GAMS网格计算工具 263

J.1 简介 263

J.2 基本概念 263

J.3 第一个例子 264

J.4 网格特性的高级应用 266

J.4.1 超长运行时间 267

J.5 网格特性概要 268

J.5.1 网格句柄函数 268

J.5.2 网格模型属性 269

J.5.3 网格求解提取 269

J.5.4 网格目录 269

J.6 体系结构和专用化 270

J.6.1 网格提交测试 271

J.7 术语和定义 272

K 安装和系统注意事项 273

第二篇 常用求解器 281

1 BARON 281

1.1 简介 281

1.1.1 许可要求和软件必要条件 281

1.1.2 运行GAMS/BARON 281

1.2 模型要求 282

1.2.1 变量和表达式范围 282

1.2.2 允许的非线性函数 282

1.3 BARON输出 282

1.3.1 BARON日志输出 282

1.3.2 终止信息、模型和求解器状态 284

1.4 BARON的某些特性 285

1.4.1 不需要初始点 285

1.4.2 找出最优、次优、第三优等的解或所有的可行解 285

1.4.3 用BARON作为多初始试探法求解 286

1.5 BARON选项 286

1.5.1 设置变量边界和分枝优先顺序 287

1.5.2 终止选项 288

1.5.3 松弛选项 289

1.5.4 范围减小选项 289

1.5.5 分枝选项 290

1.5.6 试探法局部搜索选项 291

1.5.7 输出选项 292

1.5.8 其他选项 292

2 Cplex 10 294

2.1 简介 294

2.2 如何用Cplex运行模型 294

2.3 Cplex概述 294

2.3.1 线性规划 294

2.3.2 二次约束规划 295

2.3.3 混合整数规划 295

2.3.4 可行的松弛 296

2.4 GAMS选项 296

2.5 Cplex选项概要 297

2.5.1 预处理和一般选项 297

2.5.2 单纯形算法选项 298

2.5.3 单纯形限制选项 299

2.5.4 单纯形公差选项 299

2.5.5 闸法特殊选项 299

2.5.6 筛选法特殊选项 299

2.5.7 MIP算法选项 299

2.5.8 MIP限制选项 300

2.5.9 MIP公差选项 301

2.5.10 输出选项 301

2.5.11 GAMS/Cplex选项文件 301

2.6 特别注意 302

2.6.1 物理内存限制 302

2.6.2 使用特殊的有序集合 302

2.6.3 使用半连续和半整数变量 302

2.6.4 MIP问题的内存不足 303

2.6.5 无法证实整数最优 303

2.6.6 从MIP解开始 303

2.6.7 使用可行性松弛 304

2.7 GAMS/Cplex日志文件 305

2.8 Cplex选项的详细描述 308

3 DICOPT软件 332

3.1 简介 332

3.2 要求 332

3.3 如何用GAMS/DICOPT运行模型 332

3.4 DICOPT概述 333

3.5 算法 333

3.6 建模 335

3.6.1 松弛模型 335

3.6.2 OPTCR和OPTCA 336

3.6.3 整数表达式 337

3.6.4 非光滑函数 337

3.7 GAMS选项 338

3.7.1 option语句 338

3.7.2 模型后缀 339

3.8 DICOPT选项 340

3.9 DICOPT输出 347

3.10 专题 349

3.10.1 停止规则 349

3.10.2 求解NLP问题 350

3.10.3 求解MIP主问题 351

3.10.4 模型调试 351

参考文献 351

4 MINOS 353

4.1 引言 353

4.2 如何用GAMS/MINOS运行模型 353

4.3 GAMS/MINOS概述 354

4.3.1 线性规划 354

4.3.2 非线性目标问题 355

4.3.3 非线性约束问题 356

4.4 建模问题 357

4.4.1 初始点 357

4.4.2 边界 358

4.4.3 比例缩放 358

4.4.4 目标函数 359

4.5 GAMS选项 359

4.5.1 通过选项语句指定的选项 359

4.5.2 通过模型后缀指定的选项 361

4.6 MINOS选项概述 362

4.6.1 与选项相关的输出 362

4.6.2 影响公差的选项 362

4.6.3 影响迭代限制的选项 363

4.6.4 其他算法选项 363

4.6.5 GAMS/MINOS选项文件的实例 363

4.7 特别提示 364

4.7.1 建模提示 364

4.7.2 存储 364

4.8 G AMS/MINOS日志文件 365

4.8.1 线性规划 365

4.8.2 线性约束的NLP日志 366

4.8.3 非线性约束的NLP日志 367

4.9 MINOS选项详述 368

4.10 退出条件 381

参考文献 384

5 MOSEK 385

5.1 简介 385

5.1.1 许可 385

5.1.2 不可行/无界模型的报告 385

5.1.3 并行求解 386

5.1.4 不可行报告 386

5.1.5 非线性规划 387

5.1.6 涉及凸规划的建模问题 387

5.2 圆锥规划 387

5.2.1 简介 388

5.2.2 GAMS中圆锥约束的实现 388

5.2.3 实例 389

5.3 MOSEK选项 391

5.4 MOSEK选项摘要 392

5.4.1 一般选项和预处理选项 392

5.4.2 问题数据选项 393

5.4.3 输出选项 394

5.4.4 内点最优化程序选项 394

5.4.5 单纯形最优化程序和基识别选项 396

5.4.6 混合整数最优化程序选项 396

5.5 MOSEK选项详细描述 398

5.6 MOSEK日志文件 410

5.6.1 使用内点最优化程序的日志 411

5.6.2 使用单纯形最优化程序的日志 412

5.6.3 使用混合整数最优化程序的日志 413

6 PATH 4.6 416

6.1 互补性 416

6.1.1 运输问题 416

6.1.2 Walrasian均衡 419

6.1.3 求解 421

6.1.4 缺陷 424

6.2 PATH 425

6.2.1 日志文件 426

6.2.2 状态文件 430

6.2.3 用户中断 430

6.2.4 选项 430

6.2.5 PATHC 433

6.2.6 预处理 433

6.3 高级主题 434

6.3.1 MCP的正式定义 434

6.3.2 算法特性 434

6.3.3 困难模型 438

6.4 个案研究:Von Thunen土地模型 443

6.4.1 经典模型 443

6.4.2 干预定价 445

6.4.3 嵌套生产和维护 446

参考文献 446

7 SBB 449

7.1 简介 450

7.2 分枝定界法 450

7.3 带伪成本的SBB 450

7.4 SBB选项 451

7.5 SBB日志文件 453

7.6 DICOPT和SBB的比较 456

8 MPSGE 457

8.1 简介 457

8.2 启动 457

8.3 消费者需求理论 458

8.4 用MPSGE模拟消费者需求 460

8.5 纯交换模型 467

8.6 进口关税和市场支配力 469

8.7 练习解答 472