zoukankan      html  css  js  c++  java
  • 人工智能09 计划、动作和学习

    计划、动作和学习

    基于搜索的规划方法依赖于几个很强的假设:

    • agent必须能在图节点中表示所有相关的环境状态,它必须有在一对节点间如何动作的精确模型。

    • 动作必须总有其模型化的结果,即在agent的操作系统中不能有错误或不确定性。

    • agent感知系统必须精准的指定开始节点,并且没有任何其他的agent或动态过程会改变环境。

    如果这些假设满足,且搜索到目标状态的时间允许,就能进行规划,并执行一个完整序列的动作,不需要任何环境的信息反馈。

    感知/计划/动作循环

    由于以下原因,上面的那些假设通常得不到满足:

    • 知觉过程不可能总是提供环境状态的必须信息,当两种不同状态的环境引起相同传感输入时,我们称这种情况为感知混淆(perceptual aliasing)

    • 动作并不总有其模型效果(模型可能不够精准,或者受动器系统在执行动作时偶尔会产生错误)

    • 可能在环境中有其他物理过程或其他agent。这些过程可能会改变环境以致于干扰agent动作。

    • 外部作用的存在会引起其他问题:在构造一个计划期间,环境可能变得与原来的计划不相干。

    • agent可能在完成一个到达目标状态的搜索之前被要求动作。

    • 即使agent有充分的计算时间,但是计算要求的空间资源不允许搜索进行到目标状态。

    有两种方法可以用来解决这些困难,同时又保留基于搜索的计划的主要特征:

    • 用概率的方法来形式化知觉、环境和受动器的不确定性

    • 用各种附加的假设和近似来消除这些困难的影响。

    在这里暂时先不讨论正式的、基于概率的方法,而是提出一个叫感知/计划/动作的结构,在很多应用上避开了上述的一些复杂性。该结构的基本原理是即使动作偶尔产生了没有预料的结果,或者agent有时不能决定它处于哪一种环境状态下,但是通过保证agent从它执行环境中得到的连续的反馈,这些困难可以被充分的解决。

    确保连续反馈的一个方法是计划一个动作序列,只执行这个序列中的第一个动作,感知结果环境状态,重新计算开始节点,然后重复上述过程。这种方式,选择动作的agent被叫做感知/计划/动作agent。为了使这个方法有效,计算一个计划的时间必须比每个动作执行时间要少。

    逼近搜索

    1. 孤岛驱动搜索

    在孤岛驱动(island-driven)搜索中,来自问题领域的启发知识被用于在搜索空间中建立一个“岛节点”序列,假定有好的路径通过这个搜索空间。例如,在计划通过有障碍的地形时,这些岛就是相应的山。假如n0是开始节点,ng是目标节点,(n1,n2,......,nk)是这些岛的一个序列。我们用n0作为开始节点,n1作为目标节点开始一个启发式搜索,当搜索找到了一条到n1的路径时,再用n1作为目标点开始另一个搜索,等等,直到我们发现了一条到达ng的路。

    2. 层次搜索

    3. 建立反应过程

  • 相关阅读:
    jQuery中的promise实例
    你可能不需要单页面应用
    单页面和多页面应用场景总结
    ES6的模块暴露与模块引入
    export default 和 export的区别
    Android中获取网页表单中的数据实现思路及代码
    Pojo和JavaBean的区别(转载)
    MyEclipse默认编码为GBK,修改为UTF8的方法
    JSP中getParameter和getAttribute区别
    内部跳转(请求转发)和外部跳转(重定向)的区别?
  • 原文地址:https://www.cnblogs.com/Cccccz/p/11174696.html
Copyright © 2011-2022 走看看