这是一个古典问题。假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。 要求: (1)用一个三元组(x1,x2,x3)表示渡河过程中各个状态。其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。例如(2,1,1)表示起始岸上有两个修道士,一个野人,小船在起始岸一边。 (2)采用邻接表做为存储结构,将各种状态之间的迁移图保存下来。 (3)采用广度搜索法,得到首先搜索到的边数最少的一条通路。 (4)输出数据 若问题有解(能渡过河去),则输出一个最佳方案。用三元组表示渡河过程中的状态,并用箭头指出这些状态之间的迁移: 目的状态←…中间状态←…初始状态。 输出时,在状态迁移旁,说明渡河的动作和当前两岸的状态。 若问题无解,则给出“渡河失败”的信息。 (4)求出所有的解。
2022-12-07 22:59:22 10KB 传教士与野人问题-数据结构
1
有N个传教士和N个野人来到河边准备渡河,河岸有一条船,每次之多可供k个人乘渡。传教士为了安全起见,任何时刻,河两岸以及船上的野人数目总是不能超过传教士的数目(传教士数目为0除外)。求解一个可以令传教士和野人安全从左岸全部摆渡到右岸的过程。
2022-11-04 17:22:43 5KB 传教士,野人,渡河问题
1
A*算法解决传教士与野人过河问题 * 程 序 说 明 * * 功能: 用A*算法求解传教士与野人问题。M=C=5, K=3 * * 说明: * * 本程序按照《人工智能导论》一书所介绍的A*算法求解传教士与野人问题。
2022-10-05 23:04:07 3KB A算法求解传教士与野人问题
1
中国地质大学武汉计算机学院计算机科学与技术专业人工智障作业
2022-06-15 10:36:15 1.87MB 人工智能作业
1
用C++实现传教士与野人渡河问题,附源码、可执行程序、实验报告。使用VS2012编写,VS2010上也可以编译成功。使用时需要自己新建工程,只需将相应文件加入工程即可编译运行。
2022-05-10 18:46:52 603KB 传教士与野人
1
大学课程人工智能小实验源码,实验内容是传教士与野人过河 案例,C#源码分享,使用编程工具为VS2012做的一个小小的demo。
2022-04-28 22:34:37 142KB 人工智能 传教士与野人过河 demo C#
1
课程设计 野人和传教士过河问题的实现 1.1 设计目的 设计有效的数据结构和算法实现野人和传教士过河问题。 1.2 设计内容 1. 深入理解野人和传教士过河问题的实质,调研该问题实现的相关算法; 2. 设计有效的数据结构和算法实现该问题; 3. 根据算法完成程序的编写和调试,要求输出实现的结果; 4. 按课程设计要求撰写报告。
2022-04-12 10:05:53 477KB 课程设计 过河问题
1
用回溯法、递归求解 传教士与野人过河问题。
2022-02-26 13:46:29 1.42MB 传教士 野人 过河 递归
1
人工智能的经典问题之一:传教士和野人过河C语言实现的。。。
2021-12-22 19:43:26 1KB 传教士和野人
1