【新华书店正版】数学建模与数学规划:方法、案例及编程实战 Python+COPT/Gurobi实现 图书
9787121487170
¥
64
6.5折
¥
98
全新
库存599件
作者郭国文
出版社电子工业出版社
ISBN9787121487170
出版时间2024-09
装帧平装
定价98元
货号10119799806735
上书时间2024-12-23
商品详情
- 品相描述:全新
- 商品描述
-
作 者:刘兴禄 等 编
定 价:98
出 版 社:电子工业出版社
出版日期:2024年09月01日
页 数:380
装 帧:平装
ISBN:9787121487170
●第Ⅰ部分 基本理论和建模方法
第1章 几种重要的数学规划模型 3
1.1 数学规划模型的分类 3
1.2 几种数学规划模型的一般形式及简单案例 5
1.2.1 线性规划 5
1.2.2 混合整数规划 6
1.2.3 二次规划 6
1.2.4 二次约束规划 7
1.2.5 二次约束二次规划 8
1.2.6 二阶锥规划 8
1.2.7 半定规划 11
1.3 数学规划求解器 12
第2章 逻辑约束和大 M 建模 14
2.1 命题和逻辑连接词 14
2.2 逻辑运算与建模 15
2.2.1 逻辑非 15
2.2.2 逻辑与 15
2.2.3 逻辑或 18
2.2.4 逻辑异或 20
2.3 逻辑约束与大 M 建模方法 21
2.3.1 常见逻辑条件建模 21
2.3.2 大 M 建模方法 22
2.3.3 If-then 约束 23
2.4 其他逻辑约束建模案例 25
2.4.1 至少有 m 个不等式约束成立 25
2.4.2 至少有 m 个等式约束成立 26
2.4.3 计数问题 26
2.4.4 设施选址问题 29
第3章 线性化方法 32
3.1 乘积式 32
3.1.1 两个或多个 0-1 变量相乘 32
3.1.2 0-1 变量乘以连续变量:情形 1 33
3.1.3 0-1 变量乘以连续变量:情形 2 34
3.1.4 两个连续变量相乘的凸松弛方法:McCormick 包络 34
3.1.5 调用求解器验证乘积式线性化方法 35
3.2 取整 37
3.3 绝对值 38
3.4 min/max 函数 40
3.4.1 max {x1,x2} 40
3.4.2 min {x1,x2} 42
3.5 分式函数 43
3.6 分段线性函数 44
3.7 特殊有序集约束及其在线性化中的应用 49
3.7.1 特殊有序集约束 49
3.7.2 应用案例 1:绝对值表达式的线性化 49
3.7.3 应用案例 2:分段线性函数的线性化 50
3.7.4 应用案例 3:平方根表达式的近似线性化 51
3.8 学术论文中线性化方法的应用案例 53
第4章 计算复杂性理论简介 54
4.1 引言 54
4.2 时间复杂度 55
4.2.1 什么是时间复杂度 55
4.2.2 时间复杂度的分析方法与案例 56
4.3 P、NP、NPC 和 NP-hard 65
4.3.1 P 和 NP 65
4.3.2 判定问题和优化问题 66
4.3.3 约化 66
4.3.4 NPC 和 NP-Hard 67
4.4 常见的 NPC 和 NP-hard 问题 68
4.5 小结 69
第Ⅱ部分 建模案例详解
第5章 生产计划优化问题 73
5.1 问题介绍 73
5.2 问题建模 73
5.3 完整数学模型 76
5.4 编程实战 77
5.4.1 算例准备 77
5.4.2 建立模型并求解: Python 调用 COPT 实现 77
5.4.3 建立模型并求解: Python 调用 Gurobi 实现 78
5.5 拓展 79
第6章 数论方程的数学规划模型 80
6.1 问题简介 80
6.2 方法 1:引入辅助变量进行转换 81
6.3 方法 2:消去除法运算 82
6.4 问题拓展 84
6.5 总结 86
第7章 机组排班优化问题 87
7.1 问题描述 87
7.2 问题分析 88
7.3 问题建模 90
7.3.1 模型假设 90
7.3.2 符号说明 90
7.3.3 数学模型 91
7.4 航班邻接网络的相关问题 93
7.5 编程实战:Python 调用 COPT 实现 95
7.6 编程实战:Python 调用 Gurobi 实现 95
7.7 算例参数设计与求解结果展示 96
7.8 小结 98
第8章 配送网络规划问题 99
8.1 问题描述 99
8.2 问题建模 100
8.3 完整数学模型 102
8.4 编程实战 102
8.4.1 算例数据准备 103
8.4.2 建立模型并求解: Python 调用 COPT 实现 104
8.4.3 建立模型并求解: Python 调用 Gurobi 实现 104
8.4.4 求解结果 104
8.5 拓展 106
第9章 数字华容道问题 107
9.1 数字华容道问题简介 107
9.2 建模思路详解 108
9.3 完整数学模型 112
9.4 编程实战 113
9.4.1 参数准备 113
9.4.2 测试算例及其相关参数初始化 115
9.4.3 建立模型并求解: Python 调用 COPT 实现 115
9.4.4 建立模型并求解: Python 调用 Gurobi 实现 116
9.4.5 数值实验结果及分析 116
9.5 拓展 118
9.5.1 允许区块移动 118
9.5.2 模型的收紧 119
第10章 密集存储仓库取货路径优化问题 120
10.1 密集存储仓库简介 120
10.2 建模思路详解 122
10.2.1 建模方法 1:基于物品编号的模型 123
10.2.2 建模方法 2:不考虑非目标货物编号的模型 125
10.2.3 完整数学模型:以建模方法 2 为例 129
10.3 编程实战 130
10.3.1 参数准备 130
10.3.2 建立 NIPA 模型并求解: Python 调用 COPT 实现 133
10.3.3 建立 NIPA 模型并求解: Python 调用 Gurobi 实现 134
10.3.4 建立 NIPF 模型并求解: Python 调用 COPT 实现 134
10.3.5 建立 NIPF 模型并求解: Python 调用 Gurobi 实现 135
10.4 数值实验结果展示及分析 135
10.5 模型拓展 135
10.5.1 NIPF 模型的约束分析 135
10.5.2 允许同时移动 136
第11章 机器人组装生产计划优化问题 137
11.1 问题介绍与分析 137
11.2 问题一的建模和求解 138
11.2.1 问题分析 138
11.2.2 模型参数 139
11.2.3 决策变量 139
11.2.4 目标函数 140
11.2.5 构建约束 140
11.2.6 完整数学模型 143
11.2.7 编程实战:Python 调用 COPT 实现 144
11.2.8 编程实战:Python 调用 Gurobi 实现 144
11.2.9 求解结果 145
11.3 问题二的建模和求解 145
11.3.1 发生变化的约束 145
11.3.2 完整数学模型 146
11.3.3 编程实战:Python 调用 COPT 实现 146
11.3.4 编程实战:Python 调用 Gurobi 实现 147
11.3.5 求解结果 147
11.4 总结与拓展 148
第12章 车辆路径规划问题及其若干变体 149
12.1 车辆路径规划问题简介 149
12.2 带容量约束的车辆路径规划问题的建模 150
12.2.1 基于弧的建模方法 150
12.2.2 基于路径的建模方法 157
12.3 多车场车辆路径规划问题 159
12.3.1 问题介绍 159
12.3.2 MDVRP1:允许返回不同车场 160
12.3.3 MDVRP2:必须返回原车场 162
12.3.4 小结 163
12.4 带时间窗的车辆路径规划问题 163
12.4.1 问题介绍 163
12.4.2 带硬时间窗的车辆路径规划问题 164
12.4.3 带软时间窗的车辆路径规划问题 166
12.4.4 小结 170
12.5 带时间窗的多行程车辆路径规划问题 171
12.5.1 问题介绍 171
12.5.2 第一种建模方法 172
12.5.3 第二种建模方法 176
12.5.4 小结 177
12.6 带时间窗的电动车辆路径规划问题 178
12.6.1 背景简介 178
12.6.2 问题描述 179
12.6.3 问题建模 181
12.6.4 小结 183
12.7 编程实战 183
12.7.1 算例数据读取 183
12.7.2 Python 调用 COPT 实现 184
12.7.3 Python 调用 Gurobi 实现 191
12.8 数值实验和结果分析 199
12.8.1 CVRP 199
12.8.2 MDVRP 199
12.8.3 VRPTW 200
12.8.4 MTVRPTW 203
12.8.5 EVRPTW 204
12.9 总结 205
第13章 取送货问题 206
13.1 问题描述 206
13.2 问题建模 209
13.2.1 一对一的场景 209
13.2.2 多对多的场景 211
13.2.3 一对多对一的场景 213
13.3 一对一场景的编程实战及结果展示 215
13.3.1 算例的生成和读取 215
13.3.2 建立模型并求解: Python 调用 COPT 实现 215
13.3.3 建立模型并求解: Python 调用 Gurobi 实现 215
13.3.4 算例参数设计与结果展示 216
13.4 多对多场景的编程实战及结果展示 217
13.4.1 算例的生成和读取 217
13.4.2 建立模型并求解: Python 调用 COPT 实现 217
13.4.3 建立模型并求解: Python 调用 Gurobi 实现 217
13.4.4 算例参数设计与结果展示 218
13.5 一对多对一场景的编程实战及结果展示 220
13.5.1 算例的生成和读取 220
13.5.2 建立模型并求解: Python 调用 COPT 实现 220
13.5.3 建立模型并求解: Python 调用 Gurobi 实现 221
13.5.4 算例参数设计与结果展示 221
13.6 总结 222
第14章 无人机与卡车联合配送问题 223
14.1 问题背景 223
14.2 两种联合配送模式 224
14.2.1 联合但无交互的模式 224
14.2.2 联合有交互的模式 225
14.3 建模过程详解 226
14.4 完整数学模型 231
14.5 编程实战 233
14.5.1 算例设计 233
14.5.2 算例读取 234
14.5.3 建立模型并求解:Python 调用 COPT 实现 235
14.5.4 建立模型并求解:Python 调用 Gurobi 实现 235
14.5.5 解的提取和可视化 236
14.6 数值实验及结果展示 236
14.7 拓展 238
第Ⅲ部分 编程实战:COPT
第15章 基本建模求解方法 241
15.1 杉数求解器 COPT 基本介绍 241
15.2 COPT 建模求解的准备工作和基本步骤 242
15.2.1 准备工作 242
15.2.2 基本步骤 242
15.3 COPT 建模求解入门:食谱搭配问题 244
15.4 获取模型的属性和结果信息 246
第16章 建模求解方法进阶 248
16.1 建模技巧和辅助工具函数的使用 248
16.1.1 构建表达式的技巧 248
16.1.2 批量添加决策变量/约束 249
16.2 COPT 的重要求解参数 249
16.3 COPT 建模求解进阶:下料问题 250
第17章 非线性优化问题建模与求解 253
17.1 半定规划(SDP) 253
17.2 二阶锥规划(SOCP) 255
17.3 凸二次规划和凸二次约束规划(Convex QP/Convex QCP) 257
第18章 不可行问题的处理 259
18.1 计算 IIS 259
18.1.1 实例演示 260
18.1.2 获取 IIS 计算结果 261
18.2 可行化松弛 262
18.2.1 计算可行化松弛 262
18.2.2 可行化松弛结果解读与模型改进 262
第19章 参数调优工具 265
19.1 引言 265
19.2 参数调优工具的重要功能及参数 265
19.3 代码示例 267
第20章 初始解和解池 269
20.1 初始解和解池简介 269
20.2 初始解重要参数介绍 270
20.3 代码示例:木材切割问题的初始解 270
20.4 初始解日志解读 272
第21章 回调函数的使用 274
21.1 引言 274
21.2 使用步骤 274
21.3 详细案例 275
第Ⅳ部分 编程实战:Gurobi
第22章 基本建模方法 281
22.1 Gurobi 中的建模方法 281
22.1.1 建模流程 281
22.1.2 按行建模和按非零系数建模 283
22.1.3 按列建模 285
22.1.4 按矩阵建模 286
22.1.5 Gurobi 中的模型属性与求解参数 289
22.2 Gurobi 中的各类文件格式与相关操作 290
22.2.1 一个简单的例子 290
22.2.2 各种类型的文件格式 290
22.2.3 模型导入与导出的方法 295
22.3 模型拷贝与模型松弛 296
22.3.1 模型浅拷贝与深拷贝 296
22.3.2 模型松弛 297
第23章 高级建模方法 299
23.1 多目标优化模型的相关操作 299
23.1.1 Gurobi 多目标函数详解 299
23.1.2 多目标优化模型的建模方法 300
23.1.3 一些注意事项 304
23.2 惰性约束的使用技巧 305
23.2.1 Gurobi 中的惰性更新机制 305
23.2.2 Gurobi 中的回调函数 305
23.2.3 惰性约束 306
23.2.4 惰性约束与割平面的区别 309
23.3 特殊约束的表达方式及建模方法 310
23.3.1 一般约束 310
23.3.2 广义约束 310
23.3.3 其他类型的约束 312
第24章 基本求解进程控制方法 314
24.1 设置求解终止条件 314
24.1.1 设置 TimeLimit 314
24.1.2 设置 MIPGap 315
24.1.3 其他常见的终止条件参数 315
24.2 设置预处理算法 316
24.3 设置割平面算法 318
24.4 设置启发式算法 319
24.4.1 Gurobi 中的启发式方法 319
24.4.2 Gurobi 启发式算法的参数设置 321
24.5 设置优化求解策略 322
24.5.1 全局优化策略 322
24.5.2 提升可行解质量 323
24.5.3 加速根节点松弛求解 323
24.5.4 变量分支选择 324
第25章 高级求解进程控制方法 325
25.1 解池管理 325
25.1.1 解池的参数与属性 325
25.1.2 解池功能详解 326
25.1.3 案例演示 327
25.1.4 一些注意事项 330
25.2 给 MIP 模型赋初始解的方法 331
25.2.1 相关属性与参数汇总 331
25.2.2 为 MIP 模型赋一个初始解 332
25.2.3 为 MIP 模型赋多个初始解 332
25.2.4 案例演示 333
25.2.5 其他相关操作 334
第26章 各种信息的解读与获取方法 335
26.1 求解日志信息 335
26.1.1 Gurobi 中的日志类型 335
26.1.2 头部信息 335
26.1.3 MIP 日志 336
26.1.4 单纯形法日志 339
26.1.5 解池与多场景日志 340
26.1.6 多目标日志 341
26.1.7 分布式 MIP 日志 341
26.1.8 IIS 日志 342
26.1.9 日志的相关操作 343
26.2 解的状态信息 344
26.3 对偶信息获取 345
26.3.1 通过文件操作直接获取对偶模型 345
26.3.2 当模型可行时,获取对偶变量 Pi 345
26.3.3 当模型无界时,获取极射线 UnbdRay 346
26.3.4 当模型不可行时,获取 FarkasDual 与 FarkasProof 346
26.3.5 对偶信息的应用 348
第27章 求解参数调优与模型报错调试 349
27.1 参数调优 349
27.1.1 主要功能及相关参数 349
27.1.2 案例演示 350
27.2 模型的错误诊断 351
27.2.1 使用 IIS 351
27.2.2 对模型进行逐步诊断 353
参考文献 355
本书主要从数学规划的视角出发,系统地介绍了数学优化问题建模和求解的相关理论、方法、实际案例,以及基于Python和数学规划求解器(COPT和Gurobi)的编程实战。
全书共分为四部分。第一部分为基本理论和建模方法,重点介绍了数学规划模型分类和建模方法(包括逻辑约束与大M建模方法、线性化方法)以及计算复杂性理论。第二部分为建模案例详解,通过理论、案例和实战相结合的方式,详细介绍了如何利用各种建模方法和数学规划求解器对实际生产活动中的优化问题进行建模和求解。这部分内容丰富,案例翔实,代码完整,旨在提高读者的实战能力。第三部分和第四部分聚焦于编程实战,主要讲解如何使用COPT和Gurobi求解器进行数学规划模型的编程求解。这两部分内容涵盖了调用数学规划求解器的各种高级用法,可以满足读者实现定制化求解的需求。
本书适合用作运筹学、数学建模、很优化理论、离散优化等相关课程的等
— 没有更多了 —
以下为对购买帮助不大的评价