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...