第一篇 进化优化引论 1
第1章 绪论 3
1.1 术语 3
1.2 又一本关于进化算法的书 5
1.3 先修课程 5
1.4 家庭作业 6
1.5 符号 6
1.6 本书的大纲 8
1.7 基于本书的课程 8
第2章 优化 10
2.1 无约束优化 10
2.2 约束优化 13
2.3 多目标优化 14
2.4 多峰优化 15
2.5 组合优化 16
2.6 爬山法 18
2.6.1 有偏优化算法 21
2.6.2 蒙特卡罗仿真的重要性 21
2.7 智能 22
2.7.1 自适应 22
2.7.2 随机性 22
2.7.3 交流 23
2.7.4 反馈 23
2.7.5 探索与开发 24
2.8 总结 24
习题 25
第二篇 经典进化算法 29
第3章 遗传算法 31
3.1 遗传学的历史 32
3.1.1 查尔斯·达尔文 32
3.1.2 格雷戈尔·孟德尔 33
3.2 遗传学 34
3.3 遗传算法的历史 36
3.4 一个简单的二进制遗传算法 38
3.4.1 用于机器人设计的遗传算法 38
3.4.2 选择与交叉 39
3.4.3 变异 42
3.4.4 遗传算法的总结 42
3.4.5 遗传算法的参数调试及其例子 43
3.5 简单的连续遗传算法 47
3.6 总结 50
习题 51
第4章 遗传算法的数学模型 53
4.1 图式理论 54
4.2 马尔可夫链 57
4.3 进化算法的马尔可夫模型的符号 61
4.4 遗传算法的马尔可夫模型 64
4.4.1 选择 64
4.4.2 变异 65
4.4.3 交叉 66
4.5 遗传算法的动态系统模型 69
4.5.1 选择 69
4.5.2 变异 71
4.5.3 交叉 73
4.6 总结 77
习题 78
第5章 进化规划 80
5.1 连续进化规划 80
5.2 有限状态机优化 83
5.3 离散进化规划 86
5.4 囚徒困境 87
5.5 人工蚂蚁问题 90
5.6 总结 93
习题 94
第6章 进化策略 96
6.1 (1+1)进化策略 97
6.2 1/5规则:推导 100
6.3 (μ+1)进化策略 103
6.4 (μ+λ)和(μ,λ)进化策略 105
6.5 自身自适应进化策略 107
6.6 总结 112
习题 112
第7章 遗传规划 114
7.1 LISP:遗传规划的语言 115
7.2 遗传规划的基础 120
7.2.1 适应度的度量 120
7.2.2 终止准则 121
7.2.3 终止集合 121
7.2.4 函数集合 122
7.2.5 初始化 123
7.2.6 遗传规划的参数 125
7.3 最短时间控制的遗传规划 127
7.4 遗传规划的膨胀 132
7.5 演化实体而非计算机程序 133
7.6 遗传规划的数学分析 135
7.6.1 定义和记号 135
7.6.2 选择和交叉 136
7.6.3 变异和最后结果 139
7.7 总结 140
习题 142
第8章 遗传算法的变种 145
8.1 初始化 145
8.2 收敛准则 146
8.3 用格雷编码表示问题 148
8.4 精英 150
8.5 稳态与代际算法 152
8.6 种群多样性 153
8.6.1 重复个体 154
8.6.2 基于小生境和基于物种的重组 154
8.6.3 小生境 156
8.7 选择方案 160
8.7.1 随机遍历采样 160
8.7.2 超比例选择 162
8.7.3 Sigma缩放 162
8.7.4 基于排名选择 164
8.7.5 线性排名 164
8.7.6 锦标赛选择 166
8.7.7 种马进化算法 167
8.8 重组 168
8.8.1 单点交叉(二进制或连续进化算法) 169
8.8.2 多点交叉(二进制或连续进化算法) 169
8.8.3 分段交叉(二进制或连续进化算法) 169
8.8.4 均匀交叉(二进制或连续进化算法) 170
8.8.5 多父代交叉(二进制或连续进化算法) 170
8.8.6 全局均匀交叉(二进制或连续进化算法) 171
8.8.7 洗牌交叉(二进制或连续进化算法) 171
8.8.8 平交叉和算术交叉(连续进化算法) 171
8.8.9 混合交叉(连续进化算法) 172
8.8.10 线性交叉(连续进化算法) 172
8.8.11 模拟二进制交叉(连续进化算法) 172
8.8.12 小结 173
8.9 变异 173
8.9.1 以xi(k)为中心的均匀变异 173
8.9.2 以搜索域的中央为中心的均匀变异 174
8.9.3 以xi(k)为中心的高斯变异 174
8.9.4 以搜索域的中央为中心的高斯变异 174
8.10 总结 174
习题 175
第三篇 较新的进化算法 179
第9章 模拟退火 181
9.1 自然退火 181
9.2 简单的模拟退火算法 183
9.3 冷却调度 184
9.3.1 线性冷却 184
9.3.2 指数冷却 185
9.3.3 逆冷却 185
9.3.4 对数冷却 187
9.3.5 逆线性冷却 188
9.3.6 依赖于维数的冷却 190
9.4 实施的问题 192
9.4.1 候选解的生成 192
9.4.2 重新初始化 193
9.4.3 记录最好的候选解 193
9.5 总结 193
习题 194
第10章 蚁群优化 196
10.1 信息素模型 198
10.2 蚂蚁系统 200
10.3 连续优化 204
10.4 其他蚂蚁系统 207
10.4.1 最大最小蚂蚁系统 207
10.4.2 蚁群系统 208
10.4.3 更多的蚂蚁系统 211
10.5 理论结果 212
10.6 总结 212
习题 213
第11章 粒子群优化 215
11.1 基本粒子群优化算法 216
11.2 速度限制 219
11.3 惯性权重与压缩系数 220
11.3.1 惯性权重 220
11.3.2 压缩系数 222
11.3.3 粒子群优化的稳定性 223
11.4 全局速度更新 226
11.5 完全知情的粒子群 229
11.6 从错误中学习 231
11.7 总结 234
习题 234
第12章 差分进化 237
12.1 基本差分进化算法 237
12.2 差分进化的变种 239
12.2.1 试验向量 240
12.2.2 变异向量 242
12.2.3 比例因子的调整 245
12.3 离散优化 246
12.3.1 混合整数差分进化 247
12.3.2 离散差分进化 248
12.4 差分进化与遗传算法 248
12.5 总结 250
习题 250
第13章 分布估计算法 252
13.1 分布估计算法:基本概念 253
13.1.1 简单的分布估计算法 253
13.1.2 统计量的计算 253
13.2 一阶分布估计算法 254
13.2.1 一元边缘分布算法 254
13.2.2 紧致遗传算法 256
13.2.3 基于种群的增量学习 259
13.3 二阶分布估计算法 261
13.3.1 输入聚类互信息最大化 261
13.3.2 优化与互信息树结合 266
13.3.3 二元边缘分布算法 271
13.4 多元分布估计算法 273
13.4.1 扩展紧致遗传算法 273
13.4.2 其他多元分布估计算法 276
13.5 连续分布估计算法 276
13.5.1 连续一元边缘分布算法 277
13.5.2 基于增量学习的连续种群 278
13.6 总结 281
习题 282
第14章 基于生物地理学的优化 284
14.1 生物地理学 285
14.2 生物地理学是一个优化过程 288
14.3 基于生物地理学优化 290
14.4 BBO的扩展 293
14.4.1 迁移曲线 293
14.4.2 混合迁移 294
14.4.3 BBO的其他方法 296
14.4.4 BBO与遗传算法 298
14.5 总结 299
习题 302
第15章 文化算法 304
15.1 合作与竞争 305
15.2 文化算法中的信仰空间 307
15.3 文化进化规划 309
15.4 自适应文化模型 311
15.5 总结 316
习题 317
第16章 反向学习 318
16.1 反向的定义和概念 318
16.1.1 反射反向和模反向 319
16.1.2 部分反向 320
16.1.3 1型反向和2型反向 321
16.1.4 准反向和超反向 321
16.2 反向进化算法 322
16.3 反向概率 326
16.4 跳变比 329
16.5 反向组合优化 331
16.6 对偶学习 333
16.7 总结 334
习题 335
第17章 其他进化算法 337
17.1 禁忌搜索 337
17.2 人工鱼群算法 338
17.2.1 随机行为 339
17.2.2 追逐行为 340
17.2.3 聚集行为 340
17.2.4 搜索行为 340
17.2.5 跳跃行为 340
17.2.6 人工鱼群算法概要 341
17.3 群搜索优化器 342
17.4 混合蛙跳算法 344
17.5 萤火虫算法 346
17.6 细菌觅食优化 347
17.7 人工蜂群算法 350
17.8 引力搜索算法 352
17.9 和声搜索 353
17.10 基于教学的优化 355
17.11 总结 358
习题 359
第四篇 优化问题的特殊类型 361
第18章 组合优化 363
18.1 旅行商问题 364
18.2 旅行商问题的初始化 365
18.2.1 最近邻初始化 365
18.2.2 最短边初始化 367
18.2.3 嵌入初始化 367
18.2.4 随机初始化 369
18.3 旅行商问题的表示与交叉 369
18.3.1 路径表示 369
18.3.2 邻接表示 372
18.3.3 顺序表示 375
18.3.4 矩阵表示 376
18.4 旅行商问题的变异 379
18.4.1 反转 379
18.4.2 嵌入 379
18.4.3 移位 379
18.4.4 互换 380
18.5 旅行商问题的进化算法 380
18.6 图着色问题 384
18.7 总结 387
习题 387
第19章 约束优化 389
19.1 罚函数法 390
19.1.1 内点法 390
19.1.2 外点法 391
19.2 处理约束的常用方法 393
19.2.1 静态惩罚方法 393
19.2.2 可行点优势 393
19.2.3 折中进化算法 394
19.2.4 协同进化惩罚 395
19.2.5 动态惩罚方法 396
19.2.6 自适应惩罚方法 397
19.2.7 分离遗传算法 398
19.2.8 自身自适应的适应度描述 398
19.2.9 自身自适应罚函数 399
19.2.10 自适应分离约束处理 400
19.2.11 行为记忆 401
19.2.12 随机排名 402
19.2.13 小生境惩罚方法 403
19.3 特殊表示与特殊算子 403
19.3.1 特殊表示 404
19.3.2 特殊算子 405
19.3.3 Genocop 406
19.3.4 Genocop Ⅱ 407
19.3.5 Genocop Ⅲ 407
19.4 约束优化的其他方法 409
19.4.1 文化算法 409
19.4.2 多目标优化 409
19.5 候选解的排名 410
19.5.1 最大违反约束排名 410
19.5.2 约束次序排名 410
19.5.3 ∈-水平比较 411
19.6 处理约束方法的比较 412
19.7 总结 414
习题 416
第20章 多目标优化 418
20.1 帕雷托最优性 419
20.2 多目标优化的目标 423
20.2.1 超体积 424
20.2.2 相对覆盖度 427
20.3 基于非帕雷托的进化算法 427
20.3.1 集结方法 427
20.3.2 向量评价遗传算法 429
20.3.3 字典排序 430
20.3.4 ∈-约束方法 431
20.3.5 基于性别的方法 431
20.4 基于帕雷托进化算法 432
20.4.1 多目标进化优化器 433
20.4.2 基于∈的多目标进化算法 434
20.4.3 非支配排序遗传算法 436
20.4.4 多目标遗传算法 438
20.4.5 小生境帕雷托遗传算法 439
20.4.6 优势帕雷托进化算法 440
20.4.7 帕雷托归档进化策略 445
20.5 基于生物地理学的多目标优化 446
20.5.1 向量评价BBO 446
20.5.2 非支配排序BBO 447
20.5.3 小生境帕雷托BBO 448
20.5.4 优势帕雷托BBO 449
20.5.5 多目标BBO的仿真 450
20.6 总结 451
习题 452
第21章 昂贵、有噪声与动态适应度函数 455
21.1 昂贵适应度函数 456
21.1.1 适应度函数的近似 457
21.1.2 近似变换函数 465
21.1.3 在进化算法中如何使用适应度近似 466
21.1.4 多重模型 468
21.1.5 过拟合 470
21.1.6 近似方法的评价 471
21.2 动态适应度函数 472
21.2.1 预测进化算法 474
21.2.2 迁入方案 475
21.2.3 基于记忆的方法 478
21.2.4 动态优化性能的评价 479
21.3 有噪声适应度函数 479
21.3.1 再采样 480
21.3.2 适应度估计 482
21.3.3 卡尔曼进化算法 483
21.4 总结 485
习题 486
第五篇 附录 489
附录A一些实际的建议 491
A.1 查错 491
A.2 进化算法是随机的 491
A.3 小变化可能会有大影响 492
A.4 大变化可能只有小影响 492
A.5 种群含有很多信息 492
A.6 鼓励多样性 492
A.7 利用问题的信息 493
A.8 经常保存结果 493
A.9 理解统计显著性 493
A.10 善于写作 493
A.11 强调理论 494
A.12 强调实践 494
附录B没有免费午餐定理与性能测试 495
B.1 没有免费午餐定理 495
B.2 性能测试 500
B.2.1 基于仿真结果的大话 500
B.2.2 如何报告(不报告)仿真结果 502
B.2.3 随机数 506
B.2.4 t检验 508
B.2.5 F检验 512
B.3 总结 515
附录C基准优化函数 516
C.1 无约束基准 516
C.1.1 Sphere函数 517
C.1.2 Ackley函数 517
C.1.3 Ackley测试函数 518
C.1.4 Rosenbrock函数 518
C.1.5 Fletcher函数 519
C.1.6 Griewank函数 520
C.1.7 Penalty#1函数 521
C.1.8 Penalty#2函数 521
C.1.9 Quartic函数 522
C.1.10 Tenth Power函数 523
C.1.11 Rastrigin函数 524
C.1.12 Schwefel二重和函数 524
C.1.13 Schwefel最大函数 525
C.1.14 Schwefel绝对值函数 526
C.1.15 Schwefel正弦函数 526
C.1.16 Step函数 527
C.1.17 Absolute函数 528
C.1.18 Shekel’s Foxhole函数 528
C.1.19 Michalewicz函数 529
C.1.20 Sine Envelope函数 530
C.1.21 Eggholder函数 530
C.1.22 Weierstrass函数 531
C.2 约束基准 531
C.2.1 C01函数 532
C.2.2 C02函数 532
G.2.3 C03函数 533
C.2.4 C04函数 533
C.2.5 C05函数 533
C.2.6 C06函数 534
C.2.7 C07函数 534
C.2.8 C08函数 534
C.2.9 C09函数 535
C.2.10 C10函数 535
C.2.11 C11函数 535
C.2.12 C12函数 535
C.2.13 C13函数 536
C.2.14 C14函数 536
C.2.15 C15函数 537
C.2.16 C16函数 537
C.2.17 C17函数 537
C.2.18 C18函数 538
C.2.19 约束基准的总结 538
C.3 多目标基准 539
C.3.1 无约束多目标优化问题1 539
C.3.2 无约束多目标优化问题2 540
C.3.3 无约束多目标优化问题3 541
C.3.4 无约束多目标优化问题4 541
C.3.5 无约束多目标优化问题5 542
C.3.6 无约束多目标优化问题6 542
C.3.7 无约束多目标优化问题7 543
C.3.8 无约束多目标优化问题8 544
C.3.9 无约束多目标优化问题9 544
C.3.10 无约束多目标优化问题10 545
C.4 动态基准 545
C.4.1 动态基准的完整描述 546
C.4.2 简化的动态基准描述 550
C.5 噪声基准 551
C.6 旅行商问题 551
C.7 无偏化搜索空间 553
C.7.1 偏差 553
C.7.2 旋转矩阵 555
参考文献 557
索引 601