技术教育社区
www.teccses.org

Python AI项目实战

封面

作者:[美]Serge Kruk

页数:240

出版社:北京航空航天大学出版社

出版日期:2021

ISBN:9787512432239

电子书格式:pdf/epub/txt

内容简介

本书以介绍为主,不要求读者精通建模技术,从基础开始假设读者仅能够理解变量的定义(在数学和编程的意义上)、方程式、不等式和函数。本书综合了十年间的讨论,以及在奥克兰大学的建模入门课程和研究生课程,每个模型都使用Google OR-Tools在Python中表示,并可以

本书特色

Serge Kruk博士将其几十年来从事工业教学和咨询的成果编写成此书,本书通过使用Python编程优化建模解决人工智能问题。这本书涵盖了实际应用中进行创建和分析数学模型,如线性连续模型,非线性连续模型,纯线性整数模型。本书重点在于 Python人工智能项目的模型创建和分析方面,而不是专注于理论;书中的每一个模型都被详细地解释和使用Python进行编程编,使读者可以更好的理解本书的内容。
书中所有示例都是Python基于Google OR-Tools进行编程,并提供所有示例的源代码。
通过阅读本书,你将学到:
构建基本的基于Python的人工智能(AI)应用程序
使用数学优化方法和Google OR-Tools(优化工具)套件
使用Python和Google OR-Tools创建多种类型的项目

目录

第1章概述/1

1.1本书面向哪些问题/3

1.2本书的特点/4

1.2.1运行模型/5

1.2.2关于符号的解释/6

1.3实践中去学习:两栖动物共存/7

第2章线性连续模型/17

2.1掺杂(Mixing)/20

2.1.1构建模型/21

2.1.2变化量/24

2.1.3组合问题/26

2.2混合(Blending)/27

2.2.1构建模型/29

2.2.2变化量/32

2.3项目管理/34

2.3.1构建模型/35

2.3.2变化量/37

2.4多级模型/39

2.4.1问题实例/39

2.4.2构建模型/42

2.4.3变化量/46

2.5模式分类/48

2.5.1构建模型/50

2.5.2可执行模型/51

第3章隐线性连续模型/53

3.1分段线性/56

3.1.1构建模型/57

3.1.2变化量/61

3.2曲线拟合/65

3.2.1构建模型/67

3.2.2变化量/71

3.3重新审视模式分类/72

3.3.1可执行模型/73

第4章线性网络模型/75

4.1最大流量/78

4.1.1构建模型/78

4.1.2决策变量/79

4.1.3变化量/84

4.2最小成本流/85

4.2.1构建模型/86

4.2.2变化量/89

4.3转运/90

4.3.1构建模型/92

4.3.2变化量/94

4.4最快捷径/95

4.4.1构建模型/96

4.4.2选择算法/99

4.4.3变化量/99

第5章经典离散模型/105

5.1最小的集合数量/108

5.1.1构建模型/109

5.1.2变化量/113

5.2集合填充/114

5.2.1构建模型/115

5.2.2变化量/116

5.3装箱/117

5.3.1构建模型/118

5.4旅行推销员/127

5.4.1构建模型/128

5.4.2变化量/133

第6章经典混合模型/137

6.1设施选址/139

6.1.1构建模型/140

6.1.2变化量/144

6.2多商品流/144

6.2.1构建模型/146

6.2.2变化量/148

6.2.3实例/150

6.3人员编制/151

6.3.1构建模型/153

6.3.2变化量/156

6.4作业车间调度/157

6.4.1构建模型/157

第7章先进技术/163

7.1配料问题/165

7.1.1构建模型/166

7.1.2预分配裁剪模式/172

7.2非凸问题相关技巧/176

7.2.1从n个变量中选择k个非零变量/179

7.2.2从n个变量中选择k个相邻非零变量/181

7.2.3从n个约束条件中选择k个条件/184

7.2.4大中取大和小中取小/189

7.3排班问题/191

7.3.1构建模型/194

7.3.2变化量/199

7.4赛事时间表问题/199

7.4.1构建模型/200

7.4.2变化量/209

7.5谜题问题/209

7.5.1伪象棋问题/210

7.5.2数独谜题/214

7.5.3算式谜题:SendMoreMoney!/216

7.5.4逻辑谜题:LadiesandTigers/219

7.6Python中优化工具MPSolver快速参考/224

节选

1.1本书面向哪些问题
人工智能是一个广泛的领域,它涵盖了各种技术、目标和成功的措施。其中一个分支所关注的是为一些明确定义的问题找出证明的最佳解决方案。
本书介绍了关于实现数学模型优化问题的技术和科学。
关于优化,它可以是任何的问题,但又可以归结为一个问题,那就是:什么是最好的……?例如:
??哪条是从家到公司的最佳路线?
??什么最优汽车生产方式能够使得利益最大化?
??用什么方式将杂货带回家最好:纸袋还是塑料?
??为我的孩子选择哪个学校最好?
??哪种燃料用于火箭的助推器最好?
??芯片上晶体管的最佳位置在哪里?
??NBA最优的赛程如何安排?这些问题相当模糊,但可以通过多种方式进行解释。首先可以考虑一下:“最好的”对于我们而言,是最快、最短、最愉快的骑行,最少的颠簸,还是最低的油耗?此外,这个问题还不够完整,我们是在走路,还是骑马、开车或是滑雪?我们是独自一人,还是伴着哭闹的婴儿?
为了帮助我们制定优化问题的解决方案,数学家、理论家和实践者根据我们的问题构建了一个框架,我们称之为模型。模型的关键是它的目标函数和约束条件。简而言之,目标是我们希望达到的,而约束是我们采用的方法中的阻力。如果我们重新制定问题,用以更加明确地分析目标和约束,我们便可以更加接近真实的模型。
让我们再详细地回顾一下“最佳路线”的问题,但重点关注清晰的目标与约束条件。我们可以将其表述为:
根据这个城市的地图、我的家庭住址以及我两岁儿子日托的地址,为了尽快带他去托儿所,我最好的骑行路线是什么?目标是找到满足要求的所有解决方案(仅限于街道或自行车道的路线,也称为约束条件),到达目的地所需的最短的时间(目标)。
目标始终都是我们想要最大化或最小化的数量(时间、距离、金钱、表面积等),尽管你会看到我们所希望的最大化某些内容和最小化某些内容。这可能是很容易完成的,不过有时候却是没有目标的。我们说这是一个可行性的问题(即我们正在寻找满足要求的任何解决方案)。从建模者的角度来看,差异是很小的。特别是在大多数的实际情况下,建立可行性模型通常是第一步。在得到解决方案后,人们通常希望优化某些内容并修改模型以计算出目标函数。
1.2本书的特点
由于本书以介绍为主,我并不期望读者已经精通建模技术。我将会从基础开始,假设读者只理解变量的定义(在数学和编程的意义上)、方程式、不等式和函数。我还假设读者了解了一些编程语言,最好是Python,即便是PythonAI项目实战了解任何其他命令式程序设计语言,也完全能够读懂本书中展示的Python代码。
请注意,本书中的代码是不可忽视的部分。要想完整地学习本书的知识,读者尽量放慢速度,聚精会神地阅读代码。本书没有高谈阔论,只是用了数学公式,其余细节则“作为留给读者的练习”。欢迎读者使用并且修改代码,通过执行、使用、测试、优化以便能够充分理解。参与本书的数学专家们,就像对待任何数学论文一样对本书进行了审阅,而且代码也提交给了包括Intel、Motorola和IBM进行评价。
这本书综合了十年间的讨论,以及在奥克兰大学的建模入门课程(MOR242IntrotoOperationResearchModels)和研究生课程(APM568MathematicalModelinginIndustry)的成果。从本科阶段开始,到研究生阶段,我一直在构建模型方面进行研究,而没有深入研究过模型理论。
??每个模型都使用GoogleOR-Tools在Python中表示,并可以按照说明执行。实际上,本书中提供的代码是自动提取、执行的,输出无需手动干预即可插入到文本,甚至图表也是自动生成的(这要感谢Emacs和org-mode)。
??我的目的是帮助读者成为一名熟练的建模者,而不是理论家。因此,本书很少涉及与优化相关的繁杂数学理论。尽管如此,它仍然有利于创造简单而有效的模型。
??相关的网站提供了书中展示的所有代码以及应用于许多问题和变量的随机生成器,作者将其用作个性化的作业生成器,其实它也可以作为自学工具使用。https://github.com/sgkruk/Apress-AI
1.2.1运行模型
安装说明描述得太详细风险较大,因为软件更新远比书中介绍更频繁。例如,我开始使用Google的OR-Tools时,它曾托管在GoogleCode知识库中,而后来它在GitHub上。不过,这里有几点建议供参考。本书提供的所有代码均已经过测试,使用的是
??Python3(时下版本是3.7),尽管这些模型也可以在Python2上运行;
??OR-Tools6.6。
网页https://developers.google.com/optimization上提供了大多数操作系统的安装说明。最快、最简洁的方式是
pipinstall–upgradeortools
如果安装了OR-Tools,本书中的软件可以轻易通过克隆GitHub库下载。gitclonehttps://github.com/sgkruk/Apress-AI.git
其中,读者会发现一个生成文件(Makefile),几乎详细测试了所有本书中提到的模型。读者只需发出一个make指令即可测试安装是否完成。本书中的代码分为两个部分:一部分是用文本展示模型本身;另一部分是说明模型中如何调用数据的驱动程序。例如,在集合覆盖问题的章节中有一个名为set_cover.py的文件,另外还有一个名为test_set_cover.py的文件,该文件可以创建一个随机实例、运行模型并显示结果。有了这些例子,读者能够根据自己的需要进行修改。重要的是,要了解在执行test_set_cover.py文件时的主线流程。

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《Python AI项目实战》
Article link:https://www.teccses.org/1268517.html