基于双向广度优先搜索的魔力方块问题求解
基于双向广度优先搜索的魔力方块问题求解基于双向广度优先搜索的魔力方块问题求解
基于双向广度优先搜索的魔力方块问题求解
王桂平
王桂平王桂平
王桂平
1
,
,,
,张
张张
张
帅
帅帅
帅
2
(1. 重庆大学计算机学院,重庆 400030;2. 浙江财经学院信息学院,杭州 310018)
摘
摘摘
摘 要
要要
要:
::
:将魔力方块问题与八数码问题进行对比分析,通过讨论魔力方块问题是否有解、解的最少步数、状态表示、状态判重、状态转换
关系等相关问题,提出一种基于双向广度优先搜索和状态转换表的求解算法。实验结果表明,与有界深度优先搜索、简单广度优先搜索及
A*搜索算法相比,该算法效率较高,稳定性较好,可以实现魔力方块问题的实时求解及演示。
关键
关键关键
关键词
词词
词:
::
:魔力方块问题;状态判重;状态转换表;双向广度优先搜索;八数码问题
Solution for Magic Square Problem
Based on Bidirectional Breadth-first Search
WANG Gui-ping
1
, ZHANG Shuai
2
(1. College of Computer Science, Chongqing University, Chongqing 400030, China;
2. School of Information, Zhejiang University of Financial and Economy, Hangzhou 310018, China)
【
【【
【Abstract】
】】
】This paper introduces magic square problem, and analyzes 8-puzzle problem comparatively. It comprehensively discusses some issues
relevant to solving magic square problem, such as whether there is a solution, minimum steps, state representation, state repetition judging, transition
relation between states of magic square problem. It proposes a solution based on bidirectional Breadth-first Search(BFS) and state transition table.
Experimental results prove that compared with other algorithms, the algorithm proposed is efficient and stable, which meets the requirements of
real-time solving and presentation of magic square problem.
【
【【
【Key words】
】】
】magic square problem; state repetition judging; state transition table; bidirectional Breadth-first Search(BFS); 8-puzzle problem
DOI: 10.3969/j.issn.1000-3428.2011.20.076
计 算 机 工 程
Computer Engineering
第 37 卷 第 20 期
Vol.37 No.20
2011 年 10 月
October 2011
·
··
·人工智能及识别技术
人工智能及识别技术人工智能及识别技术
人工智能及识别技术·
··
·
文章编号
文章编号文章编号
文章编号:
::
:1000—
——
—3428(2011)20—
——
—0219—
——
—04
文献标识码
文献标识码文献标识码
文献标识码:
::
:A
中图分类号
中图分类号中图分类号
中图分类号:
::
:TP301.6
1
概述
概述概述
概述
八数码问题、迷宫问题、过河问题等是人工智能领域的
经典问题,广泛用于状态表示、盲目搜索和启发式搜索算法
的研究。这些问题的求解一般都涉及状态表示、状态判重、
搜索算法设计、有解
/
无解的判定、求最优解等问题。魔力方
块是一个新颖的智力问题,目前还很少有文献研究魔力方块
问题及其求解。本文将魔力方块问题与八数码问题进行了对
比 分 析 , 并 提 出 一 种 基 于 双向 广 度 优 先 搜 索
(Breadth-first
Search, BFS)
和状态转换表的求解算法。
2
魔力方块问题与八数码问题
魔力方块问题与八数码问题魔力方块问题与八数码问题
魔力方块问题与八数码问题
2.1
魔力方块问题
魔力方块问题魔力方块问题
魔力方块问题
魔力方块也称数字方块,是一个经典的智力问题,常见
于娱乐数学和益智游戏中。图
1
描述了魔力方块问题。其中,
图
1(a)
为问题的某个初始状态,数字
1~9
随机排列在
3×3
的
方块阵列中。通过顺时针旋转
2×2
大小的方框区域
(
共有
4
个
方框,分别是左上角、右上角、左下角和右下角方框
)
,可以
使其中的
4
个数字顺时针旋转
90°
,例如,旋转图
1(a)
中左上
角方框后得到的状态如图
1(b)
所示。通过一系列这样的旋转
操作,使问题到达目标状态,如图
1(c)
所示。当然,目标状
态也可以是其他数字排序,如图
1(d)
所示。
2 8 3
1 5 6
4 7 9
1 2 3
5 8 6
4 7 9
1 2 3
4 5 6
7 8 9
9 8 7
6 5 4
3 2 1
(a)
初始状态
(b)
旋转后的状态
(c)
目标状态
1 (d)
目标状态
2
图
图图
图
1
魔力方块问题
魔力方块问题魔力方块问题
魔力方块问题
魔力方块问题可以采用简单的搜索算法
(
即广度优先搜
索和深度优先搜索
)
、启发式搜索算法
(
如
A*
搜索算法
)
以及其
他智能算法
(
如遗传算法
)
进行求解。因此,魔力方块问题可
以广泛用于这些搜索算法和智能算法的讨论、演示等领域。
2.2
魔力方块问题与八数码问题的对比分析
魔力方块问题与八数码问题的对比分析魔力方块问题与八数码问题的对比分析
魔力方块问题与八数码问题的对比分析
与魔力方块问题有点类似的另一个经典智力问题是八数
码问题。图
2
描述了八数码问题:数字
1~8
随机地排列在
3×3
的方块阵列中,剩下的一个位置为空格,如图
2(a)
所示;
通过向上、下、左、右
4
个方向移动空格
(
实际上就是移动相
应的数字
)
,最终达到问题的目标状态,如图
2(c)
所示。同样,
八数码问题的目标状态也可以是其他数字排列,常见的另一
个目标状态如图
2(d)
所示。
(a)
初始状态
(b)
向上移动空格后的状态
(c)
目标状态
1 (d)
目标状态
2
图
图图
图
2
八数码问题
八数码问题八数码问题
八数码问题
八数码问题是算法理论、人工智能等领域的经典问题,
已经有很多文献研究了八数码问题的求解。求解八数码问题
可以采用简单的搜索算法
[1]
、启发式搜索算法
[2-3]
、人工智能
基金项目
基金项目基金项目
基金项目:
::
:国家自然科学基金资助项目(50975250);浙江省自然科学
基金资助项目(Y1110671)
作者简介
作者简介作者简介
作者简介:
::
:王桂平(1979-),男,博士研究生,主研方向:计算理论,
计算复杂性理论,网格计算,云计算;张 帅,副教授、博士
收稿日期
收稿日期收稿日期
收稿日期:
::
:2011-04-20 E-mail:
::
:w_guiping@163.com