实验5 A*算法求解八数码问题

   实验5 A*算法求解八数码问题

  1. 课题<八数码问题>:
  2. 在九宫格中,放有八个数字和一个空格,通过挪动空格来使八个数字完成规定的排列。

例:     初始状态S0:    

            目标状态Sg:

:该如格?

  1. 注:示例代码中使用的A*算法,采用f(n)=d(n)+w(n)为启发式函数,

式中,d(n)为搜索树的深度;w(n)为放错位置的数字个数

F1= w(n)为放错位置的数字个数

F2=距离总和

  • 查看示例代码,简单了解A*算法实现过程
  • 尝试运行示例程序,从以下几个方面对比A*算法和宽度优先算法
  1. 对于同一个初始状态:
  • A*算法和宽度优先算法是否都能对该状态求解
  • 二者的求解步数是否一致?该路径是否为最短路径
  • 二种方法算出该路径的时间是否一致哪种方法耗时最短(执行效率最高)?
  • 此外,无论对怎样的初始状态,八数码问题是否都存在解

注:可以尝试第2页中给出的几种初始状态来对比两种算法

  • (选做)尝试使用更好的评价方法代替(改进)当前的启发式函数

用于对比A*算法和宽度优先算法的几组初始状态:

A*算法

函数1

A*算法

函数2

宽度优先

耗时

0.003

<0.001

0.002

路径长度

5

5

5

生成节点数

12

10

35

考察节点数

5

4

20

  1. 是否有解?

A*算法

函数1

A*算法

函数2

宽度优先

耗时

0.004

0.002

0.005

路径长度

12

12

12

生成节点数

203

90

1141

考察节点数

111

51

726

  1. 是否有解?

  1. 是否有解?此问题无解

A*算法

函数1

A*算法

函数2

宽度优先

耗时

无解

无解

无解

路径长度

生成节点数

考察节点数

  1. 是否有解?

A*算法

函数1

A*算法

函数2

宽度优先

耗时

    0.015

0.001

0.002

路径长度

9

9

9

生成节点数

56

22

439

考察节点数

29

12

262

  1. 是否有解?

A*算法

函数1

A*算法

函数2

宽度优先

耗时

0.003

0.002

0.007

路径长度

15

15

15

生成节点数

914

256

>3000

考察节点数

525

153

>2000

  1. 是否有解?

A*算法

函数1

A*算法

函数2

宽度优先

耗时

超算

<0.001

超算

路径长度

21

生成节点数

450

考察节点数

273

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

激稳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值