这是一个古典问题。假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。 要求: (1)用一个三元组(x1,x2,x3)表示渡河过程中各个状态。其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。例如(2,1,1)表示起始岸上有两个修道士,一个野人,小船在起始岸一边。 采用邻接表做为存储结构,将各种状态之间的迁移图保存下来。 (2)采用广度搜索法,得到首先搜索到的边数最少的一条通路。 (3)输出数据 若问题有解(能渡过河去),则输出一个最佳方案。用三元组表示渡河过程中的状态,并用箭头指出这些状态之间的迁移: 目的状态←…中间状态←…初始状态。 若问题无解,则给出“渡河失败”的信息。 (4)求出所有的解。
2021-09-24 10:52:35 7KB C++ 修道士与野人
1
人工智能 课程大作业 没有做OPEN表和CLOSED表的检查 开头参数可自己改,结果应该没问题。
1
A星算法和八皇后问题和传道士与野人问题-人工智能原理作业报告.docx
2021-06-21 14:10:59 218KB 人工智能基础实验
1
人工智能基础的传教士与野人问题.cpp
2021-06-21 14:10:58 5KB 人工智能
1
数据结构课设 设有 3 个传教士和 3 个野人来到一条河的左岸,打算乘一只船从左岸渡到右岸去。该船的负载能力为 2 人。在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。野人绝对服从传教士的指挥和调度。
2021-06-16 18:04:20 383KB 数据结构课设
1
人工智能实验报告,传教士与野人过河问题,有程序流程图,源代码和实验结果及分析。
2021-06-16 08:33:36 258KB 传教士
1
野人过河问题 vc6.0
2021-05-23 09:02:59 4KB 课程设计
1
有N个传教士和N个野人来到河边渡河, 河岸有一条船, 每次至多可供k人乘渡。问传教士为了安全起见, 应如何规划摆渡方案, 使得任何时刻, 河两岸以及船上的野人数目总是不超过传教士的数目(否则不安全, 传教士有可能被野人吃掉)。即求解传教士和野人从左岸全部摆渡到右岸的过程中, 任何时刻满足M(传教士数)≥C(野人数)和M+C≤k的摆渡方案。
2021-05-21 16:23:27 8KB 传教士与野人
1
人数被声明为CrossRiver类的一个属性,可以在代码里修改,程序可以找出所有路径,最短路径。
2021-05-18 13:38:27 8KB java 传教士 野人
1
用java写的野人过河程序 用java写的野人过河程序
2021-05-18 12:41:25 20KB java 野人过河
1