维普资讯 http://www.cqvip.com 2008年第2期 文章编号:1006—2475(2008)02-0034-02 计算机与现代化 J1SUANJI YU XIANDAIHUA 总第150期 状态空间搜索算法的进一步探索 林敬恩,滕忠坚 (福建师范大学物理与光电信息科技学院,福建福州350007) 摘要:主要讨论了BFS、DFS、A 算法在状态空间搜索中的应用并且给出其在Mathematics下实现。在Mahemattics中根据 节点数据绘制出节点分布图,分别使用BFS、DFS、A 搜索对给定的源点和目标点之间的路径进行搜索,并比较得到的路 径耗散数据,说明引入启发式函数对搜索效率的影响。 关键词:状态空间;A 算法;BFS;Dl;’S 中图分类号:TP301.6 文献标识码:A Exploration of Search Algorithms in State Space LIN Jing—en,TENG Zhong-jian (School of Physics and OptoEleetronies Technology,Fujian Normal University,Fuzhou 350007,China) Abstract:The article mainly discusses applications of BFS,DFS,A’algorihms itn state space.The complete flow charts on Mathematics are pl ̄vided.According to the node’S data,the paper describes the node’S distributing chart and uses BFS,DFS, A’algorithms f0r searching paths between soul ̄ce node and target node.Finally.the article analyses and compares the data of path dissipation to show the effect of introducing heuristic function on search efficiency. Key words..state space:A  ̄gorithm;BFS;DFS 1概述 状态空问的搜索策略分为无信息搜索和有信息 搜索。无信息是除了状态基本定义,没有任何关于状 态的附加信息,大多数情况下这种搜索策略是非常无 效的。无信息搜索中最具代表性的是广度优先搜索 (BrS)和深度优先搜索(DFS)。有信息搜索策略是 除了基本定义之外还利用了特定知识的策略 。有 信息搜索中最具代表性的是A 搜索。 2构造节点分布图 为了能更直观地让我们观察得到的路径数据,我 们先在Mathematics中构造节点分布图。将各个节点 坐标以及各点问相互的距离耗散数据记录在表中,然 后导人绘制成图。 图1状态空间节点分布图 3 BFS、DFS以及A 搜索算法的原理 以及在Mathematics中的模拟实现流程 收稿日期:20074)8—15 , 1.广度优先搜索(BFS):先扩展初始节点的所有 后继节点,然后再扩展它们的后继,以此类推 。搜 索过程是逐层进行的,完成本层搜索才进行下一层的 搜索,直到找到目标为止。只要最浅的目标节点处于 个有限的深度,广度优先搜索在扩展完比它浅的所 有节点之后最终能找到它,因此这种搜索是完备的。 但是完成广度优先搜索所需要的时间和空间将随着 一作者简介:林敬恩(1982.),男,福建福州人,福建师范大学物理与光电信息科技学院硕士研究生,研究方向:人工智能,光信 息技术,软件工程;滕忠坚(1967 ),男,福建福州人,教授, 美博士,研究方向:人工智能,医学图像处理,数据库,软件工程。 维普资讯 http://www.cqvip.com
2008年第2勘 林敬恩等:状态空间搜索算法的进一步探索 35 搜索深度的增加,成指数增长 其在Mathematics中 的实现流程: (1)初始化:定义队列P记录已通过的节点,堆栈队列 que存放后继点集,变量pathlen记录所 问的路径耗散。P、 que tII默认的一个元素足源点。变量k=源点。 (2)满足k 为}=J标点,且队列que lI还有冗素时执行 (3).否则 爪兀可达路 (3)k存放que队列的首元 (n)+h(n)最小的节点。这里的估计函数h(n)称为 启发式函数。如果h(n)满足一定的条件,A’算法既 是完备的也是合理的。其在Mathematics中的实现流 程: (1)编写启发式函数h(n)。 (2)初始化:定义arrived组存放二元组{节点,经过该点 的估计最低耗散f(II)},arrivedl组存放三元组{节点,到达该 点的实际耗散g(I1),该节点的父节点},变量k=源点。 (3)判断当前k节点是否为目标节点,如果是,则显示路 (4)判断k是否存住一个后继 点i,如果 存住i』!lJ删除 qne队列首元素重新从(2)开始执 如果存在t)gl8)t行(5)。 (5)判断i足否为口标 . 。如果足,将i点 人到序列P, 以及将k、i问的路径耗散累_JJI1到pathlen—lI,执行(7)。如果 不是,执行(6) (6)判断i点足 被访问过。如果已经访问过,则i递增, 重新从(2)开始执行。如果术 问过,{』{lJ将点i l』JIf人到队列P 和队列que tIll'将k、i阃的路 牦敞累JJII到pathlen lll。删除 que队列首元索重新从(2)圩始执行。 径和总耗散值并且程序结束。否则执行(4)。 (4)k是否存在一个后继点 ,如果不存在则执行(9),如 果存在则执行(5)。 (5)判断i点是否被访问过,如果已经访问过,则i递增, 重新从(3)开始执行。如果未访问过,继续执行(6)。 (6)计算到达i的实际耗散g(i)。 (7)计算i到目标点的估计耗散11(i)以及经过i的最低 估计耗散值f(i)。 (8)将{i,f(i)}存人arrived中,将{i,g(i),k}存人dr- rived1中。 (7) 示路 和总耗散 : 2 深度优先搜索(DFS):总是扩展搜索树的当前 边缘中最深的节点… 搜索直接推进到搜索树的最 深层,那里的节点没有屙继节点。当那些节点扩展完 之后,它们被从边缘中去掉,然后搜索算法“向上回 到”下一个还有未扩展后继节点的稍浅的节点。它 (9)取arrived队列中f值最小的点作为下一个k的值。 重新从(3)开始执行。 不是完备的,冈为如果它的当前搜索路径是无限的又 不含目标节点,它将一直搜索下去。但是它所需的内 存较小。其在Mathematics中的实现流程: (1)初始化:定义队列p记录已迎过的节点,堆栈队列 que存放后继点集,变越pathleJ1记录所访问的路径耗敞 P、 que IfI默认的~个元素足源点。变量k=源点。 (2)满足k小为口标点,且队列que IfI还有元素时执行 (3),否则 _,J 兀可达路 。 在执行中,我们选取源点为编号12的点和目标 点为编号8232的点(多组数据中的其中一组作为例 子)。在BFS执行中,最终产生的路径耗散值是1. 15854×106,一共遍历的节点数为1655个。在DFS 执行中,最终产生的耗散值是595816,一共遍历的节 点数为1032个。A’搜索算法所产生路径的耗散值 最小,为28688.5。所遍历的点为{12,4824,4825, 4826,5168,1617,1614,1615,1616,8752,8784, 4864,4863,780,7884,4206,6596,4495,4228, ll88,4100,3824,3823,3822,7983,7982,798l, (3)将que队列一Il最后一个元素存人k(因为扩展点总足 添l』JII到que队列的 部,符合扬 度优先的搜索策略)。 (4)判断k足甭存住一个后继节点i,如果不存_住则删除 que队列的最后一个兀索重新从(2)开始执行。如果存在则 执行(5)。 7980,8070,8006,80ll,8005,9221,8087,8049, 8026,237I,2372,8232}。计算消耗的时间为67. 708 second。前两种算法对于状态空间的搜索是采取 盲目扩展的方式,所得的路径是低效的,特别是随着 节点数的增加,复杂度成倍增加。基于A’算法的模 拟实现了最优路径的寻找,合理的启发式函数大大提 高了搜索效率。 (5)判断i是否为口标, 果是,将i点JJ11人到序列P, 以及将k、i问的路 耗散 JJ1l刊path[en・l ,执行(7)。如果 小足。执行(6) (6)判断i点足否被访问过,jnJ果已经访问过,IJj4 i递增, 重新从(2)开始执行 如果术访问过,则将点i JJI1人到队列P 和队列que lJ1,将k、i问的路 耗散 )JIt ̄0 pathlen 并重新 从(2)开始执行。 (7) 爪路径和总耗散他。 4结束语 本文在Mathematics平台下模拟实现了几种经典 的状态空间搜索算法,并且介绍了它们各自的特点, 阐述了它们的实现流程。特别在A’搜索算法的设 计中,受Pohl提出的动态加权的启发,在启发式函数 的设计中加值,这样可使得搜索消耗最小化 J。 本文所做的研究是对状态空间搜索算法的一种探索, 特别是其中的A 搜索算法不断改进,在状态机验证 理论、地图寻径、路由数据传送等领域将发挥更大作 用。 (下转第39页) 3.A 搜索:A 算法是一种最佳优先搜索算法。 设g(n)是从起始节点到节点11的路径耗散,h(n)是 从节点n到目标节点的最低耗散路径的估计耗散值。 A 算法就是结合g(n)和l (n)来对节点进行评价:f (n)=g(n)+h( )。f(n)是经过节点n的最低耗散 解的估计耗散。也就是说A 算法的核心就是扩展g 维普资讯 http://www.cqvip.com 2008年第2期 Step5:Return SimI .1; 许方芳等:语义网中的本体映射研究 39 [3]H H Do,Erhard Rahm.COMA—A system for lfexible combina- tion of schema matching approaches[C]//?roe.of the 28th Int1.Conf.on Very Large Database,20O2:610-621. 2.4概念相似度的综合计算 将概念c.和概念C:的语义相似度、捕述相似度 以及邻近层次概念相似度按公式(10)计算可得到所 求的概念相似度,并表永为Sim(C.,C ): Sinl(C;,C?)=w Sim ......(Cl,C )+w.I Sial ; C2)+wI Sim h1、 ,w +、v.{+、vt=1 (Cl, (10) [4]邓志鸿,唐世渭,等.Ontology研究综述[J].北京大学 学报(自然科学版),2002,38(5). [5] GRUBER CTR.A translation approach to portable ontol-o gies[J].Knowledge Acquisiiton,1993,5(2):199-220. [6] BORSTWN.Construction of Engineering Ontologies for Knowledge Sharing and Reuse[D].PhD Thesis,Univer- sity of Twentc,Enschede,1997. 权值的具体设置值根据具体环境由用户来决定。 3 结束语 本文对概念的语义、属性、关系以及层次作了研 究,提出的方法综合改进了相似性度量方面的多种方 法,有很好的效率和准确度.但其权重一般是根据已 有经验给出的,会存在计算误差。 本体的目的就是为了实现知识的共享与重用,但 于本体的多样性和异构性.要想完成信息交流的任 务必须在本体之间架起语义映射的桥梁。本体映射 现在已经是语义网发展过程中存在的一个重要问题. 同外在这方面的研究已经取得了不少的成果.国内这 [7]G Bisson.Why and how to define a similarity measuFe for object based representation systems[z].Towards Very Large Knowledge Bases,1995:236-246. [8]Xiaomeng Su.A text categorization perspective for ontology mapping[R].Department of Computer and Information Science,Norwegian Univesiryt of Science and Technology, Norway,2002. [9]Halevy A,Ives Z,Mork P,et a1.Piazza:Mediation and integration ifnrastructure for semanitc Web data[J].Jour- nal f oWeb Semantics,2004,1(2):155—175. [10] Kalfoglou Y,Schoflemmer M.Ontology mapping:the state of the art[J].The Knowledge Engineering Review, 2003。18(1):1-31. 方面的研究相对还较少。目前儿乎所有的算法案例 中采用的都是专家人工输入.不同本体映射的半自动 化和自动化的研究取得的成就卜分有限,是今后研究 工作的一个重点。还有一点就是本体的构建是本体 映射的基础,因此完善本体的构造也是非常必要的。 参考文献: [11] Maedche A。Motik B,Silva N,Vok R.MAFRA—a mapping framework for distributed ontologies[C]//Pro- ceedings of the 13th International Conference on Knowl- dgee Engineering and Ka;owldgee Management,Sigtienza, Spain,2002. [12]B Nguyen,M Vazirigallis,In Vaflamis,et a1.Organizing Web documents into thematic subsets using an ontology [1] J Madhavan,P A B ’nstein,E ltahm.(;.eneric schema matching with cupid[C]//Prc.oof the 27th Int1.Cod. Oil Very Large Databases,2001:49-58. [J].VLDB Journal,Specila Issue on“Semantic Web”, 2003,12(4):320-332. [2] An Hai Doan,Jayant Madha ̄,all,Robin 1)hamankar,et a1. Lcarning to matclJ ontologies on tile semantic Web[J]. The VLDB JonmaI,2003,12(4):303.319. [13]关估红,虞为,安杨.GML模式匹配算法[J].武汉大 学学报(信息科学版),2004,29(2):169.175. (上接第35页) 参考文献: 子工业出版社,2oo2. [5] Marco Pinter.Toward more realistic pathfinding[J].Game Developer Magazine(April),CMP Media LLC,2001:54- 64. [1] Rnssell S,Nolvig P.Artificial Intelligence:A Modern Ap- proaeh(Second Edition)[M].Pearson Edncation Prentice Hal1.2003. [6] Cain Timothy.Practical Optimisations for A‘Path Generati [2]George F Lnger.Artiifcial Intelligence:Structm'es and Strat. egies for Complex Pl‘ol Jlem SoMng(Fourth Edition)[M]. Addison Wesley,l 997. on[z].AI Game Programming Wisdom,Charles River Media,2∞l2:146—152. [7] 丁大正.Mathematica 5在大学数学课程中的应用[M]. 北京:电子工业出版社,2006. [8] Matthews James.Basic A‘Path_ifnding Made Simple[Z]. AI Game Programming Wisdom,Charles River Media, 20o2:105.1l3. [3]Corlnan.r H,Leisel SOIl C E, rest 1t I ,et a1.1ntn・odllC. tion to Algorithms(Second Edition)f M].The MIT Press, 20o1. [4] Clifot’d A Shdfer.Practice lntroductiolJ to Data Structures and Algoritlun AnalysisfM].张铭,刘晓丹,等译.北京:电