编辑推荐
遗传算法常常用于解决非常复杂的真实世界问题。
本书是学习如何利用遗传算法来解决问题的入门指南,书中包含了Java语言编写的、能运行的项目和解决方案。本书引导读者一步一步地实现各种遗传算法及一些常见应用场景,帮助读者在实践中加深理解,从而能够解决自己独特的问题。本书首先介绍了基本概念,并在随后的章节中添加了机器人控制、旅行商问题等例子,展示了实现遗传算法的更多知识技能。
通过阅读本书,你将熟悉遗传算法与编程语言相关的问题和概念,掌握构建自己的算法所需的全部知识,并且将获得用遗传算法解决问题的能力。请拿起本书,进入遗传算法这个迷人的领域,看看真正能工作的Java代码,并运用于你自己的项目和研究中。
本书具有以下特色:
● 引导学习遗传算法背后的理论;
● 解释软件开发者如何利用遗传算法来尝试解决一些问题;
● 通过简单易行的步骤,提供用Java实现遗传算法的详细指导。
内容简介
当前,机器学习领域已经变得越来越流行,而遗传算法是机器学习的一个重要子集。
本书简单、直接地介绍了遗传算法,并且针对所讨论的示例问题,给出了Java代码的算法实现。全书共分灾6章。第1章简单介绍了人工智能和生物进化的知识背景,这也是遗传算法的历史知识背景。第2章给出了一个基本遗传算法的实现;第4章和第5章,分别针对机器人控制器、旅行商问题、排课问题展开分析和讨论,并给出了算法实现。在这些章的末尾,还给出了一些练习供读者深入学习和实践。第6章专门讨论了各种算法的优化问题。
本书适合机器学习爱好者阅读,尤其适合对遗传算法的理论和实现感兴趣的读者阅读参考。
作者简介
Lee Jacobson来自英国布里斯托尔,是一名专业的自由职业软件开发者。在大学期间学习了遗传算法和其他优化技术后,他对这个主题产生了强烈的兴趣。
Burak Kanber是土生土长的纽约人,他拥有机械工程的学士学位和硕士学位,专注于控制系统、机器人技术、汽车工程和混合动力汽车系统工程。但是,软件一直是他终身的爱好,贯穿着Burak整个生命。
目录
目录
第1章 简介 1
1.1 什么是人工智能 2
1.2 生物学类比 3
1.3 进化计算的历史 4
1.4 进化计算的优势 5
1.5 生物进化 7
生物进化的一个实例 8
1.6 基本术语 10
术语 10
1.7 搜索空间 11
1.7.1 适应度景观 12
1.7.2 局部最优 14
1.8 参数 17
1.8.1 变异率 17
1.8.2 种群规模 18
1.8.3 交叉率 19
1.9 基因表示 19
1.10 终止 20
1.11 搜索过程 20
1.12 参考文献 22
第2章 实现一个基本遗传算法 23
2.1 实现之前 23
2.2 基本遗传算法的伪代码 24
2.3 关于本书的代码示例 25
2.4 基本实现 26
2.4.1 问题 27
2.4.2 参数 27
2.4.3 初始化 29
2.4.4 评估 35
2.4.5 终止检查 38
2.4.6 交叉 41
2.5 轮盘赌选择 41
2.6 交叉方法 42
2.7 交叉伪代码 43
2.8 交叉实现 44
2.8.1 精英主义 48
2.8.2 变异 50
2.8.3 执行 53
2.9 小结 55
2.10 练习 56
第3章 机器人控制器 57
3.1 简介 57
3.2 问题 58
3.3 实现 59
3.3.1 开始之前 59
3.3.2 编码 60
3.3.3 初始化 64
3.3.4 评估 73
3.3.5 终止检查 87
3.3.6 选择方法和交叉 91
3.4 锦标赛选择 91
3.5 单点交叉 93
执行 99
3.6 小结 101
3.7 练习 102
第4章 旅行商 103
4.1 简介 103
4.2 问题 105
4.3 实现 106
4.3.1 开始之前 106
4.3.2 编码 106
4.3.3 初始化 107
4.3.4 评估 111
4.3.5 终止检查 117
4.3.6 交叉 118
4.3.7 变异 124
4.3.8 执行 126
4.4 小结 131
4.5 练习 132
第5章 排课 134
5.1 简介 134
5.2 问题 135
5.3 实现 136
5.3.1 开始之前 137
5.3.2 编码 137
5.3.3 初始化 138
5.3.4 执行类 158
5.3.5 评估 167
5.3.6 终止 169
5.3.7 变异 172
5.3.8 执行 174
5.4 分析和改进 179
5.5 小结 182
5.6 练习 182
第6章 优化 183
6.1 自适应遗传算法 183
6.1.1 实现 184
6.1.2 练习 188
6.2 多次启发 188
6.2.1 实现 189
6.2.2 练习 190
6.3 性能改进 191
6.3.1 适应度函数设计 191
6.3.2 并行处理 191
6.3.3 适应度值散列 193
6.3.4 编码 197
6.3.5 变异和交叉方法 197
6.4 小结 198
Java遗传算法编程 下载 mobi epub pdf txt 电子书 格式