O grande evento de inauguração do Teatro das Luzes, organizado pela FLIA (Federação de Luminotécnicos e Iluminadores Artísticos), está se aproximando. No entanto, surgiu um problema técnico inesperado: o sistema de iluminação do palco ainda não está configurado corretamente para o início do espetáculo.
Sua tarefa é modelar essa situação em PDDL, representando o desafio
de ajustar todas as luzes no momento certo, garantindo que tudo esteja
pronto antes da primeira cena. O sistema de luzes opera por meio de
interruptores que podem estar em dois estados: ligado
ou desligado. Esses estados são representados pelos
predicados switch-is-on
(interruptor
ligado) e switch-is-off
(interruptor
desligado).
A missão é planejar o processo de ligar as luzes corretamente, respeitando uma sequência que foi planejada pelos técnicos de iluminação.
Você deve criar um arquivo de problema em PDDL, com o nome turn-it-on
, utilizando o domínio fornecido
abaixo fliaswitch
. O objetivo é garantir
que todas as luzes necessárias estejam ligadas antes do início da
primeira cena, respeitando as instruções e a sequência corretas.
Este problema não possui uma entrada, pois todos os detalhes já estão definidos na descrição do cenário.
Não há uma saída específica esperada para esse problema. Sua função é garantir que o arquivo de problema criado funcione adequadamente com o domínio fornecido. Isso será verificado utilizando um planejador capaz de processar problemas PDDL (Planning Domain Definition Language), que rodará o domínio e o arquivo de problema juntos.
Nota: Verifique se o seu arquivo está funcionando adequadamente antes de enviar. Você pode testar o seu problema diretamente através do seguinte link: https://plan-editor.naquadah.com.br/
Você deverá enviar apenas o arquivo de problema com a extensão .pddl
, que implemente o cenário descrito,
utilizando o domínio abaixo.
O código do domínio a ser utilizado é o seguinte:
(define (domain fliaswitch)
(:requirements :strips)
(:predicates ;; O interruptor está ligado
(switch-is-on) ;; O interruptor está desligado
(switch-is-off))
;; Ação para ligar o interruptor
(:action switch-on
:parameters ()
:precondition (switch-is-off)and (switch-is-on) (not (switch-is-off))))
:effect (
;; Ação para desligar o interruptor
(:action switch-off
:parameters ()
:precondition (switch-is-on)and (switch-is-off) (not (switch-is-on))))) :effect (
Author: Bruno Ribeiro