我有一个智能灯,它有开/关动作。打开动作会增加房间的亮度,但是,由于当前的环境状态,我不能确定它会增加多少亮度。有没有办法在PDDL中对这种不确定性进行建模?
(define (domain home)
(:requirements :typing :fluents)
(:types
phillipshue - lamp
)
(:predicates
(lamp_powerstate_on ?l -lamp)
)
(:functions
(brightness ?l - lamp)
)
(:action TurnOnLamp
:parameters ( ?l - lamp)
:precondition (and
(not(lamp_powerstate_on ?l))
)
:effect (and
(increase (brightness ?l) 1) (lamp_powerstate_on ?l)
)
)发布于 2019-09-02 12:42:30
PDDL是确定性的,所以你不能在PDDL中表达概率效应。不确定性方面的工作始于概率PDDL (请参阅定义语言的this paper ),并一直持续到当前2018年的比赛。您可以从2018 competition page中找到最新的工作和使用的协议。
发布于 2019-09-03 18:12:10
是否有必要将房间中的光线建模为不确定?如果你想模拟当房间没有完全照明时,光线只增加,你可以使用PDDL条件效果。示例:
:effect (and
(when (< (room-light ?v) 20)
(increase (brightness ?l) 30)
)
(when (> (room-light ?v) 90)
(increase (brightness ?l) 10)
)
)但更普遍的是:
你想模仿的是什么?您是否正在尝试决定需要点亮多少个灯泡才能保持房间的正常照明?也许您不应该将此视为前期规划,而应将其视为动态规划。后者从传感器获取输入,并针对给定的情况计算计划。在每种情况下,你都确切地知道房间里有多少光,并且问题总是确定性的。然后,当您开始执行计划时,来自环境的响应可能与计划假设的不同。在这一点上,您将失败该计划,获取传感器输入的快照,制定新的初始状态,然后重新计划。
https://stackoverflow.com/questions/57744304
复制相似问题