Artificial intelligence 如何在不知道PDDL确切增加量的情况下模拟增加效应?
我有一个智能灯,它的动作可以打开/关闭。打开该操作会增加房间的亮度,但是,由于当前的环境状态,我无法确定它会增加多少亮度。有没有办法在PDDL中对这种不确定性进行建模Artificial intelligence 如何在不知道PDDL确切增加量的情况下模拟增加效应?,artificial-intelligence,planning,pddl,Artificial Intelligence,Planning,Pddl,我有一个智能灯,它的动作可以打开/关闭。打开该操作会增加房间的亮度,但是,由于当前的环境状态,我无法确定它会增加多少亮度。有没有办法在PDDL中对这种不确定性进行建模 (define (domain home) (:requirements :typing :fluents) (:types phillipshue - lamp ) (:predicates (lamp_powerstate_on ?l -lamp) ) (:functions
(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)
)
)
PDDL是确定性的,所以您无法在PDDL中表达概率效应。关于不确定性的工作从概率PDDL开始(参见定义语言的部分),一直持续到2018年的竞赛。您可以从中找到最新的工作和使用的协议。是否有必要将房间中的灯光建模为不确定?如果要对光照仅增加进行建模,当房间未完全照亮时,可以使用PDDL条件效果。例如:
:effect (and
(when (< (room-light ?v) 20)
(increase (brightness ?l) 30)
)
(when (> (room-light ?v) 90)
(increase (brightness ?l) 10)
)
)
:效果(和
(当(<(房间灯?v)20)
(增加(亮度?l)30)
)
(当(>(房间灯?v)90)
(增加(亮度?l)10)
)
)
但更一般地说:
你想做什么样的模型?您是否在试图决定需要点亮多少个灯泡才能维持房间的正常照明?也许您不应该将其视为预先规划,而是动态规划。后者从传感器获取输入并计算给定情况下的计划。在每种情况下,您都确切地知道房间中有多少光线,问题总是确定的。然后,当您开始执行计划时,来自环境的响应可能与计划假设的不同。在这一点上,您将失败的计划,采取传感器输入快照,制定新的初始状态,并重新规划 您是否尝试过通过一个开源Python工具箱对其进行建模,该工具箱专为执行神经科学模型而定制?您可能会注意到这一点,许多现代概率规划师使用PPDDL作为输入语言,而不是PPDDL,因为它简化了某些类型效果的定义。在IPPC 2018中,所有参与者都使用RDDL作为他们的输入语言。感谢您的回答。但我认为在这种情况下,我们不能同时使用概率效应,因为我们事先也不知道时间间隔。不仅是灯光,智能家居中可能存在不同类型的智能设备(以及许多来自同一类型的设备),而且无法测量驱动的效果,也就是说,假设我们目前在房间里有3盏灯,其中一盏灯亮着,窗帘也打开了,我们如何知道如果我们打开房间角落里的灯2,房间里的亮度会增加多少。我们不能打开灯,看到效果,然后再关闭它,因为这对智能家居中的用户来说会很奇怪。你们知道最近有一个稳定的计划器,我可以使用它,它实际上支持PDDL3.1。我尝试过popf2,但它不支持消极的先决条件。但是,我需要能够处理数值波动、条件效应和持续动作。请尝试光学-Popf的继任者: