数据结构课程实践(2)-实验准备与设计

数据结构课程实践(2)

— 实验准备与设计

一.题目:隐式图的搜索问题

(1)任务要求:

  • 对九宫重排问题,建立图的启发式搜索求解方法;
  • 用A*算法求解九宫重排问题。
  • 3х3九宫棋盘,放置数码为1~8的8个棋子,棋盘中留有一个空格,空格周围的棋子可以移动到空格中,从而改变棋盘的布局。根据给定初始布局和目标布局,移动棋子从初始布局到达目标布局,求解移动步骤并输出。请设计算法,使用合适的搜索策略,在较少的空间和时间代价下找到最短路径。
    样式图

二.编程语言和软件

编程语言:Java
软件:IntelliJ IDEA

三.项目思路

1.A*算法

A*算法就是通过估值函数求解最优值并执行。
函数形式为f(n)=g(n)+h(n),通过比较各个状态的F(n)的大小,判断最优路径。
g(n)为已经消耗的实际代价,即已经走了的步数。
h(n)为预测路径,即还有几个数字待走。

2.题目思想

通过建立数组存取起始状态和目标状态。
判断给出条件是否可以到目标状态。
寻找到空格位置,通过上下左右移动,寻找最优路径,并在无法到达时返回父状态。
不断往复,直到找到目的状态时停止。
通过计算得到的路径就是最优路径。
其中在判断是否可以达到目标状态时,可以采用计算奇偶性的方法。(放在给出初始状态和目标状态后,防止做无效的运算)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nightelves11

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

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

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

打赏作者

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

抵扣说明:

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

余额充值