AStar算法解决野人渡河问题.docVIP

  • 43
  • 0
  • 约1.57千字
  • 约 4页
  • 2020-04-10 发布于广东
  • 举报
江南大学物联网工程学院实验报告 课程名称 人工种能 实验名称 A*算法解决8数码问题 实验日期 2018320 班级 计科1501 姓名 周启航 学号 1030415127 一、实验目的: 问题描述:设有3个传教士和3个野人来到河边,打算乘一只船从左岸渡到右岸去。该船的 负载能力为两人。在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。他 们怎样才能用这条船安全地把所有人都渡河过去?试采用A*算法编一程序实现这一搜索过程。 二、算法描述: 1.状态描述 以河岸左边传教士的数目M,野人的数目C,船是否在B作为一个三元组作为一个状态即(M, C, B)o 2.启发函数设计 以现在的状态到FI的状态所需的最少步数作为启发函数,即为h()二M+C-2*B。 3?规则的判断条件 岸边传教丄不能少于野人个数,即M>二C,或者船在左岸时B=l。 4.算法流程图 5.核心代码 操作算子: void Astar() { while(!Q.empty()) Q.popO; PathNodexlear(); memset(st, -1, sizeof(st)); PathNode.push_back(Node(M, C, B, 0, -1)); Q.push(AstarNode(0, PathNode[0])); st[M][C][B] = 0; int m, c, b, flag, i

文档评论(0)

1亿VIP精品文档

相关文档