Проблема установки цели в PDDL для объектов май - PullRequest
0 голосов
/ 06 июля 2019

В настоящее время я реализую планировщик ИИ в 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))
.
.
.
    )
...