许多问题可以被视为搜索问题。这就要求我们从制定替代选择及其结果开始。
想象一下你在一个外国的城市,在某个地方(比如一家酒店),想用公共交通工具去另一个地方(比如一家不错的餐馆)。你是做什么?如果你会像许多人一样,掏出智能手机,输入目的地并开始按照说明操作。
这个问题属于搜索和规划问题。自驾驶汽车需要解决类似的问题,还有用于玩游戏的AI(可能不太明显)AI。例如,在国际象棋比赛中,难度不是从A到B,以保证你棋子不被对手吃掉。
通常会有许多不同的方法来解决这个问题,其中有一些在时间,努力,成本或其他标准方面更为可取。不同的搜索技术带来不同的解决方案,而开发高级搜索算法是一个既定的研究领域。
在这里,我们不会去关注实际的搜索算法。相反,我们强调问题解决过程的第一阶段:定义选择及其结果,这往往远非小事,需要仔细思考。我们还需要确定我们的目标是什么,换句话说,我们何时可以解决问题。完成这些后,我们可以查找从初始状态到目标的操作序列。
在本章中,我们将讨论两种问题:
这两类并不涵盖所有可能的现实场景,但它们是通用的,足以演示主要的概念和技术。
在处理像导航或下棋这样的复杂搜索任务之前,让我们从一个简化的模型开始,以增强我们对如何通过AI解决问题的理解。
我们将从一个简单的问题开始,以阐明这种思路。一艘划艇上的机器人需要将三件货物运过河:一只狐狸,一只鸡和一袋鸡饲料。如果有机会,狐狸就会吃这只鸡,如果有机会,鸡也会吃饲料,两者都不是我们想要的结果。机器人在动物附近时,可以保证它们不吃,但也只有机器人可以操作划艇,并且皮艇最多只允许两件货物与机器人一起过河。机器人如何将其所有货物安全的移至河对岸?
我们通过标出五个可移动的物体来模拟这个难题:机器人、划艇、狐狸、鸡和鸡饲料。原则上,这五个中的每一个都可以出现在河的任一侧,但是由于只有机器人可以操纵划艇,所以两者将始终在同一侧。因此有四种物体,每种物体有两种可能的位置,即16种组合,我们称之为状态:
我们给各状态写了简短的标识,否则确定属于哪个状态时会很麻烦。现在我们可以说,起始状态是NNNN,目标状态是FFFF,而不是说“在起始状态中,机器人在近侧,狐狸在近侧,鸡在近侧,并且鸡饲料在近侧,而在目标状态下,机器人在远侧“,等等。
这些状态中某一些是谜题条件禁止出现的。例如,在NFFN状态(意思是机器人和鸡饲料在近侧,但狐狸和鸡在远侧),狐狸会吃掉鸡。因此,我们可以排除NFFN,NFFF,FNNF,FNNN,NNFF和FFNN(如果你有所怀疑,可以自行检查)。我们留下以下十个状态:
接下来我们将弄清哪些状态转换是可能的,也就是说,当机器人将一些货物带到对岸时,会产生怎样的状态。最好绘制转换图,并且由于在任何转换中,第一个字母在N和F之间交替,因此在一行中绘制以N开头的状态(因此机器人在旁边),在另一行中绘制以F开头的状态是很方便的:
现在让我们画出转换。一般来说我们可以使用方向箭头,表示它们从一个节点指向另一个节点,但是在这个谜题中,转换具有可逆性:如果机器人可以从状态NNNN行进到状态FNFF,那么它同样可以从FNFF转换到NNNN。因此,简单地使用用没有方向箭头的线条简单地绘制转换即可。从NNNN开始,我们可以转换成FNFN,FNFF,FNFN,FFNF和FFFN:
然后我们填上其他的连线:
我们现在已经为这个谜题上做了很多的工作,没有看到更接近解决方案的情况,毫无疑问,通过自己动脑,你已经可以解决这个谜题。但是对于更复杂的问题,可能的解决方案数量成千上万倍的增长,我们的系统或机械方法将会起到效果,因为困难的部分适合于简单的计算机。现在我们已经制定了它们之间的状态更替和转换,剩余的部分成为了一个机械任务:找到一条从初始状态NNNN最终状态FFFF的路径。
在下面的图片中染色的路径。首先从NNNN到FFFN(机器人将狐狸和鸡带到另一边),然后再到NFNN(机器人将鸡带回起始侧),最后到FFFF(机器人将鸡和饲料带到另一边)。
为了规则化规划问题,我们使用诸如状态空间(State space),转换(transitions)和成本(costs,也译为代价)等概念。
关键术语
状态空间
意思为一组可能的情况。在这个鸡过河谜题中,状态空间由从NNNN到FFFF的10个允许的状态组成(不包括如NFFF这样游戏规则不允许的状态)。如果任务要从地点A导航到地点B,状态空间可以定义为从A点出发可以到达的(x,y)坐标的集合。或者,我们可以使用的位置集合是有限的,例如,不同的街道地址,所以可能的状态数量也是有限的。
转换
成本
成本指的是,这样的事实,即不同的转换往往不尽相同。他们有不同的方式使某些转换变得更优选或更廉价(并不特指钱),而让其他的最贵。我们可以通过将每个转换与一定的成本相关联来表达这一点。如果目标是最小化旅行总距离,那么成本就是各状态之间的地理距离。又或者,目标是最小化时间而不是距离,在这种情况下,成本显然是时间。如果所有的转换都是平等的,那么我们可以忽略它。
为上图中的每个节点(1-6),从下图中选择正确的状态(A-F)。
方框1-6分别是什么状态?
教程合集传送门:赫尔辛基大学AI基础教程