当前位置: 首页 > news >正文

用python语言实现人工智能猴子摘香蕉的问题_人工智能 猴子香蕉问题

1

1.

问题描述

在一个房间内有一只猴子(可把这只猴子看做一个机器人)

、一个箱子和一束香蕉。

香蕉挂在天花板下方,但猴子的高度不足以碰到它。那么这只猴子怎样才能摘到香蕉呢?

1

表示出猴子、香蕉和箱子在房间内的相对位置。用四元表列(

W,x,Y

,z

)来表示这个问

题的状态。

其中,

W

-猴子的水平位置

x

-当猴子在箱子顶上时取

x=1

;否则取

x=0

Y

-箱子的水平位置

z

-当猴子摘到香蕉时取

z=1

;否则取

z=0

这个问题中的操作(算符)如下:

1

goto(U)

猴子走到水平位置

U

,表示为

Goto (U)

(W

0

Y

z) -------------->(U

0

Y

z)

即把状态

(W

0

Y

z)

变换为状态

(U

0

Y

z)

2

pushbox(V)

猴子把箱子推到水平位置

V

,即有

Pushbox (V)

(W

0

W

z)---------------->(V

0

V

z )

条件:猴子与箱子必须在同一位置上,并且,猴子不是在箱子顶上。

应当注意的是,要应用算符

pushbox

(

V

)

,就要求

产生式规则的左边,猴子与箱子必

须在同一位置上,并且,

猴子不是在箱子顶上。这种强加于操作的适用性条件,叫做产生式

规则的先决条件

3

climbbox

猴子爬上箱顶,即有

Climbbox

(W

0

W

z)------------------>(W

1

W

z)

条件:猴子和箱子应当在同一位置上,而且猴子不在箱顶上。

4

grasp

猴子摘到香蕉,即有

Grasp

(c

1

c

0) ------------------->(c

1

c

1)

条件:猴子和箱子都在位置

c

上,并且猴子已在箱子顶上。

求解过程

令初始状态为

(a,0,b,0)

。这时,

goto(U)

是唯一适用的操作,并导致下一状

(U

0

b,0)

。现在有

3

个适用的操作,即

goto(U)

pushbox(V)

climbbox(

U=b)

c

goto(b),pushbox(c),climbbox,grasp

应当说明的是,在这种情况下,算符(操作)的适用性及作用均由产生式规则表示。例

如,对于规则(

2

)

,只有当算符

pushbox(V)

的先决条件,即猴子与箱子在同一位置上而且

猴子不在箱顶上这些条件得到满足时,算符

pushbox(V)

才是适用的。这一操作算符的

作用

是猴子把箱子推到位置v。

在这一表示中,

目标状态的集合可由任何最后元素为

1

的表列来

描述。

2.

源代码

相关文章:

  • python子类继承_Python:子类可以重载继承的方法吗?
  • python调用opengl_Python之OpenGL笔记(1):窗口工具包GLFW的安装
  • 最长有效括号python_leetcode 032中最长有效括号的Python实现,Leetcode032,python
  • 60多套html5移动端模板_扫盲贴:全网最系统、完整的Web前端和移动APP开发知识...
  • python实现端口转发_python实现超简单端口转发的方法
  • x9此计算机上没有hasp_150马力23方货厢,跑快递快运不妨看看陕汽轩德X9蓝牌轻卡...
  • 贝叶斯思维 统计建模的python_《贝叶斯思维:统计建模的Python学习法》--第3章Estimation(估计)介绍...
  • 手机 调起自带地图 java_安卓11系统再加紧封锁!国内第三方手机应用商店或将全部阵亡?...
  • 串口中断和定时器中断_STM32f103单片机(四)——定时器中断
  • 多个参数变更update_PTOSC在线DDL变更工具使用攻略
  • php和python学不明白_现在自学php和python那个合适?
  • 交通流元胞自动机模拟仿真 matlab源码_SLM工艺仿真综述(三)之《金属3D打印仿真的解决方案与思路 . 下篇》...
  • python 菜单按钮打开新窗口_Python Tkinter Menubutton菜单按钮
  • python selenium翻页_Python+Selenium自动化实现分页处理
  • python中不相等符号_python的关系运算符中,用来表示不等于的符号是
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • [译]Python中的类属性与实例属性的区别
  • 【Leetcode】104. 二叉树的最大深度
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • canvas 五子棋游戏
  • gulp 教程
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java知识点总结(JavaIO-打印流)
  • PAT A1017 优先队列
  • PAT A1050
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • React-Native - 收藏集 - 掘金
  • Redux系列x:源码分析
  • Vim 折腾记
  • vue.js框架原理浅析
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 漂亮刷新控件-iOS
  • 算法-图和图算法
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我从编程教室毕业
  • ​2021半年盘点,不想你错过的重磅新书
  • # 飞书APP集成平台-数字化落地
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (arch)linux 转换文件编码格式
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (第61天)多租户架构(CDB/PDB)
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (算法)求1到1亿间的质数或素数
  • (一)kafka实战——kafka源码编译启动
  • (一)SpringBoot3---尚硅谷总结
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)h264中avc和flv数据的解析
  • (轉貼) UML中文FAQ (OO) (UML)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net - 类的介绍
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • ?