新書推薦:
《
炙野(全2册)
》
售價:NT$
356.0
《
女人的胜利
》
售價:NT$
254.0
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:NT$
1214.0
《
500万次倾听:陪伤心的人聊聊
》
售價:NT$
245.0
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:NT$
367.0
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:NT$
398.0
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:NT$
301.0
《
周易
》
售價:NT$
203.0
|
編輯推薦: |
《*化方法及其 MATLAB 实现》囊括了现有的绝大多数优化算法及其MATLAB实现。程序代码可扫描二维码下载下载,也可登录MATLAB中文论坛该书版块下载。
|
內容簡介: |
优化技术是一种以数学为基础,用于求解各种工程问题优化解的应用技术。本书较为系统地介绍了*化技术的基本理论和方法及其现有绝大多数优化算法的MATLAB程序实现。
《*化方法及其 MATLAB 实现》分上、下两篇,其中,上篇主要介绍经典优化算法,如各种无约束优化方法、各种约束优化方法、各种规划算法、图论等;下篇主要介绍诸如遗传算法、粒子群等多种现代优化算法,特别是群智能优化算法的基本理论、实现技术以及算法融合方法。本书既注重计算方法的实用性,又有一定的理论分析,对于每种算法都配有丰富的例题及MATLAB程序,可供学习者使用。
《*化方法及其 MATLAB 实现》既可作为高等院校数学与应用数学、信息与计算科学、统计学、计算数学、运筹学、控制论等与优化技术相关的专业,以及地质、水利、化学和环境等专业优化技术教学的本科生或研究生的教材或教学参考用书,也可作为对*化理论与算法感兴趣的教师与工程技术人员的参考用书。
|
目錄:
|
第1章 概 论 1
1.1 最优化问题及其分类 1
1.1.1 最优化问题举例 1
1.1.2 函数优化问题 3
1.1.3 数学规划 4
1.1.4 组合优化问题 5
1.2 邻域函数与局部搜索 6
1.3 优化问题的复杂性 6
1.4 优化算法发展状况 7
上 篇 经典优化方法
第2章 无约束优化方法 10
2.1 最优性条件 10
2.2 迭代法 10
2.3 收敛速度 11
2.4 终止准则 12
2.5 一维搜索 12
2.5.1 平分法 12
2.5.2 牛顿法 13
2.5.3 0.618法 14
2.5.4 抛物线法 15
2.5.5 二点三次插值法 16
2.5.6 成功失败法 17
2.5.7 非精确一维搜索 17
2.6 基本下降法 19
2.6.1 最速下降法 19
2.6.2 牛顿法 20
2.6.3 阻尼牛顿法 20
2.6.4 修正牛顿法 20
2.7 共轭方向法和共轭梯度法 21
2.7.1 共轭方向和共轭方向法 22
2.7.2 共轭梯度法 23
2.8 变尺度法拟牛顿法 24
2.8.1 对称秩1算法 24
2.8.2 DFP算法 25
2.8.3 BFGS算法 25
2.9 直接搜索法 27
2.9.1 Hook-Jeeves方法 27
2.9.2 单纯形法 29
2.9.3 Powell方法 29
2.10 算法的MATLAB实现 31
第3章 约束优化方法 36
3.1 最优性条件 36
3.1.1 等式约束问题的最优性条件 36
3.1.2 不等式约束问题的最优性条件 37
3.1.3 一般约束问题的最优性条件 37
3.2 罚函数法 38
3.2.1 外罚函数法 38
3.2.2 内点法 39
3.2.3 乘子法 41
3.3 可行方向法 43
3.3.1 Zoutendijk可行方向法 43
3.3.2 梯度投影法 45
3.3.3 简约梯度法 47
3.3.4 广义简约梯度法 49
3.4 二次逼近法 50
3.4.1 二次规划的概念 50
3.4.2 牛顿拉格朗日法 51
3.4.3 SQP算法 52
3.5 极大熵方法 56
3.6 算法的MATLAB实现 57
第4章 最小二乘问题 63
4.1 线性最小二乘问题的数值解法 63
4.1.1 满秩线性最小二乘问题 64
4.1.2 亏秩线性最小二乘问题 64
4.2 非线性最小二乘问题的数值解法 65
4.2.1 Gauss-Newton法 65
4.2.2 Levenberg-Marquardt方法L-M 方法 66
4.3 算法的MATLAB实现 67
第5章 线性规划 71
5.1 线性规划的标准形式 71
5.2 线性规划的基本定理 72
5.3 单纯形法 73
5.3.1 基本单纯形法 73
5.3.2 单纯形法的改进 77
5.4 线性规划问题的对偶问题 78
5.4.1 对偶单纯形法 79
5.4.2 对偶线性规划的应用 81
5.5 算法的MATLAB实现 84
第6章 动态规划 91
6.1 理论基础 91
6.2 最优化原理和基本方程 94
6.3 动态规划的建模方法及步骤 96
6.4 函数空间迭代法和策略空间迭代法 98
6.4.1 函数空间迭代法 99
6.4.2 策略空间迭代法 100
6.5 动态规划与静态规划的关系 103
6.6 算法的MATLAB实现 104
第7章 整数规划 112
7.1 理论基础 112
7.1.1 整数线性规划的标准形式 112
7.1.2 整数线性规划的求解 112
7.1.3 松 驰 113
7.1.4 分 解 113
7.2 分支定界法 114
7.3 割平面法 115
7.4 隐枚举法 118
7.4.1 0-1规划的标准形式 118
7.4.2 隐枚举法的基本步骤 119
7.5 匈牙利法 120
7.5.1 指派问题的标准形式 120
7.5.2 匈牙利法的基本步骤 121
7.6 算法的MATLAB实现 123
第8章 二次规划问题 128
8.1 等式约束二次规划的解法 128
8.1.1 零空间方法 128
8.1.2 拉格朗日乘子法 129
8.2 一般凸二次规划的有效集方法 130
8.3 算法的MATLAB实现 132
第9章 多目标规划 134
9.1 多目标规划的概念 134
9.2 有效解、弱有效解和绝对有效解 135
9.3 处理多目标规划问题的一些方法 136
9.3.1 评价函数法 136
9.3.2 约束法 140
9.3.3 逐步法 140
9.3.4 分层求解法 141
9.3.5 图解法 143
9.4 权系数的确定方法 144
9.4.1 方法 144
9.4.2 老手法 144
9.4.3 最小平方法 145
9.5 目标规划法 145
9.5.1 目标规划模型 145
9.5.2 目标点法 148
9.5.3 目标规划单纯形法 149
9.6 算法的MATLAB实现 153
第10章 图 论 161
10.1 图的理论基础 161
10.1.1 图的基本概念 161
10.1.2 图的矩阵表示 165
10.1.3 图论的基本性质和定理 166
10.2 最短路 166
10.2.1 Dijkstra算法 167
10.2.2 Warshall-Floyd算法 167
10.2.3 求最大可靠路的算法 168
10.2.4 求期望最大可靠容量路 168
10.3 树 169
10.3.1 求最小树的Kruskal算法 170
10.3.2 求最小树的Prim算法 171
10.4 欧拉Euler图和Hamilton图 171
10.4.1 Euler图 171
10.4.2 中国邮递员问题 172
10.4.3 Hamilton图 173
10.4.4 旅行售货员问题 173
10.5 匹配问题及其算法 174
10.5.1 匹配、完善匹配、最大匹配 174
10.5.2 匹配的基本定理 174
10.5.3 人员分配问题 175
10.5.4 最优分派问题 176
10.6 网络流的算法 177
10.6.1 网络和流 177
10.6.2 割 178
10.6.3 网络的最大流问题及Ford-Fulkerson算法 178
10.7 最小费用流 179
10.7.1 最小费用流问题 180
10.7.2 Busacker-Gowan迭代算法 181
10.8 图的染色 182
10.8.1 顶点染色及其算法 182
10.8.2 边染色及其算法 183
10.9 算法的MATLAB实现 183
下 篇 现代智能优化算法
第11章 进化算法 199
11.1 进化算法概述 199
11.2 遗传算法 200
11.2.1 遗传算法的基本概念 201
11.2.2 遗传算法的分析 203
11.2.3 遗传算子 205
11.2.4 控制参数的选择 207
11.2.5 简单遗传算法的改进 208
11.3 进化规划算法 210
11.3.1 进化规划算法算子 211
11.3.2 进化算法的改进算法 212
11.3.3 进化规划算法的特点 214
11.4 进化策略算法 215
11.4.1 进化策略算法的基本流程 215
11.4.2 进化策略算法的构成要素 215
11.5 进化规划与进化策略的关系 217
11.6 差分进化计算 217
11.6.1 差分进化计算的基本流程 218
11.6.2 差分进化计算的构成要素 218
11.6.3 差分进化计算的特点 219
11.7 Memetic算法 220
11.7.1 基本概念 220
11.7.2 Memetic算法的基本流程 221
11.7.3 Memetic算法的要点 222
11.7.4 Memetic算法的优点 222
11.8 算法的MATLAB实现 223
第12章 模拟退火算法 235
12.1 固体退火与模拟退火算法 235
12.1.1 固体退火过程和Metropolis准则 235
12.1.2 模拟退火算法的基本过程 236
12.2 模拟退火算法的控制参数 237
12.3 模拟退火算法的改进 239
12.4 算法的MATLAB实现 240
第13章 禁忌算法 245
13.1 禁忌搜索 245
13.1.1 禁忌搜索示例 245
13.1.2 禁忌算法的流程 247
13.1.3 禁忌算法的特点 247
13.2 禁忌算法的关键参数和操作 248
13.3 算法的MATLAB实现 250
第14章 蚁群算法 255
14.1 蚂蚁系统模型 255
14.1.1 基本概念 255
14.1.2 蚂蚁系统的基本模型 256
14.1.3 蚁密系统、蚁量系统和蚁周系统 257
14.1.4 蚁群算法的特点 258
14.2 蚁群算法的参数分析 258
14.3 蚁群算法的改进 259
14.3.1 带精英策略的蚂蚁系统 259
14.3.2 基于优化排序的蚂蚁系统 259
14.3.3 蚁群系统 260
14.3.4 最大最小蚂蚁系统 261
14.3.5 最优最差蚂蚁系统 262
14.3.6 自适应蚁群算法 263
14.4 算法的MATLAB实现 264
第15章 粒子群算法 269
15.1 粒子群算法的基本原理 269
15.2 全局模式与局部模式 270
15.3 改进的粒子群算法 271
15.3.1 带活化因子的粒子群算法 271
15.3.2 动态自适应惯性粒子群算法 272
15.3.3 自适应随机惯性权重粒子群算法 273
15.4 粒子群算法的特点 274
15.5 算法的MATLAB实现 274
第16章 人工鱼群算法 279
16.1 人工鱼群算法的基本原理 279
16.2 人工鱼的结构模型 279
16.3 人工鱼的四种基本行为算法描述 280
16.4 人工鱼群算法流程 281
16.5 各种参数对算法收敛性能的影响 283
16.6 人工鱼群算法的改进 285
16.7 全局人工鱼群算法 287
16.8 算法的MATLAB实现 289
第17章 混合蛙跳算法 294
17.1 基本原理 294
17.2 基本术语 294
17.3 算法的基本流程及算子 295
17.4 算法控制参数的选择 297
17.5 混合蛙跳算法的改进 298
17.6 算法的MATLAB实现 300
第18章 量子遗传算法 302
18.1 量子计算的基础知识 302
18.2 量子计算 303
18.3 量子遗传算法的流程 306
18.4 量子遗传算法的控制参数 308
18.5 量子遗传算法的改进 309
18.6 算法的MATLAB实现 311
第19章 人工蜂群算法 314
19.1 自然界中的蜂群 314
19.2 人工蜂群算法的基本原理 316
19.3 人工蜂群算法的流程 317
19.4 算法控制参数 319
19.5 人工蜂群算法的改进 319
19.6 算法的MATLAB实现 321
第20章 混沌优化算法 325
20.1 混沌优化的概念和原理 325
20.1.1 混沌的发展 325
20.1.2 混沌的定义及其特征 326
20.2 混沌优化 327
20.2.1 混沌优化方法 328
20.2.2 混沌优化算法的改进 329
20.3 算法的MATLAB实现 331
第21章 人工免疫算法 333
21.1 人工免疫算法概述 333
21.1.1 生物免疫系统 333
21.1.2 生物免疫基本原理 334
21.1.3 人工免疫系统及免疫算法 336
21.1.4 人工免疫算法与遗传算法的比较 340
21.2 免疫遗传算法 341
21.3 免疫规划算法 342
21.4 免疫策略算法 343
21.5 基于动态疫苗提取的免疫遗传算法 344
21.6 免疫克隆选择算法 346
21.7 算法的MATLAB实现 348
第22章 细菌觅食算法 354
22.1 大肠杆菌的觅食行为 354
22.2 细菌觅食算法的基本原理 354
22.2.1 算法的主要步骤与流程 356
22.2.2 算法参数的选取 358
22.3 细菌觅食算法的改进 359
22.4 算法的MATLAB实现 362
第23章 猫群算法 366
23.1 猫群算法的基本思想 366
23.1.1 基本术语 367
23.1.2 基本流程 368
23.2 控制参数的选择 369
23.3 猫群算法与粒子群算法的比较 369
23.4 猫群算法的改进 370
23.5 算法的MATLAB实现 370
第24章 神经网络与神经网络优化算法 373
24.1 人工神经网络的基本概念 373
24.1.1 人工神经元 373
24.1.2 传递函数 373
24.2 神经网络的模型 374
24.2.1 单层感知机 374
24.2.2 多层感知机 374
24.2.3 径向基函数神经网络 377
24.2.4 自组织竞争人工神经网络 378
24.2.5 对向传播神经网络 379
24.2.6 反馈型神经网络 381
24.3 神经网络与优化问题 383
24.3.1 求解优化问题的神经网络方法 384
24.3.2 求解组合优化问题的神经网络方法 386
24.4 算法的MATLAB实现 388
第25章 其他群智能优化算法 392
25.1 群智能概述 392
25.2 人工萤火虫群优化算法 395
25.3 蝙蝠算法 397
25.4 果蝇优化算法 399
25.5 生物地理优化算法 400
25.6 入侵野草优化算法 403
25.7 引力搜索算法 404
25.8 竞选算法 407
25.9 人工植物优化算法 410
25.10 文化算法 412
25.11 和声搜索算法 418
25.12 灰狼优化算法 420
25.13 布谷鸟搜索算法 422
25.14 化学反应优化算法 423
25.15 算法的MATLAB实现 426
第26章 混合优化算法 433
26.1 混合优化策略 433
26.1.1 算法流程要素433
26.1.2 混合优化策略的关键问题 434
26.2 优化算法的性能评价指标 435
26.3 混合算法的统一结构 436
26.4 混合优化策略的应用 438
26.4.1 遗传算法模拟退火算法的混合优化策略 438
26.4.2 基于模拟退火单纯形算法的混合策略 440
26.4.3 基于混合策略的TSP优化 442
26.4.4 基于混合策略的神经网络权值学习 443
26.5 混合优化算法的发展趋势 446
26.6 算法的MATLAB实现 446
参考文献 456
|
內容試閱:
|
最优化技术是一种以数学为基础,用于求解各种工程问题优化解的应用技术,其作为一个重要的科学分支一直受到人们的广泛重视,并在诸多领域得到迅速推广和应用,如系统控制、人工智能、模式识别、生产调度、金融、计算机工程等。
本书理论联系实际,较为全面地介绍了最优化技术的基本理论和方法,并通过大量的实例和现有绝大多数优化算法的MATLAB程序帮助读者提高学习效果,其主要读者是对最优化理论与算法感兴趣的高校师生、科技工作者等。读者只需具有微积分、线性代数和MATLAB程序设计基础等知识即可。通过对本书的学习和MATLAB编程实践,读者能了解各种最优化理论和方法,并可应用于科学研究和工程实践中。
国内外论述最优化理论的参考书为数众多,但由于最优化方法较多,所以一般书籍都只有满篇的数学公式,即使给出算法,也只是伪代码,没有提供具体的优化算法程序,这无助于大多数科学工作者学习优化理论。没有具体的算法程序,求解优化问题是非常困难甚至是不可能的。虽然借助MATLAB中的优化工具箱能解决一些优化问题,但对于较为复杂的优化问题,MATLAB提供的优化函数也无能为力,而且MATLAB中的优化工具箱也不可能包罗万象。
对大多数读者而言,目前还缺少一本内容较全面,囊括绝大多数优化算法并且能提供具体算法程序的实用参考书。鉴于此,作者撰写了本书,想通过对最优化方法的理论、实例及算法程序的介绍,帮助广大读者借助书中提供的MATLAB程序,了解乃至掌握最优化理论,并在科学研究和实际工程中应用。
本书从理论基础、算法流程、实例三个方面对最优化理论进行阐述,避免空洞的理论说教,着重介绍算法程序和实例,具有较强的指导性和实用性;力求内容全面、广泛,真正做到一书在手,优化算法不愁。本书分上、下两篇,上篇主要介绍经典优化算法,如无约束优化方法中的线搜索方法、梯度法、牛顿法、拟牛顿法、共轭梯度法等,约束优化问题中的罚函数法、可行方向法、线性及非线性规划、二次规划、动态规划、整数规划、多目标规划及图论等;下篇主要介绍现代优化算法,特别是各种智能优化算法的基本理论、实现技术以及算法融合方法,如进化算法包括遗传算法、进化规划、进化策略、差分进化、量子遗传等、粒子群、模拟退火、混沌优化、禁忌、蚁群、混合蛙跳、人工蜂群、神经网络、猫群、猴群、狼群、群居蜘蛛、布谷鸟、果蝇、人工鱼群、细菌人工免疫、蝙蝠、人工萤火虫、化学反应、文化算法、生物地理、入侵野草、引力搜索、和声搜索、竞选、人工植物、人工烟花等多种优化算法。可以这样说,本书几乎囊括了现在常用的最优化方法,内容既注重实用性,又有一定的理论分析,并且每种算法都配有一定的例题及MATLAB程序,供读者使用。希望通过这样的编写安排,使读者能全面地了解和掌握各种优化方法,根据实际需求,择己所需,解决各自研究领域中遇到的实际问题。
由于至今还没有一种有效的能够应用于所有问题的最优化理论和方法,即存在着所谓的无免费午餐定理,即算法A 在某些函数中的表现超过算法B,但在其他函数中算法B的表现要比算法A 好,所以在实际应用时读者应根据具体情况选择合适的优化算法或组成混合算法。
本书中的各种优化算法程序都借助于MATLAB完成。之所以选择MATLAB,是因为它对使用者的数学基础和计算机语言知识的要求不高,但编程效率和计算效率极高,还可以在计算机上直接输出结果和精美的图形。
MATLAB的功能非常强大,且版本不断更新,一个人要想掌握它的全部功能还是非常困难的,而且也没有必要。无论MATLAB怎样发展版本不断更新,归根结底它只是一个工具。其实MATLAB也没有大家想象的那么难,还是非常容易学习的,经过短时间的学习即可编程进行计算;但要精通它却需要有较好的学习方法。在学习MATLAB时,应重点关注和掌握MATLAB的基本知识程序结构、函数结构、数据结构等、编程技巧及函数编写方法,并不断进行编程实践。用MATLAB中的简单内部函数构成常用算法或过程的函数,再由它们构成一个个复杂的程序或函数。作者就是按照这个方法学习MATLAB的,编写各种程序时使用的也都是一些基本函数及基本语句,这样即使使用低版本的MATLAB也能编写出效果较好的程序。
不仅MATLAB的学习如此,本书优化算法的学习也应如此。MATLAB虽然有优化算法工具箱主要是各种经典优化算法、遗传算法、粒子群、模拟退火等算法函数,但并不表示没必要再自己编写这些算法程序了。对于任何一个优化算法,只有通过自己编程实践才能进一步加深对其编写方法,以及对MATLAB功能的理解进而掌握和应用,在此基础上才能在程序中对算法的不足之处加以改进,否则永远是纸上谈兵。如果通过本书的学习,既能掌握优化算法,又能加深对MATLAB的理解,并能借助于MATLAB的基本功能实现任何算法和方法,摆脱MATLAB控,最终达到没有计算机做不到的,只有你想不到的的计算机编程境界,那么作者将会感到非常欣慰。
本书的程序都在MATLAB2018a中运行通过,读者完全可以利用书中提供的程序解决各种优化问题。虽然作者在编程时,秉承使用简单,输入简单,其他一切都让计算机完成的原则,且考虑了多种情况,但受数学水平的制约,再加上精力和时间有限,不可能考虑得非常全面,难免会在程序中出现一些bug;或者由于没有对输入参数程序结构等内容进行优化,导致程序的性能并不是最优主要是没有考虑计算速度、耗时、内存等指标,在解决其他问题时,程序有可能会出错或得不到最优的结果。希望读者能自己根据算法的原理、各种函数的功能及出错时MATLAB的提示debug, 着重查找数据、参数、函数的输入格式及使用方法有没有错误,对函数、输入参数进行优化改进,以提高函数的性能。事实上,这才是学习和掌握MATLAB以及本书中介绍的各种最优化算法的最好方法。本书的目的也在于此,书中提供的程序只是起到一个抛砖引玉的作用。通过这样的训练,读者无论是在掌握MATLAB技巧上还是在学习最优化理论上,都会有极大的提高。
北京航空航天大学出版社联合MATLAB 中文论坛为本书设立了在线交流版块,网址:https:www.ilovematlab.cnforum-268-1.html读者也可以在该版块下载程序源代码。我们希望借助这个版块实现与广大读者面对面的交流,解决大家在阅读本书过程中遇到的问题,分享彼此的学习经验,共同进步。
由于作者水平有限,书中存在的错误和疏漏之处,恳请广大读者和同行批评指正。本书勘误网址:https:www.ilovematlab.cnthread-550348-1-1.html,作者邮箱:xuggsx@sina.com。
作 者
2017年12月于西安
|
|