描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787301322383
本书以简单的组合优化问题作为MATLAB智能优化算法实战应用的切入点,逐步深入使用MATLAB编写更复杂的智能优化算法和求解更复杂的组合优化问题,让读者逐渐理解智能优化算法的实际求解过程。
本书内容通俗易懂,案例丰富,实用性强,特别适合MATLAB语言的入门读者阅读,也适合想学习智能优化算法但无从下手的编程爱好者阅读。另外,本书也适合作为相关专业的教材使用。
第1章 遗传算法求解0-1背包问题 1
1.1 问题描述 2
1.2 算法简介 4
1.3 求解策略 5
1.4 MATLAB程序实现 12
1.5 实例验证 22
1.5.1 输入数据 22
2.1 问题描述 25
2.2 算法简介 26
2.3 求解策略 28
2.4 MATLAB程序实现 33
2.4.1 构造初始路线函数 33
2.5 实例验证 48
2.5.1 输入数据 48
3.2 算法简介 52
3.3 求解策略 57
3.5 实例验证 70
3.5.1 输入数据 70
4.1 问题描述 74
4.2 算法简介 74
4.3 求解策略 76
4.5 实例验证 96
5.1 问题描述 100
5.2 算法简介 103
5.3 求解策略 106
5.3.1 确定下一个访问点 107
5.3.2 构建蚂蚁行走路线 110
5.3.3 将完整路径转换为配送方案 111
5.3.4 更新信息素浓度矩阵 111
5.4 MATLAB程序实现 112
5.4.1 确定下一个访问点集合函数 112
5.4.2 确定下一个访问点函数 113
5.4.3 将完整路径转换为配送方案函数 115
5.4.4 计算一条配送路线的距离函数 116
5.4.5 计算一个配送方案的行驶总距离 117
5.4.6 判断函数 117
5.4.7 计算一条配送路线的装载量函数 118
5.4.8 计算一个配送方案的总成本 118
5.4.9 轮盘赌函数 119
5.4.10 “信息素”矩阵更新函数 119
5.4.11 客量受限的车辆路径问题配送路线图函数 120
5.4.12 主函数 121
5.5 实例验证 123
5.5.1 输入数据 123
5.5.2 蚁群算法参数设置 124
5.5.3 实验结果展示 124
第6章 模拟退火算法求解同时取送货的车辆路径问题 126
6.1 问题描述 127
6.2 算法简介 130
6.3 求解策略 132
6.3.1 解的表示形式 132
6.3.2 目标函数 133
6.3.3 交换操作 135
6.3.4 逆转操作 135
6.3.5 插入操作 136
6.3.6 接受准则 137
6.3.7 退火 137
6.4 MATLAB程序实现 137
6.4.1 将当前解转换为配送方案函数 137
6.4.2 删除配送方案中空路线函数 139
6.4.3 判断函数 139
6.4.4 装载量计算函数 140
6.4.5 违反装载量约束之和计算函数 140
6.4.6 计算一条配送路线的距离函数 141
6.4.7 计算一个配送方案的行驶总距离 142
6.4.8 目标函数 142
6.4.9 交换操作函数 143
6.4.10 逆转操作函数 143
6.4.11 插入操作函数 144
6.4.12 邻域操作函数 144
6.4.13 轮盘赌函数 145
6.4.14 同时送取货的车辆路径问题配送路线图函数 145
6.4.15 主函数 146
6.5 实例验证 149
6.5.1 输入数据 149
6.5.2 模拟退火算法参数设置 150
6.5.3 实验结果展示 150
第7章 遗传算法求解带时间窗的车辆路径问题 152
7.1 问题描述 153
7.2 算法简介 157
7.3 求解策略 157
7.3.1 编码与解码 157
7.3.2 适应度函数 158
7.3.3 种群初始化 159
7.3.4 二元锦标赛选择操作 160
7.3.5 交叉操作 160
7.3.6 变异操作 161
7.3.7 局部搜索操作 161
7.3.8 重组操作 162
7.3.9 遗传算法求解带时间窗的车辆路径问题流程 163
7.4 MATLAB程序实现 163
7.4.1 构造VRPTW初始解函数 163
7.4.2 种群初始化函数 166
7.4.3 解码函数 168
7.4.4 适应度函数 172
7.4.5 二元锦标赛选择操作函数 175
7.4.6 交叉操作函数 176
7.4.7 变异操作函数 178
7.4.8 局部搜索操作 178
7.4.9 重组操作函数 185
7.4.10 VRPTW配送路线图函数 186
7.4.11 主函数 187
7.5 实例验证 189
7.5.1 输入数据 189
7.5.2 数据预处理 190
7.5.3 遗传算法参数设置 191
7.5.4 实验结果展示 192
第8章 萤火虫算法求解订单分批问题 194
8.1 问题描述 195
8.2 算法简介 198
8.3 求解策略 200
8.3.1 编码与解码 201
8.3.2 拣选路径策略 201
8.3.3 目标函数与发光强度 203
8.3.4 种群初始化 204
8.3.5 计算两只萤火虫之间的距离 204
8.3.6 萤火虫位置更新 205
8.3.7 局部搜索操作 206
8.3.8 合并操作 207
8.3.9 萤火虫算法求解订单分批问题流程 208
8.4 MATLAB程序实现 208
8.4.1 解码函数 208
8.4.2 删除订单分批方案中空订单批次函数 210
8.4.3 判断函数 210
8.4.4 装载量计算函数 211
8.4.5 一批次订单的拣选行走距离计算函数 212
8.4.6 一个订单分批方案的拣选行走总距离计算函数 213
8.4.7 成本函数 214
8.4.8 种群目标函数值计算函数 215
8.4.9 种群初始化函数 216
8.4.10 两只萤火虫之间的距离计算函数 217
8.4.11 萤火虫位置更新函数 217
8.4.12 选择操作函数 218
8.4.13 局部搜索操作函数 219
8.4.14 合并操作函数 226
8.4.15 主函数 227
8.5 实例验证 229
8.5.1 输入数据 229
8.5.2 萤火虫算法参数设置 230
8.5.3 实验结果展示 231
第9章 头脑风暴优化算法求解带时间窗和同时取送货的车辆路径问题 232
9.1 问题描述 233
9.2 算法简介 239
9.3 求解策略 240
9.4 MATLAB程序实现 250
9.5 实例验证 275
9.5.1 输入数据 275
9.5.2 数据预处理 276
9.5.3 头脑风暴优化算法参数设置 277
9.5.4 实验结果展示 278
第10章 鲸鱼优化算法求解开放式车辆路径问题 280
10.1 问题描述 281
10.2 算法简介 282
10.3 求解策略 283
10.4 MATLAB程序实现 290
10.5 实例验证 302
参考文献 280
为什么要写这本书?
笔者在刚开始学习智能优化算法时,每天都在网上搜索和智能优化算法相关的MATLAB代码,每次都抱着将每一行代码都琢磨明白的心态去学习,但几乎每次都只读了小部分代码后就难以进行下去。主要有两方面原因:一是自己不了解代码所实现算法的具体步骤;二是代码中缺少详细的注释。为了克服这一困难,笔者从基本的组合优化问题开始研究,然后研究解决对应问题的智能优化算法,后在理解问题及算法实现的步骤后亲自动手编写MATLAB代码。经过较长时间的积累,笔者终于熟悉了智能优化算法。
目前图书市场上关于智能优化算法的图书很多,但大部分书籍讲解的智能优化算法时间较为久远,近10年内讲解较为热门的智能优化算法,以及给出使用热门智能优化算法求解实际问题代码的书籍几乎没有。本书便以实战和快速教会智能优化算法初学者为主旨,通过9个常见的组合优化问题、5个经典的智能优化算法及4个新颖的智能优化算法,让读者全面、深入、透彻地理解智能优化算法求解问题时的算法设计思路及代码编写思路,进一步提高使用智能优化算法求解实际问题的实战能力。
本书有何特色?
- 附赠各个章节MATLAB源代码,提高学习效率
为了便于读者理解本书内容,提高学习效率,作者专门把本书每一章节所涉及的MATLAB源代码都进行了详细注释,并将这些源代码一起收录于附赠资源中。
- 章节安排由易到难,适合初学者逐步学习
本书涉及的组合优化问题依次为0-1背包问题、基本旅行商问题、多旅行商问题、容量受限的车辆路径问题、同时取送货的车辆路径问题、带时间窗的车辆路径问题、订单分批问题、带时间窗和同时取送货的车辆路径问题、开放式车辆路径问题,问题难度逐步提高,适合初学者逐步学习。
- 对智能优化算法的设计思路进行详细讲解,帮助读者快速理解
本书在每一个章节都详细讲解智能优化算法求解问题时的算法设计思路,并给出实例验证其实现过程,帮助读者快速理解算法设计的核心思想。
- 论文驱动,扩展性强
本书讲解了9个经典的组合优化问题,这些经典的组合优化问题是现在大量论文中研究问题的基础。同时,本书详细设计的5种经典智能优化算法及4种新颖的智能优化算法都可以扩展到读者将来研究的问题中,各个章节的MATLAB源代码扩展性强,适合读者深入研究及完善扩展。
- 提供完善的技术支持和售后服务
本书提供了专门的技术支持邮箱:
赠送资源
本书附赠书中案例源代码及相关学习资料,读者可通过微信扫一扫下方二维码关注公众号,输入代码“37251”,即可获取下载资源。
作者简介
曹旺,现就职于船舶某研究院所,精通MATLAB算法开发。个人公众号为“优化算法交流地”。擅长使用MATLAB编写元启发式算法解决组合优化问题,尤其对车辆路径问题和订单分批问题有深入的研究。
合阅读本书的读者:
(1)想快速学习智能优化算法的本科生及研究生;
(2) 广大MATLAB爱好者;
(3)MATLAB开发工程师;
(4) 希望提高数学建模能力的学生。
阅读本书的建议:
(1) 没有智能优化算法基础的读者,建议从第1章顺次阅读并演练每一个实例。
(2)有一定智能优化算法基础的读者,可以根据实际情况选择阅读4种新颖的智能优化算法。
(3)对于每一章的实例验证,读者首先思考实现的思路,然后阅读,学习效果会更好。
(4)可以先阅读一遍书中每一章节的算法设计思路,然后结合附赠资源中提供的MATLAB源代码理解一遍算法的设计思路,这样学习起来更容易,印象也会更加深刻。
评论
还没有评论。