用Prolog求解传教士和野人问题
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
"用Prolog求解传教士和野人问题" 本资源的主要目的在于使用Prolog语言解决经典的传教士和野人问题。该问题的主要内容是:在河的左岸,有三个传教士和三个野人,他们都要到对岸去;河里只有一条船,每次渡船至多只能乘两人;如果在任何一边河岸上,野人的数量超过传教士,野人就要吃掉传教士,问怎样才能用船将三个传教士和三个野人从左岸都渡到右岸,又不会发生传教士被吃的事件呢? 为了解决该问题,我们首先需要定义问题的状态。我们使用复合结构((左岸牧师数,左岸野人数),(右岸牧师数,右岸野人数),船的位置)来表达问题的某个状态。其中,船的位置为0表示船在左岸,为1表示在右岸。 接下来,我们需要描述可能的动作。船上所能够载人的状态就是可能的操作。我们用谓词move表示,例如:move(1,0),表示船上有一位牧师,没有野人。 在定义了状态和可能的操作后,我们需要判断合法状态。我们使用legal谓词来判断状态是否合法。legal谓词的定义如下: legal((X,Y,_)):- legal1(X), legal1(Y). legal1((X,Y)):- X=:=0, Y>=0, !. legal1((X,Y)):- Y=:=0, X>=0, !. legal1((X,Y)):- X>=Y, X>=0, Y>=0. 我们使用深度优先搜索来寻找解决问题的方法。我们使用findroad谓词来实现搜索,findroad谓词的定义如下: findroad(X, X, L, L) :- write(L). findroad(X, Y, L, L1) :- connect(X, Z), not(member(Z, L)), findroad(Z, Y, [Z|L], L1). 通过使用Prolog语言,我们可以轻松地解决传教士和野人问题,并且可以扩展到N1个牧师和N2个野人的情况。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pl](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/release/download_crawler_static/486099/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/486099/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/486099/bg3.jpg)
剩余15页未读,继续阅读
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 6
- 资源: 13
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
- 1
- 2
前往页