热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

状态空间法表示猴子摘香蕉(狐狸猴子摘香蕉)

AT(x,w:x在w处,个体域:x{monkey},w{a,b,c,box};HOLD(x,t:x手中拿着t,个体域:t{box,banana};EMPTY:x手中是空


1 .定义描述环境状态的谓词。


at(x,w ):x位于w,个体域(x ) monkey ),w ) a、b、c、box;


Hold(x,t ) ) x在手里是t,个体域) t ) box,banana} );


Empty(x ) ) x的手是空的;


on(t,y ):t在y,个体域: y ) b,c );


盒(u ):u为盒,个体域(u )盒;


BANANA(v(v )是香蕉,个体域) Banana );


2 .初始状态


at(monkey,a ) :猴子在a


Empty(Monkey ) :猴子的手是空的


on(box,b ) :箱在b上


on(Banana,c ) :香蕉在c上


框(框) )。


是Banana(Banana )


问题的结束状态


at(monkey,box ) hold (monkey,banana ) on (box,c ) )。


盒(盒) Banana (盒) Banana ) )。


3 .行动。


walk(m,n ) :猴子从m走到n,个体区域(m,n ) a、b、c );


Carry(s,r ) :猴子以r取得s,个体域(r(c ),s ) box,banana} );


climb(u,b ) :猴子在b处爬u;


操作


walk(m,n ) :猴子从m走到n


条件: at(Monkey,m ) ) ) ) ) ) ) )。


行为:删除at(monkey,m )并增加at(monkey,n )


卡莉(s,r ) :猴子用r得到s


条件: at(monkey,r ) empty (monkey ) on (s,r ) box (banana ) banana ) ) ) ) ) ) )


行为:删除empty(monkey ) ^ on (s,r )并增加hold (monkey,s )


climb(u,b ) :猴子在b处爬u


条件: at(Monkey,b ) Hold ) Monkey,u ) box (Banana ) banana ) ) ) ) 652 )


行为:删除at(monkey,b ) hold (monkey ) CLEAR,增加at(monkey ) empty (on ) u,c )


4 .按照行动计划,逐步更换状态,直到达到目标状态


at(monkey,a ) empty (monkey ) on (box,b ) on (banana,c ) box (banana )猴子在a。 没有香蕉。 箱子在b,香蕉在c


at(monkey,b ) empty (monkey ) on ) box,b ) on ) banana,c ) box (banana )猴子在b,没有香蕉,箱子在b,香蕉在c


at(monkey,b ) hold ) monkey,box ) on ) Banana,c ) Banana )猴子在b,猴子拿箱子,香蕉在c


at(monkey,c ) Hold ) monkey,box ) on ) Banana,c ) Banana )猴子拿着箱子在c,香蕉在c


at(monkey,box ) empty (monkey ) on ) box,c ) banana (banana )猴子站箱子,没有香蕉,箱子在c,香蕉在c


得到at(monkey,box ) hold (monkey,banana ) on (box,c ) banana (猴子站的箱子,香蕉,箱子是c ) )目标的解)。


猴子行动的规则序列为: walk(a,b )CARRY(b ) b,box )WALK(b ) b,c )climb (box,c )CARRY(b ) Banana,c )


推荐阅读
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文探讨如何设计一个安全的加密和验证算法,确保生成的密码具有高随机性和低重复率,并提供相应的验证机制。 ... [详细]
  • 本文探讨了如何在发布 XenApp 应用时,通过命令行参数实现启动时的参数传递。特别介绍了静态和动态参数传递的方法,并详细解释了 ICA 文件中两种参数传递方式的区别及安全检查机制。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细探讨了在Android 8.0设备上使用ChinaCock的TCCBarcodeScanner进行扫码时出现的应用闪退问题,并提供了解决方案。通过调整配置文件,可以有效避免这一问题。 ... [详细]
author-avatar
爱飞扬无限_316
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有