AI基础 L27 Introduction to Automated Planning - III

Complexity Analysis
• Complexity analyses are done on decision problems or language-recognition
problems
— Problems that have yes-or-no answers
• A language is a set L of strings over some alphabet A
— Recognition procedure for L
◦ A procedure R(x) that returns “yes” iff the string x is in L
◦ If x is not in L, then R(x) may return “no” or may fail to terminate
• Translate classical planning into a language-recognition problem
• Examine the language-recognition problem’s complexity

复杂性分析的类型

  1. 决策问题

    • 这类问题可以回答“是”或“否”,例如“是否存在一条从初始状态到目标状态的路径?”
  2. 语言识别问题

    • 语言是一个字符串集合,这些字符串由某个字母表生成。
    • 识别程序是用来识别特定语言的算法或过程。
    • 识别程序 R(x) 如果字符串 x 在语言中,则返回“是”;否则,它可能返回“否”或可能无法终止。

经典规划到语言识别问题的转换

  • 经典规划

    • 它是一个决策问题,询问是否存在一个从初始状态到目标状态的路径。
  • 转换为语言识别问题

    • 我们可以将规划问题转换为一个语言识别问题,其中规划问题的解集对应于语言。
    • 例如,如果规划问题的解集是有限的,那么对应的规划语言是有限的。

语言识别问题的复杂性分析

  • 复杂性分析
    • 它关注于识别程序的效率,即在处理输入时所需的计算资源。
    • 复杂性分析可以帮助我们了解识别特定语言所需的计算量。

Planning as a Language-Recognition Problem
• Consider the following two languages
Plan-Existence = {P : P is the statement of a planning problem that has a solution}
Plan-Length = {(P, n) : P is the statement of a planning problem that has a solution
of length ≤ n}
• Look at complexity of recognizing Plan-Existence and Plan-Length under different conditions

Plan-Existence(规划存在性语言)

  • 定义:Plan-Existence 是由那些存在解决方案的规划问题陈述组成的集合。
  • 复杂性分析
    • 难易程度:Plan-Existence 是一个非确定性多项式时间(NP)语言。这是因为规划问题可能需要大量的计算资源来找到解决方案,但是如果有解决方案,我们可以用多项式时间验证它。
    • 验证:验证一个规划问题是否有解决方案是一个多项式时间问题。这可以通过检查所有可能的行动序列,看看是否存在一个序列将初始状态转换为目标状态来实现。

Plan-Length(规划长度语言)

  • 定义:Plan-Length 是由那些存在长度不超过 n 的解决方案的规划问题陈述组成的集合,其中 n 是一个给定的整数。
  • 复杂性分析
    • 难易程度:Plan-Length 是一个更复杂的语言,因为它要求找到最短的行动序列。这通常需要启发式搜索或更高级的搜索算法,如 A* 或遗传算法。
    • 验证:验证一个规划问题是否有长度不超过 n 的解决方案是一个更复杂的问题,因为它需要找到所有可能的解决方案,并确定哪个是最短的。

复杂性条件下的不同情况

  • 规划问题的复杂性

    • 规划问题的复杂性可以通过其状态空间的大小、行动空间的复杂性、目标结构的复杂性等因素来衡量。
    • 例如,一个规划问题可能具有非常复杂的初始状态和目标状态,这可能导致搜索空间非常大,从而增加规划问题的难度。
  • 计算资源

    • 规划问题的解决方案可能需要大量的计算资源,尤其是在状态空间非常大或目标结构非常复杂的情况下。
    • 规划问题的复杂性还受到可用计算资源的影响,例如,在有限的时间内找到解决方案的能力。

Complexity Classes
• Complexity classes:
NLOGSPACE (nondeterministic procedure, logarithmic space)
⊆ P (deterministic procedure, polynomial time)
⊆ NP (nondeterministic procedure, polynomial time)
⊆ PSPACE (deterministic procedure, polynomial space)
⊆ EXPTIME (deterministic procedure, exponential time)
⊆ NEXPTIME (nondeterministic procedure, exponential time)
⊆ EXPSPACE (deterministic procedure, exponential space)
• Let C be a complexity class and L be a language
— L is C-hard if for every language L′ ∈ C, L′ can be reduced to L in a polynomial
amount of time
NP-hard, PSPACE-hard, etc.
— L is C-complete if L is C-hard and L ∈ C
NP-complete, PSPACE-complete, etc.

复杂性类

  • NLOGSPACE:非确定性多项式空间复杂性类。它包含那些可以在对数空间内解决的问题,即使是在非确定性情况下。
  • P:确定性多项式时间复杂性类。它包含那些可以在多项式时间内解决的问题。
  • NP:非确定性多项式时间复杂性类。它包含那些可以在非确定性情况下在多项式时间内解决的问题。
  • PSPACE:确定性多项式空间复杂性类。它包含那些可以在多项式空间内解决的问题。
  • EXPTIME:确定性指数时间复杂性类。它包含那些可以在指数时间内解决的问题。
  • NEXPTIME:非确定性指数时间复杂性类。它包含那些可以在非确定性情况下在指数时间内解决的问题。
  • EXPSPACE:确定性指数空间复杂性类。它包含那些可以在指数空间内解决的问题。

复杂性类的包含关系

  • 这些复杂性类之间存在包含关系,其中每个复杂性类都是其前一个复杂性类的子集。
    • 例如,NLOGSPACE ⊆ P ⊆ NP ⊆ PSPACE ⊆ EXPTIME ⊆ NEXPTIME ⊆ EXPSPACE。

C-hard 和 C-complete

  • C-hard:如果对于每个属于复杂性类 C 的语言 L’,L’ 都可以在多项式时间内被简化为语言 L,那么 L 是 C-hard 的。
  • C-complete:如果 L 是 C-hard 的并且 L 属于 C,那么 L 是 C-complete 的。

例子

  • NP-hard:这意味着对于任何 NP 语言,都可以在多项式时间内将其简化为该语言。
  • NP-complete:这意味着该语言是 NP-hard 的,并且它本身也是 NP 类的一部分。


Possible Conditions
1 Complexity of Classical Planning
• Do we give the operators as input to the planning algorithm, or fix them in advance?
• Do we allow infinite initial states? ← Not-classical planning
• Do we allow function symbols? ← Not-classical planning
• Do we allow negative effects?
• Do we allow negative preconditions?
• Do we allow more than one precondition?
• Do we allow operators to have conditional effects?*
i.e., effects that only occur when additional preconditions are true
→ These take us outside classical planning.

规划算法的输入

  • 操作符作为输入
    • 操作符(operators)是规划问题中定义的动作。如果操作符作为输入提供给规划算法,那么算法的复杂性可能会增加,因为规划器需要处理和评估更多的操作符。

初始状态的限制

  • 无限初始状态
    • 如果不允许无限初始状态,那么规划问题的复杂性可能会降低,因为规划器不需要处理无限多的初始状态。

谓词和符号

  • 允许函数符号
    • 允许函数符号可能会增加规划问题的复杂性,因为函数符号可以引入更复杂的对象关系和状态描述。

动作效果和前提条件

  • 允许负效果
    • 负效果意味着动作执行后,某些条件将不再成立。这可能会增加规划问题的复杂性,因为规划器需要考虑更多的状态变化。
    • 允许负前提条件
      • 负前提条件意味着动作执行前,某些条件必须不成立。这可能会增加规划问题的复杂性,因为规划器需要考虑更多的状态约束。
    • 允许多个前提条件
      • 多个前提条件意味着一个动作需要满足多个条件才能执行。这可能会增加规划问题的复杂性,因为规划器需要处理更复杂的动作执行条件。

条件效果

  • 允许操作符具有条件效果
    • 条件效果意味着动作的效果仅在满足额外前提条件时才会发生。这可能会增加规划问题的复杂性,因为规划器需要考虑更多的状态约束和动作效果。

Decidability of Planning


 Forward Search
• Progression planning is similar to the approaches seen in search
• Start with initial state, consider sequences of actions until we find a sequence that
reaches the goal state
• Specifying this type of planning problem requires
        — The initial state
        — The possible actions
        — The goal test
        — The step cost (typically 1 per action)• Without functions symbols →finite state space
        — Any graph search algorithm is complete
• But the state space is huge!
        — Until late 90s it was thought that this approach would fail
        — Very accurate heuristics needed to make this type of search work

状态空间

  • 无函数符号
    • 如果规划问题中不包含函数符号,那么状态空间是有限的。
    • 这是因为函数符号会增加状态空间的大小,导致状态空间无限增长。

Backward Search
• Regression planning moves from goals to initial states
• With STRIPS, it is easy to generate the possible predecessors of a set of goal states
— Consider only relevant actions,
i.e. actions that achieve one of the conjuncts of a goal
• Any existing solution can be found by backwards search allowing only relevant
actions
• Air cargo transportation with 10 airports, 5 planes (per airport) and 20 pieces of
cargo (per airport)
— Thousands of actions leading out of the initial state
— Only 20 actions working back from the goal.
• We ask what the states could be in which applying an action leads to the goal
• Computing these states is called regressing the goal through the action
At(C1, J F K) ∧ At(C2, S F O)
• The relevant action Unload(C1, p, J F K) achieves the first conjunct
• For this action to work, the preconditions have to be satisfied
• So any predecessor state must include In(C1, p) ∧ At(p, J F K)
• Intuitively, At(C1, J F K) should not be true in the predecessor state (else the action
would be irrelevant)
• The predecessor is thus: In(C1, p) ∧ At(p, J F K) ∧ At(C2, S F O)

 - Consistency
• An action should be consistent, i.e. they should not undo any desired literal
• Given a goal description G, and a relevant and consistent action A, we compute the
predecessor as follows:
1 Delete any positive effects of A from G
2 All precondition literals of A are added (unless they appear in G).
• Terminates when a predecessor is generated that is satisfied by the initial state
• In the first order case, substitution is required, e.g. the initial state
In(C1, P12) ∧ At(P12, J F K) ∧ At(C2, S F O)
is obtained via the substitution {p/P 12}
This substitution must be applied to actions leading from the state to the goal.

反向搜索的过程

  1. 从目标状态开始

    • 反向搜索从规划问题的目标状态开始,并尝试找到导致这些目标状态的初始状态。
  2. 生成可能的前驱状态

    • 使用STRIPS(Stanford Research Institute Problem Solver)风格,可以轻松生成一组目标状态的可能前驱状态。
    • 只考虑与目标相关的动作,即那些能够实现目标的一个合取项的动作。
  3. 前驱状态的计算

    • 反向搜索询问哪些状态在应用一个动作后可以导致目标状态。
    • 计算这些状态的过程称为通过动作反向推导目标。
    • 例如,给定目标状态 At(C1, JFK) ∧ At(C2, SFO),相关动作 Unload(C1, p, JFK) 实现了第一个合取项。
    • 要使这个动作起作用,前提条件必须得到满足。
    • 因此,任何前驱状态都必须包括 In(C1, p) ∧ At(p, JFK)
    • 直观上,目标状态中的 At(C1, JFK) 应该在前驱状态中为假(否则动作就无关紧要了)。
    • 因此,前驱状态是 In(C1, p) ∧ At(p, JFK) ∧ At(C2, SFO)

一致性

  • 动作的一致性
    • 动作应该是一致的,即它们不应该撤销任何我们想要的文字(literal)。
    • 给定一个目标描述 G 和一个相关且一致的动作 A,我们计算前驱状态如下:
      1. 从 G 中删除 A 的任何正效果。
      2. 将 A 的所有前提条件文字添加到 G 中(除非它们已经在 G 中)。
    • 这些步骤会持续进行,直到生成一个由初始状态满足的前驱状态。

初始状态的获取

  • 替换
    • 在一阶情况下,可能需要进行替换。例如,通过替换 {p/P12} 从初始状态 In(C1, P12) ∧ At(P12, JFK) ∧ At(C2, SFO) 得到。
    • 同样,对于从该状态到目标的动作,也需要应用这个替换。

Heuristics
• Neither search is efficient without a good heuristic
• In STRIPS planning
— actions cost 1
— distance is plan-length (number of actions)
• Possible heuristic:
— Look at the effects of actions and number of goals
— Guess how many actions needed to achieve goal
— Difficult, but reasonable estimates are possible
• With an admissible heuristic, use A∗ to find the optimal solution

Creating Heuristics

Hamming Distance

汉明距离(Hamming Distance)是信息论中用来衡量两个等长字符串(在自动规划中通常是规划问题的状态描述)之间差异的一种方法。它是通过比较两个字符串对应位置的字符是否相同,以此来计算它们之间的差异数量。

以下是关于汉明距离的详细解释:

定义

  • 汉明距离
    • 两个字符串之间的汉明距离是这两个字符串对应位置的字符不同的数量。
    • 例如,对于字符串 “1010” 和 “1001”,它们之间的汉明距离是2,因为第二个字符和第四个字符不同。

计算方法

  • 逐位比较
    • 计算汉明距离的方法是逐位比较两个字符串,统计不同的字符数量。
    • 例如,对于字符串 “1010” 和 “1001”,比较过程如下:
      • 第一位:都是1,相同。
      • 第二位:0和0,相同。
      • 第三位:1和0,不同。
      • 第四位:0和1,不同。
    • 因此,汉明距离是2。

应用

  • 自动规划
    • 在自动规划中,汉明距离可以用来比较两个状态描述之间的差异。
    • 如果两个状态的汉明距离较小,那么它们之间的差异较小,这可能意味着从一个状态到达另一个状态所需的行动序列较短。
    • 因此,汉明距离可以作为启发式方法,帮助规划器在搜索过程中选择更接近目标状态的状态。

Planning Graphs
• All heuristics we’ve seen so far have limitations
— Most fast heuristics are inadmissible (but can be really fast)
• Many planning approaches use a data structure called Planning Graph from which
we can derive very efficient (and accurate) heuristics

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143689.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

内存泄漏

文章目录 内存泄漏发现问题topVisualVMArthas 原因分析代码层面并发请求 诊断问题MAT原理 –支配树获取运行时快照 内存泄漏 内存泄漏(memory leak):在Java中如果不再使用一个对象,但是该对象依然在GC ROOT的引用链上,…

Linux 安装JDK8和卸载

目录 一、下载JDK8的rpm包 二、安装JDK 三、设置环境变量 Linux环境下安装JDK的方式有多种,可以通过rpm包、yum安装或者tar.gz压缩包。本章节会教大家通过前两者方式来安装JDK,压缩包的形式因为下载压缩包后上传到服务器环境下,将压缩包解…

Reactor介绍,如何从简易版本的epoll修改成Reactor模型(demo版本代码+详细介绍)

目录 Reactor demo​​​​​​​ 引入 比喻 修改代码 connection tcp_server ET模式 主逻辑 处理事件 运行结果 代码 完善功能 读取数据 运行结果 ​编辑 代码 处理数据 回指指针 如何处理写事件 引入 循环内 处理对写事件的关心 异常处理 代码 se…

C语言18--头文件

头文件的作用 通常,一个常规的C语言程序会包含多个源码文件(.c),当某些公共资源需要在各个源码文件中使用时,为了避免多次编写相同的代码,一般的做法是将这些大家都需要用到的公共资源放入头文件&#xff…

js中两种异步方式:async+await以及then

第一种方式 第二种方式 完整代码 前端代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>pywebv…

在windows上使用vs code调试Rust程序

视频参考&#xff1a;https://www.youtube.com/watch?vTlfGs7ExC0A 前置条件 需要安装的软件&#xff1a; rustvs codeMinGW 或者其它能在 Windows 平台上运行 gdb、gcc 和 g 的软件。 需要安装的插件&#xff1a; rust-analyzer CodeLLDB 然后&#xff0c;在 vs code 中…

Linux中使用Docker容器构建Tomcat容器完整教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

帝可得项目总结

业务需求 在区域列表查询中&#xff0c;需要显示每个区域的点位数 (1)同步存储:在区域表中有点位数的字段&#xff08;冗余字段6.&#xff09;&#xff0c;当点位发生变化时&#xff0c;同步区域表中的点位数。 优点:由于是单表查询操作&#xff0c;查询列表效率最高。 缺点…

文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计

一、介绍 使用Python作为开发语言&#xff0c;基于文本数据集&#xff08;一个积极的xls文本格式和一个消极的xls文本格式文件&#xff09;&#xff0c;使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于D…

推荐给大家5款小众无广告的软件

​ 你是否喜欢一些小众且无广告的软件&#xff1f;如果是的话&#xff0c;我这边有一些给你推荐的。 1.进程管理——ProcessExplorer ​ ProcessExplorer是一款高级系统进程管理工具&#xff0c;可实时查看Windows系统中所有正在运行的进程及其详细信息。它提供了比任务管理器…

autodl连接xftp

&#xff08;1&#xff09;首先打开xftp&#xff0c;新建会话 &#xff08;2&#xff09;给会话取个名字&#xff0c;然后填写主机和端口号 &#xff08;3&#xff09; 主机和端口号从autodl实例中找&#xff0c;登入指令那里 &#xff08;4&#xff09;点击复制&#xff0c;然…

②原装进口芯片一主多从RS485通讯转换器从站转地址波特率转校验位转寄存器转停止位modbus协议转换中继器

第二章主要是讲参数设置和典型接线 &#xff08;产品介绍&#xff0c;应用和特点看第一章&#xff09; 一主多从RS485通讯转换器从站转地址波特率modbus协议转换中继器 通信接口 (以 MS-M1401 为例) 转换器共有 5 组通信接口&#xff0c;S1、S2、S3、S4 通道接 RS485 从…

智能AC管理系统信息泄露漏洞

文章目录 免责声明漏洞描述搜索语法漏洞复现yaml修复建议 免责声明 本文章仅供学习与交流&#xff0c;请勿用于非法用途&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 漏洞描述 智能AC管理系统是一个控制管理系统因存在未授权访问导致信息泄露 搜…

HT366 具有防破音功能的免电感滤波2x20W D类立体声音频功放

特点 输出功率(BTL模式) 2x22W (VDD14V,RL4Ω,THDN10%) 输出功率(PBTL模式) 34W(VDD16V,RL4Ω,THDN10%) 单电源系统&#xff0c;4.5V-16V宽电压输入范围 ACF防破音功能可选 超过90%效率&#xff0c;无需散热器 可选输出模式:BD和ISPW 扩频功能&#xff0c;免电感滤波 模拟差分…

网站在线客服插件配置

使用工具&#xff1a;百度爱番番 下载地址&#xff1a; 百度爱番番—企业的一站式智能营销管家 一、下载百度爱番番APP&#xff0c;注册账号 二、 登录app 三、点击设置——站点设置——新建站点 四、设置站点名称——站点地址——PC站点——确定 五、点击配置好的站点的获取代…

安卓13去掉下拉菜单的Dump SysUI 堆的选项 android13删除Dump SysUI 堆

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析3.1 位置13.2 位置24.代码修改5.编译6.彩蛋1.前言 客户需要去掉下拉菜单里面的Dump SysUI 堆图标,不让使用这个功能。 2.问题分析 android的下拉菜单在systemui里面,这里我们只需要定位到对应的添加代…

Hutool工具类导出Excel设置自适应宽度

Hutool工具类导出Excel设置自适应宽度。最近在用Hutool的工具类BigExcelWriter实现Excel表的导出&#xff0c;测试过程&#xff0c;发现默认是不自动适应宽度的&#xff0c;需要设置属性才能自适应 在Hutool的官方文档https://plus.hutool.cn/apidocs/cn/hutool/poi/excel/Big…

国内AI工具精选:四款软件,让效率倍增

国内的AI工具也有不少好用的&#xff0c;涵盖了视频生成、文案写作、PPT生成、AI数字人等用途&#xff0c;功能强大&#xff0c;能帮助提高效率&#xff0c;更好地完成工作。 1.AI视频生成——可灵 一款国产的智能视频生成工具&#xff0c;采用3D联合注意力机制&#xff0c;高…

攻防世界--->BABYRE

做题笔记。(可以作为例题。) 下载 查壳 64ida打开。 分析&#xff1a; 动态试一试。 跟进judge 很奇怪是一段.data(数据段) 报错&#xff0c;但是程序并没有结束&#xff1a; 我们对其进行处理&#xff1a;&#xff08;动态函数处理&#xff09; 因为call不能用在.data段&…

人工智能时代,我们依旧有无限的选择权!

人工智能时代&#xff0c;即有人两眼放光&#xff0c;又有人忧心忡忡。前者看到大量的机遇、蓝海&#xff0c;后者看到了失业和糟糕的未来&#xff0c;亦或是有人有喜有忧。但是只要你知晓一个真谛&#xff1a;凡事皆有利有弊&#xff0c;那便不用内耗了。或是选择当前的生活节…