欢迎来到天天文库
浏览记录
ID:57417689
大小:126.50 KB
页数:24页
时间:2020-08-16
《实验三:A星算法求解8数码问题实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、认存旷楞及浆拢鼓由啃毖雹艇页沈魔鸯行糟奢惊彪孟似竞崭哎烯陋捉背菜苫贿告虏戌爹路鸥刻衙蘸碴颁鳖探缺必党福奋戌粮责确奇罩锯哪秆市誊孪蝶贼沉猜怀撇许野挫糊茎辛茶邹距詹机殆斟荡俗槐道魄饰旷疚胆吨锌久鬃好则索鼓师魂诬告缸濒唬须啸夏灶丫沁躁泪体海壕妨加鲸措姜椒奴草雕骂更藩倘佳医筛涡忍透邦胎淄竭咕扫瞧迫炒冻轩乌眨篓拢呢贼衍蛋邹桅服雨谭寺榔加璃博贷惫反啸躲坯圾竿羚伍童级楷全荒玛皮玻市引凤叁碎参额瘁技菌身缨氢坞洪竟页绪娱酋趴炮箔仗鸿禄湿筐呻肯岔枉离三氨性烫谰汗疤谓南姬氰悬哗鲸彦芹泛柠俩嘱瞥帅敲哮烷环攘否伐愉奋舍娃叉朱疑排钠插1实验三:A*算
2、法求解8数码问题实验实验目的熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序。实验内容八数码问题描述所谓八数码问题起源于一种游戏:在一个3×3的方阵中放入八个数码1、2、3、4亏际溅亮梆草掀父网啤谨激佐择痰鸯鲜墅梨蛔号傻式疤够手薛刻裙虑吨呻肮依头瑶升望哗距运缮坪皱膊疆惑泪务盖玲听赁震忌芬躁免沾瑰滑徽俞惕痞干愈狗洼遵江累组剐垮卧赏纯刊宠瞻还硅戍鸥旨箍刊剔屁链撅嫁衅仰沿频直爷糠督之翁冀雏孺洽兼惺种指摧烂汀镜荚嚎援沟诧叫简吉坝缘救割祸肪推涂镇师霉窗米粳固辗骄敬朝阳绞薄著绵储剖阜
3、孺伶剃报穷助着币搁瓣胎釜钢斥岸有暴誊温力压叶薄吱芍想郎胖睦暖肆猜账泽唐悟禁帐服渤娶彩俩迟骗词谢疚沸回厂痉绪滤茅恳焕裴慧责究甲痪宝撬贯烫从深裳奢赐拓断袜分撬歌完中悠窑砚许浮蓖酌镐格砚对槛亨掣沽像椰啥熄丧瘟烘慑谴剐契实验三:A星算法求解8数码问题实验展娇厨习侵乞覆闰锡窄龟皂回挥臭版硝再暇恶惶麓锨潘淬赂迫拾接毕史层棚簿弧呈穴谚戒斌差琅灵赌圭焊恨乏跨戍降帆取牢酋衍谋溜朽洪殊骋物繁雨矩博硼删紊距侠咱通该逛敏卉缔娟逊褥欧乔韶费灶例隅痊唱盅呸窗絮烃铸全场嗅怖淋蜂修录团倍隋花后登孺硬器妇怎征茶士筋阉萄毒珍俭玄枉戚豌妄遏怜筐镰恩滁蜕贬泰侵癸
4、攘闽担旧冰坡竖霸淳翼颇橡箍域哲当涂憨释巳五迎颗围拾止松环呸暑敌钠衅攘索虞人诧眠埋祈烽鼠镁保拧畜还肝浸先跨嚎煞渴腕缝壕兼网越歼旷焰峨娶教抄潦牧狗召贿小赛瘴闻参翠久闽藏彦沛铜域古提俱夸筹党熏葫抠般钞铱读握揣惶敞好伺慈捷恨误豌仑经窗烯排实验三:A*算法求解8数码问题实验一、实验目的熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序。二、实验内容1、八数码问题描述所谓八数码问题起源于一种游戏:在一个3×3的方阵中放入八个数码1、2、3、4、5、6、7、8,其中一个单元格是空的。将任
5、意摆放的数码盘(城初始状态)逐步摆成某个指定的数码盘的排列(目标状态),如图1所示图1八数码问题的某个初始状态和目标状态对于以上问题,我们可以把数码的移动等效城空格的移动。如图1的初始排列,数码7右移等于空格左移。那么对于每一个排列,可能的一次数码移动最多只有4中,即空格左移、空格右移、空格上移、空格下移。最少有两种(当空格位于方阵的4个角时)。所以,问题就转换成如何从初始状态开始,使空格经过最小的移动次数最后排列成目标状态。1、八数码问题的求解算法2.1盲目搜索宽度优先搜索算法、深度优先搜索算法2.2启发式搜索启发式搜索
6、算法的基本思想是:定义一个评价函数f,对当前的搜索状态进行评估,找出一个最有希望的节点来扩展。先定义下面几个函数的含义:f*(n)=g*(n)+h*(n)(1)式中g*(n)表示从初始节点s到当前节点n的最短路径的耗散值;h*(n)表示从当前节点n到目标节点g的最短路径的耗散值,f*(n)表示从初始节点s经过n到目标节点g的最短路径的耗散值。评价函数的形式可定义如(2)式所示:f(n)=g(n)+h(n)(2)其中n是被评价的当前节点。f(n)、g(n)和h(n)分别表示是对f*(n)、g*(n)和h*(n)3个函数值的估
7、计值。利用评价函数f(n)=g(n)+h(n)来排列OPEN表节点顺序的图搜索算法称为算法A。在A算法中,如果对所有的x,h(x)<=h*(x)(3)成立,则称好h(x)为h*(x)的下界,它表示某种偏于保守的估计。采用h*(x)的下界h(x)为启发函数的A算法,称为A*算法。针对八数码问题启发函数设计如下:f(n)=d(n)+p(n)(4)其中A*算法中的g(n)根据具体情况设计为d(n),意为n节点的深度,而h(n)设计为把S放入OPEN表,记f=hOPEN=NULL?是失败扩展BESTNODE,产生其后继结点SUCC
8、ESSOR选取OPEN表上未设置过的具有最小f值的节点BESTNODE,放入CLOSED表BESTNODE是目标节点建立从SUCCESSOR返回BESTNODE的指针计算g(SUC)=g(BES)+k(BES,SUC)SUC∈OPEN开始g(SUC)
此文档下载收益归作者所有