第1章 IBM ILOG CPLEX简介 1
1.1 发展历程 1
1.2 Optimization Studio的安装 2
1.3 CPLEX Studio IDE操作界面 4
1.3.1 界面组成 5
1.3.2 视图操作 9
1.4 CPLEX API接口 10
1.4.1 Python调用CPLEX 10
1.4.2 Java调用CPLEX 13
1.4.3 MATLAB调用CPLEX 16
1.4.4 C 调用CPLEX 17
1.5 CPLEX在供应链管理中的应用 21
1.5.1 供应链管理概述 21
1.5.2 供应链管理中的优化问题 21
第2章 CPLEX OPL项目操作及示例 24
2.1 在OPL项目窗口中处理项目 24
2.1.1 OPL项目介绍 24
2.1.2 OPL项目管理基本操作 27
2.1.3 OPL项目导入 30
2.2 OPL项目示例 32
2.2.1 示例背景 32
2.2.2 新建项目 32
2.2.3 执行运行配置 37
2.2.4 查看解法 38
2.2.5 保存和恢复结果 39
2.2.6 查看输出选项卡 41
第3章 OPL建模语言 48
3.1 OPL简介 48
3.1.1 OPL基本介绍 48
3.1.2 OPL和IBM ILOG 脚本语言的区别 48
3.2 OPL常用符号 49
3.2.1 算术运算符 50
3.2.2 关系运算符 51
3.2.3 逻辑运算符 51
3.2.4 集合运算符 52
3.2.5 其他符号 53
3.3 数据类型 55
3.3.1 基本数据类型 55
3.3.2 数据结构 56
3.4 数据源 65
3.4.1 数据初始化 65
3.4.2 数组初始化 67
3.4.3 元组初始化 69
3.4.4 Excel表格输入/输出 70
3.5 决策变量声明 73
3.5.1 决策变量类型 73
3.5.2 决策变量的表达式 75
3.6 目标函数 76
3.6.1 值函数 76
3.6.2 小值函数 76
3.6.3 分段线性函数 76
3.6.4 分步函数 77
3.7 约束 78
3.7.1 使用约束 78
3.7.2 约束标签 80
3.7.3 约束类型 81
3.8 形参 82
3.8.1 基本形参 82
3.8.2 形参元组 83
3.9 OPL语言模块 84
3.9.1 预处理模块 84
3.9.2 正在处理模块 86
3.9.3 后处理模块 87
3.9.4 流程控制模块 87
第4章 供应链管理典型问题及CPLEX实现 89
4.1 供应链运作管理问题 89
4.2 单周期生产问题 90
4.2.1 问题描述 91
4.2.2 模型建立 92
4.2.3 CPLEX程序设计 93
4.3 具有固定费用的单周期生产问题 95
4.3.1 固定费用问题描述 95
4.3.2 模型建立 96
4.3.3 CPLEX程序设计 97
4.4 多周期生产的库存问题 100
4.4.1 问题描述 100
4.4.2 模型建立 100
4.4.3 CPLEX程序设计 102
第5章 供应链网络布局问题及CPLEX实现 105
5.1 供应链网络布局问题 105
5.1.1 问题描述 105
5.1.2 模型建立 107
5.1.3 CPLEX程序设计 109
5.2 考虑直配模式的供应链网络布局问题 113
5.2.1 问题描述 113
5.2.2 模型建立 113
5.2.3 CPLEX程序设计 115
第6章 生产排程问题及CPLEX实现 120
6.1 生产排程问题概述 120
6.2 简单的生产排程问题 121
6.2.1 问题描述 121
6.2.2 模型构建 121
6.2.3 CPLEX程序设计 122
6.3 考虑库存与配送的生产排程问题 125
6.3.1 问题描述 125
6.3.2 模型构建 125
6.3.3 CPLEX程序设计 127
第7章 运输车辆调度问题及CPLEX实现 131
7.1 车辆调度问题概述 131
7.1.1 车辆调度问题的定义及构成要素 131
7.1.2 车辆调度问题的分类 132
7.1.3 车辆调度问题的求解方法 133
7.2 简单的车辆调度问题 134
7.2.1 问题描述 134
7.2.2 模型构建 135
7.2.3 CPLEX程序设计 136
7.3 考虑时间窗的车辆调度问题 139
7.3.1 问题背景 139
7.3.2 问题描述 139
7.3.3 模型构建 140
7.3.4 CPLEX程序设计 142
第8章 复杂情景车辆智能调度问题及CPLEX实现 146
8.1 考虑限号的车辆调度问题 146
8.1.1 问题背景 146
8.1.2 问题描述与分析 146
8.1.3 模型构建 147
8.1.4 CPLEX程序设计 148
8.2 考虑充电和时间窗的车辆调度问题 152
8.2.1 问题背景 152
8.2.2 问题描述 152
8.2.3 模型构建 154
8.2.4 CPLEX程序设计 156
附录A CPLEX基本技术问题 162
附录B CPELX相关求解过程中的问题 167
参考文献 172