前言
本书的Python代码旨在演示第二版《计算agent的基础》人工智能中的一些算法,其中包含并解释了所有代码。我们遵循了以下原则:
- 代码应该简单并且尽可能接近伪代码。我们选择了可读性而不是效率:我们尽可能地保持渐近复杂性(除非在某些情况下,更高效的代码是一个练习),但没有优化常量因素。
- 代码应该可以工作,但它不包括所有可能的功能。缺失的部分可以用作练习。
- 我们广泛使用列表理解、集合和字典。我们尽量不使用那些不明显的库是否合适的库。这是一种学生无需在库中进行广泛搜索就可以编写的代码。
- 它是为Python 3.3及以上版本设计的。(不是Python 2)。你也可以使用最新的版本。我们使用一个简单的方法来跟踪代码,使用一个方法display,它类似于print,但包含一个整数display级别。然后,用户可以设置对应对象(或类)的最大display级别,从而控制print的细节量。我们尽量避免在代码中添加太多的跟踪语句。display的使用是为了使算法的未来图形显示成为可能。
目录
- Python for Artificial Intelligence(基于Python的人工智能)
- Agents and Control(Agents和控制)
- Searching for Solutions(搜索解决方法)
- Reasoning with Constraints(推理与约束)
- Propositions and Inference(命题和推理)
- Planning with Certainty(确定性规划)
- Supervised Machine Learning(有监督机器学习)
- Reasoning with Uncertainty(不确定性推理)
- Planning with Uncertainty(不确定规划)
- Learning with Uncertainty(不确定学习)
- Multiagent Systems(多agent系统)
- Reinforcement Learning(强化学习)
- Relational Learning(关系学习)
作者介绍
David Poole,加拿大不列颠哥伦比亚大学计算机科学教授,计算智能实验室主任。2014-2015年,他是牛津大学Leverhulme Trust客座教授。他还是加拿大人工智能学会(CAIAC)2013年终身成就奖获得者,是国际人工智能促进协会(AAAI)和加拿大人工智能学会(CAIAC)Fellow。
Alan Mackworth,加拿大不列颠哥伦比亚大学计算机科学教授。他的研究兴趣是基于约束的人工智能及其应用,被称为约束满足、机器人足球、混合系统和基于约束的Agent等研究领域的先驱。他是国际人工智能联合会议(IJCAI)公司的总裁和理事,以及IJCAI执行委员会主席;同时还担任许多编委会和程序委员会委员。他是加拿大计算机智能研究会(CSCSI)主席,还担任国际人工智能促进协会(AAAI)主席。荣获的奖励包括:ITAC/NSERC杰出学术奖.Killam研究奖,《人工智能》杂志经典论文奖,CSCSI杰出服务奖,AAAI杰出服务奖,CAIAC终身成就奖等。他是AAAI和CAIAC的Fellow,加拿大前沿科学研究院和加拿大皇家学院院士。