1. 搜索和问题解决
许多问题可以表述为搜索问题。这要求我们首先制定替代选择及其后果。
1.1 在实践中搜索:从 A 到 B
想象一下,您在一个外国城市,在某个地址(比如一家酒店),并想使用公共交通工具到达另一个地址(也许是一家不错的餐厅)。你是做什么工作的?如果您和许多人一样,您会拿出智能手机,输入目的地并开始按照说明进行作。
这个问题属于搜索和规划问题的类别。类似的问题需要通过自动驾驶汽车和(可能不太明显的)用于玩游戏的 AI 来解决。例如,在国际象棋游戏中,困难不在于将棋子从 A 到 B,而在于保护你的棋子免受对手的伤害。

通常有许多不同的方法可以解决问题,其中一些方法在时间、精力、成本或其他标准方面可能更可取。不同的搜索技术可能会带来不同的解决方案,开发高级搜索算法是一个成熟的研究领域。

我们不会关注实际的搜索算法。
相反,我们强调问题解决过程的第一阶段:定义选择及其后果,这通常远非微不足道,可能需要仔细思考。
我们还需要定义我们的目标是什么,或者换句话说,我们何时可以考虑问题已经解决。
完成后,我们可以查找从初始状态到目标的一系列动作。
在本章中,我们将讨论两类问题:
-
Search and planning in static environments with only one "agent" 在只有一个"代理"的静态环境中进行搜索和规划
-
Games with two-players ("agents") competing against each other 两名玩家("代理")相互竞争的游戏
这些类别并未涵盖所有可能的实际场景,但它们足够通用,可以演示主要概念和技术。
在我们处理导航或下棋等复杂的搜索任务之前,让我们从一个大大简化的模型开始,以建立我们对如何通过 AI 解决问题的理解。
2. 过河问题

我们将从一个简单的拼图开始来说明这些想法。
划艇上的机器人需要将三件货物移过河流:一只狐狸、一只鸡和一袋鸡饲料。如果有机会,狐狸会吃掉鸡,如果有机会,鸡会吃掉鸡饲料,这两种结果都不是理想的。机器人能够防止动物靠近它们时造成伤害,但只有机器人可以作划艇,并且只有两件货物可以与机器人一起放在划艇上。机器人如何将所有货物移动到河对岸?
如果你以前听说过这个谜语,你可能知道即使船上的空间较小,它也可以解开。在我们一起解决这个更简单的版本之后,这将是您的一个练习。
我们将通过注意到已经确定了五个可移动的物体来建模这个谜题:机器人、划艇、狐狸、鸡和鸡饲料。
原则上,这五个对象中的每一个都可以在河的两侧,但由于只有机器人可以作划艇,因此两者将始终在同一侧。因此,有四个事物,每个事物有两个可能的位置,这构成了 16 种组合,我们称之为状态:

接下来,我们将弄清楚哪些状态转换是可能的,这意味着当机器人将一些物品作为货物划船时,在每种情况下产生的状态是什么。最好绘制一个转换图,因为在任何转换中,第一个字母在 N 和 F 之间交替,因此在一行中绘制以 N 开头的状态(因此机器人位于近侧)并绘制以 F 开头的状态在另一行中是很方便的:

现在让我们绘制过渡。我们可以绘制具有方向的箭头,以便它们从一个节点指向另一个节点,但在这个谜题中,转换是对称的:如果机器人可以从状态 NNNN 划到状态 FNFF,那么它同样可以从 FNFF 排到状态 NNNN。因此,简单地使用没有方向的线条绘制过渡效果会更简单。从 NNNN 开始,我们可以转到 FNFN、FNFF、FFNF 和 FFFN:

然后我们填写其余部分:

我们现在已经在这个谜题上做了相当多的工作,但似乎还没有更接近解决方案,毫无疑问,你已经可以使用你的 "自然智能 "来解决整个谜题了。但是对于更复杂的问题,可能的解决方案数量以数千或数百万增长,我们的系统或机械方法将大放异彩,因为困难的部分将适合简单的计算机来完成。现在我们已经制定了替代状态和它们之间的转换,剩下的工作就变成了一项机械任务:找到从初始状态 NNNN 到最终状态 FFFF 的路径。
下图中对其中一条路径进行了着色。路径从 NNNN 到 FFFN(机器人将狐狸和鸡带到另一侧),然后到 NFNN(机器人将鸡带回起始侧),最后到 FFFF(机器人现在可以将鸡和鸡饲料移动到另一侧)。

3. 状态空间、转换和成本
为了正式化规划问题,我们使用了 state space、transitions 和 costs 等概念。
表示可能情况的集合。在鸡过河中,状态空间由 10 个允许的状态 NNNN 到 FFFF 组成(但不包括 NFFF,拼图规则不允许)。如果任务是从位置 A 导航到位置 B,则状态空间可以是由其 (x,y) 坐标定义的位置集,这些坐标可以从起点 A 到达。或者,我们可以使用一组受约束的位置,例如,不同的街道地址,以便限制可能的州的数量。
4. 转换
可以在一种状态和另一种状态之间移动,例如 NNNN 到 FNFN。请务必注意,我们只将可以通过单个作完成的直接转换计为 transitions。一系列多个转换,例如,从 A 到 C、从 C 到 D 以及从 D 到 B(目标),是路径而不是转换。
指的是,通常不同的过渡并不完全相同。它们可能有所不同,使某些过渡更可取或更便宜(不一定是货币意义上),而另一些则更昂贵。我们可以通过将每个转换关联一定的成本来表示这一点。如果目标是最小化行驶的总距离,则自然成本是州之间的地理距离。另一方面,目标实际上可能是最小化时间而不是距离,在这种情况下,自然成本显然是时间。如果所有转换都相等,那么我们可以忽略成本。
参考: