В настоящее время я реализую планировщик ИИ в PDDL для включения и выключения нескольких различных устройств в доме в соответствии с информацией, обнаруженной мультисенсором.Я не знаю, как установить одну общую цель для многих задач (например, вентилятор, свет, дверь ...), а также включить и выключить, как мы можем установить, чтобы оба были истинными в цели?Состояние инициализации будет либо включаться, либо выключаться.Это будет так же, как одна из целей.Любое предложение, чтобы сделать лучшую цель в этих случаях?
(define (problem pb_smarthome)
(:domain smarthome)
(:objects
detected nodetected - motionsensor
hot cold - temperaturesensor
lighton lightoff -light
fanon fanoff -fan )
(:init (at-light nodetected lightoff)
(at-fan cold fantoff)
)
(:goal (and (at-light detected lighton)
(at-light nodetected lightoff)
(at-light hot fanton)
...... ))
)
(define (domain smarthome)
(:requirements :strips :typing)
(:type motionsensor temperaturesensor light fan - object)
(:predicates (at-light ?x - motionsensor ?y - light)
(at-fan ?x - temperaturesensor ?y - fan))
(:action turnlighton
:parameter (?x - motionsensor ?y - light)
:precondition (not(at-light ?x ?y))
:effect (at-light ?x ?y)
(:action turnlightoff
:parameter (?x - motionsensor?y - light)
:precondition (at-light ?x ?y)
:effect (not(at-light ?x ?y))
(:action turnfanon
:parameter (?x - temperaturesensor?y - light)
:precondition (at-light ?x ?y)
:effect (not(at-light ?x ?y))
.
.
.
)