旅行商问题的A算法实现.doc

旅行商问题的A算法实现.doc

用A*算法解“旅行商问题” - PAGE 8- “旅行商问题”的A*算法实现 学号:040330624 姓名:李祥 班级:0403306班 日期:2007年1月15日 指导老师:徐敏 南京航空航天大学计算机科学与技术专业 问题描述 货郎担(旅行商)问题: 设有n个城市,城市之间均有道路,一个旅行商从某城市出发,经过其余n-1个城市一次且仅一次,最后回到出发的城市,他如何走才能使他所走的路程最短? 用A*算法实现,语言不限。 算法 A*算法是基于估价函数f(x)的一种加权状态图启发式搜索算法。A*算法的核心是估价函数f(n),它包括g(n)和h(n)两部分。g(n)是已经走过的代价,h(n)是n到目标的估计代价。A算法限制其估价函数中的启发函数h(x)满足:对所有的节点x均有h(x)≤h*(x),其中h*(x)是从节点x到目标节点的最小代价(若有多个目标节点则为其中最小的一个)。 A*算法的具体步骤如下: 步1 把附有f(S0)的初始节点S0放入OPEN表; 步2 若OPEN表为空,则搜索失败,退出。 步3 移出OPEN表中第一个节点N放入CLOSED表中,并冠以顺序编号n; 步4 若目标节点Sg=N,则搜索成功,结束。 步5 若N不可扩展,则转步2; 步6 扩展N,生成一组附有f(x)的子节点,对这组子节点作如下处理: 考察是否有已在OPEN表或CLOSED表中存

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档