PDDL語法學習 Domain篇 2

2021-09-20 07:29:01 字數 2754 閱讀 8866

pddl+為pddl中的域引入了兩種新的結構,一種是過程,另一種是

events

,本質上可以分別看作是不可控制的持續行為(

uncontrollable durative actions

)和不可控制的瞬時行為(

uncontrollable instantaneous actions respectively)。

引入乙個例項:

(define

(domain ballphysics)

(:requirements :time :typing)

(:types

ball - object

)(:predicates

(held ?b - ball)

)(:functions

(velocity ?b - ball)

(distance-to-floor ?b - ball)

)(:process falling

:parameters (?b - ball)

:precondition (and

(not (held ?b))

(< (velocity ?b) 100)

):effect (and

(increase (velocity ?b) (* #t 9.8))

(decrease (distance-to-floor ?b) (* #t (velocity ?b)))))

(:event hit-ground

:parameters (?b - ball)

:precondition (and

(not (held ?b))

(<= (distance-to-floor ?b) 0)

(> (velocity ?b) 0)

):effect (

(assign (velocity ?b) (* -0.8 (velocity ?b)))))

; actions omitted

)

內容:

1、requirements

(:requirements )
為了同時包含過程和事件,只需要乙個額外的

requirement

,這個requirement

是:time

,如下所示

(:requirements :time)
2、process

(:process falling

:parameters (?b - ball)

:precondition (and

(not (held ?b))

(< (velocity ?b) 100)

):effect (and

(increase (velocity ?b) (* #t 9.8))

(decrease (distance-to-floor ?b) (* #t (velocity ?b)))

))

流程由以下三個部分定義

:parameters

、:precondition

和:effect

,它們定義了乙個

process

在什麼時候對其進行操作,以及該

process

在作用時具有什麼效果。這些直接對應於在pddl 1.2中找到的動作的定義,但是可以包括在pddl 2.1中看到的數字的表達性。

令人困惑的是,儘管與持續性操作(

durative action

)具有類似的行為,但

process

條件在其持續時間內,因此可以將前提條件看作更像pddl 2.1中的

over all條件

#t代表

過程的時間

,它是用來計算連續數字的影響,因此,

如果程序進行到一半左右,一些操作可能希望在程序影響的數值流上執行哪些條件,#t

可用於計算中間值的數字流。

3、events

(:event hit-ground

:parameters (?b - ball)

:precondition (and

(not (held ?b))

(<= (distance-to-floor ?b) 0)

(> (velocity ?b) 0)

):effect (

(assign (velocity ?b) (* -0.8 (velocity ?b)))

))

event

定義為與

process

相同的三個部分,

:parameters

是效果作用的物件,

:precondition

是為了讓事件執行必須滿足的條件,

:effect

是事件具有的效果。

請注意,乙個

event

的獨特性質是,雖然它可以發生不止一次,但通常不會連續發生。本質上,

event

是時間上的離散時刻,而

process

是時間間隔。

在上面的例子中,我們看到撞擊地面的條件是速度大於0,結果是速度被抵消了,這就保證了——至少在一段時間內——這個事件不能再發生。

PDDL語法學習 Domain篇 4

pddl2.2 的域語法向域新增了非常小的更改。但是,與對 pddl 的任何更新一樣,它引入了新的 requirements 但惟一的新語法是派生謂詞,謂詞的定義方式與 actions 的定義方式類似,並且在域檔案的同一節中定義。先引入乙個簡單的例項 define domain railways r...

PDDL語法學習 Problem篇 3

為了支援定時初始 timed initial 字面值,pddl 2.2 中的問題語法進行了非常簡單的擴充套件。關鍵字的選擇是乙個有趣的選擇,因為 at是乙個常用的謂詞名,用於指示某個可定位的位置 at adam bush house 這個關鍵字用於定義定時初始 timed initial 字面值的方...

markdown語法學習

markdown是純文字格式的語法,支援轉換為html,可以幫助整理知識 學習筆記 markdown的段落是由若干行文字組成,前後由空行隔開 普通段落不該用空格或製表符縮排 markdown支援兩種標題樣式 setext和atx setext風格的標題用符號 first level 和 second...