最优化方法及其 MATLAB实现pdf下载

最优化方法及其 MATLAB实现百度网盘pdf下载

作者:
简介:最优化方法及其 MATLAB实现
出版社:
出版时间:2018-07
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

本书囊括了现有的绝大多数优化算法及其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

第12章 模拟退火算法……………………………………………………………………… 235

第13章 禁忌算法…………………………………………………………………………… 245

第14章 蚁群算法…………………………………………………………………………… 255

第15章 粒子群算法………………………………………………………………………… 269

第16章 人工鱼群算法……………………………………………………………………… 279

第17章 混合蛙跳算法……………………………………………………………………… 294

第18章 量子遗传算法……………………………………………………………………… 302

第19章 人工蜂群算法……………………………………………………………………… 314

第20章 混沌优化算法……………………………………………………………………… 325

第21章 人工免疫算法……………………………………………………………………… 333

第22章 细菌觅食算法……………………………………………………………………… 354

第23章 猫群算法…………………………………………………………………………… 366

第24章 神经网络与神经网络优化算法…………………………………………………… 373

第25章 其他群智能优化算法……………………………………………………………… 392

第26章 混合优化算法……………………………………………………………………… 433

前言/序言

最优化技术是一种以数学为基础,用于求解各种工程问题优化解的应用技术,其作为一个重要的科学分支一直受到人们的广泛重视,并在诸多领域得到迅速推广和应用,如系统控制、人工智能、模式识别、生产调度、金融、计算机工程等。

本书理论联系实际,较为全面地介绍了最优化技术的基本理论和方法,并通过大量的实例和现有绝大多数优化算法的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控”,最终达到“没有计算机做不到的,只有你想不到的”的计算机编程境界,那么作者将会感到非常欣慰。

本书的程序都在MATLAB(2018a)中运行通过,读者完全可以利用书中提供的程序解决各种优化问题。虽然作者在编程时,秉承“使用简单,输入简单,其他一切都让计算机完成”的原则,且考虑了多种情况,但受数学水平的制约,再加上精力和时间有限,不可能考虑得非常全面,难免会在程序中出现一些“bug”;或者由于没有对输入参数程序结构等内容进行优化,导致程序的性能并不是最优(主要是没有考虑计算速度、耗时、内存等指标),在解决其他问题时,程序有可能会出错或得不到最优的结果。希望读者能自己根据算法的原理、各种函数的功能及出错时MATLAB的提示“debug”, 着重查找数据、参数、函数的输入格式及使用方法有没有错误,对函数、输入参数进行优化改进,以提高函数的性能。事实上,这才是学习和掌握MATLAB以及本书中介绍的各种最优化算法的最好方法。本书的目的也在于此,书中提供的程序只是起到一个“抛砖引玉”的作用。通过这样的训练,读者无论是在掌握MATLAB技巧上还是在学习最优化理论上,都会有极大的提高。

北京航空航天大学出版社联合MATLAB 中文论坛为本书设立了在线交流版块,网址:https://www.ilovematlab.cn/forum-268-1.html(读者也可以在该版块下载程序源代码)。我们希望借助这个版块实现与广大读者面对面的交流,解决大家在阅读本书过程中遇到的问题,分享彼此的学习经验,共同进步。

由于作者水平有限,书中存在的错误和疏漏之处,恳请广大读者和同行批评指正。

2017年12月于西安