首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PDDL域中应用于元素子集的所有语句?

在PDDL域中应用于元素子集的所有语句?
EN

Stack Overflow用户
提问于 2019-04-17 16:31:21
回答 1查看 3.2K关注 0票数 1

使用案例

首先,我想解释一下我的使用情况:我想在不同的部门划分一个领域,所有的工厂都应该由机器人来分析(每个扇区只有一个机器人)。我想检查一下:前提条件是,所有的工厂都已经被分析过了,这样机器人就可以返回“家”了。

问题

这是域PDDL。我的问题在于“追踪者-回家”行动的前提条件。现在我正在检查是否所有的植物已经被分析,但我需要知道是否所有的植物的特定扇区 ?s被分析。是否可以使用forall语句?

代码语言:javascript
复制
(define (domain killbee)
(:requirements :strips :typing)
(:types 
  bee location - object
  ;Inheritance
  tracker - bee
  hive plant sector - location
)
(:predicates 
  (directly-connected ?l1 - location ?l2 - location)
  (at ?l1 - object ?l2 - object) ;location is hive, plant or sector
  (free-sector ?s - sector)
  (bee-with-sector ?b - tracker)
  (tracker-ready-to-move ?b - tracker)
  (analyzed-plant ?p - plant ?s - sector)
  (sector-tracked ?s - sector)
  (plant-in-sector ?p - plant ?s - sector)
)
...
...
(:action tracker-back-home
:parameters (?b - tracker ?p - plant ?h - hive ?s - sector)
:precondition 
  (and (tracker-ready-to-move ?b)
  (at ?b ?p)
  (not (at ?b ?h))
  (forall (?x - plant) (analyzed-plant ?x ?s)))
  )
:effect 
  (and 
  (not (at ?b ?p))
  (at ?b ?h)
  (sector-tracked ?s)
  (not (bee-with-sector ?b))
  (free-sector ?s))
)...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-22 14:37:03

您是否检查了PDDL 2.1定义的语言特性“暗示”?(也许它已经在2.1之前定义了-不确定。)使用它,您可以定义:

代码语言:javascript
复制
(forall (?pPrime - plant)
  (imply (at ?s ?pPrime) (analyzed-plant ?pPrime ?s))
)

注意:我不确定(at ?s ?pPrime)中参数的顺序是否正确。它应该编码的植物?pPrime在扇区?s

这个条件扩展到一大组含义,即对于所有植物,p' (不管它们在哪里)持有:"if plant p' is in s, then it's analyzed in s“。这应该是你要找的东西的编码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55732264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档