这几天在看Nilson的人工只能简介。里面有一章节讲的是各种搜索技术,其中的最基本方法也就是所谓的盲目搜索,用回溯法对问题的每个可能情况进行试探,如果满足就继续进入下一层知道找到一个解法,后者结束本层回来上层。
看讲解的时候感觉不难,可是自己实现起来才发现没那么容易,虽然我实现的是最基本的一种叫做ConstructiveMethod的方法,可是调了好时间都不对,于是自己加了一些调试用的显示代码,最后观察了回溯过程才发现。可以说是歪打正着,自己在调试中添加了一些用来调试的代码,从而可以看到整个回溯的过程是如何进行的。对理解回溯有很好的作用。整个程序代码如下: