梦想赌坊的当家(EmilMatthew的侠意人生)

博客已转移至http://www.douban.com/people/emilmatthew/

原创 A*算法最优解提取算法收藏

 

  A*算法最优解提取算法

           EmilMatthew (EmilMatthew@126.com)      

[  类别  ]算法,人工智能

[推荐指数]★★★★

[  摘要  ]本文就“启发式搜索算法引论------A*算法理论与实践一文中的最优解提取算法的不足处进行了改进,提出了一个通用的A*算法的最优解提取算法。

[ 关键词 ] A*,最优解提取,AS2

             The Algorithm of Best Answer Getting Method in A*

[Classify] Algorithm ,  Artificial Intelligence

[  Level ] ★★★★

[Abstract]In my previous passage------” Introduction to Heuristics Search------A* Algorithm Principle and Practice”, the algorithm for getting out the best answer of A* has some drawbacks when meets some certain conditions. In this article, I introduce a general algorithm for best answer getting in A* algorithm.

[Key Words] A* , Best Answer Getting , AS2

 

[1缺点回顾]

   首先,要向对我的上一篇文章“启发式搜索算法引论------A*算法理论与实践”提出批评意见的两位网友 7heaven,Ourme表示感谢。上篇文章的算法实现中,有时在某些位置,去走向特定点时,会出现主角走小弯路的现象(当然,还是可以走到最终点的),起初,我并不太在意,现在经过仔细的思考后,发现前面所用的提取最优路径的算法有些不足A*算法本身并没有任何问题)。主要的问题出在对CLOSE表进行最优路径提取时,有些走弯路的点亦被包含进去了,而用前文的算法思路,是无法解决这一问题的。

 

[2算法核心]

       前文算法之最大不足,就是仅仅利用CLOSE Table来存储搜索过程信息,最终进行逆向提取。而问题的关键,就在于仅仅利用CLOSE Table,并不总能从中提取出搜索问题的最优解,,并且,提取时的一些舍去点的原则要根据不同的搜索问题来设计,无通用性可言。当我把目光再放到A*搜索过程的搜索树上时,发现每个结点的父结点大有可为,经过一阵试探及思考后,得到了这个并不复杂的最优解提取算法。

       首先,对于A*算法在搜索过程形成的搜索树,可以得到如下性质:

       从最终结点pEnd开始,向其父结点pEnd.parent回溯,再由其父结点向其父结点pEnd.parent.parent回溯… …,显然,最终将到达初始点。由归纳法易证,该条通路上的所有结点均在且仅这些点在最优搜索解路径上。

       有了这个性质,再结合父结点表和CLOSE Table两张表,即可非常轻松的得到最优解了。先请看三个该算法的示例:

   

                                                    A*算法最优解提取算法示例1

 

A*算法最优解提取算法示例2

 

A*算法最优解提取算法示例3

 

       所以,并不难得出下面的A*算法最优解提取算法框架(注意边界情况的处理):

       CIndex : a valuable identifies current element position in CLOSE Table

       CLOSE Table: note all the node which is searched in searching sequence

       Parent Table :note all the searched node’s parent node searching sequence.

NA Table: note the best answer ------from end node to start node.

NAIndex: index for NATable

 

//Init

Index   <-Rear position for CLOSE Table

NAIndex<-0

While(true)

       {

                     NATable[NAIndex]=Parent Table[CIndex]

                           

                     NAIndex<-NAIndex+1;

                     CIndex <- CIndex-1;

                                  

                     if(CIndex==0)//Normal Successful Exit Node

                                   break;

                                  

                     while(NATable[NAIndex-1] is not equal to Parent Table[CIndex] )

                     {

                                   CIndex --;

                     }

                    

                     if(CIndex==0)//Special condition for exit out

                     {

                                   NATable[NAIndex]=Parent Table[CIndex]

NAIndex++;

                                   break;

                     }      

}

      

       具体实现请参考前文(已更新)

 

[3交互式实现]

               

                                            

测试1 

   

                                                                     测试2

       欢迎提出批评及改进意见!

 

[参考文献与网站]

[0] EmilMatthew, 启发式搜索算法引论------A*算法理论与实践,2006

程序完成日:06/10/31

文章完成日:06/10/31

 

[源码下载、源程序下载]

       请参考前文下载地址:

       http://blog.csdn.net/emilmatthew/archive/2006/10/17/1338808.aspx

                                    

发表于 @ 2006年10月31日 20:41:00|评论(loading...)

新一篇: EmilMatthew BLOG文档索引 06.05---06.10 理工类 | 旧一篇: 启发式搜索算法引论------A*算法理论与实践

用户操作
[即时聊天] [发私信] [加为好友]
秦盛
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
秦盛的公告

〖我的作品〗



〖我的连载〗

快速Flash开发

〖文化视角〗

     1.90年代初的苏州

     2.中国动画80年

     3.古城真定

     4.三国知识问答

     5.大哥陈松勇

     6.圣斗士.终章

     7.武侠配乐.少林雄风

     8.李宗盛.生活家的院子

     9.李敖精彩语录选

     10.安东尼奥尼.中国.剪影.1

     11.安东尼奥尼.中国.剪影.2

     12.林青霞向季老讨文气

     13.山水情.中国水墨动画之巅峰

     14.《人物》之媒体人.刘长乐

     15.侯孝贤谈悲情城市

     16.转.夜泊秦淮近酒家

     17.冯骥才:守望民间文化的精卫鸟


我是一个快乐的赌徒,因为我掷出去的每把骰子,都是自己的,玩的都是真性情。


和很多人一样,我没有好的家境可以依赖,一切都从零开始,靠自己打拼.有时,站在太阳下,经常问自己:"我就这样了?"回答,当然是否定的,但要的是------行动.



〖宣言〗

前途是光明的

道路是曲折的


〖祈福〗

祝季羡林老先生在301医院身体健康,心情愉快!

祝李敖大师精神矍铄,风采不逊当年,多出新作!

遥祝Bertrand Rusell在天堂依旧幸福人生!


    〖强烈推荐〗

   ACM图灵奖演讲集

   FF背后的牛人们

   (视频)Dijkstra风采













文章分类
收藏
05大师有大智慧
Alan Kay(Smalltalk,OOP)
BERTRAND RUSSELL
Donald E. Knuth(Art of Algorithm)
Edsger W. Dijkstra(Programming & Algorithm Design,Shortest Path)
John McCarthy(人工智能)
李敖
06闲情,感悟
苏州古城的历史
苏州杂志
读者论坛
赵云庙
07天籁之音
[周华健,李度]难以抗拒
[成龙,苏慧伦]在我生命中的每一天
[成龙]壮志在我胸
[灌篮高手]直到世界的尽头
Somewhere out there
somke gets in your eyes
When You Believe
野风[新龙门客栈片尾曲,林忆莲]
08苏州中学
苏中主页
09算法,数据结构,优化
ACM/ICPC的司令部
Dictionary of Algo&DS
IOI选手优秀论文
Lucky猫的ACM园地
UVA在线答题系统
中国人工智能网
中国数据挖掘网
中国网格信息中转站
中国运筹学协会
信息学初学者之家
信息学奥林匹克基地
北大ACM站
数据结构自考网
浙大ACM站
10科学,论文
Citeseer
Scientific American
Tex中文站
yesize资料坊
上海网上天文台
中国学术期刊网
中国工程院
中国水利期刊
中国知网
中国科学院
大众科普网
奇迹文库
科研中国
集智俱乐部
11名校计算机科学院巡礼
(UIUC)伊利诺伊香槟分校
Carnegie Mellon(卡梅基隆)
Mit[麻省理工学院]
Princeton[普灵斯顿大学]
purdue[普度大学]
Stanford[斯坦福大学]
中国科学技术大学
交通大学
北京大学
南京大学
复旦大学
浙江大学
清华大学
12应用数学,建模
Math.com
中国数学建模
中国统计网
数学中国
数学常用工具FAQ
13ComputerScience
《计算机教育》期刊网站
acm来了
李开复学生网
15综合科学
《科学》杂志
从欧氏几何到微分几何
16数值计算
Pi的小站
17朋友的链接
Nemon
大漠穷秋
18EnglishLearning
沪江英语
20图形学
The Chaos Games
VRML用户手册
中国虚拟现实开发者
中国计算机图形学教学研究会
分形屏道
分形艺术
机器视觉在线
虚拟无忌
21操作系统
Bochs摸拟环境
ChinaLinux
Linux/BSD/UNIX文档
Linux_Kernel
中国UNIX技术联盟
帮助Linux爱好者
永远的UNIX
22ActionScript_Flash
[Flasher]Dengjie
[开源的AS2编译器]Mtasc
FlashASM
RobertPenner
ultrashock
X-Woods
闪吧音乐盒
23C/C++
C++ Home
C++FAQ-LITE
C-C++ User Journal
CPlusPlus.com
C语言之家
GCC Compiler
GCC.GNU
SGI-STL
VCHelp[CN DEV]
VC知识库
24GameDev
CSDN游戏开发站
GamaSutra
GameAI
GameDev.NET
Gamerers
vbgamer
25JAVA技术
JAVA.SUN
中文JAVA技术网
26编程技术
[MSDN Eng]
[MSDN 中文版]
ASCII Table
SourceForge
UML.ORG
中国程序员(CSDN)
文件格式汇编
程序员联合开发网
问专家
28物理模拟与仿真
中国仿真互动
流体中文网
29网络安全
绿盟论坛
30环保
中国环境监测
南水北调网
国家环保总局
江苏环保网
31可爱的事物
叮铛论坛
32设计,排版
5D多媒体
BlueIdea
印科网
33影视,音乐,电台
上海文广新闻传媒
阿拉上海人
34优秀个人BLOG
fisher_jiang的专栏
gzfqh的专栏
ScienceStudy
刘爱贵的个人主页
大肚能容天下剑
寒蝉退士
梦想风暴
煮石
男儿当自强
男单618
编程夜未眠
记得忘记@博客
35专栏
抗战胜利60年(sina)
抗战胜利60年(yahoo)
50电子游戏
Raine街机模拟器
WAR3中文网
专业射击游戏联盟
地精研究院
51常用软件
flashfxp
GreenBrowser
小巧好用的编辑器SciTEFlash
强力抓屏
金山在线词典
52网上书店
DearBook
当当网
53硬件DIY
52硬件
电脑报论坛
存档
Csdn Blog version 3.1a
Copyright © 秦盛