AI基础 L27 Introduction to Automated Planning - III

news2024/9/21 16:48:56

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.coloradmin.cn/o/2145277.html

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

相关文章

情感识别系统源码分享

情感识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

人工智能开发实战常用分类算法归纳与解析

内容导读 决策树贝叶斯分类器最近邻分类器支持向量机神经网络 一、决策树 决策树(Decision Tree)是用于决策的一棵树,从根节点出发,通过决策节点对样本的不同特征属性进行划分,按照结果进入不同的分支,最终达到某一叶子节点&am…

基于yolov8的肉鸡健康状态检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的肉鸡健康状态检测系统是一个先进的目标检测应用,旨在通过图像分析实现对肉鸡健康状态的快速、准确评估。该系统利用了YOLOv8模型的尖端技术,该模型由Ultralytics公司开发,具有卓越的检测精度和速度。 YOLOv8模型采…

新书出版,大陆首本NestJS图书《NestJS全栈开发解析:快速上手与实践》

新书全栈实战项目:数字门店管理平台开源啦🎉🎉🎉 GitHub地址(持续更新NestJS企业级实践):欢迎star⭐️⭐️⭐️ 前端ReactTypeScriptVite 后端NestMySQLRedisDocker 前言 对,你没看…

教程 | ArcGIS Pro如何自动保存数据编辑内容

目录 1、工程自动保存 2、数据编辑自动保存 世界上最痛苦的事情就是: 软件崩溃,我没保存!!! 电脑死机,我没保存!!! 突然断电,我没保存!&…

星云股份战略运营副总裁袁智勇︱如何培养“能打胜仗”的项目经理

全国项目经理专业人士年度盛会 福建星云电子股份有限公司总裁办战略运营副总裁袁智勇先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“如何培养“能打胜仗”的项目经理”。大会将于10月26-27日在北京举办&…

MUNIK谈ASPICE系列专题分享(十)ASPICE配置管理如何做

前言: ASPICE(Automotive Software Process Improvement and Capability dEtermination)是一种用于评估汽车行业软件开发过程成熟度的模型。配置管理是ASPICE中的一个关键过程领域(KPA),它涉及到对软件项目…

C++list的使用:尾插、头插、insert、erase、reverse、sort等的介绍

文章目录 前言一、尾插、头插、insert、erase二、reverse、sort总结 前言 Clist的使用&#xff1a;尾插、头插、insert、erase、reverse、sort等的介绍 一、尾插、头插、insert、erase #include <iostream> #include <list>using namespace std;void test_list1(…

下拉框QComboBox

文本 // 获取和设置当前条目的索引 int currentIndex() const void setCurrentIndex(int index)// 获取和设置当前条目的文本 QString currentText() const void setCurrentText(const QString &text)// 获取和设置指定索引条目的文本 QString itemText(int index) co…

老友记台词 第二季 第一集 Friends 201(全英版)

文章目录 201 The One With Ross New Girlfriend[Scene: Central Perk, Phoebe is recapping last season, and as she talks we see a montague of scenes from Ross and Rachel.][Scene: The Airport, continued from last season, Rachel is waiting for Ross to come of th…

【PLW004】基于Python网络爬虫与推荐算法的新闻推荐平台v1.0(Python+Django+NLP+Vue+MySQL前后端分离)

基于Python网络爬虫与推荐算法的新闻推荐平台。 网络爬虫&#xff1a;通过Python实现新浪新闻的爬取&#xff0c;可爬取新闻页面上的标题、文本、图片、视频链接&#xff08;保留排版&#xff09; 推荐算法&#xff1a;权重衰减标签推荐区域推荐热点推荐融合推荐算法。 文章目录…

计算机毕业设计 二手图书交易系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

k8s的一些命令

kubectl get nodes &#xff1a;查看节点的状态 查看Pod的状态&#xff1a; kubectl get pod --all -namespacesPending,ContainerCreating,ImagePullBackOff都表明Pod没有就绪&#xff0c;Running才是就绪状态 查看Pod的具体情况&#xff1a; kubectl describe pod podnamek…

# 利刃出鞘_Tomcat 核心原理解析(十一)-- Tomcat 附加功能 WebSocket -- 3

利刃出鞘_Tomcat 核心原理解析&#xff08;十一&#xff09;-- Tomcat 附加功能 WebSocket – 3 一、Tomcat专题 - WebSocket - 案例 - OnMessage分析 1、WebSocket DEMO 案例 实现流程分析&#xff1a;OnMessage 分析 2、在项目 dzs168_chat_room 中&#xff0c;在 websocke…

软件开发详解:同城O2O系统源码的架构设计与外卖跑腿APP的开发要点

随着互联网技术的发展&#xff0c;O2O&#xff08;OnlinetoOffline&#xff09;模式迅速成为了各类服务行业的核心运营模式。同城O2O系统不仅整合了线上和线下的资源&#xff0c;还可以通过智能调度和大数据分析提升用户体验和运营效率。接下来&#xff0c;我将详细探讨同城O2O…

iOS平台RTSP|RTMP直播播放器技术接入说明

技术背景 大牛直播SDK自2015年发布RTSP、RTMP直播播放模块&#xff0c;迭代从未停止&#xff0c;SmartPlayer功能强大、性能强劲、高稳定、超低延迟、超低资源占用。无需赘述&#xff0c;全自研内核&#xff0c;行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以iOS平台为例…

渗透测试综合靶场 DC-1 通关详解

Vulnhub是一个提供各种漏洞环境的靶场平台&#xff0c;非常适合安全爱好者和渗透测试初学者进行学习和实践。在这个平台上&#xff0c;你可以下载多种虚拟机&#xff0c;这些虚拟机预装了各种漏洞&#xff0c;让你可以在本地环境中进行渗透测试、提权、漏洞利用和代码审计等操作…

9.18日常记录

一.信号和槽机制 信号和槽:是对象之间通信的一种机制 信号classA不关心有多少槽函数与之绑定&#xff0c;它只管触发信号&#xff0c;具体要触发哪些槽函数&#xff0c;是由Qt的信号和槽机制来实现的。这样的话就充分的体现了面向对象的解耦原则了&#xff0c;因为对于classA来…

上线跨境电商商城的步骤

上线一个跨境电商商城涉及多个步骤&#xff0c;从前期准备到上线后的维护。以下是一些关键步骤&#xff1a; 1. 市场调研与规划 目标市场分析&#xff1a;研究目标市场的需求、竞争对手和消费者行为。法律法规&#xff1a;了解并遵守目标市场的法律法规&#xff0c;包括税收、…

生产环境必备:Docker 搭建 Nexus 全流程与批量上传 Jar 包实战

目录 1.创建docker-compose文件 2.域名代理无域名需求可跳过 2.1创建nginx的compose &#xff08;映射端口更具实例进行改进&#xff09; 2.2创建nginx.conf 3.访问nexus 4.创建储存库以及批量上传jar包 4.1批量上传jar包 4.2创建两个sh脚本 4.3执行脚本 4.4成功验证 …