├── .gitignore ├── README.md ├── docs ├── .nojekyll ├── README.md ├── _sidebar.md ├── chap1_Introduction │ └── Exercise.md ├── chap2_Intelligent_Agents │ └── Exercise.md ├── chap3_Solving_Problems_By_Searching │ └── Exercise.md └── index.html ├── images ├── readme └── 人工智能现代方法.png └── 人工智能 现代方法(第4版)-前3章开源内容.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | # ide 2 | .idea 3 | 4 | # mac 5 | .DS_Store 6 | 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aima-notes 2 | ## 人工智能:现代方法(第4版)笔记 3 | 4 | 5 | 6 | ## 项目背景 7 | 《人工智能:现代方法》是一本人工智能大百科全书,自1995年第一版上市以来畅销至今,被全球135个国家的1500多所学校、国内32所高校采用为教材,可谓是全球最权威、最经典的人工智能畅销教材,第四版是近十年重要更新版本。
8 | 作者为AI领域的两位大牛:斯图尔特•罗素(Stuart Russell),加利福尼亚大学伯克利分校计算机科学系教授;彼得•诺维格(Peter Norvig)谷歌公司研究总监,美国宇航局艾姆斯研究中心计算科学部负责人,美国艺术与科学院和加利福尼亚科学院的院士。
9 | 全书试图全方位探索人工智能领域,书中内容涵盖逻辑、概率和连续数学,感知、推理、学习和行动,以及公平、信任、社会公益和安全。本次课程主要学习其中的绪论、智能体和应用搜索解决问题方法三部分内容。我们将共读《人工智能:现代方法》,梳理读书笔记与习题解读。 10 | 11 | ## 任务安排 12 | 本次课程只学习书本的前三章,如果对后续内容感兴趣,可以后续再自行学习 13 | 14 | | Task | 内容 | 时间 | 15 | |----------|:-------------:|:------:| 16 | | Task01 | 第1章 绪论 | 1-16 —— 1-19 | 17 | | Task02 | 第2章 智能体 | 1-19 —— 1-22 | 18 | | Task03 | 3.1-3.3 问题求解智能体、问题示例、搜索算法 | 1-22 —— 1-26 | 19 | | Task04 | 3.4 无信息搜索策略 | 1-26 —— 1-30 | 20 | | Task05 | 3.5 有信息(启发式)搜索策略 | 1-30 —— 2-3 | 21 | | Task06 | 3.6 启发式函数 | 2-3 —— 2-5 | 22 | | Task07 | 总结与回顾 | 2-5 —— 2-6 | 23 | 24 | ## 拓展材料 25 | 书籍配套代码:https://github.com/aimacode 26 | 27 | ## 购书福利 28 | Datawhale专属五折优惠
29 | 平装版:https://u.jd.com/4dVt4LN
30 | 精装版:https://u.jd.com/4CVwOPv
31 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/aima-notes/c884a11a3711d2c65a7b2425c8811d4cab507ad0/docs/.nojekyll -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # aima-notes 2 | 3 | 欢迎来到《人工智能:现代方法(第4版)》笔记 🎉 4 | 5 | 英文版习题项目地址:[https://github.com/aimacode/aima-exercises](%E2%80%B8https://github.com/aimacode/aima-exercises) 6 | 7 | 英文版习题许可证:[https://github.com/aimacode/aima-exercises/blob/master/LICENSE.md](https://github.com/aimacode/aima-exercises/blob/master/LICENSE.md%E2%80%B8) 8 | -------------------------------------------------------------------------------- /docs/_sidebar.md: -------------------------------------------------------------------------------- 1 | - 第一章 绪论 2 | - [第一章习题](/chap1_Introduction/Exercise) 3 | - 第二章 智能体 4 | - [第二章习题](/chap2_Intelligent_Agents/Exercise) 5 | - 第三章 通过搜索进行问题求解 6 | - [第三章习题](/chap3_Solving_Problems_By_Searching/Exercise) 7 | -------------------------------------------------------------------------------- /docs/chap1_Introduction/Exercise.md: -------------------------------------------------------------------------------- 1 | # 第一章习题 2 | 3 | # Exercise 1 4 | 5 | > Define in your own words: (a) intelligence, (b) artificial intelligence, (c) agent, (d) rationality, (e) logical reasoning. 6 | > 7 | > 用您自己的话来定义:(a)智能,(b)人工智能,(c)智能体,(d)理性,(e)逻辑推理。 8 | 9 | 10 | 11 | **参考解答** : 12 | 13 | >(a)智能:是智力和能力的总称,中国古代思想家一般把智与能看做是两个相对独立的概念。也有不少思想家把二者结合起来作为一个整体看待。 14 | > 15 | >(b)人工智能:是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。它研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。 16 | > 17 | >(c)智能体:具有智能的实体,以云为基础,以AI为核心,构建一个立体感知、全域协同、精准判断、持续进化、开放的智能系统。或者简单说能够采取行动,能够自主运行、感知环境、长期持续存在、适应变化以及制定和实现目标。 18 | > 19 | >(d)理性:指人在正常思维状态下时为了获得预期结果,有自信与勇气冷静地面对现状,并快速全面了解现实分析出多种可行性方案,再判断出最佳方案且对其有效执行的能力。理性是基于现有的理论,通过合理的逻辑推导得到确定的结果, 20 | > 21 | >(e)逻辑推理:从一般性的前提出发,通过推导,得出具体陈述或个别结论的过程。逻辑推理的种类按推理过程的思维方向划分,一类是从特殊到一般的推理,推理形式主要有归纳、类比,另一类是从一般到特殊的推理,推理形式主要有演绎。 22 | 23 | 24 | 25 | # Exercise 2 26 | > Read Turing’s original paper on AI Turing:1950 .In the paper, he discusses several objections to his proposed enterprise and his test for intelligence. Which objections still carry weight? Are his refutations valid? Can you think of new objections arising from developments since he wrote the paper? In the paper, he predicts that, by the year 2000, a computer will have a 30% chance of passing a five-minute Turing Test with an unskilled interrogator. What chance do you think a computer would have today? In another 50 years? 27 | > 28 | > 阅读图灵关于 AI Turing:1950 的原始论文。在论文中,他讨论了对他提出的企业和他的智能测试的几点反驳意见。哪些反对意见仍然有分量?他的反驳是否有效?你能想到自从他写这篇论文以来,事态发展引发的新的反对意见吗?在论文中,他预测到2000年,计算机将有30%的几率通过五分钟的图灵测试,而不需要熟练的询问器。你认为今天电脑有什么机会?再过50年? 29 | 30 | 31 | 32 | **参考解答** : 33 | 34 | >图灵的九条反驳意见至今仍有分量且有效,他们分别是:神学论点,“鸵鸟”式论点,数学论点,意识论点,种种能力限制的论点,创新论点,神经系统连续性论点,行为变通性论点,超感知论点。今天的电脑拥有更加强大的算力,比以前更加优秀的深度学习,强化学习等方法。因此如今的电脑在很多方面都能做的比人类还好,比如图像识别的正确率方面。如果再过50年,很难想象,我认为机器的发展速度和学习能力比人类强太多太多了,也许会有颠覆认知东西产生。 35 | 36 | 37 | 38 | 39 | # Exercise 3 40 | > Every year the Loebner Prize is awarded to the program that comes closest to passing a version of the Turing Test. Research and report on the latest winner of the Loebner prize. What techniques does it use? How does it advance the state of the art in AI? 41 | > 42 | > 每年的罗布纳奖(Loebner Prize)都会颁发给最接近通过图灵测试的程序。调研最新的罗布纳奖得主。它使用什么技术?它如何推动人工智能的发展? 43 | > 注:勒布纳奖已在2020年停止颁发。 44 | 45 | 46 | 47 | **参考解答** : 48 | 49 | > Stephen Worswick 是目前为止最新的罗布纳奖得主,也获得最多该奖的人。他所开发的聊天机器人 Mitsuku,曾在 2013 年、2016 年、2017 年、2018 年和 2019 年获奖。Mitsuku 是一个非常像人的聊天机器人,它模仿英格兰北部一位 18 岁女性的个性。任何有网络连接的人都可以自由地与 Mitsuku 聊天,问她任何问题,它都会回答。它在模仿人类反应方面做得很好,能够识别现代口语、计算机缩写(如 LOL)和时事。询问她最喜欢的足球队,她会“愉快地”告诉您有关利兹联队的信息。有趣的是,“终结者”是她最喜欢的电影。虽然 Mitsuku 逐年改进,但聊天机器人和文本另一端的人类之间仍然存在明显的差异。Mitsuku 很难识别常见的拼写错误或字母互换。即使它努力与互动的人继续对话,对话也存在一个明显的截止点。 50 | > 51 | > 它使用 AIML (Artificial Intelligence Markup Language) 来识别用户输入的关键词和语法,并回复相应的回答。AIML 是一种基于模式匹配的语言,用于定义人工智能与人类之间的对话。它允许开发人员使用类似于编程语言的语法来定义人机对话的模式。 52 | > 例如,如果有人问“你能吃下一个房子吗?”,它会查询“房子”的性质。发现“made_from”的值是“brick”,就会回答“不能”。 53 | > 54 | > Mitsuku 作为一个高度可定制的聊天机器人,它能够与人类进行多种类型的对话,并且不断改进。这也推动了人工智能在自然语言处理和对话系统方面的发展。 55 | > 提高自然语言理解能力: Mitsuku 使用 AIML 技术来识别和理解人类语言,这有助于提高 AI 的自然语言理解能力。 56 | > 提高对话系统的可用性: Mitsuku 可以进行各种类型的对话,并且可以根据用户的需求进行自定义,这有助于提高 AI 对话系统的可用性。 57 | > 提高对话系统的交互性: Mitsuku 能够与人类进行自然的对话,这有助于提高 AI 对话系统的交互性。 58 | 59 | 60 | 61 | # Exercise 4 62 | 63 | >Are reflex actions (such as flinching from a hot stove) rational? Are they intelligent? 64 | > 65 | >反射动作(例如从热炉中退缩)是否合理?他们智能吗? 66 | 67 | 68 | 69 | **参考解答** : 70 | 71 | >反射动作是合理的。反射动作通常比经过深思熟虑后采取的较慢的动作更为成功,它属于理性行为的一种方式,而理性行为是理性智能体方法,它也是智能的。 72 | 73 | 74 | 75 | # Exercise 5 76 | 77 | >There are well-known classes of problems that are intractably difficult for computers, and other classes that are provably undecidable. Does this mean that AI is impossible? 78 | > 79 | >有一些众所周知的问题是计算机难以解决的,还有一些问题是无法确定的。这是否意味着人工智能是不行的? 80 | 81 | 82 | 83 | **参考解答** : 84 | 85 | >虽然有一些众所周知的问题是计算机难以解决的,但从人工智能的诞生(1943-1956),起步发展期(1956-1969),反思发展期(1966-1973),应用发展期-专家系统(1969-1986),神经网络的回归(1986-现在),概率推理和机器学习(1987-现在),大数据(2001-现在),深度学习(2011-现在)。经历这些阶段之后产生的新兴方向,比如自动驾驶、腿足式机器人,自动规划和调度,机器翻译,语音识别,推荐系统,博弈,图像理解,医学,气候科学等等这些,表明人工智能在特定方向进步的速度比人类还快。按照这种发展与进步的速度,人工智能迟早可以解决那些众所周知的问题的。所以这并不意味着人工智能不行。 86 | 87 | 88 | 89 | # Exercise 6 90 | 91 | >Suppose we extend Evans’s *SYSTEM* program so that it can score 200 on a standard IQ test. Would we then have a program more intelligent than a human? Explain. 92 | > 93 | >假设我们扩展了Evans的SYSTEM程序,使其在标准智商测试中可以获得200分。那么我们会有一个比人类更聪明的程序吗? 94 | 95 | 96 | 97 | **参考解答** : 98 | 99 | >目前还不能做到一个比人类更聪明的程序,即使其在标准智商测试能获得200分。目前人工智能也只能在单一方面或者某些方面有较出色的表现,在综合方面的学习与表现是远不如人类的。智商测试虽然能达到200分,那也只是在智商测试这一方面很卓越,在其他方面并不能表现都很出色。 100 | 101 | # Exercise 7 102 | 103 | > **英文原文:** The neural structure of the sea slug *Aplysis* has been widely studied (first by Nobel Laureate Eric Kandel) because it has only about 20,000 neurons, most of them large and easily manipulated. Assuming that the cycle time for an *Aplysis* neuron is roughly the same as for a human neuron, how does the computational power, in terms of memory updates per second, compare with the high-end computer described in (Figure [1.3](https://aimacode.github.io/aima-exercises/figures/computer-brain-table.png))? 104 | > 105 | > **中文翻译:** sea slug Aplysis 的神经结构得到了广泛的研究(首先是由诺贝尔奖获得者埃里克·坎德尔(Eric Kandel)进行的),因为它只有大约2万个神经元,其中大多数都很大,很容易操纵。假设Aplysis神经元的周期时间与人类神经元大致相同,那么就每秒内存更新而言,与图1.3中描述的高端计算机相比,其计算能力如何? 106 | 107 | 解答: 108 | 109 | Aplysis神经结构的计算能力相对于高端计算机来说要低得多。Aplysis只有约2万个神经元,而高端计算机可以拥有数十亿个处理器。因此,Aplysis的计算能力要远远低于高端计算机。 110 | 111 | # Exercise 8 112 | 113 | >**英文原文:** How could introspection—reporting on one’s inner thoughts—be inaccurate? Could I be wrong about what I’m thinking? Discuss. 114 | > 115 | >**中文翻译:** 自省——对一个人内心想法的报告——怎么会不准确呢?我的想法会不会是错的?请讨论。 116 | 117 | 解答:所谓自省,指一个人内心想法进行思考的过程,是不准确的。原因是自我反省是具有偏见的,这些偏见来自人类生活的方方面面,有对事物客观认知错误的认知偏差,有为了满足大脑趋利避害需求的自我欺骗偏差,有受限于大脑知识容量而忘记部分信息的记忆偏差,也有社会地位偏差,比如社会不同阶级的人无法以理性的角度看同一件事情。综上,我认为人的自我反省是不准确的,但可以在反省的过程中借助工具和他人的力量做到尽量准确。 118 | 119 | 120 | 121 | # Exercise 9 122 | 123 | > **英文原文:** To what extent are the following computer systems instances of artificial intelligence: 124 | > \- Supermarket bar code scanners. 125 | > \- Web search engines. 126 | > \- Voice-activated telephone menus. 127 | > \- Internet routing algorithms that respond dynamically to the state of the network. 128 | > 129 | > **中文翻译:** 以下计算机系统实例是否是人工智能的例子。 130 | > 131 | > - 超市条码扫描器。 132 | > - 网络搜索引擎。 133 | > - 语音激活的电话菜单。 134 | > - 对网络状态作出动态反应的互联网路由算法。 135 | 136 | 解答: 137 | 138 | \- 超市条码扫描器:不被认为是人工智能的应用,他们只是用来执行特定的程序,将商品上的二维码匹配到固定的信息上,不被认为具有泛化到其他任务的潜力 139 | \- 网络搜索引擎:搜索系统被认为是人工智能的实例,因为它们为根据使用者的查询返回相关结果。它们的设计中包含根据使用者的反馈来学习和优化内部的算法参数,从而改进搜索结果。 140 | \- 语音激活的电话菜单:语音激活系统被认为是人工智能的实例,因为它们具有识别和回应口头命令的能力,可以理解自然语言。 141 | \- 对网络状态作出动态反应的互联网路由算法: 现代的互联网路由算法被认为是人工智能的实例,因为它们能够根据实时网络信息做出决策,并根据反馈不断变化来更好的适应当前的网络条件。 142 | 143 | # Exercise 10 144 | 145 | > **英文原文:** To what extent are the following computer systems instances of artificial intelligence: 146 | > \- Supermarket bar code scanners. 147 | > \- Voice-activated telephone menus. 148 | > \- Spelling and grammar correction features in Microsoft Word. 149 | > \- Internet routing algorithms that respond dynamically to the state of the network. 150 | > 151 | > **中文翻译:** 以下计算机系统在多大程度上是人工智能的实例。 152 | > 153 | > - 超市的条形码扫描器。 154 | > - 语音激活的电话菜单。 155 | > - Microsoft Word中的拼写和语法纠正功能。 156 | > - 对网络状态作出动态反应的互联网路由算法 157 | 158 | 解答: 159 | 160 | \- 超市的条形码扫描器:同1.9 161 | \- 语音激活的电话菜单:同1.9 162 | \- Microsoft Word中的拼写和语法纠正功能:被认为是人工智能算法的实例,可以理解用户输入语句的意思,并找出错误,可以随着反馈更新迭代自己的参数,越变越好,具有学习能力。 163 | \- 对网络状态作出动态反应的互联网路由算法:同1.9 164 | 165 | 166 | # Exercise 13 167 | 168 | > **英文原文:** Why would evolution tend to result in systems that act rationally? What goals are such systems designed to achieve? 169 | > 170 | > **中文翻译:** 为什么进化会倾向于形成做事理性的系统?这样的系统是为了实现什么目标而设计的呢? 171 | 172 | 解答:首先,进化倾向于产生理性行为的系统,因为理性行为是基于目前信息收益最大化的行为,往往可以增加收益。其次,不论是自然世界中系统的进化和计算机程序系统的进化,都有特定的内在规律和被设置好的目标,只不过自然世界的规律是达尔文进化论,目标是生存和繁衍,计算机的规律是各种科学原理,目标是人类所设定的各种任务,如识别,分类和各种自然语言处理子任务。所以,我们观察到进化成功的系统,都满足了这些理性的任务,所以我们会认为进化最终会趋于理性,这也是幸存者偏差的一种。 173 | 174 | # Exercise 14 175 | 176 | > **英文原文:** Is AI a science, or is it engineering? Or neither or both? Explain. 177 | > 178 | > **中文翻译:** 人工智能是科学,还是工程?或者两者都不是?解释一下。 179 | 180 | 解答:人工智能即使科学又是工程。人工智能是科学这点毋庸置疑,任何智能系统背后都有无数的数学原理和科学理论。人工智能同时也是工程,因为它涉及将这些科学知识转为实际中的应用,以创建和设计可以使用人工智能的系统,人工智能算法的训练和部署等等。 181 | 182 | 183 | # Exercise 15 184 | 185 | >“Surely computers cannot be intelligent—they can do only what their programmers tell them.” Is the latter statement true, and does it imply the former? 186 | > 187 | >“当然,计算机不可能是智能的,他们只能按照程序员的指示去做。”后一种说法是正确的吗?这是否意味着前者也是正确的? 188 | 189 | 190 | 191 | **参考解答** : 192 | 193 | >后一种说法并不正确,按照程序员的指示去做只是其中的一种方式,在计算机进行无监督学习的过程,程序员是没有明确标注数据,也就是相当于没有明确的指示。但是计算机也能做出智能分类,这也就验证了前者所说计算机不可能是智能的是错误的。 194 | 195 | 196 | 197 | # Exercise 16 198 | 199 | >“Surely animals cannot be intelligent—they can do only what their genes tell them.” Is the latter statement true, and does it imply the former? 200 | > 201 | >“动物当然不可能是聪明的,它们只能按照基因的指示行事。”后一种说法是正确的吗?这是否意味着前者也是正确的? 202 | 203 | 204 | 205 | **参考解答** : 206 | 207 | >后一种说法不正确,基因能决定一部分,但是个体在环境当中也能产生适应环境指示的行为。比如狗看到肉骨头会去吃,但是经过环境当中人的训练,人可以告诉狗不要吃肉骨头,而这时候狗也就不完全受基因影响而一定马上会去吃肉骨头。当然,这也不能说明动物是不聪明的,反而大部分动物都很聪明。比如狼有很好的团队合作,这是很聪明的。这些既有先天基因决定的一部分,也有后天学习的一部分。 208 | 209 | 210 | 211 | # Exercise 17 212 | 213 | >“Surely animals, humans, and computers cannot be intelligent—they can do only what their constituent atoms are told to do by the laws of physics.” Is the latter statement true, and does it imply the former? 214 | > 215 | >“当然,动物、人类和计算机不可能是智能的,它们只能做物理定律告诉它们的组成原子做的事情。”后一种说法是正确的吗?这是否意味着前者也是正确的? 216 | 217 | 218 | 219 | **参考解答** : 220 | 221 | >后一种说法不正确,人类不仅能做已发现的物理定律范围内的事情,人类还能探索更多尚未发现科学。计算机不仅能做现在已有程序所能执行的范围内的事情,还能进行深度学习,做更多自己以前不能做且未知的事情。动物的进化,也证明了动物也是可以做到之前所受定律限制而不能做的事情。这意味着动物、人类、计算机都可能是智能的。 222 | 223 | 224 | # Exercise 18 225 | 226 | > **英文原文:** Examine the AI literature to discover whether the following tasks can currently be solved by computers: - Playing a decent game of table tennis (Ping-Pong). - Driving in the center of Cairo, Egypt. - Driving in Victorville, California. - Buying a week’s worth of groceries at the market. - Buying a week’s worth of groceries on the Web. - Playing a decent game of bridge at a competitive level. - Discovering and proving new mathematical theorems. - Writing an intentionally funny story. - Giving competent legal advice in a specialized area of law. - Translating spoken English into spoken Swedish in real time. - Performing a complex surgical operation. 227 | > 228 | > **中文翻译:** 查阅人工智能文献,查阅以下任务目前是否可以由计算机解决: 229 | > 230 | > - 打一局像样的乒乓球(Ping-Pong)。 231 | > - 在埃及开罗的市中心开车。- 在加利福尼亚的维克多维尔开车。 232 | > - 在市场上买一个星期的杂货。 233 | > - 在网上购买一周的食品杂货。 234 | > - 在有竞争力的水平上打一局体面的桥牌。 235 | > - 发现并证明新的数学定理。 236 | > - 写一个有意的搞笑故事。 237 | > - 在一个专门的法律领域提供合格的法律建议。 238 | > - 将英语口语实时翻译成瑞典语口语。 239 | > - 进行一次复杂的外科手术。 240 | 241 | 解答: 242 | 243 | - 打一局像样的乒乓球(Ping-Pong)。可以打乒乓球的人工智能机器人已经被开发出来,有些甚至能够击败人类选手。 244 | 245 | - 在埃及开罗的市中心开车:AI驱动的自动驾驶汽车目前无法在开罗等许多大城市复杂混乱的交通状况下行驶。 246 | - 在加利福尼亚的维克多维尔开车:AI驱动的自动驾驶汽车已经在加州道路。然而,根据自主程度的不同可以处理的道路情况也不同。 247 | - 在市场上买一个星期的杂货:AI驱动的购物助理已经开发出来,但它们目前还是为推荐,搜索和广告等业务而服务,虽然还没有发展到可以为个人定制的程度,但可以通过自动下单的方式在市场上实现杂货购买。 248 | - 在网上购买一周的食品杂货。人工智能驱动的购物助手已经被开发出来,但它们目前还是为推荐,搜索和广告等业务而服务,虽然还没有发展到可以为个人定制的程度,但可以通过自动下单的方式在网上实现食品购买。 249 | - 在有竞争力的水平上打一局体面的桥牌:人工智能桥牌系统已经被开发出来,可以打出很高的水平,有些甚至能够击败人类玩家。 250 | - 发现并证明新的数学定理。人工智能驱动的定理证明器还不能发现和证明新的数学定理。 251 | - 写一个有意的搞笑故事:人工智能驱动的自然语言生成系统可以生成文本,可以根据训练数据中的内容生成一些故意搞笑的故事。 252 | - 在一个专门的法律领域提供合格的法律建议:人工智能支持的法律咨询系统可以协助进行法律研究和文件分析,但它们还不具有足够的专业性。 253 | - 将英语口语实时翻译成瑞典语口语:人工智能语音翻译系统可以实时翻译口语,翻译的准确性和流畅性可能会因具体系统和训练时使用的数据量而异。 254 | - 进行一次复杂的外科手术:人工智能驱动的手术机器人还不能像人类外科医生那样执行复杂的外科手术。 255 | 256 | # Exercise 19 257 | 258 | > **英文原文:** For the currently infeasible tasks, try to find out what the difficulties are and predict when, if ever, they will be overcome. 259 | > 260 | > **中文翻译:** 对于目前无法解决的任务,尝试找出困难所在,并预测何时能克服这些困难。 261 | 262 | 解答:目前无法解决的任务如下。 263 | 264 | - 在埃及开罗的市中心开车:这需要汽车能够在复杂的和变化的交通环境中运行,并能够应对各种各样的道路状况和行人。目前有相关研究通过预测算来来模拟路况的变化和行人举动,有望在近期实现。 265 | - 发现并证明新的数学定理。人工智能驱动的定理证明器还不能发现和证明新的数学定理。需要更深刻的符号理解和语言处理中的逻辑思考水平,有望在下一次技术井喷之后实现。 266 | - 进行一次复杂的外科手术:人工智能驱动的手术机器人还不能像人类外科医生那样执行复杂的外科手术,需要很多相关学科的支持,如柔性纳米材料机器人的实现。 267 | 268 | # Exercise 20 269 | 270 | > **英文原文:** Various subfields of AI have held contests by defining a standard task and inviting researchers to do their best. Examples include the DARPA Grand Challenge for robotic cars, the International Planning Competition, the Robocup robotic soccer league, the TREC information retrieval event, and contests in machine translation and speech recognition. Investigate five of these contests and describe the progress made over the years. To what degree have the contests advanced the state of the art in AI? To what degree do they hurt the field by drawing energy away from new ideas? 271 | > 272 | > **中文翻译:** 人工智能的各个子领域都通过定义一个标准任务并邀请研究人员做到最好来举办比赛。这方面的例子包括DARPA的机器人汽车大挑战,国际规划竞赛,Robocup机器人足球联赛,TREC信息检索活动,以及机器翻译和语音识别的竞赛。调查这些竞赛中的五项,并描述多年来取得的进展。这些比赛在多大程度上推动了人工智能技术的发展?它们在多大程度上因为把精力从新的想法中抽走而损害了这个领域? 273 | 274 | 解答: 275 | 276 | 1. DARPA机器人汽车大挑战: 该比赛旨是为了推动汽车自动驾驶技术的发展,在无人驾驶汽车上完成复杂的道路挑战。每届比赛中都提高了自动驾驶汽车在道路上的安全性和可靠性,对该领域是有正向帮助的。 277 | 2. 国际规划竞赛: 该比赛是为了推动自主规划技术的发展,开发能够解决各种不同类型问题的规划系统。每届比赛中都提高了规划系统在复杂问题上的效率和准确性,对该领域是有正向帮助的。 278 | 3. Robocup机器人足球联赛: 该比赛是为了推动机器人智能和协作技术的发展,开发能够在人类与机器人之间进行足球比赛的机器人。每届比赛都提高了机器人在比赛中的运动能力和协作能力,对该领域是有正向帮助的。。 279 | 4. TREC信息检索活动: 该比赛是为了推动信息检索技术的发展,开发能够在大型文本数据库中快速准确地检索信息的系统。每届比赛都会大幅提高信息检索系统的准确性和速度,对信息检索领域是有正向帮助的。 280 | 5. 机器翻译和语音识别的竞赛: 这些比赛是为了推动机器翻译和语音识别技术的发展,开发能够翻译或识别语音的系统。每届比赛中都会大幅提高了机器翻译和语音识别系统的准确性和速度。 281 | -------------------------------------------------------------------------------- /docs/chap2_Intelligent_Agents/Exercise.md: -------------------------------------------------------------------------------- 1 | # 第二章习题 2 | 3 | # Exercise 1 4 | > Suppose that the performance measure is concerned with just the first $T$ time steps of the environment and ignores everything thereafter. Show that a rational agent’s action may depend not just on the state of the environment but also on the time step it has reached. 5 | > 6 | > 假设性能指标只关注环境的前$T$时间步,而忽略之后的所有内容。说明理性智能体的动作可能不仅取决于环境状况,还取决于它到达的时间步。 7 | 8 | 9 | 10 | **参考解答** : 11 | 12 | > 在不同的时间步,环境的状态可能不同,于是不同的动作会带来不同的奖励。假设在任何状态下都有两个动作a和b可以选择,并考虑两种情况:智能体在时间T或时间T-1时处于状态s。在状态s时,动作a到达状态s′,可以获得的奖励为0,而动作b则再次到达状态s,奖励为1;在状态s′时,任何一个动作都可以获得奖励10。在时间T-1,在s状态下做a是理性的,在时间结束前预期总回报为10;但在时间T,动作b是理性的,预期总回报为1,因为在时间结束前无法获得10的回报。例如在考试时,最开始(时间步)题目全都没做(状态)时,通常是按照试卷顺序做题(动作)。在考试后半段(时间步),当剩余时间不多但所剩题目较多时(状态),通常会选择性跳过一些非常难或者非常耗时的题目,先做简单、更容易得分的题(动作),以获得最好的成绩(奖励)。而不是按照试卷的顺序去做,导致丢失了部分简单题的分数。 13 | 14 | 15 | # Exercise 2 16 | 17 | > Let us examine the rationality of various vacuum-cleaner agent functions. 18 | > 1. Show that the simple vacuum-cleaner agent function described in Figure [vacuum-agent-function-table](https://aimacode.github.io/aima-exercises/figures/vacuum-agent-function-table.png) is indeed rational under the assumptions listed on page vacuum-rationality-page 19 | > 2. Describe a rational agent function for the case in which each movement costs one point. Does the corresponding agent program require internal state? 20 | > 3. Discuss possible agent designs for the cases in which clean squares can become dirty and the geography of the environment is unknown. Does it make sense for the agent to learn from its experience in these cases? If so, what should it learn? If not, why not? 21 | 22 | # Exercise 4 23 | 24 | > For each of the following assertions, say whether it is true or false and support your answer with examples or counterexamples where appropriate. 25 | > 1. An agent that senses only partial information about the state cannot be perfectly rational. 26 | > 2. There exist task environments in which no pure reflex agent can behave rationally. 27 | > 3. There exists a task environment in which every agent is rational. 28 | > 4. The input to an agent program is the same as the input to the agent function. 29 | > 5. Every agent function is implementable by some program/machine combination. 30 | > 6. Suppose an agent selects its action uniformly at random from the set of possible actions. There exists a deterministic task environment in which this agent is rational. 31 | > 7. It is possible for a given agent to be perfectly rational in two distinct task environments. 32 | > 8. Every agent is rational in an unobservable environment. 33 | > 9. A perfectly rational poker-playing agent never loses. 34 | > 35 | > 对于以下每个断言,说明其真假,并酌情用示例来支持您的答案。 36 | > 1. 一个只感知到状态部分信息的智能体不可能是完全理性的。 37 | > 2. 存在任何纯反射智能体都无法完成理性动作的任务环境。 38 | > 3. 存在一个每个智能体都理性的任务环境。 39 | > 4. 智能体程序的输入智能体函数的输入相同。 40 | > 5. 任何智能体函数都可以通过一些程序/机器组合实现。 41 | > 6. 假设智能体从可能的操作集中均匀地随机选择操作。存在一个确定性任务环境,在这个环境中该智能体是理性的。 42 | > 7. 在两种不同的任务环境中,特定的智能体可能都是完全理性的。 43 | > 8. 在不可观察的环境中,每个智能体都是理性的。 44 | > 9. 一个完全理性的扑克智能体永远不会输。 45 | 46 | 47 | 48 | **参考解答** : 49 | 50 | > 1. 错误。完全理性是指根据收到的传感器信息做出良好决策的能力。 51 | > 2. 正确。纯反射智能体会忽略之前的理解,因此无法在部分可观测的环境中获得最佳状态估计。例如,对于下棋游戏来说,只知道对手这次将棋子放在了哪里(改变了环境的什么状态),而不知道过去的动作(忽略之前的理解)。无法对整个棋局形成一个正确的理解,则无法获得最佳估计。 52 | > 3. 正确。例如,在具有单一状态的环境中,任何动作都有相同的奖励,采取哪个动作的结果都是一样的。更一般地说,在所有动作排列下奖励不变的环境都满足此条件。 53 | > 4. 错误。智能体程序将当前感知作为输入,智能体函数可能依赖整个感知历史。 54 | > 5. 错误。例如,需要在恒定时间内解决任意大小的棘手问题实例的智能体函数。 55 | > 6. 正确。这是(3)的特殊情况;如果采取哪种动作都无关紧要,那么随机选择是合理的。 56 | > 7. 正确。只要为两个不同的环境建立同样的价值映射就可以。例如,有2套不同的骰子(一套两个)。一套骰子是正常的,另一套只有1和6。智能体可以押注骰子的总和,对猜对的人给予同等奖励。因此,在这两种情况下,总是押注于7的智能体都是理性的。 57 | > 8. 错误。智能体可以拥有环境的先验信息,因此可以事先知道不同动作的奖励。 58 | > 9. 错误。因为牌是随机发放的,除非智能体手里的牌完全比对方好,否则还是可能会输。他只能让他手中的牌的收益最大化,但不一定会赢。一手烂牌给谁都赢不了。 59 | 60 | 61 | 62 | # Exercise 5 63 | 64 | > For each of the following activities, give a PEAS description of the task environment and characterize it in terms of the properties listed in Section 65 | > \- Playing soccer. 66 | > \- Exploring the subsurface oceans of Titan. 67 | > \- Shopping for used AI books on the Internet. 68 | > \- Playing a tennis match. 69 | > \- Practicing tennis against a wall. 70 | > \- Performing a high jump. 71 | > \- Knitting a sweater. 72 | > \- Bidding on an item at an auction. 73 | 74 | 75 | 76 | > 对于以下每个活动,给出任务环境的 PEAS 描述,并根据部分中列出的属性对其进行表征 77 | > \- 踢足球。 78 | > \- 探索土卫六的地下海洋。 79 | > \- 在互联网上购买二手 AI 书籍。 80 | > \- 打网球比赛。 81 | > \- 靠墙练习网球。 82 | > \- 表演跳高。 83 | > \- 织毛衣。 84 | > \- 在拍卖会上竞标一件物品。 85 | 86 | ## 2.5.1 PEAS: 87 | 88 | | | 性能度量 | 环境 | 执行器 | 传感器 | 89 | | -------------------------- | ---------------------- | ---------------------- | -------------------------- | ------------------------------------ | 90 | | 踢足球 | 进球数、抢断数、犯规数 | 足球场、参赛选手、裁判 | 腿、头、胸 | 高速摄像机、红外传感器、超声传感器 | 91 | | 探索土卫六的地下海洋 | 正确感知地理环境 | 地下海洋、礁石、暗流 | 发动机、探测器 | 温度传感器、红外传感器、超声波传感器 | 92 | | 在互联网上购买二手 AI 书籍 | 花费最小、质量最佳 | 店铺商品信息 | 计算机 | 计算机 | 93 | | 打网球比赛 | 个人得分、胜负 | 网球场、竞争对手 | 带关节的手臂、腿 | 超声波传感器,摄像头 | 94 | | 靠墙练习网球 | 成功击球数 | 墙 | 带关节的手臂 | 超声波传感器 | 95 | | 表演跳高 | 跳跃高度、动作美观度 | 跳高架、杆 | 腿、腰 | 高度输入 | 96 | | 织毛衣 | 毛线整齐度、花纹美观度 | 针、线 | 手 | 关节角度传感器、触觉传感器 | 97 | | 在拍卖会上竞标一件物品 | 成交价最小化 | 拍卖对手 | CPU、GPU、策略反馈的显示器 | 价格输入 | 98 | 99 | ## 2.5.2 属性: 100 | 101 | | | 可观测 | 智能体 | 确定性 | 回合式 | 静态 | 离散 | 102 | | :------------------------: | ---------- | :----: | :----: | :----: | ------ | ---- | 103 | | 踢足球 | 部分可观测 | 多 | 不确定 | 回合 | 动态 | 连续 | 104 | | 探索土卫六的地下海洋 | 部分可观测 | 单 | 不确定 | 序贯 | 半动态 | 连续 | 105 | | 在互联网上购买二手 AI 书籍 | 完全可观测 | 单 | 确定 | 序贯 | 静态 | 离散 | 106 | | 打网球比赛 | 部分可观测 | 多 | 不确定 | 序贯 | 动态 | 连续 | 107 | | 靠墙练习网球 | 完全可观测 | 单 | 确定 | 回合 | 动态 | 连续 | 108 | | 表演跳高 | 完全可观测 | 单 | 确定 | 回合 | 静态 | 离散 | 109 | | 织毛衣 | 完全可观测 | 单 | 确定 | 序贯 | 动态 | 连续 | 110 | | 在拍卖会上竞标一件物品 | 部分可观测 | 多 | 不确定 | 序贯 | 动态 | 连续 | 111 | 112 | 113 | 114 | # Exercise 6 115 | 116 | 题目和Exercise 5 相同 117 | 118 | 119 | 120 | 121 | # Exercise 7 122 | 123 | > For each of the following act 124 | > 125 | > Define in your own words the following terms: agent, agent function, agent program, rationality, autonomy, reflex agent, model-based agent, goal-based agent, utility-based agent, learning agent. 126 | 127 | 128 | 129 | > 用你自己的话定义以下术语:智能体、智能体函数、智能体程序、理性、自主、反射智能体、基于模型的智能体、基于目标的智能体、基于效用的智能体、学习智能体。 130 | 131 | 132 | 133 | **智能体**:任何通过传感器、感知环境并通过执行器作用于该环境的事物都可以被视为智能体(agent)。 134 | 135 | **智能体函数**:将任意一个给定的感知序列映射到一个动作,即,接收消息产生动作。 136 | 137 | **智能体程序**:将当前的感知作为传感器的输入,并将动作返回给执行器。 138 | 139 | **理性**:对于每个可能接收到的感知序列,给定感知序列的性能度量、先验知识,选择一个期望最大化的动作。 140 | 141 | **自主**:不依赖于设计者的先验知识,能通过自身的感知进行学习和弥补不正确的先验知识。 142 | 143 | **反射智能体**:根据当前感知选择动作。 144 | 145 | **基于模型的智能体**: 转移模型和传感器模型结合在一起让智能体能够在传感器受限的情况下尽可能地跟踪世界的状态。 146 | 147 | **基于目标的智能体**: 根据当前的感知序列和理想目标的信息,选择实现目标的动作。 148 | 149 | **基于效用的智能体**: 根据性能度量函数,最大化其动作结果的期望效用,即效用函数最大化。 150 | 151 | **学习型智能体**:根据感知序列,对智能体的各个组件进行改进,使得各组件与可用的反馈信息更接近,达到提高整体性能的目的。 152 | 153 | 154 | 155 | 156 | 157 | # Exercise 8 158 | 159 | > This exercise explores the differences between agent functions and agent programs. 160 | > 161 | > 1. Can there be more than one agent program that implements a given agent function? Give an example, or show why one is not possible. 162 | > 2. Are there agent functions that cannot be implemented by any agent program? 163 | > 3. Given a fixed machine architecture, does each agent program implement exactly one agent function? 164 | > 4. Given an architecture with nn bits of storage, how many different possible agent programs are there? 165 | > 5. Suppose we keep the agent program fixed but speed up the machine by a factor of two. Does that change the agent function? 166 | 167 | 168 | 169 | > 本练习探讨了智能体功能和智能体程序之间的差异。 170 | > 171 | > 1. 是否可以有多个智能体程序实现给定的智能体函数?举个例子,或者说明为什么不可能。 172 | > 2. 是否有任何智能体程序无法实现的智能体功能? 173 | > 3. 给定一个固定的机器架构,每个智能体程序是否只实现一个智能体功能? 174 | > 4. 给定一个架构nn存储位,有多少种不同的可能智能体程序? 175 | > 5. 假设我们保持智能体程序不变,但将机器速度提高两倍。这会改变智能体功能吗? 176 | 177 | 178 | 179 | 1. 可以。例如,智能体在较大的区域搜寻目标时,智能体函数是用最少的时间找到目标。多个智能体协同搜寻目标,同时扫描不同的区域,协同反馈给智能体函数,最终搜寻到目标。 180 | 181 | 2. 有。当智能体程序无法通过感知序列或先验知识对当前动作或状态进行判断,从而不能产生动作时。例如,让机器人说出我在想什么? 182 | 183 | 3. 看具体功能,如果智能体程序不需要交互,是独立运行的,就只实现一个智能体功能;如果需要交互,就不是。 184 | 185 | 4. $$ 186 | 2^{n}种 187 | $$ 188 | 189 | 5. 当任务是序贯且连续发生的,结果可能会发生改变;当任务是静态且离散时,结果不会发生改变 190 | 191 | # Exercise 9 192 | 193 | 194 | > Write pseudocode agent programs for the goal-based and utility-based agents. 195 | > 196 | > 为基于目标和基于效用的智能体编写智能体程序的伪代码。 197 | 198 | 199 | 200 | **参考解答** : 201 | 202 | > 基于目标的智能体程序 203 | > *** 204 | > function GOAL-BASED-AGENT(percept) returns 一个动作 205 | >> persistent: state, 智能体对世界状态的当前理解 206 | > goal, 智能体希望实现的目标的描述 207 | > rules, 一组条件-动作规则 208 | > action, 最近的动作,初始为空 209 | > state ← UPDATE-STATE (state, action, percept, goal) 210 | > rule ← RULE-MATCH (state, rules, goal) 211 | > action ← rule.ACTION 212 | > return action 213 | 214 | > 基于效用的智能体程序 215 | > *** 216 | > function UTILITY-BASED-AGENT(percept) returns 一个动作 217 | >> persistent: state, 智能体对世界状态的当前理解 218 | > possible states, 可能使快乐最大化的状态 219 | > rules, 一组条件-动作规则 220 | > action, 最近的动作,初始为空 221 | > state ← UPDATE-STATE (state, action, percept, possible states) 222 | > rule ← RULE-MATCH (state, rules, possible states) 223 | > action ← rule.ACTION 224 | > return action 225 | 226 | # Exercise 13 227 | 228 | 229 | > Consider a modified version of the vacuum environment in Exercise [2.10](https://aimacode.github.io/aima-exercises/agents-exercises/ex_10), in which the agent is penalized one point for each movement. 230 | > 231 | > 1. Can a simple reflex agent be perfectly rational for this environment? Explain 232 | > 2. What about a reflex agent with state? Design such an agent 233 | > 3. How do your answers to 1 and 2 change if the agent’s percepts give it the clean/dirty status of every square in the environment? 234 | 235 | 236 | > 考虑练习2.10中真空环境的一个修改版本,在该版本中,每行动一次,智能体将被罚一分。 237 | > 238 | > 1. 对于这种环境,一个简单反射型智能体是否完全合理?请做出解释 239 | > 2. 那么带有状态的反射型智能体呢?请设计一个这样的智能体 240 | > 3. 如果智能体的感知为环境中每个广场的清洁/肮脏状态,您对1和2的回答会如何变化 241 | 242 | 243 | 244 | # Exercise 15 245 | 246 | > Repeat Exercise [2.13](https://aimacode.github.io/aima-exercises/agents-exercises/ex_13) for the case in which the location sensor is replaced with a “bump” sensor that detects the agent’s attempts to move into an obstacle or to cross the boundaries of the environment. Suppose the bump sensor stops working; how should the agent behave? 247 | 248 | 249 | > 对于位置传感器被替换为”碰撞“传感器的情况,该传感器可以检测到智能体进入障碍物或者越过环境边界的尝试。重复练习2.13。假设碰撞传感器停止工作,智能体该如何表现? 250 | 251 | 252 | > 参考答案: 253 | > 这个问题乍一看非常相似;主要区别在于,智能体不必使用位置感知来构建地图,而是必须“发明”自己的位置(毕竟,这些位置只是表示状态空间图的数据结构中的节点)。当检测到一个碰撞时,智能体认为它仍然在相同的位置,并可以在地图上添加一面墙。 254 | 对于网格环境,智能体可以跟踪它的(x,y)位置,因此可以判断它何时返回到旧状态。然而,在一般情况下,没有简单的方法来判断一个状态是新的还是旧的。 255 | 256 | 257 | # Exercise 16 258 | 259 | > The vacuum environments in the preceding exercises have all been deterministic. Discuss possible agent programs for each of the following stochastic versions: 260 | > 1. Murphy’s law: twenty-five percent of the time, the $Suck$ action fails to clean the floor if it is dirty and deposits dirt onto the floor if the floor is clean. How is your agent program affected if the dirt sensor gives the wrong answer 10% of the time? 261 | > 2. Small children: At each time step, each clean square has a 10% chance of becoming dirty. Can you come up with a rational agent design for this case? 262 | 263 | > **翻译**\ 264 | 前面练习中的真空环境都是确定性的。下面讨论一下以下每个随机版本的可能代理程序。 265 | > 1. 墨菲定律:25%的时间里,如果地板是脏的,$吸吮$动作就不能清洁; 如果地板是干净的,就会在地板上沉积灰尘。如果污垢传感器在10%的时间内给出错误的答案,你的代理程序会受到什么影响? 266 | > 2. Small children:在每个时间步骤中,每个干净的方块有10%的机会变脏。你能为这种情况想出一个合理的代理设计吗? 267 | 268 | **参考答案** 269 | >1. The failure of $Suck$ action doesn’t cause any problem at all as long as we replace 270 | the reflex agent’s $‘Suck’$ action by $‘Suck\ until\ clean’$.\ 271 | If the dirt sensor can be wrong on each step, then the agent 272 | might want to wait for a few steps to get a more reliable measurement before deciding whether to $Suck$ or 273 | move on to a new square. Obviously, there is a trade-off because waiting too long means that dirt remains 274 | on the floor (incurring a penalty), but acting immediately risks either dirtying a clean square or ignoring a 275 | dirty square (if the sensor is wrong). A rational agent must also continue touring and checking the squares 276 | in case it missed one on a previous tour (because of bad sensor readings). It is not immediately obvious 277 | how the waiting time at each square should change with each new tour. These issues can be clarified by 278 | experimentation, which may suggest a general trend that can be verified mathematically. This problem is a 279 | partially observable Markov decision process, which we’ll talk about in Chapter 17. Such problems are 280 | hard in general, but some special cases may be amenable to careful analysis. \ 281 | > 只要我们把智能体反应的'吸食'动作换成'吸食到干净为止',吸食动作的失败就完全不会造成任何问题。\ 282 | 如果污垢传感器在每一步上都可能出错,那么智能体可以选择等待几步以获得更可靠的测量结果,然后再决定是吸食还是继续前进到一个新的位置。显然,这是一个权衡,因为等待的时间太长意味着污物仍在地板上(招致惩罚),但立即行动有可能弄脏一个干净的方块或忽略一个肮脏的方块(如果传感器是错误的)。一个理性的智能体还必须继续巡视和检查每个位置,以防它在以前的巡视中错过了一个位置(因为传感器的读数不好)。每一个方块的等待时间应该如何随着每一次新的巡查而变化,这一点很困难,不过这些问题可以通过实验来明晰,需要用数学方法验证来一般趋势。这个问题是一个部分可观察的马尔可夫决策过程,我们将在第17章中谈论这个问题。这样的问题一般来说是很难的,但一些特殊情况可能是可以仔细分析的。 283 | > 2. In this case, the agent must keep touring the squares indefinitely. The probability that a square is dirty 284 | increases monotonically with the time since it was last cleaned, so the rational strategy is, roughly 285 | speaking, to repeatedly execute the shortest possible tour of all squares. (We say “roughly speaking” 286 | because there are complications caused by the fact that the shortest tour may visit some squares twice, 287 | depending on the geography.) This problem is also a partially observable Markov decision process.\ 288 | 在这种情况下,智能体必须无限期地巡视这些方格。一个广场被弄脏的概率随着它上次被清理的时间而单调增加,因此,大致上说,合理的策略是重复执行对所有广场的最短巡回。(我们说 "大致上 "是因为最短的巡视可能会访问某些方格两次,这是一个复杂的事实,取决于地理环境)。这个问题也是一个部分可观察的马尔可夫决策过程。 289 | 290 | -------------------------------------------------------------------------------- /docs/chap3_Solving_Problems_By_Searching/Exercise.md: -------------------------------------------------------------------------------- 1 | # 第三章习题 2 | 3 | # Exercise 1 4 | 5 | > Explain why problem formulation must follow goal formulation. 6 | > 7 | > 解释为什么问题形式化必须在目标形式化之后。 8 | 9 | 10 | 11 | **参考解答** : 12 | 13 | > 在目标形式化时,我们决定关注世界的哪些方面,而忽略或抽象掉什么方面。在问题形式化中,我们决定如何处理重要方面(并忽略其他方面)。如果我们首先形式化问题,我们将不知道要关注什么或忽视什么。也就是说,在目标形式化、问题形式化和问题解决之间存在一个迭代循环,直到找到一个足够有用和有效的解决方案为止 14 | > 15 | 16 | 17 | # Exercise 2 18 | 19 | > 针对以下每个问题给出一个完整的问题公式。选择一个精确到足以实施的公式。 20 | > 21 | > 1. 六个玻璃盒子排成一排,每个盒子都有锁。前五个盒子中的每一个中都有一把钥匙,用于解开下一个顺序的盒子的锁;最后一个盒子里有一根香蕉。现在你有第一个盒子的钥匙,你想要得到那根香蕉。 22 | > 2. 你从序列 ABABAECCEC 开始,或者任何以 A, B, C 和 E 组成的序列开始。你可以用以下等式转换这个序列: 23 | > 24 | > - (1) AC = E, 25 | > - (2) AB = BC, 26 | > - (3) BB = E, 27 | > - (4) E$x$ = $x,$对于任何 $x$ 而言。 28 | > 29 | > 你的目标是将序列转换成 E 序列,(即序列中只有 E 一个成员,就是这个序列:E)。举个例子,序列 ABBC 可以通过变换(BB=E)变为 AEC,然后变成 AC(通过变换 EC = C),最后变为目标序列 E(通过变换 AC = E)。 30 | > 3. 有一个 $n \times n$ 的方格网格,每个方格最初要么是未涂漆的地板,要么是无底的坑。你开始站在一个未喷漆的地板方格上,然后可以在你下面的方格上喷漆,或者移动到相邻的未喷漆地板方格上。你要把整个地板都喷上漆。 31 | > 4. 一艘满载集装箱的船在港口。有 13 排集装箱,每排 13 个集装箱宽,5 个集装箱高。你可以控制一台起重机,该起重机可以移动到船上方的任何位置,拾取其下方的集装箱,并将其移动到码头上。你想把船上的集装箱都卸下来。 32 | 33 | **参考解答:** 34 | 35 | **(待补充)** 36 | 37 | 38 | 39 | # Exercise 3 40 | 41 | > Your goal is to navigate a robot out of a maze. The robot starts in the center of the maze facing north. You can turn the robot to face north, east, south, or west. You can direct the robot to move forward a certain distance, although it will stop before hitting a wall. 42 | 1. Formulate this problem. How large is the state space? 43 | 2. In navigating a maze, the only place we need to turn is at the intersection of two or more corridors. Reformulate this problem using this observation. How large is the state space now? 44 | 3. From each point in the maze, we can move in any of the four directions until we reach a turning point, and this is the only action we need to do. Reformulate the problem using these actions. Do we need to keep track of the robot’s orientation now? 45 | 4. In our initial description of the problem we already abstracted from the real world, restricting actions and removing details. List three such simplifications we made. 46 | > 47 | > 你的目标是引导机器人走出迷宫。机器人最开始在迷宫的中心,并且面朝北方。你可以将机器人转向北、东、南或西。您可以指示机器人向前移动一定距离,但它会在撞到墙壁之前停下来。 48 | > 49 | >1. 形式化这个问题。状态空间有多大? 50 | >2. 在走迷宫时,我们唯一需要转弯的地方是两条或多条走廊的交汇处。使用这个观察重新形式化这个问题。现在状态空间有多大? 51 | >3. 从迷宫中的每个点,我们可以向四个方向中的任何一个方向移动,直到到达一个转折点,这是我们唯一需要做的动作。使用这些动作重新形式化问题。我们现在需要跟踪机器人的方向吗? 52 | >4. 在我们对问题的最初描述中,我们已经从现实世界中抽象出来,限制了动作并删除了细节。列出我们所做的三个简化。 53 | 54 | 55 | 56 | **参考解答** : 57 | 58 | >1. 59 | > - 状态:机器人位置和朝向的状态描述。 60 | > - 初始状态:在迷宫中心,面朝北方。 61 | > - 动作:向前移动一定距离d;改变机器人的方向。 62 | > - 转移模型:将状态和动作映射为一个结果状态。 63 | > - 目标状态: 机器人在出口处。 64 | > - 动作代价:移动的距离。 65 | > - 状态空间是无限大的,因为机器人可以处在任何位置。 66 | > 67 | >2. 68 | > - 状态:机器人当前所处的交汇处,以及它所面对的方向 69 | > - 初始状态:在迷宫中心,面朝北方。 70 | > - 动作:移动到前面的下一个交汇处(如果存在)。转向新的方向。 71 | > - 转移模型:将状态和动作映射为一个结果状态。 72 | > - 目标状态:机器人在出口处。 73 | > - 动作代价:移动的距离。 74 | > - 状态空间有 4n 个状态,其中 n 是交叉点的数量。 75 | > 76 | >3. 77 | > - 状态:机器人当前所处的交汇处,以及它所面对的方向 78 | > - 初始状态:在迷宫中心,面朝北方。 79 | > - 动作:移动到北、南、东或西的下一个交汇处。 80 | > - 转移模型:将状态和动作映射为一个结果状态。 81 | > - 目标状态: 机器人在出口处。 82 | > - 动作代价:移动的距离。 83 | > - 状态空间有 4n 个状态,其中 n 是交叉点的数量。 84 | > - 不再需要跟踪机器人的方向,因为它与预测我们行动的结果无关,也不是目标的一部分。 85 | > 86 | >4. 87 | > - 状态抽象: 88 | > > - 忽略机器人离地面的高度,不管它是否偏离垂直方向。 89 | > > - 机器人只能面向四个方向。 90 | > > - 世界其他地区被忽视:迷宫中其他机器人的可能性,环境对机器人运动影响程度。 91 | > 92 | > - 行动抽象: 93 | > > - 我们假定了所有位置都可以安全到达:机器人不会被卡住或损坏。 94 | > > - 机器人可以随心所欲地移动,而无需重新进行充电。 95 | > > - 简化的移动系统:向前移动一定距离,而不是控制每个单独的电机并观察传感器以检测碰撞。 96 | 97 | # Exercise 4 98 | 99 | > 你有一个 $9 \times 9$ 方格网格,每个方格都可以是红色或蓝色的。网格最初都是蓝色的,但你可以多次改变任何正方形的颜色。想象一下,网格被划分为 9 个 $3 \times 3$ 的子方格,你希望每个子方格都是一种颜色,但相邻的子方格是不同的颜色。 100 | > 101 | > 1. 用直截了当的方法表述这个问题。计算状态空间的大小。 102 | > 2. 你只能给一个方格上色一次。重新表述,并计算状态空间的大小。广度优先搜索在这个问题上会比在 (1) 中执行得更快吗?那么迭代加深树搜索呢? 103 | > 3. 给定目标,我们只需要考虑每个子方块都是统一着色的颜色。重新表述问题并计算状态空间的大小。 104 | > 4. 这个问题有多少个解? 105 | > 5. (2) 和 (3) 部分先后抽象了原问题 (1) ,你能否将问题 (3) 的解转化为问题 (2) 的解,并将问题 (2) 的解转化为问题 (1) 的解? 106 | 107 | **参考解答:** 108 | 109 | **(待补充)** 110 | 111 | # Exercise 5 112 | 113 | > 假设两个朋友住在地图上的不同城市,例如书中的罗马尼亚地图。在每个回合中,我们可以同时将每个朋友移动到地图上的邻近城市。从城市 $i$ 移动到相邻城市 $j$ 所需的时间等于城市之间的道路距离 $d(i, j)$,但在每个回合中,先到的朋友必须等到另一个人到达(并打电话给第一个人),才能开始下一个转弯。我们希望这两位朋友能尽快见面。 114 | > 115 | > 1. 写出这个搜索问题的详细公式。(你会发现在这里定义一些正式的符号很有帮助。) 116 | > 2. 设 $D(i, j)$ 为城市 $i$ 和 $j$ 之间的直线距离,下列哪个启发式函数是可接受的? 117 | > - (a) $D(i, j)$; 118 | > - (b) $2 \cdot D (i, j)$; 119 | > - (c) $D(i, j) / 2$。 120 | > 3. 是否存在完全连通的地图,但没有解决方案? 121 | > 4. 是否存在所有解决方案都要求一个好友访问同一城市两次的地图? 122 | 123 | **参考解答:** 124 | 125 | 1. **(待补充)** 126 | 127 | - 状态空间:状态是所有可能的的“城市对”$(i, j)$,地图不是状态空间。 128 | - 动作:$(i, j)$ 的后继节点都是 $(x, y)$ 对,使得有 $F_{临近}(x, i)$ 和 $F_{临近}(y, j)$。 129 | - 目标状态:找到某个 $i$ ,满足 $(i, i)$。 130 | 2. 在最好的情况下,两个朋友各自以相同的步长,直线相对走向对方,每一步可以减少两倍的时间,所以选择 (c)。 131 | 3. 存在。举例:一个只有两个节点的图,这两个朋友每次移动都会交换位置。**(还有其他情况,欢迎补充)** 132 | 4. **(待补充)** 133 | 134 | # Exercise 7 135 | 136 | > 使用资料上给出的“有效”增量公式考虑 $n$ 皇后问题。解释为什么状态空间至少有 $\sqrt[3]{n!}$ 个状态,并估计穷举探索可行的最大 $n$ 。 137 | > 138 | > *提示: 通过考虑皇后在任何列中可以攻击的最大方块数来推导分支因子的下界。* 139 | 140 | **参考解答:** 141 | 142 | **(待补充)** 143 | 144 | # Exercise 8 145 | 146 | [**原题链接**](https://aimacode.github.io/aima-exercises/search-exercises/ex_8/) 147 | 148 | > 为以下每个问题给出一个完整的公式。选择一个精确到可以执行的公式。 149 | > 150 | > 1. 只使用四种颜色,你必须给一个平面地图上色,使相邻的两个区域没有相同的颜色。 151 | > 2. 房间里有一只 3 英尺高的猴子,8 英尺高的天花板上挂着一些香蕉。他想要香蕉。房间里有两个可堆叠、可移动、可攀爬的 3 英尺高的板条箱。 152 | > 3. 你有一个程序,当输入特定输入记录文件时输出消息“非法输入记录”。你知道每个记录的处理是独立于其他记录的。你想知道什么记录是非法的。 153 | > 4. 你有三个罐子,分别是 12 加仑、8 加仑和 3 加仑,还有一个水龙头。你可以把罐子装满,也可以把它们从一个罐子倒到另一个罐子里,或者倒在地上。你需要精确地量出 1 加仑。 154 | 155 | **参考解答:** 156 | 157 | 1. - 初始状态:所有区域都未着色。 158 | - 动作:给一个未着色区域上色。 159 | - 转移模型:每块区域的颜色。 160 | - 目标状态:所有区域都上色,而且没有相邻的两个区域是同一个颜色。 161 | - 动作代价:任务数。 162 | 2. - 初始状态:一个 8 英尺高的天花板;一些香蕉;3 英尺高的猴子;2 个 3英尺高的板条箱。 163 | - 动作:猴子移动与堆叠板条箱去靠近香蕉。 164 | - 转移模型:动作执行后板条箱的位置、堆叠状态。 165 | - 目标状态:猴子得到香蕉。 166 | - 动作代价:动作数。 167 | 3. **(待补充)** 168 | - 初始状态:所有输入记录文件。 169 | - 动作: 170 | - 转移模型: 171 | - 目标状态:输入特定输入记录文件时,输出“非法消息记录”。 172 | - 动作代价:程序运行次数。 173 | 4. - 初始状态: 罐子都是空的。 174 | - 动作:装满罐子;倒掉罐子里的水;把水从一个罐子倒到另一个罐子里。 175 | - 转移模型:每个罐子中的水量变化情况。 176 | - 目标状态:精确量得 1 加仑水。 177 | - 动作代价:动作数。 178 | 179 | # Exercise 9 180 | 181 | > 考虑在具有凸多边形障碍物的平面上寻找两点之间的最短路径的问题,如图所示。这是一个理想化的问题,机器人必须解决在拥挤的环境中导航。 182 | > 183 | > 1. 假设状态空间由平面上的所有位置 $(x,y)$ 组成。一共有多少种状态?通往目标的路径有多少条? 184 | > 2. 简要解释为什么从一个多边形顶点到任何其他多边形顶点的最短路径必须由连接多边形的一些顶点的直线段组成。现在定义一个良好的状态空间。这个状态空间有多大? 185 | > 3. 定义必要的函数来实现搜索问题,包括一个函数,该函数将顶点作为输入并返回一组向量,其中每个向量将当前顶点映射到可以在直线上到达的顶点之一。(不要忘记同一多边形上的邻居。)启发式函数使用直线距离。 186 | > 4. 应用本章中的一个或多个算法来解决该领域的一系列问题,并评论它们的性能。 187 | 188 | **参考答案:** 189 | 1. 如果考虑所有的点 $(x, y)$,那就会存无数个状态与无数条路径。 190 | 191 | 2. 我们把起点和终点看做是平面上的两个端点,那么最短路径就是连接它们两个端点的直线。但是现在由于平面上有多边形障碍物,那我们需要让路线尽可能少的偏离之前的直线,所以我们会选择起点到障碍物上的切点。由于障碍物是凸多边形,那切点就会在它的顶点上,以此类推,就会依次连接下一个障碍物的顶点。 192 | 193 | 3. **(待补充)** 194 | 195 | 4. **(待补充)** 196 | 197 | # Exercise 10 (negative-g-exercise) 198 | 199 | > On page, we said that we would not consider problems with negative path costs. In this exercise, we explore this decision in more depth. 200 | > 1. Suppose that actions can have arbitrarily large negative costs; explain why this possibility would force any optimal algorithm to explore the entire state space. 201 | > 2. Does it help if we insist that step costs must be greater than or equal to some negative constant $c$? Consider both trees and graphs. 202 | > 3. Suppose that a set of actions forms a loop in the state space such that executing the set in some order results in no net change to the state. If all of these actions have negative cost, what does this imply about the optimal behavior for an agent in such an environment? 203 | > 4. One can easily imagine actions with high negative cost, even in domains such as route finding. For example, some stretches of road might have such beautiful scenery as to far outweigh the normal costs in terms of time and fuel. Explain, in precise terms, within the context of state-space search, why humans do not drive around scenic loops indefinitely, and explain how to define the state space and actions for route finding so that artificial agents can also avoid looping. 204 | > 5. Can you think of a real domain in which step costs are such as to cause looping? 205 | > 206 | > 在正文中,我们表示不会考虑负路径代价的问题。在本练习中,我们将更深入地探讨这一决定。 207 | 208 | >1. 假设动作可能会产生任意大的负代价;解释为什么这种可能性会导致任何最佳算法探索整个状态空间。 209 | >2. 如果我们坚持每步代价必须大于或等于某个负常数 $c$ ,这有帮助吗? 同时考虑树和图。 210 | >3. 假设一组动作在状态空间中形成一个循环,即以某种顺序执行该集合不会导致状态发生实质性变化。如果所有这些动作都具有负成本,那么这意味着智能体在这样的环境中的最佳动作是什么? 211 | >4. 人们可以很容易地想象出具有高负代价的行动,甚至在诸如路线查找之类的领域。例如,一些路段的风景可能非常美丽,以至于在时间和燃料方面远远超过了正常代价。准确地说,在搜索状态空间的背景下,解释为什么人类不会无限期地在风景优美的环路周围行驶,并解释如何定义状态空间和路线搜索的动作,以便人工智能也可以避免环路。 212 | >5. 你能想到一个因为每步代价导致循环的真实情况吗? 213 | 214 | 215 | 216 | **参考解答** : 217 | 218 | >1. 因为存在负代价,不管怎么走,都可能带来任意小的代价(之前的代价 + 负代价)。因此,需要用尽所有可能的路径,以确保找到最佳路径。 219 | >2. 在树的情况下是有帮助的。如果我们知道状态空间的最大深度,那么任何剩余 $d$ 级的步进代价最多为 $cd$,因此任何比 $cd$ 差的路径都可以被剪枝。 220 | 在图的情况下,这并不起任何作用。因为图中可以存在循环,如果存在一个包含负代价的节点,总是可以利用这个节点不断降低当前最佳路径代价,形成另一个当前最佳路径代价。 221 | >3. 智能体应该永远循环下去,因为它会降低代价函数的值(除非它能找到另一个更好的循环)。 222 | >4. 风景优美的环路的价值在每次重新访问时都会降低;一个新奇的风景是一个很好的体验,但是在一个小时内第十次看到相同的风景是乏味的。为了适应这一点,我们必须扩展状态空间以包含一个记忆状态现在不仅由当前位置表示,而且由当前位置和一系列已经访问过的位置表示。访问新位置的代价是之前访问次数的(递增)函数。 223 | >5. 吃垃圾食品和去上课。 224 | 225 | # Exercise 15 226 | 227 | > Does a finite state space always lead to a finite search tree? How about a finite state space that is a tree? Can you be more precise about what types of state spaces always lead to finite search trees? (Adapted from , 1996.) 228 | > 229 | > 有限状态空间总是导致有限搜索树吗?有限状态空间是树呢?你能更准确地说明什么类型的状态空间总是导致有限的搜索树吗?(改编自1996年。) 230 | 231 | 232 | **参考解答** : 233 | 234 | 235 | > 有限状态空间并不总是导致有限搜索树。例如,书中罗马尼亚城市地图示例中的状态空间是有限的:{In(Arad), In(Zerind),...,In(Eforie)}(包含 20 个州),但是使用 Go(City Name) 我们可以无限地通过任何循环路径,从而产生无限的搜索树。 236 | > 在有限状态空间是树的情况下,根据定义不存在循环路径(循环),因此搜索树将是有限的。 237 | > 任何不包含循环路径的合法结构也将具有有限搜索树。有限有向无环图 (DAG) 符合描述,因为根据定义其不包含循环(有向只是意味着从一个状态映射到另一个状态的动作不对称,因此不能在两个相邻状态之间无限循环)。 238 | 239 | # Exercise 17 240 | 241 | > 下列哪些是正确的,哪些是错误的?解释你的答案。 242 | > 243 | > 1. 深度优先搜索总是与具有可接受启发式的搜索至少扩展相同多的节点。 244 | > 2. $h(n)=0$ 是 8 谜题的一个可接受的启发式。 245 | > 3. $A^*$ 在机器人技术中没有用处,因为感知、状态和动作是连续的。 246 | > 4. 即使允许零步长代价,广度优先搜索也是完备的。 247 | > 5. 假设一只车可以在棋盘上沿直线(垂直或水平)移动任意数量的方块,但不能跳过其他方块。曼哈顿距离是用最小移动次数将车从方格 A 移动到方格 B 的一个可接受的启发式函数。 248 | 249 | **参考答案:** 250 | 251 | 1. 错误。运气好的话, DFS 算法可以刚好扩展 $d$ 个节点就达到目的。$A^*$ 算法在很大程度上限制了保证找到最优解的任何图形搜索算法。 252 | 253 | 2. 正确。在代价是非负的情况下,$h(n)=0$ 是允许的一个启发式。 254 | 255 | 3. 错误。$A^*$ 算法也经常用于机器中,因为空间可以被离散化和骨架化。 256 | 257 | 4. 正确。对 BFS 影响更大的是深度而不是代价。 258 | 259 | 5. **(待补充)** 260 | 261 | # Exercise 23 262 | 263 | > 编写一个程序,将两个 Web 页面的 URL 作为输入,并找到从一个到另一个的链接路径。合适的搜索策略是什么?双向搜索会是个好主意吗?搜索引擎可以用来实现前驱函数(predecessor function)吗? 264 | 265 | **参考解答:** 266 | 浏览网页时,我们只能通过访问网页来生成网页的后继。然后我们可以进行广度优先搜索,或者最佳优先搜索。为了让链接能够到达目标,启发式函数可以是起始页和目标页之间共有的单词数的函数。搜索引擎可以帮助我们得到完整的网页关系图,并可以向我们提供网页之间的链接,这样我们就可以进行双向搜索。 267 | 268 | 269 | # Exercise 25 (search-special-case-exercise) 270 | 271 | > Prove each of the following statements, or give a counterexample: 272 | > 1. Breadth-first search is a special case of uniform-cost search. 273 | > 2. Depth-first search is a special case of best-first tree search. 274 | > 3. Uniform-cost search is a special case of A search. 275 | > 276 | > 证明以下各命题,或给出反例: 277 | > 1.广度优先搜索是一致代价搜索的一个特例。 278 | > 2.深度优先搜索是最佳优先树搜索的一个特例。 279 | > 3.一致代价搜索是A搜索的一个特例。 280 | 281 | 282 | 283 | **参考解答** : 284 | 285 | >1. 当每步代价相等时,广度优先搜索就是一致代价搜索。 286 | >2. 深度优先搜索是$f(n) = −depth(n)$的最佳优先搜索。 287 | >3. A*搜索是 $g(n)+h(n)$,一致代价搜索$g(n)$。即一致代价搜索是$A^*$搜索在$h(n) = 0$时的情况。 288 | 289 | # Exercise 27 290 | 291 | >原题目: 292 | >Trace the operation of A search applied to the problem of getting to Bucharest from Lugoj using the straight-line distance heuristic. That is, show the sequence of nodes that the algorithm will consider and the f, g, and h score for each node. 293 | 294 | >题目翻译: 295 | >使用直线距离启发式函数,追踪应用于从Lugoj到Bucharest的问题的$A^*$搜索操作。也就是说,显示算法将考虑的节点序列以及每个节点的f、g和h得分(在第三版习题中为A * 搜索) 296 | 297 | 298 | >答案参考https://www.csie.ntu.edu.tw/~ai2007s/hw/hw02_s.pdf (注意:图片下等号左边为f, 右边第一个为g,第二个为h) 299 | 300 | 301 | # Exercise 28 302 | > Sometimes there is no good evaluation function for a problem but there is a good comparison method: a way to tell whether one node is better than another without assigning numerical values to either. Show that this is enough to do a best-first search. Is there an analog of A for this setting?\ 303 | **翻译:**\ 304 | 有时,对于一个问题没有好的评价函数,但有一个好的比较方法:告诉一个节点是否比另一个节点好,而不给任何一个节点指定数值的方法。证明这足以做一个最佳优先搜索。在这种情况下是否有A的类似物? 305 | 306 | # Exercise 29 307 | > Devise a state space in which A using returns a suboptimal solution with an $h(n)$ function that is admissible but inconsistent.\ 308 | **翻译:**\ 309 | 设计一个状态空间,其中A使用返回一个次优解的$h(n)$函数,是可接受的,但不一致。 310 | 311 | # Exercise 30 312 | 313 | >原题目: 314 | >Accurate heuristics don’t necessarily reduce search time in the worst case. Given any depth d, define a search problem with a goal node at depth d, and write a heuristic function such that $|h(n)−h\*(n)|≤O(logh\*(n))$ but A∗ expands all nodes of depth less than d. 315 | 316 | >题目翻译: 317 | >在最坏的情况下,精确的启发式并不一定会减少搜索时间。给定任意深度d,定义一个目标节点位于深度d的搜索问题,并编写一个启发函数,使得$|h(n)−h\*(n)|≤O(logh\*(n))$,但A*扩展所有深度小于d的节点。 318 | 319 | # Exercise 31 320 | 321 | >原题目: 322 | >The **heuristic path algorithm** [Pohl:1977](https://aimacode.github.io/aima-exercises/search-exercises/#) is a best-first search in which the evaluation function is f(n)=(2−w)g(n)+wh(n). For what values of w is this complete? For what values is it optimal, assuming that ℎ is admissible? What kind of search does this perform for w=0, w=1, and w=2? 323 | 324 | >题目翻译: 325 | >启发式路径算法是最佳的第一搜索算法,其中评估函数为$f(n) = (2 - w)g(n) + wh(n)$.对于w的什么值,这是完全的?假设ℎ 是可接受的,对于哪些值是最优的?对于w=0、w=1和w=2,这将执行何种搜索? 326 | 327 | 328 | >答案: 329 | >1. 对于 $ 0 < w < 2 $ 时,是完全的 330 | >2. $w = 0$得到 $f(n) = 2g(n)$ ,行为完全类似于均匀代价搜索 331 | >3. $w = 1$得到 $ A^* $ 搜索 332 | >4. $w = 2$得到 $ f(n) = 2h(n) $ ,是贪心最佳优先搜索 333 | 334 | # Exercise 32 335 | 336 | >原题目: 337 | >Consider the unbounded version of the regular 2D grid shown in . The start state is at the origin, (0,0), and the goal state is at (x,y). 338 | >1. What is the branching factor b in this state space? 339 | >2. How many distinct states are there at depth k(for k>0)? 340 | >3. What is the maximum number of nodes expanded by breadth-first tree search? 341 | >4. What is the maximum number of nodes expanded by breadth-first graph search? 342 | >5. Is h=|u−x|+|v−y| an admissible heuristic for a state at (u,v)? Explain. 343 | >6. How many nodes are expanded by $A$ graph search using h? 344 | >7. Does ℎ remain admissible if some links are removed? 345 | >8. Does ℎ remain admissible if some links are added between nonadjacent states? 346 | 347 | 348 | 349 | >题目翻译: 350 | >考虑所给的常规二维网格的无界版本。开始状态位于原点(0, 0),目标状态位于(x, y) 351 | >1. 这个状态空间中的分支因子b是什么? 352 | >2. 在深度k处有多少不同的状态(对于k>0) 353 | >3. 广度优先树搜索扩展的最大节点数是多少? 354 | >4. 广度优先图搜索扩展的最大节点数是多少? 355 | >5. $h=|u−x|+|v−y|$是(u,v)处状态的可接受启发式吗?请做出解释 356 | >6. 使用h的$A^*$图搜索可扩展多少个节点(原题目为A搜索,但找的资料上显示为$A^*$) 357 | >7. ℎ 如果删除了某些链接,是否仍然可以接受 358 | >8. ℎ 如果在非相邻状态之间添加了一些链接,是否仍然保持允许 359 | 360 | 361 | >答案: 362 | >1. 分支因子为4(每个位置的邻居数) 363 | >2. $2k(2k+1) + 1$ 364 | >3. $4^{x + y}$ 365 | >4. $2(x + y)(x + y + 1)+1$ 366 | >5. 可以,这是曼哈顿距离度量方法,并且只能在网格上移动 367 | >6. $x + y$ 368 | >7. 是的;删除链接可能会导致绕路,这需要更多的步骤,所以h是低估的。 369 | >8. 不是的;非相邻状态的链接可以减少一些实际路径长度,从而导致不在处于低估状态。 370 | 371 | # Exercise 33 372 | 373 | >原题目: 374 | >n vehicles occupy squares (1,1) through (n,1) (i.e., the bottom row) of an n×n grid. The vehicles must be moved to the top row but in reverse order; so the vehicle ithat starts in (i,1) must end up in (n−i+1,n). On each time step, every one of the n vehicles can move one square up, down, left, or right, or stay put; but if a vehicle stays put, one other adjacent vehicle (but not more than one) can hop over it. Two vehicles cannot occupy the same square. 375 | >1. Calculate the size of the state space as a function of n. 376 | >2. Calculate the branching factor as a function of n. 377 | >3. Suppose that vehicle i is at (xi,yi); write a nontrivial admissible heuristic hi for the number of moves it will require to get to its goal location (n−i+1,n), assuming no other vehicles are on the grid. 378 | >4. Which of the following heuristics are admissible for the problem of moving all n vehicles to their destinations? Explain. 379 | > - $\sum^{n}_{i=1}{h_i}$ 380 | > - $max(h_1, ... , h_n)$ 381 | > - $min(h_1, ... , h_n)$ 382 | 383 | 384 | 385 | >题目翻译: 386 | >n辆车占据n×n网格的正方形(1,1)到(n,1)(即,最下面的一行)。车辆必须移到最上面一排,但顺序相反;因此,在(i,1)开始的车辆必须在(n−i+1,n)结束。在每个时间步长上,n辆车中的每一辆都可以向上、向下、向左或向右移动一个正方形,或保持不变;但如果一辆车停在原地,另一辆相邻的车(但不超过一辆)可以跳过它。两辆车不能占用同一个广场。 387 | >1. 根据n计算状态空间的大小 388 | >2. 计算n作为函数的分支因子 389 | >3. 假设车辆i位于(xi,yi)同时网格上没有其他车辆,为到达目标位置(n−i+1,n)所需的移动次数编写一个非平凡的可接受启发式hi(i为下标) 390 | >4. 对于将所有n辆车移至目的地的问题,以下哪种启发式方法是可接受的?解释 391 | > - $\sum^{n}_{i=1}{h_i}$ 392 | > - $max(h_1, ... , h_n)$ 393 | > - $min(h_1, ... , h_n)$ 394 | 395 | >答案: 396 | >1. $n^{2n}$ 397 | >2. $5^n$ 398 | >3. 曼哈顿距离,即$|(n - i + 1) - x_i| + |n - y_i|$,这对一辆车来说是正确的 399 | >4. 只有第三个是可以接受的。这个解释并不简单,因为它需要两个观察结果。首先,设给定解中的W是所有车辆在其关节轨迹上移动的总距离;也就是说,对于每辆车,将所采取的所有步骤的长度相加。我们有$W \geq \sum^{ }_{h_i }{h_i} \geq n * min{h_1, ... h_n}$.其次,我们每一步可以完成的总量≤n。(注意,对于每一辆跳跃2的车,另一辆车必须保持不变(移动0),因此每一步的总功以n为界。)因此,完成所有工作至少需要n·min{h1,…,hn}/n = min{h1,…, hn}步骤。 400 | 401 | # Exercise 34 402 | 403 | >原题目: 404 | >Consider the problem of moving k knights from k starting squares s1,…,sk to k goal squares g1,…,gk on an unbounded chessboard, subject to the rule that no two knights can land on the same square at the same time. Each action consists of moving *up to* k knights simultaneously. We would like to complete the maneuver in the smallest number of actions. 405 | >1. What is the maximum branching factor in this state space, expressed as a function of k? 406 | >2. Suppose hi is an admissible heuristic for the problem of moving knight i to goal gi by itself. Which of the following heuristics are admissible for the k-knight problem? Of those, which is the best? 407 | > - $min(h_1, ... ,h_k)$ 408 | > - $max(h_1, ... , h_k)$ 409 | > - $\sum^{k}_{i=1}{h_i}$ 410 | >3. Repeat (b) for the case where you are allowed to move only one knight at a time. 411 | 412 | >题目翻译: 413 | >考虑在无界棋盘上将k个骑士从k个起始方块s1,…,sk移动到k个目标方块g1,…,gk的问题,前提是两个骑士不能同时降落在同一个方块上。每个动作包括同时移动最多k个骑士。我们希望以最少的动作达到目标。 414 | >1. 这个状态空间中的最大分支因子是多少,表示为k的函数 415 | >2. 假设hi是将骑士i单独移动到目标gi的问题的可接受启发式。以下哪种启发式方法可用于k骑士问题?其中,哪一个是最好的? 416 | > - $min(h_1, ... ,h_k)$ 417 | > - $max(h_1, ... , h_k)$ 418 | > - $\sum^{k}_{i=1}{h_i}$ 419 | >3. 对于一次只能移动一名骑士的情况,重复(b) 420 | 421 | >答案: 422 | >1. 9k。对于k个骑士,除了完全不移动的可能性,我们还有8种移动中的一种;每个动作为每个骑士执行这9个选择中的一个(除非某些选择因落在同一个方格上而发生冲突),所以有9k个动作。 423 | >2. 1和2是可以的。如果$h_i$是精确的,那么2对于骑士可以落在同一个方格上的松弛问题是精确的。$h_i$是可容许的,因此不大于确切的值,因此2是可容许的。1不大于2,因此1是可接受的。3不可信。例如,如果每个$g_i$距离$s_i$只有一步,那么(iii)返回k,而最优解的代价是1。2决定了1,所以它必须一样好或者更好。所以2最好 424 | >3. 425 | 426 | # Exercise 35 427 | > We saw on page that the straight-line distance heuristic leads greedy best-first search astray on the problem of going from Iasi to Fagaras. However, the heuristic is perfect on the opposite problem: going from Fagaras to Iasi. Are there problems for which the heuristic is misleading in both directions?\ 428 | **翻译:**\ 429 | 我们在页面上看到,从Iasi到Fagaras的问题上,将直线距离作为启发函数,会把贪心最佳优先搜索引入歧途。然而,从Fagaras到Iasi这个相反的问题上,启发式却是完美的。那么,是否存在这样的问题,启发式在两个方向上都有误导? 430 | 431 | # Exercise 36 432 | > Invent a heuristic function for the 8-puzzle that sometimes overestimates, and show how it can lead to a suboptimal solution on a particular problem. (You can use a computer to help if you want.) Prove that if $h$ never overestimates by more than $c$, A using $h$ returns a solution whose cost exceeds that of the optimal solution by no more than $c$.\ 433 | **翻译:**\ 434 | 请为8 数码问题发明一个有时会高估的启发式函数,并说明它如何在一个特定问题上导致次优解(你可以使用计算机来帮助你)。证明:如果$h$从未高估过$c$,那么A使用&h&得到的解决方案的成本比最优解决方案的成本多出不超过$c$。 435 | 436 | # Exercise 37 437 | > Prove that if a heuristic is consistent, it must be admissible. Construct an admissible heuristic that is not consistent.\ 438 | **翻译:**\ 439 | 证明:如果一个启发式函数是一致的,它一定是可接受的。构建一个不一致的可接受的启发式函数。 440 | 441 | # Exercise 38(tsp-mst-exercise) 442 | > The traveling salesperson problem (TSP) can be solved with the minimum-spanning-tree (MST) heuristic, which estimates the cost of completing a tour, given that a partial tour has already been constructed. The MST cost of a set of cities is the smallest sum of the link costs of any tree that connects all the cities. 443 | > 1. Show how this heuristic can be derived from a relaxed version of the TSP. 444 | > 2. Show that the MST heuristic dominates straight-line distance. 445 | > 3. Write a problem generator for instances of the TSP where cities are represented by random points in the unit square. 446 | > 4. Find an efficient algorithm in the literature for constructing the MST, and use it with A graph search to solve instances of the TSP. 447 | 448 | > **翻译:**\ 449 | > 旅行商问题(TSP)可以用最小生成树(MST)启发式函数来求解,这种启发式函数在已经完成的一部分旅行基础上,预估完成一次旅行的成本。一组城市的MST成本是连接所有城市的树中的那个最小链接成本之和。 450 | > 1. 说明如何从TSP的宽松版本中得到这种启发式函数。 451 | > 2. 证明MST启发式函数在直线距离上占优势。 452 | > 3. 为TSP的实例写一个问题生成器,其中城市由单位面积上的随机点代表。 453 | >4. 在文献中找到一种构建MST的有效算法,并将其与A图搜索一起用于解决TSP的实例。 454 | 455 | 456 | # Exercise 39(Gaschnig-h-exercise) 457 | >On page 116, we defined the relaxation of the 8-puzzle in which a tile can move from square A to square B if B is blank. The exact solution of this problem defines **Gaschnig's heuristic** [Gaschnig:1979](https://www.semanticscholar.org/paper/Performance-measurement-and-analysis-of-certain-Gaschnig/2ce6e2ce79a59e253cc82efabcc73b1b190e91be). Explain why Gaschnig’s heuristic is at least as accurate as $h1$ (misplaced tiles), and show cases where it is more accurate than both $h1$ and $h2$ (Manhattan distance). Explain how to calculate Gaschnig’s heuristic efficiently.\ 458 | **翻译:**\ 459 | 在第116页 ,我们定义了 8 数码问题的松弛问题:*如果方格 B 是空格,那么滑块可以从方格 A 移动到方格 B*。 这个问题的精确解定义了Gaschnig启发式函数(Gaschnig:1979)。\ 460 | 请解释为什么Gaschnig的启发式至少和$h1$(错位的瓷砖)一样准确,并说明它比$h1$和$h2$(曼哈顿距离)都要准确的情况。如何有效地计算Gaschnig的启发式函数。 461 | # Exercise 40 462 | > We gave two simple heuristics for the 8-puzzle: Manhattan distance and misplaced tiles. Several heuristics in the literature purport to improve on this—see, for example, [Nilsson:1971](#), [Mostow+Prieditis:1989](https://www.ijcai.org/Proceedings/89-1/Papers/112.pdf), and [Hansson+al:1992](https://journals.lww.com/spinejournal/Abstract/1991/01000/A_Prospective_Study_of_Work_Perceptions_and.1.aspx). Test these claims by implementing the heuristics and comparing the performance of the resulting algorithms.\ 463 | > **翻译:**\ 464 | 我们为 8 数码问题给出了两个简单的启发式函数方案:曼哈顿距离和错位的瓷砖。文献中的一些启发式函数算法声称在此基础上进行了改进,例如,Nilsson:1971, Mostow+Prieditis:1989, 和Hansson+al:1992。请实现这些启发式函数,比较这些算法的性能。 465 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Datawhale 组队学习《人工智能:现代方法(第4版)》笔记 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | Loding... 21 |
22 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /images/readme: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/人工智能现代方法.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/aima-notes/c884a11a3711d2c65a7b2425c8811d4cab507ad0/images/人工智能现代方法.png -------------------------------------------------------------------------------- /人工智能 现代方法(第4版)-前3章开源内容.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/aima-notes/c884a11a3711d2c65a7b2425c8811d4cab507ad0/人工智能 现代方法(第4版)-前3章开源内容.pdf --------------------------------------------------------------------------------