《自然约束语言NCL简明教程》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:周建阳著
  • 出 版 社:北京:科学出版社
  • 出版年份:2009
  • ISBN:9787030249739
  • 页数:236 页
图书介绍:《自然约束语言NCL简明教程》着重介绍自然约束语言NCL(NaturalConstraintLanguage)的理论基础——混合集合规划与自然建模;另一方面,本书详细介绍使用NCL语言的开发平台——POEM(ProgramminginOperationalandExpressiveModels)对组合优化问题的求解方法。

第1章 NCL与求解系统 1

1.1 求解系统 1

解算器(SOLVER) 1

语法分析器(PARSER) 2

规则(RULES) 3

1.2 NCL语言简介 3

自然建模(NATURAL MODELING) 3

混合集合规划(MIXED SET PROGRAMMING) 3

求解规则(SEARCH RULES) 4

NCL是联合求解系统 4

1.3 基于NCL的POEM?平台 5

第2章 NCL的词法 7

2.1 常规词法 7

字符 7

标识符 7

特殊标识符 7

常量 8

未确定值 8

注释 9

2.2 数学编码 9

数学符号一览表 9

函数一览表 10

TEX聚合符 11

2.3 数据类型 12

广义数据类型 12

逻辑推理的数据精度 13

集合类型 13

日期/时间类型 14

缺省值 14

数据示例 14

第3章 NCL的语法及语义 16

3.1 NCL的常规逻辑 16

语句(STATEMENT) 16

量词(QUANTIFICATION) 1

索引(INDEX) 18

条件句(CONDITIONAL) 19

约束(CONSTRAINT) 20

表达式(EXPRESSION) 22

浮点数表达式(FLOAT EXPRESSION) 22

整数表达式(INTEGER EXPRESSION) 22

字符串(STRING) 23

逻辑指针(REFERENCE) 23

集合表达式(SET EXPRESSION) 24

布尔表达式(BOOLEAN EXPRESSION) 24

聚合式(AGGREGATION) 24

常量(CONSTANT) 28

输入/输出的格式(INPUT AND OUTPUT FORMAT) 29

日期/时间格式(DATE/TIME FORMAT) 29

日期/时间的属性函数(DATE/TIME ATTRIBUTE) 30

变量(VARIABLE) 31

匿名变量(ANONYMOUS VARIABLE) 31

连缀(CONCATENATION) 31

个性化消息(CUSTOM MESSAGE) 32

软约束(SOFT CONSTRAINT) 32

数据源(DATA POOL) 33

输入/输出的指定(I/O SPECIFICATION) 33

输出(PRINT) 34

宏调用(INCLUDE) 34

3.2 NCL的时态逻辑 34

系统变量(SYSTEM VARIABLE) 35

抽取(EXTRACTION) 37

赋值(ASSIGNMENT) 38

跳转(GOTO) 38

子模型(SUB MODEL) 39

SQL语言接口 40

操作系统的OS命令(OS COMMAND) 41

期待约束(EXPECTATION CONSTRAINT) 41

3.3 NCL的求解逻辑 41

切削与搜索(CUTAND SEARCH) 41

查询与搜索(QUERY AND SEARCH) 42

枚举方式(ENUMERATION MODE) 42

查询准则(QUERY CRITERIA) 43

优化目标(OPTIMIZATION OBJECTIVE) 44

求解过程的示范 44

对求解的系统控制 46

3.4 消息与跟踪管理 47

NCL消息(NCL MESSAGE)&4 7

终止状态(TERMINATION STATUS) 49

可编程的暂停(PROGRAMMED BREAK) 49

可编程的调试(PROGRAMMED DEBUGGING) 49

消息处理器(MESSAGE HANDLER) 50

3.5 NCL的语法范例 51

布尔逻辑(BOOLEAN LOGIC) 51

无穷大(INFINITY) 51

数值约束(NUMERIC CONSTRAINTS) 52

集合推理(SET REASONING) 53

量词(QUANTIFICATION) 54

混合集合规划示例(MIXED SET PROGRAM) 57

分支(SWITCH) 58

规则(RULE) 60

优化目标(OPTIMIZATION OBJECTIVE) 60

输入/出机制(I/O FACILITIES) 61

查询及搜索(QUERY AND SEARCH) 62

跳转(GOTO) 63

聚合(AGGREGATION) 64

用作下标的指针(REFERENCE SUBSCRIPTS) 67

被引用的运算式(REFERENCED OPERATORS) 69

连缀(CONCATENATION) 70

日期/时间的管理(DATE/TIME MANAGEMENT) 72

抽取及时态逻辑(EXTRACTION AND TEMPORAL LOGIC) 75

赋值(ASSIGNMENT) 76

子字符串及集合的元素(SUBSTRING AND ELEMENTS FROM SET) 77

获取集合的分段区间(OBTAINING PIECEWISE INTERVALS FROM A SET) 79

个性化消息(CUSTOM MESSAGE) 80

内存缓冲区数据源(BUFFER POOL) 80

存储于文件的子模型(SUB MODEL IN A FILE) 81

存储于内存缓冲区的子模型(SUB MODEL IN A BUFFER POOL) 82

子模型的返回值(RETURN VALUES OF A SUB MODEL) 83

嵌套调用(NESTED CALL) 83

子模型调用溢出(OVERFLOW IN A SUB MODEL CALL) 84

数据库连接及SQL查询(DATABASE CONNECTION AND SQL QUERY) 84

操作系统OS命令(OS COMMAND) 87

匿名变量及缺省值(ANONYMOUS VARIABLES AND DEFAULT VALUES) 88

系统变量(SYSTEM VARIABLE) 90

软约束(SOFT CONSTRAINT) 91

用期待约束进行程序调试(PROGRAMMED DEBUGGING WITH EXPECTATION CONSTRAINT) 91

第4章 NCL语言的开发平台POEM? 93

4.1 POEM的主界面 93

工具栏(TOOL BAR) 94

TEX符号栏 94

工作区(WORKSPACE) 95

编辑窗(EDIT WINDOW) 96

跟踪窗(TRACE WINDOW) 96

4.2 项目配置 97

NCL的数据源 97

NCL的参数配置 97

项目配置窗 101

4.3 模型夹及模型库 102

模型夹(MODEL FOLDER) 102

NCL模型库(MODEL LIBRARY) 103

4.4 信息表 103

现行模型表(RUNNING MODELS) 104

常量表(CONSTANTS) 104

变量表(VARIABLES) 105

约束表(CONSTRAINTS) 106

4.5 视图及调试 107

快捷查视(QUICK WATCH) 107

浏览器(BROWSER) 108

约束调试器(CONSTRAINT DEBUGGER) 109

可视化调试器(VISUAL DEBUGGER) 109

结果可视化窗(SOLUTION VIEWER) 110

4.6 跟踪窗与工作模式 111

调试模式(DEBUG MODE) 112

计时模式(TIMER MODE) 113

跟踪级别(TRACE LEVEL) 113

诊断信息的选项窗 113

统计信息的选项窗 114

推荐的模型诊断模式 114

推荐的正常工作模式 114

4.7 在线帮助 115

第5章 建模及求解 117

5.1 工程化建模 117

建模步骤 117

变量的命名公约 117

主动式模型改进 119

被动式模型改进 120

5.2 NCL的模型抽象 120

两两不等的整数(DISTINCT INTEGERS) 120

两两不交的集合(DISJOINT SETS) 121

排序(SORTING) 121

集合的覆盖与划分(SET COVERING AND PARTITIONING) 123

拼排(PACKING) 125

有限能力(FINITE CAPACITY) 125

求和(SUM) 126

二维累积(CUMULATION) 126

5.3 智力游戏(PUZZLES) 127

字谜(SEND MORE MONEY) 127

素数问题(PRIMES) 128

整数排序(INTEGER SORTING) 128

皇后问题(QUEENS) 129

神奇的方块(MAGIC SQUARE) 130

数独(SUDOKU) 132

神奇的序列(MAGIC SEQUENCE) 134

爱因斯坦的游戏题(EINSTEIN'S QUIZ) 135

数谜(CALCULS D'ENFER) 136

方块拼排(SQUARE PACKING) 138

骑士问题(KNIGHT) 139

5.4 求解复杂问题 142

集合划分(SET PARTITIONING) 142

高尔夫球对抗赛(GOLF TOURNAMENT) 143

赛舟会(PROGRESSIVE PARTY) 145

货船装载(SHIP LOADING) 149

车间排序(JOB-SHOP SCHEDULING) 152

最小化热能转换器的能耗(MINIMIZING THE COST OF A HEAT EXCHANGER) 156

带时间窗的取货与送货(PICKUP AND DELIVERY WITH TIME WINDOWS) 157

练习题 165

5.5 松弛逻辑与二次优化 165

交互逻辑(INTERACTION LOGIC) 165

迭代优化(ITERATIVE OPTIMIZATION) 165

旅行商问题的迭代优化方法(ITERATIVE OPTIMIZATION FOR TSP) 166

TSP的练习题 172

第6章 NCL的工业应用 173

6.1 生产排程 173

问题定义 173

数据逻辑 175

简化的优化模型 179

时间的可视化工具:甘特图(GANTT CHART) 184

练习题 184

6.2 人员排班计划 184

问题定义 184

数据逻辑 185

简化的优化模型 190

统计信息的可视化工具:直方图(HISTOGRAM) 196

练习题 197

6.3 多式联运优化 197

问题定义 197

数据逻辑 197

简化的优化模型 202

地理信息的可视化工具:地图(MAP) 210

练习题 210

参考文献 211

附录1 NCL语法的TEX编码 213

附录2 ComPoem ActiveX组件 227

英文索引 230

中文索引 233