实验二:隐式图的搜索问题实验预习准备

实验任务

1)对九宫重排问题,建立图的启发式搜索求解问题的方法;
2)用A*算法求解九宫重排问题。

实验要求

九宫重排问题即在3х3九宫棋盘中,放置数码为1~8的8个棋子,棋盘中留有一个空格,空格周围的棋子可以移动到空格中,从而改变棋盘的布局。根据给定初始布局和目标布局,求解如何移动棋子才能从初始布局到达目标布局,找到一种最少步骤的移动方法。
在这里插入图片描述
思考题:
1、 启发式搜索和启发式信息函数的设计原则?
2、 启发式搜索能否实现全局最优路径求解?

语言选择

编程语言:Java
编译环境:JDK1.8
开发工具:IntelliJ IDEA

题目分析

在网上查阅资料,大概总结了一下。
八数码问题的一个状态实际上是0~9的一个排列,对于任意给定的初始状态和目标,不一定有解,也就是说从初始状态不一定能到达目标状态。因为排列有奇排列和偶排列两类,从奇排列不能转化成偶排列或相反。
如果一个数字0~8的随机排列871526340,用F(X)表示数字X前面比它小的数的个数,全部数字的F(X)之和为Y=∑(F(X)),如果Y为奇数则称原数字的排列是奇排列,如果Y为偶数则称原数字的排列是偶排列。
例如871526340这个排列的
Y=0+0+0+1+1+3+2+3+0=10
10是偶数,所以他偶排列。871625340
Y=0+0+0+1+1+2+2+3+0=9
9是奇数,所以他奇排列。
因此,可以在运行程序前检查初始状态和目标状态的窘是否相同,相同则问题可解,应当能搜索到路径。否则无解。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页