人工智能实验:
实现结果:给定八数码的起始状态和目标状态,程序可以自动计算出所需要的步数,并能打印出每一步的变化。
本资源包括:使用C语言实现
①使用深度优先搜索来解决八数码问题
②使用广度优先搜索来解决八数码问题
③使用过程式表示和实现八数码问题
以及相关代码详细注释
过程式知识表示是将有关某一问题领域的知识, 连同如何使用这些知识的方法,均隐式的表达为 一个求解问题的过程,每个过程是一段程序,完成对具体情况的处理。过程式不像陈述式那样具有固定的形式,如何描述知识完全取决于具体问题。
深度搜索:以栈为容器。由于每次将可能的新状态入栈,并标记为已经搜索到,当一直深入时便会遇到下一步可能搜索到的所有状态都已经标记为搜索过了,即没有可入栈的,这条深度搜索路线结束,下次出栈为栈顶状态,即另一条深度搜索路线。因为进行搜索之前判断了是否可达,所以进入搜索必有解,那么会按上述进行,直到找到目标状态。
最简单的方法是在上述深度搜索代码上进行改动,即可进行广度搜索。
深度是将集合中的元素从末尾取出,即和栈的特点相同,那么将先进后出变为先进先出,即将栈改成了队列。
1