BDI药剂的定量建模与分析

   日期:2024-08-26     来源:本站    作者:admin    浏览:83    

  信念-欲望-意图(BDI)代理是一种流行的代理体系结构。我们扩展了概念代理表示法(Can)——一种具有故障恢复和声明性目标等高级功能的BDI编程语言——以包括概率行为结果(例如反映失败的执行器)和概率策略(例如用于概率计划和意图选择)。扩展是在米尔纳的图形编码。通过应用我们的BigraphER工具和PRISM模型检查器,可以调查和比较不同概率结果和计划/事件/意图选择策略下的成功(意图完成)概率。我们提出了一个智能制造用例。一个显著的结果是,与意向选择相比,计划选择的效果有限。我们还看到,由于智能体做出了更明智的选择,即使失败概率很大,行动失败的影响也可能是微不足道的。

  开发理性代理的一个被充分研究和流行的架构是信念-欲望-意图(BDI)范式。BDI智能体建立在一个良好的理论基础上,对一个智能体进行建模,其中(B)信念代表智能体所知道的,(D)渴望智能体想要实现的,(I)意图代表智能体目前正在采取行动的愿望。BDI代理启发了许多面向代理的编程语言,包括AgentSpeak[1]、Can[2]、CanPlan[3]、3APL[4]和2APL[5],以及一系列成熟的软件工具包和平台,包括JACK[6]、Jason[7]和Jadex[8]。BDI代理因其在商业[9]和医疗保健[10]等领域的效率和可扩展性而得到认可。

  在BDI语言中,期望和意图通常使用计划库表示。每个计划描述了一个行动过程,在给定一些信念的情况下,代理可以执行该过程来处理所采用的事件(通常表示来自外部环境的任务),而意图集是当前正在执行的计划。典型的BDI语言:(1)假设行动结果(即对外部环境的影响)是确定的,(2)对内对解决已采用事件的适用计划的选择保持不可知论,(3)对内对从外部环境中采用未决事件的选择保持不可知论,(4)对内对意图进展的顺序保持不可知论。这些假设有助于通过[11,12]等工作中的非确定性底层过渡系统(如图3所示)对代理行为进行正式验证,其中计划、事件和意图选择表示分支选择,而行动具有单一结果。因此,大多数验证方法仅限于分析定性属性,查询意图是否完成。

  虽然定性保证很有用,但不幸的是,这通常不能充分代表现实环境中智能体的行为,如网络物理机器人系统[13]。例如,由于不精确的驱动,一个动作的结果可能是概率性的,例如,机器人试图打开一扇门,但可能失败。计划、事件和意图不是平等创建的,并且可能具有不同的(特定于领域的)特征,例如偏好和紧迫性,这可能需要不同的某些选择策略(例如有序的、固定的时间表,或从概率分布中抽样)。因此,对形式化技术的需求日益增长,这些技术可以为定量特性的自动分析提供支持,例如“最终完成意图的概率是多少?”以及“在所有可能的选择策略中,最终完成一个意图的最坏概率是多少?”

  为了说明这个问题,我们以智能制造场景中的机器人包装任务为例(详细的定量分析在第4节中给出)。总体目标是自动包装产品以供运输。机器人用合适的包装袋将产品绝缘,以防止温度升高和随之而来的变质,然后将包装好的产品转移到存储位置。有两种类型的包装袋:高级和标准。标准包装是最便宜的选择,但是如果产品温度已经太高,并且/或者包装偶尔会破裂,从而导致产品损坏(即有一定可能性的负面行为结果),则标准包装可能无效。在包装产品之前,机器人还必须决定先处理哪个产品(因为可能有多个产品在等待),这意味着在产品变质之前处理产品需要一种紧迫感。虽然优先处理更紧急的产品很重要,但在不太紧急的产品变得紧急和被破坏之前,不时地推进它们也是明智的。因此,当存在一系列选择、内在不确定性以及偏好和紧迫性特征时,我们需要建模和量化代理行为。例如,我们可能希望知道机器人在不同的进度、负面结果和决策下完成包装的概率。

  在BDI社区中,概率行为结果通常是隐含的——要求代理感知失败并修改信念(即启用新计划)——并且在建模时经常被忽略。尽管大多数代理语言语义指定了非确定性的计划选择,例如在[2]中,但在实践中,计划通常是有序的——无论是静态的[7]还是在运行时的[14]——以强制执行确定性分支。虽然利用最高优先级的计划是可取的,但为了避免陷入局部最大值,偶尔探索其他计划可能是值得的。类似地,事件/意图选择也不是以非确定性的方式实现的,而是以固定的时间表实现的,包括轮询(轮流执行每个意图的一个步骤)或先入先出。有趣的是,自定义选择实现隐式地改变了代理语言的语义,并且常常是实现和语义出现分歧的地方。

  我们认为,最高排序(即局部最大值)和固定时间表(例如轮循)并不总是计划、事件和意图选择的最佳方法,并建议代理应该支持概率选择策略,同时需要评估行动的不期望结果。我们提出了一种正式的方法(与上面提到的非正式的实现定制相反)来指定、建模和定量分析BDI代理的概率行为结果以及从概率分布中得出的计划、事件和意图选择。定量验证,例如询问某个意图完成的概率,通过探索和比较计划、事件和意图选择策略来帮助代理的设计,并通过提供急需的定量保证来降低负面行为结果的风险。

  图1

  figure 1

  不同选择策略下概率CAN程序的意图成功分析

  我们选择使用Can[2],因为它捕捉了BDI概念的本质,而不描述实现细节,比如数据结构。作为AgentSpeak[1]的超集,Can包括声明性目标、并发性和故障恢复。这里,我们将操作语义扩展到概率设置。尽管我们关注的是Can语言,但它的特性与其他BDI语言相似,我们的方法也同样适用于它们。

  我们的方法如图1所示。在左边,我们有输入:(上图)CAN语义和选择策略,(下图)代理程序。在中间,我们有一个抽象机器:(上图)CAN语义由概率图反应规则编码,(下图)代理程序由图实体编码。右边是执行引擎BigraphER[15]和PRISM[16]。对于每个给定的选择策略和初始状态的组合,我们使用BigraphER生成所有可能的代理行为的过渡系统(dtmc -离散时间马尔可夫链)。我们将意图的成功(或失败)完成表示为概率计算树逻辑(PCTL)[17]公式(例如,最终意图成功完成)。过渡系统和公式是PRISM模型检查器的输入,它返回一个似然值。更简单地说,用户只是根据需要使用不同的计划/意图/事件选择策略“运行”他们的PCTL公式和代理模型。

  我们使用概率图[18]作为中间语言,建立在我们之前关于(非概率)图作为(非概率)Can[19]的可执行语义的工作的基础上。我们选择图形,而不是其他形式,有几个原因。首先,它的实体和类型系统允许将信念、愿望、意图和计划作为并行区域进行自然编码。其次,它的匹配和重写性质紧密地反映了Can操作语义,允许我们通过更改一些图形规则来灵活地尝试不同的底层语义。第三,BigraphER提供的优先级和条件规则特性支持直接表达选择策略(例如有序和固定的时间表)。第四,有直观的图解表示。总的结果是一个用户友好的、直接的和流畅的翻译,它支持概率建模和谓词标记的转换系统,可以导出到像PRISM这样的模型检查器。

  本研究的部分内容和初步结果见[20]。我们做了以下额外的研究贡献:

  Can的全结构操作语义的概率扩展;

  基于概率图的Can扩展可执行语义

  介绍了不同的选择策略是如何在图形中编码的;

  一个扩展的评估和分析用例,比较在概率行为结果下的各种计划、事件和意图选择,例如有序和轮循;

  从创建Can的概率扩展中获得的见解的反思,以及概率代理的实用价值,例如代理设计师。

  本文的组织结构如下。在第2节中,我们简要概述了BDI代理和图形。在第3节中,我们提出了Can语义的概率扩展。在第4节中,我们以智能制造为例评估我们的方法。在第5节中,我们反思了我们方法的普遍性和局限性。我们在第6节讨论相关的工作,在第7节讨论未来的工作,并在第8节结束。

  BDI代理具有对信念、愿望和意图的明确表示。信念与行为人对环境的看法相对应,而欲望则是行为人可以回应的一系列外部事件。为了响应这些事件,代理从预定义的计划库中选择一个计划(给定其信念),并通过将所选计划转换为新的意图来提交所选计划。

  2.1.1 BDI语法

  Can语言形式化了一个由信念库和计划库组成的经典BDI代理。信念库是编码当前信念的一组公式,并具有用于蕴涵(即,信念原子相加(如)的信念算子。删除)(回复)。一般来说,只要信念基础支持蕴涵,任何逻辑都是允许的。在这项工作中使用了具有自然数比较的命题逻辑。计划库是具有触发事件、上下文条件和计划主体的形式的计划的集合。触发事件e指定触发计划的原因,而上下文条件决定计划体P何时能够处理该事件。事件可以是外部的(即来自代理运行的环境)或内部的(即代理本身试图完成的子目标)。选定计划的(部分执行的)计划体P是寻址e的意图。计划体中使用的语言由以下语法定义:

  其中nil是一个空程序,信念的添加和删除是一个原始动作,是对信念库的测试,e是子事件(即内部事件)。行动采取的形式是,其中是前提条件,和是信念原子的删除和添加集合(对应),即一个信念基础被修正为行动执行时的值。我们还将计划库中的操作集表示为。要执行子事件,需要选择一个计划(对应于该事件),并将计划主体添加到事件的位置。通过这种方式,我们允许计划嵌套(类似于其他语言中的子例程调用)。此外,还有用于序列(在失败的情况下执行)和交错并发的复合程序。一组相关计划(响应同一事件的计划)用。最后,声明性目标程序表示,声明性目标应该通过程序P来实现,如果程序P失败,则变为true,如果两者都不为true,则重试(详见[3])。

  2.1.2 BDI语义

  Can语义由两种类型的转换指定。第一种类型指定了代理级别的演化,详细说明了如何执行一个完整的代理,其中包含一组待处理的外部事件(愿望)、信念基础和一组部分执行的计划主体(意图)。第二个,表示,指定了配置上的意图级进化,其中是信念基础,P是当前正在执行的计划主体。

  图2

  figure 2

  Can semantics from [3]

  图2a给出了代理级语义。规则通过采用外部事件作为意图来处理源自环境的外部事件。规则从意图库中选择一个意图,并在意图级转换中发展一个步骤,同时丢弃任何无法取得进展的意图(因为它们已经成功或失败)。

  图2b给出了进化任何单一意图的意图级规则。例如,当满足前提条件时,规则行为处理操作的执行,从而导致信念状态更新。规则事件用一组相关计划替换事件,而规则选择从一组相关计划中选择一个适用的计划,同时保留未选择的计划作为备份。使用这些备份计划,可以设置故障恢复规则,并允许在当前计划失败(例如,由于环境变化)时选择新计划。规则;允许按顺序执行计划体,而规则,并指定如何执行(交错)并发程序。当成功条件或失败条件为真时,规则和处理声明性目标。规则通过将声明性目标中的程序设置为初始化持久性,即,如果P失败,再尝试P。这确保了P无限期地运行,除非成功条件或失败条件满足。规则负责在已初始化的程序上执行单个步骤。最后,如果当前(部分执行的)程序已经完成或被阻塞(当两者都不为真时),派生规则将重新启动原始程序。

  2.1.3 代理的例子

  为了说明这一点,我们举一个经典的例子[19]:安排一次会议旅行。代理程序如清单1所示,下面是注释。

  figure e

  图3

  figure 3

  非确定性(标准Can)和新的概率转换,突出计划、事件和意图选择以及行动执行。实线是代理级转换,虚线是意图级转换

  代理希望安排一次会议旅行,由外部事件e_conference_travelling(第6行)表示。我们假设只有两种方式可以前往会议。第一种是开车,由第2行计划给出,表示如果agent认为自己拥有一辆车(即own_car),并且场地在驾驶距离(即driving_distance)内,则可以启动汽车(start_car)并一路开车(driving)到场地。为了指定动作,例如,动作start_car(第8行)表示,如果汽车是功能性的(即car_functional),并且在执行它之后,将添加引擎处于开启状态的信念(即engine_on),同时不从信念库中删除任何内容。

  第二种旅行方式是乘飞机,如第3行至第4行所示。这个计划表示,如果预算允许,并且有航班,代理可以先预订机票,然后在内部发布一个子事件,实际乘飞机旅行,着陆后再去会场。为了解决子事件e_get_on_board,我们在第4行中有一个计划,它表示如果代理认为航班已经预订,它可以去机场乘飞机飞行。

  摘要

  1 介绍

  2 背景

  3.概率

  可以语义

  4 e

  估值

  5 讨论

  6 相关工作

  7 未来的工作

  8 结论

  笔记

  参考文献

  致谢

  作者信息

  附录

  搜索

  导航

  #####

  Can的语义由两种类型的转换指定。第一个是图2a中的代理级转换,它指定了如何执行一个完整的代理。第二个是图2b中的意图级转换,它指定了如何进化给定的单个意图。

  语义是否具有不确定性转换的特征,例如用于计划选择。为了允许概率选择和行动结果,我们必须扩展它来支持概率转换。图3提供了标准非确定性语义和Can的新概率语义的高级比较。

  选择出现在代理层和意图层语义中。有多个外部事件需要响应和一组意图要追求的代理面临三种操作选择,即代理级操作选择。代理可以合并语义规则指定的任何悬而未决的外部事件,它可以选择一个意图并执行一个步骤(根据意图级语义),或者它可以通过删除不可进行的意图来管理意图集。在最初的Can语义中,这些是不确定地选择的,也就是说,没有办法优先完成现有意图而不是处理新事件。

  一旦选择了代理级操作,就需要做出进一步的决策。例如,应该采用哪个挂起的外部事件(可能有多个)?同样,两者必须从一组意图中选择一个意图(即意图选择)。这些选择也是不确定的,这意味着我们不能优先考虑特定的事件/意图。

  在选择执行一个意图()之后,执行这个意图可能意味着(如图3中的虚线所示)选择一个适用的计划,执行并发程序,并执行一个动作。同样,使用规则选择使计划选择具有非确定性,使用或使并发程序进度的顺序具有非确定性,并且动作通过行为只有一个结果。

  以前的工作[19]正式建模和分析了非概率Can(即图3的左侧)。我们扩展了这一点,为Can定义了一个概率语义,并展示了这如何允许定量分析。图3的右侧显示了Can语义的概率扩展。

  为了从非确定性转移到概率转移,我们采用概率转移(即以概率p从转移到)[21]。要扩展非确定性过渡,关键是为每个选择分配概率。在接下来的部分中,我们将详细介绍为什么以及如何从Can扩展代理级和意图级转换,以及如何构建合适的分布来支持定量分析。

  符号

  我们用来表示集合a上的概率分布。我们写为表示概率分布,例如,在其中,x是用概率抽样的,并且使用函数表示法访问元素的概率,例如。对于一个分布,我们需要。只给出了非零元素的概率,因此我们可以写成。我们用Dist(A)来表示A上离散概率分布的集合,即一个以概率分布为元素的集合。

  对于一个特定的程序,我们将所有可能的信念原子、外部事件和意图的集合分别表示为、和。在每个代理步骤中,信念库(代表。事件,意图)给出为。

  的代理级语义可以描述具有多个外部事件需要响应且当前正在追求一组意图的代理的演变。而代理级语义允许代理在已经处理其他事件的情况下响应新事件,但每一步只能执行一个代理级操作。这种代理级操作的不确定性选择隐含在Can语义中。这里我们将其形式化并表示为如下函数,其中我们将代理级规则集表示为:

  它返回给定任何代理级配置的代理级操作的选择,并且表示没有可用的适用规则。

  在实践中,选择代理级操作的常用方法通常以确定性的方式完成,例如在选择执行步骤的任何意图(如果可能的话)之前合并外部事件。但是,我们可能需要从分布中选择代理级操作。例如,agent在早期操作阶段主要将外部事件作为意图纳入,在后期主要推进现有意图可能会更好。为了实现这一点,我们基于概率分布对代理级操作进行采样,即使用以下选择函数:

  任何分布的概率要么是(可用代理级操作),要么是(不可用代理级操作)。在接下来的部分中,我们将为代理级操作的实际执行定义概率规则。

  接下来,我们将详细介绍当选择给定的代理级操作时,代理如何决定应该选择哪个事件或意图(根据选择函数的分布)。这些函数如何实现的细节将在稍后的4.4节中给出。

  3.1.1 概率事件采用

  BDI代理通过持续处理代表来自外部环境的任务的外部事件来运行。

  为了响应这些事件,代理选择一个外部事件(),并使用rule在意图集()中采用它

  由于来自环境的不同请求,可能存在多个等待的外部事件,并且不清楚应该选择哪个事件:上面的规则选择任何等待事件。在实践中,我们希望对所选择的事件有更多的控制,因为不同的事件可能或多或少是紧急的。许多代理实现违背语义,使用事件选择函数来选择事件,该函数是定制的,以考虑优先级,并以以下形式形式化:

  给定一个信念基础和一组外部事件,它返回一个事件或,即不存在请求的事件。换句话说,如果存在事件,代理总是接受事件。我们还注意到,需要信念库来提供相关信息(例如优先级),以便智能体做出更明智的事件选择决策。

  为了允许非严格排序,我们基于概率分布对事件进行采样,即使用概率事件选择函数:

  使用和(它定义了选择规则的概率),我们可以定义一个概率规则:

  该规则表示,如果在此步骤执行事件选择的概率为,而选择挂起的外部事件的概率为,则在此步骤选择此事件的概率为。当没有可用的外部事件(即和)时,不适用。

  3.1.2 概率意向进展

  每次代理采用外部事件时,都会创建一个新的意图。因为如果存在事件,代理应该采用事件来保持反应,我们最终会得到一组意图来争夺代理的注意力。由于Can代理是单线程的,因此每个代理步骤最多只能以交错的方式执行一个意图。如果一个代理决定处理意图(而不是采用新事件),代理必须做出选择:在一组可进行的意图中,哪个应该进行?在标准罐头中,这是由

  与图2b中的意图水平规则相比,该规则不确定地推进任何意图(可以推进的)。

  前提条件规定P必须是一个意图,但不控制是哪个意图。如果我们想要更多的控制,我们可以添加如下的意图选择函数:

  和前面一样,这个函数返回一个固定的意图,或者如果意图集中没有意图(即)。我们注意到,根据定义,函数包括每个意图的所有可能阶段的集合,因为意图的每一步本身都是一个不同的意图。然而,为了有效地构造这样的函数,我们通常将意图的不同阶段视为同一个意图。事实上,我们决定将每个意图与相关的外部事件联系起来,因为意图最终解决外部事件以构建此功能(详见第4节)。因此,无论意图如何演变,它都被视为相同的意图。与事件选择类似,功能领域中信念的关键组成部分是提供特定于领域的意图信息,以帮助定制选择。

  由于需要从分布中选择意图,我们提供以下函数来允许从分布中选择意图:

  的代理级转换依赖于意图级转换,我们需要在转换概率中考虑到这一点。为了有一个概率代理级规则,我们假设,对于选择的可进行意图,例如,如果给定意图P的计划选择是基于。详细的概率意图级语义将在3.2节中给出。

  意图选择的概率规则为

  在哪里。规则说,如果在这一步执行意图选择的概率是,选择意图P的概率是,推进到的概率是,那么在这一步选择意图P并推进到的概率是。

  3.1.3 概率意图更新

  最终的代理级规则从意图集中删除任何不可进展的意图。

  和规则一样,规则也要求相同的分布来允许意图选择。然而,不同的是,依赖于意图层的转换,它有一个违约概率1,即。为了得到一个概率主体级规则,我们提出了以下的意图选择概率规则。

  新规则说,如果在这一步更新意图选择的概率是,选择一个不可进展的意图P的概率是,那么在这一步从意图集中选择并删除它的概率是。

  最后,当没有可用的代理级操作时,我们提供一个默认的空闲规则,将代理转换为自身。这是必需的,因为dtmc必须始终具有求和为1的输出边缘概率。这允许使用概率模型检查工具进行验证(见第4.5节)。自转换规则是

  图2b给出了发展任何单一意图的规则,每个规则要么定义为确定性(例如规则行为),要么定义为非确定性(例如规则选择)。虽然大多数确定性规则确实是预期的和适当的,例如一个接一个地推进一系列程序,但操作执行的规则可能具有不确定的结果(即对外部环境的影响),这可能需要进行概率处理。类似地,我们自然地将非确定性规则(如计划选择选择)扩展到基于特定于代理的信息(如偏好)的概率设置。

  3.2.1之上概率行为结果

  代理执行与外部环境交互的动作(例如,拿起一个对象),并反过来修改内部信念基础(例如,代理认为它持有对象)。还记得在Can中指定的动作执行如下:

  这表明,只有在前提条件成立时才应用操作,结果是分别通过添加和删除和指定的信念原子来更新信念库。因此,动作结果是隐式地由函数确定的

  给定一个动作,它返回一组添加和删除原子的乘积

  在实践中,我们知道一个动作的结果是不确定的(例如,由于执行器故障)。例如,代理可能执行一个动作来拿起一个物体,但由于机械臂故障而失败。在这种情况下,更新持有对象的信念可能导致真实环境与代理对它的表示之间的不一致。为了允许不确定的动作结果,我们可以基于概率分布对结果进行抽样,即使用以下动作结果函数:

  概率操作执行由

  重要的是,我们不期望基于这些语义的编程语言实现以概率方式绘制操作结果。相反,它仅用于建模,这使我们能够在通常被忽视或忽略的语义中捕获环境影响。

  3.2.2 概率计划选择

  BDI代理使用用户提供的计划库来响应事件。每个计划都有i)一个触发事件,定义计划可以响应什么事件,ii)一个先决条件,定义计划必须持有什么信念才能应用,以及iii)一个计划主体,定义应该采取什么步骤来执行计划。为了处理源自外部环境的挂起事件,代理检索一组相关计划,即Can规则指定的具有匹配触发事件的计划

  给定一组相关的计划,然后代理选择一个适用的计划(前提条件为真):

  在哪里。如果没有适用的计划,则单独的规则(如图2b中的规则)传播失败。

  注意,前面的选择规则没有指定在多个适用计划的情况下应该选择哪个计划,也就是说,它是不确定的。然而,在许多实现中,选择通常是通过以下形式的计划选择函数来确定的:

  给定一个信念基础和一组计划,它返回一个适用的计划或不适用的计划()。

  虽然常见的启发式方法是基于某些特征(例如偏好)选择具有最高顺序的计划,但由于行动副作用,它可能不会导致全局最优行为。我们认为,应该可以根据规划特征对规划选择进行优先级排序,而不是假设一个完全固定的排序,以便允许探索可能具有更好性质的非最高阶规划。这类似于反对启发式的差异搜索技术[22],并且对于声明性目标(例如规则和图2b)特别有用,以避免总是重复相同的计划。

  为了支持非严格排序,我们可以基于概率分布对适用计划的选择进行抽样,即使用以下计划选择函数:

  使用时,概率选择规则定义为

  其中和为返回的概率分布,使得任何不相关和不适用的计划的概率为0。

  例如,可以通过改变从历史数据中提取的数据来试验不同的分布。通过我们的方法,它可以量化不同选择的精确概率效应。

  3.2.3 概率并发

  还可以支持并发程序的执行。为了执行一个并行的计划体程序,在以下两种情况下,代理可以执行不确定的任一部分:

  为了选择并发程序中要进行的部分,我们可能还需要灵活地通过并发程序的选择函数从分布中进行选择,如下所示:

  其中是所有可能的计划体程序,是所有可能的计划体程序的离散概率分布的集合(如果并发程序的任何部分都不能进行,则为增量分布)。

  我们注意到,规则和暗示并发程序的演变取决于并发程序的任何一部分的另一个意图级转换,我们需要在转换概率中考虑这一点。为了获得并发程序的概率意图级转换,我们假设,对于选定的可进行意图,在以下情况下保持,例如,如果给定意图的计划选择需要基于。使用我们可以定义规则的概率扩展和:

  其中为从其中返回的概率分布,,和。

  最后,我们重申,当没有可用的计划可供选择,或者两个并发程序都不能进行时,一个单独的故障恢复规则(见图2b)将传播故障以继续转换。图2b中的其余意图级规则以概率1自动扩展。Can语义概率扩展的完整规则集如图15所示。

  概率Can语义规则以概率1或通过概率分布转移。这些概率分布是抽象的,规则本身并没有规定如何在实践中构造它们。在本节中,我们将介绍并扩展Can程序的语法,它允许代理程序员定义要使用的特定发行版。

  3.3.1 情景值函数

  我们为相关的代理程序(例如计划)引入了额外的语法,通过规范化的过程,确定正确的概率分布。下面[14],我们使用情景值描述函数对程序进行注释。直观地,这些将当前的情况,如当前信念所描述的,映射到一个实数。我们允许用户定义函数为折叠/聚合函数,如下所示:

  Where是一个默认值,值使用函数f(例如sum)聚合。

  一般来说,情境价值函数是动态的,因为它们的响应基于代表代理所处的当前情境的当前信念集。一种特殊情况是静态值,例如不依赖于代理当前的信念。为了便于标记,我们允许用户将这些简单地表示为值,而不是给出完整的函数。

  然后可以将情境值函数附加到以下代理程序,以确定正确的概率选择函数。

  计划

  并发性

  事件及意图

  直观地说,应该更频繁地选择具有较高(电流)值的计划。并发注释决定应该优先选择哪个分支,而事件注释决定应该首先采用哪个事件(给定一组可能的事件)。由于意图最终解决外部事件,我们通过考虑其相关外部事件的价值来衡量意图的情境价值,这足以满足我们在第4节中的智能制造示例。

  最后,为了构造代理级操作的概率选择函数,我们添加了三个关键字,和(镜像代理级规则名称),它们允许使用情境值函数(即和)进行注释。清单2中的第20至22行显示了该语法作为代理配置的一部分。每个情况值函数描述了选择每个代理级规则的相对权重。像往常一样,选择每个代理级规则的结果概率然后通过规范化确定。

  figure f

  3.3.2 选择功能

  现在我们描述在给定情况值函数的情况下如何构造选择函数。我们以计划选择的映射为例,其他的类似。我们定义

  作为一个过滤器,在给定特定的信念集和计划集的情况下选择适用的计划。这里我们用Q来表示计划体。然后将计划选择函数定义为

  和。也就是说,对于一组非空的适用计划,我们将情况值归一化到允许它们用作概率分布的范围内。如果没有适用的计划,或者计划集为空,我们选择概率为1,允许应用不同的Can规则(如图2b中的故障恢复)。

  3.3.3 行动的结果

  行动结果是根据设计时对环境影响的估计静态定义的。我们使用以下语法将静态情况值函数(即值)附加到每个效果上:

  和以前一样,具体的概率是通过归一化确定的。

  最后,我们注意到,在规划文献中,为行动结果分配静态值已被广泛考虑,并导致了概率规划领域定义语言(PPDDL)[23],该语言考虑了具有相关概率的多个结果(例如,从历史数据估计)。

  下载原文档:https://link.springer.com/content/pdf/10.1007/s10270-023-01121-5.pdf

 
打赏
 
更多>同类文章

推荐图文
推荐文章
点击排行