传教士和野人问题思考逻辑

系列文章目录

提示:国科大其他课程资料整理
国科大高级AI——强化学习(格子问题)
国科大高级AI——博弈论以及相关考题
国科大高级AI——一阶谓词逻辑
国科大高级AI——证明题历年考题
国科大高级AI——深度学习整理
国科大高级AI——野人和传教士问题
国科大模式识别——历年考题以及课后题整理


文章目录

  • 系列文章目录
  • 前言
  • 问题描述
  • 求解
    • 问题形式化
    • 让船动起来!


前言

其实这道野人与传教士的搜索题往届的师兄师姐已经在求解的很好了,比如这个野人
,之所以还要写,是当时我再看文档的时候看的很懵。并不是因为他是错的,相反他非常对,如果考试真考了,上面哪些文档下的解就是正确答案。但是这些解并不是逻辑思考的过程,而是逻辑思考的结果,所以这篇文档的目的主要是希望解析一下传教士和野人问题的逻辑思考的过程。

问题描述

传教士和野人问题通常描述如下:三个传教士和三个野人在河的一边,还有一- 条能载-一个人或者两个人的船。找到一个办法让所有的人能渡到河的另一-岸,要求在任何地方野人数都不能多于传教士的人数。
a.精确地形式化该问题,只描述确保该问题有解所必需的特性。画出该问题的完全状态空间。

求解

问题形式化

首先是问题的形式化过程:

  • 初始状态:六个人都在河的一侧(左岸)
  • 目标状态:六个人均在河的另一侧(右侧)
  • 后继函数:一个人或者两个人从河的一侧到另一侧;(可以是两个传教士或者两个野人一条船)
  • 耗散函数:从一侧到另一侧耗散1个单位
  • 关于合法空间和非合法空间:略

关于合法空间和非法空间为什么略,其实开始思考这个问题的时候,我们全面的列出所有的合法和非法的空间是困难的,我建议可以边运行边思考合法和非法,所以我建议让船先走起来

形式化表述当前状态:
(左岸传教士数量,左岸野人数量,右岸传教士数量,右岸野人数量,“船舶状态“1在左岸,0在右岸” ”)船舶初始状态就可以表述成(3,3,0,0,1),结束状态可以写成(0,0,3,3,0)。(当然这么写有点冗余,但是这样是有利于人判断的)。

最后一个待解决的问题是重复,什么是重复呢?看这样一个过程:

33001) 初始状态
(22110) 一个传教士一个野人来到了右岸
(33001) 一个传教士带着一个野人回到了左岸

这个过程是没有任何意义的,同时我们还有耗散函数要考虑,所以这样的过程对于我们也是一种“不合法状态”。

让船动起来!

先让船向右边走一趟考虑所有可能的路径,并排除两项不合法的状态。
传教士和野人问题思考逻辑_第1张图片
将船舶返回,考虑所有可能路径,并排除不合法状态。
在下面这一趟就出现了重复的状态了,我们需要把重复的状态和非法的状态剔除掉。
(红色框出来的这些就和初始状体重复了)
传教士和野人问题思考逻辑_第2张图片

下面开始第三趟:
传教士和野人问题思考逻辑_第3张图片
后面的结果就不再一一展示了,总之在船舶行驶的过程中逐步晒出所有不合法和重复的状态,最后得到了这样的一个路径
传教士和野人问题思考逻辑_第4张图片

你可能感兴趣的:(国科大,人工智能)