什么是启发式搜索和非启发式搜索的区别?您能举一些例子来解释吗?
回答:
盲目或非启发式搜索
这是一种对目标节点没有“信息”的搜索。
一个例子是广度优先搜索(BFS)。在BFS中,搜索是一层接一层进行的。换句话说,同层的节点会在下一层的节点之前被访问。这种方式会一直进行,直到一个被“扩展”的节点成为目标节点。在这种情况下,不使用关于目标节点的任何信息来访问、扩展或生成节点。
我们可以将盲目或非启发式搜索视为一种蛮力搜索。
启发式或有信息搜索
这是一种对目标有“信息”的搜索。
这种类型的算法的一个例子是A*。在这种算法中,节点的访问和扩展也使用了关于目标节点的信息。关于目标节点的信息由一个启发函数提供(这是一个将目标节点的信息与状态空间的每个节点相关联的函数)。在A*的情况下,与每个节点n
关联的启发信息是对从n
到目标节点的距离的估计。
我们可以将有信息的搜索视为一种近似“引导”的搜索。