这是一个典型的产生式系统的算法题.用的是有界深度优先的递归算法,是用C++Builder4.0写的.这也是人工智能或者程序设计竞赛题中最基本最常用的算法.如果自己动手编程实现了一个这样的题目,那么很多相关的题目也就都一样可以做了,比如"四皇后问题","推箱子问题","传教士和野人问题"等等。 利用深度优先的算法都是不一定能找到最优路径的,而且如果解路径过长的话还可能会搜索失败.如果保证要找到最优路径需要用另一些算法,比如宽度优先算法.无论是哪一种算法,如果问题稍微复杂一点的话,都要解决"组合爆炸"问题,即有几乎无穷种组合走法的问题,这种空间的复杂度往往是难以想象的,要求计算机的速度往往也就是体现在这方面. 所以我们每一次搜索都要以某种控制策略来决定下一步的走法,以最快的速度达到目标,减少搜索的范围.这也是人工智能的核心问题.可以说,人工智能的精髓就是穷举,人工智能的关键就是控制策略.