算法设计与分析课件 54 A星算法在游戏中的应用.pptxVIP

  • 2
  • 0
  • 约2.06千字
  • 约 19页
  • 2026-06-10 发布于山东
  • 举报

算法设计与分析课件 54 A星算法在游戏中的应用.pptx

算法设计与分析本节要点CONTENTSA*算法在游戏中的应用

A*算法在游戏中的应用

A*算法在游戏中的应用

本题为八数码问题,要求通过x方块上下左右四个方向移动,经过最少的步数达到目标状态。例如,初始状态123x46758,经过r、d、r等3步后达到目标状态。A*算法在游戏中的应用

(1)预处理首先将字符串读入,例如,123x46758,将x转换为数字8,其他字符1~8转换成数字0~7。转换之后的棋盘如下图所示。用start.x记录x所在位置的下标。A*算法在游戏中的应用

(2)可解性判断把除x外的所有数字排成一个序列,求序列的逆序对数。逆序对数指对于第i个数,后面有多少个数比它小。例如,对于123x46758,6后面有一个数5比它小,6和5是一个逆序对,7后面有一个数5比它小,7和5是一个逆序对,该序列共两个逆序对。数码问题可以被看作N×N的棋盘,对于每一次交换操作,左右交换都不改变逆序对数,上下交换时逆序对数增加(N-1)、减少(N-1)或不变。A*算法在游戏中的应用

N为奇数:上下交换时每次增加或减少的逆序对数都为偶数,因此每次移动逆序对数,奇偶性不变。若初态的逆序对数与目标状态的逆序对数的奇偶性相同,则有解。N为偶数:上下交换时每次增加或减少的逆序对数都为奇数,上下交换一次,奇偶性改变一次。因此需要计算初态和目标状态x相差的

文档评论(0)

1亿VIP精品文档

相关文档