
八数码问题使用A*算法,C#语言实现。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
A*算法求解八数码问题1、A*算法的基本思想如下:1)首先,构建一个队列,并计算初始结点的估价函数f,随后将初始节点入队。同时,设置队列头指针和尾指针。2)接着,从队列头取出结点,若该结点代表目标结点,则程序结束并输出路径。否则,对该结点进行扩展操作。3)在扩展后的新结点中,需要检查是否与队列中已存在的结点重复。若新结点与队列中的结点重复且位于队列头指针之前,则将其丢弃;若新结点与待扩展的结点重复且位于队列头指针之后,则比较两个结点的估价函数g的大小,保留较小g值的结点。然后跳至第五步。4)如果扩展出的新结点与队列中的结点不重复,则按照它的估价函数f大小将其插入队列中的头结点后方,使它们按照从小到大的顺序排列。最后更新队列尾指针。5)如果队列头的结点仍然可以进行扩展操作,则直接返回第二步进行循环。否则,将队列头指针指向下一个结点后返回第二步继续执行。
全部评论 (0)
还没有任何评论哟~


