第 1 章 逃出纸口袋 1
1.1 开始 3
1.1.1 逃出纸口袋 4
1.2 目标:寻找出路 5
1.3 帮助乌龟逃脱 6
1.3.1 乌龟和纸口袋 7
1.4 拯救乌龟 8
1.4.1 正方形 9
1.4.2 角螺旋 10
1.4.3 该逃脱了 11
1.5 算法有效吗 12
1.6 拓展学习 14
第 2 章 寻找纸口袋 17
2.1 从数据中学习 18
2.1.1 划分数据 21
2.2 生成决策树的方法 22
2.2.1 选取特征 22
2.3 找到纸口袋 28
2.3.1 寻找分割点 29
2.3.2 构建决策树 30
2.3.3 数据分类 31
2.3.4 将决策树转为规则集 32
2.4 算法有效吗 33
2.4.1 如何剪枝36
2.5 拓展学习38
第 3 章 遗传算法 39
3.1 发射炮弹41
3.2 解的生成方法44
3.2.1 算法的初始化 44
3.2.2 算法的迭代45
3.2.3 如何让解变得更好45
3.2.4 终决策46
3.3 发射炮弹47
3.3.1 随机初始化48
3.3.2 选择过程48
3.3.3 交叉 53
3.3.4 突变 54
3.4 算法有效吗56
3.4.1 画图 56
3.4.2 记录 60
3.4.3 突变测试60
3.4.4 遗传算法的变体 62
3.5 拓展学习63
第 4 章 粒子群算法 65
4.1 控制粒子群67
4.1.1 移动单个粒子 67
4.1.2 移动多个粒子 71
4.1.3 粒子群75
4.2 粒子群的生成76
4.2.1 跟随邻近粒子 77
4.2.2 跟随好位置 78
4.3 创建粒子群80
4.3.1 跟随邻近粒子 80
4.3.2 跟随好位置 83
4.4 算法有效吗 88
4.5 拓展学习 90
第 5 章 寻找路线 91
5.1 释放信息素 92
5.1.1 使用信息素 94
5.2 怎样生成路线 96
5.3 让蚂蚁行动起来 98
5.3.1 随机初始化 98
5.3.2 画路线 102
5.3.3 迭代优化路线 103
5.4 算法有效吗 107
5.4.1 从同一点出发 107
5.4.2 随机从不同点出发 109
5.4.3 α和β的选择 109
5.4.4 其他参数 111
5.5 拓展学习 112
第 6 章 运用随机模型 113
6.1 让粒子随机运动 114
6.1.1 蒙特卡洛模拟 114
6.1.2 布朗运动 117
6.1.3 几何布朗运动 122
6.1.4 跳跃扩散 123
6.2 如何产生扩散 125
6.2.1 小随机步长 125
6.2.2 用 C 画图 126
6.3 让粒子扩散开 127
6.3.1 布朗运动 128
6.3.2 股票价格 133
6.4 算法有效吗 137
6.4.1 基于特性的测试 139
6.5 拓展学习143
第 7 章 蜂群算法 145
7.1 养蜂 146
7.1.1 让蜜蜂行动起来 146
7.1.2 蜜蜂的分工147
7.1.3 算法总览 149
7.2 算法分析150
7.2.1 算法细节 150
7.2.2 摇摆舞152
7.3 让蜜蜂飞起来 152
7.3.1 蜂群算法的实现 153
7.3.2 蜂群算法的可视化161
7.4 算法有效吗164
7.5 拓展学习166
第 8 章 元胞自动机167
8.1 让元胞活起来 169
8.2 创造人工生命 172
8.2.1 算法细节 173
8.3 实现元胞自动机 175
8.4 算法有效吗182
8.5 拓展学习183
第 9 章 遗传算法与元胞自动机185
9.1 找到好的配置 186
9.2 遗传算法在元胞自动机上的工作方式190
9.3 找到初始排列193
9.3.1 交叉 197
9.3.2 突变 201
9.3.3 运行遗传算法 202
9.3.4 初等元胞自动机 204
9.3.5 随机规则 206
9.4 算法有效吗 207
9.4.1 初等元胞自动机 209
9.4.2 随机规则 211
9.5 拓展学习 212
第 10 章 找到解 215
10.1 移动乌龟 216
10.2 乌龟怎么走 217
10.2.1 爬山法 218
10.2.2 模拟退火算法 220
10.3 寻找口袋底部 222
10.3.1 用函数表示口袋形状 223
10.3.2 爬山法 224
10.3.3 模拟退火算法 225
10.4 算法有效吗 228
10.4.1 爬山法 229
10.4.2 模拟退火算法 231
10.5 更高维度的情况 233
10.6 拓展学习 237
参考文献 239