正版保障 假一赔十 可开发票
¥ 42.31 6.1折 ¥ 69 全新
库存22件
送至北京市朝阳区
运费快递 ¥5.50
作者苏振裕
出版社北京大学出版社
ISBN9787301315330
出版时间2020-09
装帧平装
开本16开
定价69元
货号29128615
上书时间2024-10-29
评价11096好评率 99.96%
<前言icon5.eps> 为什么要写这本书?
在大数据时代,敏捷、准确的数据分析和预测将成为现实,各类大数据算法和AI(Artificial Intelligence,人工智能)算法不断涌现,在各行各业得到了广泛应用。当前大数据算法可分为两大类,一类是以统计和机器学习为代表的算法,另一类是以数学规划和启发式算法为代表的化算法。由于机器学习算法被广泛应用,对应的算法有大量的标准化工具,工程师和研究人员只需要将问题建模成算法对应的形式即可应用这些工具包。相比之下,数学规划和启发式算法则没有标准化的算法工具包可用,在建模过程中,工程师和研究人员不仅需要对问题有深入的理解,还需要编写对应的模型代码,因此,对他们的综合能力提出了更高的要求。
市场中的化算法类书籍,大多侧重算法原理的阐述,对案例的讲解也多使用手动计算的方式,在实际应用过程中往往要花费大量的时间,在问题规模较大时手动计算往往不再适用,所以这也是本书编写的初衷。在学习算法知识过程中,往往我们对书本的知识了然于胸,但尝试应用这些知识解决实际问题时却无从下手。因此,我决定写化算法的书籍,一方面介绍化算法的原理,另一方面通过代码实现化算法,将原理与实践相结合,在编程中思考算法的计算过程,并通过代码将算法应用在实际问题中,达到解决问题的目的。
<前言icon1.eps> 本书特色
1. 理论联系实际,应用性强
本书的案例多从生活中提取,针对实际问题讲解算法原理和计算方法,使读者在阅读过程中能较好地联系实际场景,从而更容易理解本书内容。
2. 理论与编程相结合,提高应用能力
本书的定位是理论与编程相结合,因此除了理论部分的公式推导,还结合图形化方法演示各种算法的优化过程,使读者对复杂问题有一个直观的感受,可更好地理解迭代求解问题,将实际问题建模成数学问题,以及使用数学工具求解。
3. 一个问题多种方法,提高学习效率
本书中大部分例题既可以用数学规划法解决,也可以用智能优化算法解决,通过比较多种不同方法的差异,可深入理解算法原理和应用场景。
<前言icon3.eps> 本书读者对象
<项目点.eps> 从事优化计算的研究人员及工程师。
<项目点.eps> 算法研究方向的开发技术人员。
<项目点.eps> 希望学习化算法的人员。
<项目点.eps> 希望提升算法编程能力的开发技术人员。
<前言icon4.eps> 资源下载
本书所涉及的源代码已上传至百度网盘,供读者下载。请读者关注封底“博雅读书社”微信公众号,找到“资源下载”栏目,根据提示获取即可。
本书以理论结合编程开发为原则,使用Python作为开发语言,讲解*化算法的原理和应用,详细介绍了Python基础、Gurobi 优化器、线性规划、整数规划、多目标优化、动态规划、图与网络分析、智能优化算法。对于算法部分的每一种算法都包含原理和编程实践,使读者对*化算法的认识更加深入。
本书分为 3 篇共 9 章。第 1 篇(第 1~3 章)是*化算法与编程基础:第 1 章介绍了什么是*化算法及其在生产和生活中的应用;第 2章介绍Python编程基础和Python数据分析库及绘图库;第 3章讲解Gurobi 优化器的基础和高级特性。第 2篇(第 4~6章)是数学规划方法:第 4章详细讲解线性规划的知识,包括单纯形法、内点法、列生成法、拉格朗日乘子法、对偶问题;第 5 章讲解整数规划解法的分支定界法和割平面法;第 6 章讲解多目标优化的概念及基于单纯形法的目标规划法。第 3 篇(第 7~9 章)是启发式算法:第 7 章介绍动态规划算法;第 8 章讲解图与网络分析,介绍*小生成树、*短路径、网络流、路径规划等问题的建模;第 9 章讲解了粒子群算法和遗传算法求解各种类型优化算法问题的方法。
本书内容丰富,实例典型,实用性强,适合各个层次从事*化算法研究和应用的人员,尤其适合有一定算法基础而没有编程基础的人员阅读。
苏振裕,厦门大学金融学硕士,现任SHEIN 智慧供应链资深算法工程师。知乎专栏《从推公式到写代码》作者,运筹优化论坛(optimize.fun)创建人。在大数据、人工智能、运筹优化和供应链方面,具有多年的相关算法研究应用经验。
| 第1篇 化算法与编程基础 |
第1章 化算法概述 2
1.1 化算法简介 3
1.2 化算法的内容 4
1.2.1 规划论 4
1.2.2 库存论 5
1.2.3 图论 6
1.2.4 排队论 7
1.2.5 可靠性理论 8
1.2.6 对策论 8
1.2.7 决策论 8
1.2.8 搜索论 9
1.3 本章小结 9
第2章 Python编程方法 10
2.1 开发环境安装 11
2.2 编程基础:Python语法 17
2.2.1 基础数据结构与基本运算 18
2.2.2 关于Python的列表、元组、字典、集合 18
2.2.3 程序控制语句 21
2.2.4 函数 21
2.2.5 类与实例 22
2.2.6 迭代 23
2.3 数据分析:NumPy基础 24
2.3.1 NumPy基础数据结构 24
2.3.2 NumPy的随机数 26
2.3.3 NumPy矩阵运算 28
2.3.4 NumPy线性代数 31
2.4 Pandas基础 32
2.4.1 Pandas基础数据结构 32
2.4.2 Pandas基础统计函数 35
2.4.3 Pandas基础数据处理 37
2.4.4 分组统计 39
2.4.5 apply函数 41
2.5 Python绘图 42
2.5.1 常用图形 43
2.5.2 图形属性 47
2.5.3 组合图和子图 49
2.5.4 三维图 51
2.5.5 动态图 55
2.6 本章小结 57
第3章 Gurobi优化器 58
3.1 Gurobi的数据结构 59
3.1.1 Multidict 59
3.1.2 Tuplelist 60
3.1.3 Tupledict 61
3.1.4 应用范例 62
3.2 Gurobi的参数和属性 65
3.2.1 参数类型 65
3.2.2 修改参数 75
3.2.3 修改参数的例子 75
3.2.4 属性类型 77
3.2.5 查看修改属性 85
3.2.6 修改属性的例子 85
3.3 Gurobi线性化技巧 85
3.3.1 值max 86
3.3.2 小值min 88
3.3.3 值abs 89
3.3.4 逻辑与and 90
3.3.5 逻辑或or 90
3.3.6 指示函数indicator 90
3.3.7 带固定成本约束 91
3.3.8 分段线性函数 91
3.4 Gurobi多目标优化 92
3.5 callback函数 96
3.5.1 回调函数callback定义 97
3.5.2 状态where与值what 97
3.5.3 callback函数的功能 98
3.6 本章小结 102
| 第2篇 数学规划方法 |
第4章 线性规划 104
4.1 线性规划的标准型 105
4.2 单纯形法 105
4.2.1 单纯形法的原理 106
4.2.2 单纯形法的过程 106
4.2.3 单纯形法代码 111
4.3 单纯形的数学规范型 113
4.4 内点法 114
4.4.1 内点法的原理 114
4.4.2 内点法过程 115
4.4.3 内点法代码 118
4.5 列生成法 120
4.5.1 列生成法的原理 120
4.5.2 列生成的过程 123
4.6 对偶问题 126
4.6.1 对偶问题的形式 127
4.6.2 对称形式对偶 128
4.6.3 对偶单纯形 129
4.6.4 对偶问题的应用 130
4.7 拉格朗日乘子法 130
4.7.1 无约束优化 131
4.7.2 等式约束优化 131
4.7.3 不等式约束优化 132
4.7.4 拉格朗日对偶 134
4.8 本章小结 137
第5章 整数规划 138
5.1 快速掌握Gurobi整数规划 139
5.2 分支定界法 140
5.3 割平面法 142
5.4 本章小结 147
第6章 多目标优化 148
6.1 多目标优化的一般形式 149
6.2 Pareto解 149
6.3 多目标优化求解方法 151
6.4 目标规划法 152
6.4.1 偏差变量 153
6.4.2 优先等级和权重系数 153
6.4.3 目标规划单纯形法 154
6.4.4 目标规划Gurobi实现 158
6.5 NSGA-Ⅱ 159
6.6 本章小结 160
| 第3篇 启发式算法 |
第7章 动态规划 162
7.1 多阶段决策问题 163
7.2 动态规划的基本概念 164
7.3 动态规划的化原理 165
7.4 短路径问题 166
7.5 使用整数规划解短路径问题 169
7.6 背包问题 170
7.7 本章小结 175
第8章 图与网络分析 176
8.1 图的基本概念 177
8.2 图的矩阵表示 178
8.3 小生成树 179
8.4 短路径问题 183
8.5 网络流问题 187
8.6 路径规划 190
8.7 VRP问题 196
8.8 本章小结 203
第9章 智能优化算法 204
9.1 粒子群算法 205
9.1.1 粒子群算法原理 205
9.1.2 粒子群求解无约束优化问题 207
9.1.3 粒子群求解约束优化问题 211
9.1.4 粒子群求解旅行商问题 218
9.2 遗传算法 225
9.2.1 遗传算法原理 225
9.2.2 遗传算法的编码方法 227
9.2.3 遗传算法的选择操作 230
9.2.4 遗传算法求解无约束优化问题 231
9.2.5 遗传算法库Geatpy的介绍 233
9.2.6 使用Geatpy求解约束优化问题 239
9.2.7 使用Geatpy求解多目标优化问题 241
9.3 本章小结 242
本书以理论结合编程开发为原则,使用Python作为开发语言,讲解*化算法的原理和应用,详细介绍了Python基础、Gurobi 优化器、线性规划、整数规划、多目标优化、动态规划、图与网络分析、智能优化算法。对于算法部分的每一种算法都包含原理和编程实践,使读者对*化算法的认识更加深入。
本书分为 3 篇共 9 章。第 1 篇(第 1~3 章)是*化算法与编程基础:第 1 章介绍了什么是*化算法及其在生产和生活中的应用;第 2章介绍Python编程基础和Python数据分析库及绘图库;第 3章讲解Gurobi 优化器的基础和高级特性。第 2篇(第 4~6章)是数学规划方法:第 4章详细讲解线性规划的知识,包括单纯形法、内点法、列生成法、拉格朗日乘子法、对偶问题;第 5 章讲解整数规划解法的分支定界法和割平面法;第 6 章讲解多目标优化的概念及基于单纯形法的目标规划法。第 3 篇(第 7~9 章)是启发式算法:第 7 章介绍动态规划算法;第 8 章讲解图与网络分析,介绍*小生成树、*短路径、网络流、路径规划等问题的建模;第 9 章讲解了粒子群算法和遗传算法求解各种类型优化算法问题的方法。
本书内容丰富,实例典型,实用性强,适合各个层次从事*化算法研究和应用的人员,尤其适合有一定算法基础而没有编程基础的人员阅读。
苏振裕,厦门大学金融学硕士,现任SHEIN 智慧供应链资深算法工程师。知乎专栏《从推公式到写代码》作者,运筹优化论坛(optimize.fun)创建人。在大数据、人工智能、运筹优化和供应链方面,具有多年的相关算法研究应用经验。
第1章
化算法概述
1.1 化算法简介
化算法,即计算方法,也是运筹学,主要介绍化问题的算法及其应用,在第二次世界大战及战后经济恢复期间,一些由多学科专家组成的运筹组织在军事决策、资源合理利用和提高生产效率等领域做出了很大贡献,他们的工作促使运筹学逐步形成一门新兴的学科,并迅速得到普及和发展。
化同运筹学一样,是利用现代数学、系统科学、计算机科学及其他学科的成果,来研究人类从事的各种活动中处理事务的数量化规律,使有限的人、物、财、时空、信息等资源得到充分和合理的利用,以期获得尽可能满意的经济和社会效果。
化算法早研究经济活动和军事活动中能用数量来表达的有关策划、管理方面的问题。随着客观实际的发展,它在生产生活中也得到了广泛的应用,经常用于解决现实生活中的复杂问题,特别是改善或优化现有系统的效率。化算法本身也在不断发展,涵盖线性规划、非线性规划、整数规划、组合规划、图论、网络流、决策分析、排队论、可靠性数学理论、仓储库存论、物流论、博弈论、搜索论和模拟等分支。
当前化算法的应用领域如下。
(1)市场销售:多应用在广告预算和媒体的选择、竞争性定价、新产品开发、销售计划的编制等方面。如美国杜邦公司在20世纪50年代起就非常重视对广告、产品定价和新产品引入的算法研究。
(2)生产计划:从总体确定生产、储存和劳动力的配合等计划以适应变动的需求计划,主要采用线性规划和仿真方法等。此外,还可用于日程表的编排,以及合理下料、配料、物料管理等方面。
(3)库存管理:存货模型将库存理论与物料管理信息系统相结合,主要应用于多种物料库存量的管理,确定某些设备的能力或容量,如工厂库存量、仓库容量、新增发电装机容量、计算机的主存储器容量、合理的水库容量等。
(4)运输问题:涉及空运、水运、陆路运输,以及铁路运输、管道运输和厂内运输等,包括班次调度计划及人员服务时间安排等问题。
(5)财政和会计:涉及预算、贷款、成本分析、定价、投资、证券管理、现金管理等,采用的方法包括统计分析、数学规划、决策分析,以及盈亏点分析和价值分析等。
(6)人事管理:主要涉及以下6个方面。
①人员的获得和需求估计。
②人才的开发,即进行教育和培训。
③人员的分配,主要是各种指派问题。
④各类人员的合理利用问题。
⑤人才的评价,主要是测定一个人对组织及社会的贡献。
⑥人员的薪资和津贴的确定。
(7)设备维修、更新、可靠度及项目选择和评价:如电力系统的可靠度分析、核能电厂的可靠度及风险评估等。
(8)工程的化设计:在土木、水利、信息、电子、电机、光学、机械、环境和化工等领域皆有作业研究的应用。
(9)计算机信息系统:可将作业研究的化算法应用于计算机的主存储器配置,如等候理论在不同排队规则下对磁盘、磁鼓和光盘工作性能的影响。利用整数规划寻找满足一组需求档案的寻找次序,并通过图论、数学规划等方法研究计算机信息系统的自动设计。
(10)城市管理:包括各种紧急服务救难系统的设计和运用,如消防车、救护车、警车等分布点的设立。美国采用等候理论方法来确定纽约市紧急电话站的值班人数,加拿大采用该方法研究城市警车的配置和负责范围,以及事故发生后警车应走的路线等。此外,还涉及城市垃圾的清扫、搬运和处理,以及城市供水和污水处理系统的规划等相关问题。
1.2 化算法的内容
化算法的内容包括:规划论(线性规划、非线性规划、整数规划和动态规划)、库存论、图论、排队论、可靠性理论、对策论、决策论、搜索论等,下面将具体介绍这些内容。
1.2.1 规划论
规划论(数学规划)是运筹学的一个重要分支,早在1939年苏联的康托罗维奇(Leonid V.Kantorovich)和美国的希奇柯克(F.L.Hitchcock)等人就在生产组织管理和编制交通运输方案时研究和应用了线性规划方法。
1947年美国的旦茨格(G.B. Dantzig)等人提出了求解线性规划问题的单纯形法,为线性规划的理论与计算奠定了基础,特别是计算机的出现和日益完善,更使规划论得到迅速的发展,它采用计算机处理成千上万个约束条件和变量的大规模线性规划问题,从解决技术问题的化,到工业、农业、商业、交通运输业和决策分析部门都可以发挥作用。
从应用范围来看,小到一个班组的计划安排,大至整个部门乃至国民经济计划的化方案分析都有用武之地,因此,它具有适应性强、应用面广、计算技术比较简便的特点。非线性规划的基础性工作是在1951年由库恩(H.W.Kuhn)和塔克(A.W.Tucker)等人完成的,到了20世纪70年代,数学规划无论是在理论和方法上,还是在应用的深度和广度上都得到了进一步的发展。
数学规划的研究对象是计划管理工作中有关安排和估值的问题,即在给定条件下,按某个衡量指标来寻找安排的方案。它可以表示为求函数在满足约束条件下的极大值或极小值问题。
现代的数学规划和古典的求极值的问题有本质的不同。古典的求极值方法只能处理具有简单表达式和简单约束条件的情况,而现代的数学规划中的问题目标函数和约束条件都很复杂,而且要求给出某种精确度的数字解答,因此算法的研究受到了特别的重视。
数学规划中简单的一类问题就是线性规划。如果约束条件和目标函数都属于线性关系就叫线性规划。要解决线性规划问题,从理论上讲要解线性方程组,因此解线性方程组的方法,以及关于行列式、矩阵的知识,在线性规划中非常重要。
线性规划及其解法(单纯形法)的出现,对化算法的发展起了很大的推动作用。许多实际问题都可以转化成线性规划来解决,而单纯形法又是一个行之有效的算法,加上计算机的出现,能够使一些大型复杂的实际问题得以解决。
非线性规划是线性规划的进一步发展和延伸。许多实际问题如设计问题、经济平衡问题都属于非线性规划的范畴。非线性规划扩大了数学规划的应用范围,同时也给数学工作者提出了许多基本的理论问题,使数学中的如凸分析、数值分析等也得到了发展。还有一种规划问题和时间有关,即“动态规划”,它已经成为在工程控制、技术物理和通信中控制问题的重要工具。
1.2.2 库存论
库存论(存贮论)是运筹学中发展较早的分支。早在1915年,哈里斯(F.Harris)就针对银行货币的储备问题进行了详细的研究,建立了一个确定性的存贮费用模型,并求得了批量公式。1934年威尔逊(R.H.Wilson)重新得出经济订购批量公式(EOQ公式)。
库存论真正作为一门理论发展起来是在20世纪50年代。1958年威汀(T.M.Whitin)发表了《存贮管理的理论》,随后阿罗(K.J.Arrow)等发表了《存贮和生产的数学理论研究》,莫兰(P.A.Moran)在1959年编写了《存贮理论》。此后,库存论成了运筹学中的一个独立的分支,有关学者相继对随机或非平稳需求的存贮模型进行了广泛深入的研究。
现代化的生产和经营活动都离不开存贮,为了使生产和经营活动能有条不紊地进行,工商企业都需要进行一定数量的物资贮备。例如,工厂为了进行连续生产,就需要贮备一定数量的原材料或半成品;商店为了满足顾客的需求,就必须有足够的商品库存;农业部门为了确保正常生产,就需要贮备一定数量的种子、化肥、农药;军事部门为了战备的需要,就要存贮各种武器弹药等军用物品;银行为了进行正常的业务,就需要有一定的资金贮备;在如今的信息社会,人们又建立了各种数据库和信息库,用以存贮大量的信息。
因此,存贮问题是人类社会活动,特别是生产活动中一个普遍存在的问题。物资的存贮,除了用来支持日常生产经营活动,库存调节还可以满足高于平均水平的需求,同时也可以防止低于平均水平的供给。此外,大批量物资的订货或利用物资季节性价格的波动,也可以得到价格上的优惠。
但是,存贮物资需要占用大量的资金、人力和物力,有时甚至造成资源的严重浪费。大量的库存物资所占用的资金,无论从相对数值还是数值上来看都是十分惊人的。此外,大量的库存物资还会引起货物的劣化变质而造成巨大损失,如药品、水果、蔬菜等,长期存放就会引起变质。特别是在市场经济条件下,过多地存贮物资还要承受市场价格波动的风险。
那么,一个企业究竟应存放多少物资为适宜呢?对于这个问题,很难笼统地给出准确回答,必须根据企业自身的实际情况和外部的经营环境来决定,若能通过科学的存贮管理,建立一套控制库存的有效方法,从而降低物资的库存水平,减少资金的占用量,提高资源的利用率,这对企业来讲,所带来的经济效益无疑是十分可观的。这正是现代存贮论所要研究的问题。
物资的存贮按其目的的不同可分为以下3种。
(1)生产存贮。它是企业为了维持正常生产而储备的原材料或半成品。
(2)产品存贮。它是企业为了满足其他部门的需要而存贮的半成品或成品。
(3)供销存贮。它是指存贮在供销部门的各种物资,可直接满足顾客的需要。
但不论哪种类型的存贮系统,一般都可以使用如图1.1所示的形式来表示。
<image1.pdf>
图1.1 库存模型
库存论可以用“供、存、销”3个字来描述,即一个存贮系统,通过订货和进货后的存贮与销售来满足顾客的需求。或者说,由于生产或销售的需求,从存贮系统中取出一定数量的库存货物,这就是存贮系统的输出;存贮的货物由于不断地输出而减少,必须及时地补充,补充
大学物理(上册)
全新北京
¥23.97
大学物理(上册)
九品萍乡
¥25.00
大学物理同步辅导 有笔记
八五品武汉
¥8.00
双峰:最终档案
九五品北京
¥42.00
大学物理学 下册
全新成都
¥26.96
说文解字
九五品北京
¥5.00
封神演义上下
八五品上海
¥15.00
古文观止译注
八五品广州
¥10.00
马克思恩格斯全集
八五品石家庄
¥12.00
3588幅六七十年代原版新闻老照片一枪打【毛主席林彪周恩来华国锋等、江青四人帮、工农兵、红卫兵、全国各省典型人物事例、时事要闻、批判“四人帮”批林批孔、反击右倾翻案风、江西共大在前进、永做无产阶级专政的坚强柱石、伟大的领袖毛主席永远活在我们心中、中国人民伟大的无产阶级革命家朱德同志永垂不朽、到大江大海去锻炼、热烈庆贺柬埔寨爱国军民的伟大胜利、重大事件原版新闻老照片】品佳!保真!详见描述栏
九品西宁
¥206680.00
中国古典文学丛书共139种286册“学术研究必备、古籍整理终极典藏、文学博士生导师推荐,本人12年精心搜集,博君一笑。”
九五品信阳
¥29888.00
大学物理学 全五册 【第二版】
九品北京
¥40.00
党政机关公文格式国家标准应用指南赠GB/T9704-2012
九五品石家庄
¥15.00
超级版冒险小虎队全10册
九五品枣庄
¥239.00
鲁迅序跋集(上下)
九品阜阳
¥20.00
普通高等教育“十一五”国家级规划教材:大学物理实验
八五品成都
¥36.00
朱祖谋手稿六种(宛委遗珍 16开精装 全二册)
全新杭州
¥280.00
古代散文百科大辞典
八品上海
¥30.00
佛像
九五品沈阳
¥72.80
【80年代库存】绣像评书《 呼家将:长篇章回大书 》(上下)新华书店库存新开包、收藏精品
九五品白城
¥28.00
— 没有更多了 —
微信扫码逛孔网
无需下载
全新正版,好评
飛快地飛到我的手裏 感覺很棒啊