El mundo de los cubos
.::.objetos.::.
-Brazo(x): x es el brazo del robot
-Cubo(x): x es un cubo
-EnMesa(x): x está sobre la mesa
-EnCubo(x,y): x está sobre y
-Free(x): x es cubo y no tiene nada encima
-Libre(x): x es el brazo y no carga nada
-Holding(x): x es un cubo y el brazo lo esta deteniendo
.::.Estado inicial.::.
Brazo(R), Cubo(A), Cubo(B), Cubo(C), Cubo(D), Cubo(F), Cubo(H), EnMesa(A), EnMesa(F), EnCubo(B,A), EnCubo(C,B), EnCubo(D,C), EnCubo(G,F), Free(R), Free(D), Free(G)
.::.Operadores.::.
-TomarDeMesa(x): el brazo toma el cubo de la mesa
pre-condiciones: Cubo(x) ^ Cubo(y) ^ Libre(R) ^ EnMesa(x) ^ Free(X)
Efecto: ¬Libre(R) ^ ¬Free(X) ^ ¬EnMesa(X) ^ Holding(X)
-TomarDeCubo(x,y): el brazo toma el cubo x del cubo y
pre-condiciones: Cubo(x) ^ Cubo(y) ^ Libre(R) ^ EnCubo(x,y) ^ Free(X)
Efecto: ¬Libre(R) ^ ¬Free(X) ^ Free(y) ^ ¬EnCubo(x,y) ^ Holding(X)
-DejarEnMesa(x): el brazo deja un cubo en la mesa
pre-condiciones: ¬Libre(R) ^ ¬Free(X) ^ ¬EnMesa(X) ^ Holding(X) ^ Cubo(X)
Efecto: Cubo(y) ^ Libre(R) ^ EnMesa(x) ^ Free(X)
-DejarEnCubo(x,y): el brazo deja cubo subo sobre otro
pre-condiciones: ¬Libre(R) ^ ¬Free(X) ^ Free(y) ^ Holding(X)
Efecto: Libre(R) ^ Free(X) ^ ¬Free(y) ^ EnCubo(x,y) ^ ¬Holding(X)
El mundo de Shakey
.::.Objetos.::.
-cuarto(x): x es un cuarto
-caja(x): x es una caja
-at(x,y): x es una caja o shakey y y un cuarto
-prendido(x): x es un switch
-apagado(x): x es un switch
-holding(x): x es una caja tomada por Shakey
-pasillo --> constante
.::.Estado inicial.::.
at(Shakey,3), at(1,1), at(2,1), at(3,1), at(4,1), prendido(1), prendido(4), apagado(2), apagado(3)
.::.Estado final.::.
at(shakey,1), at(1,1), at(2,1), at(3,1), at(4,1), apagado(1), apagado(2), apagado(3), apagado(4)
.::.Operadores.::.
-EntrarCuarto(x): entrar de un cuarto a otro
pre-condiciones: at(shakey, pasillo)
efecto: at(shakey, x)
-SalirCuarto(x): salir de un cuarto
pre-condiciones: at(shakey, x)
efecto: at(shakey, pasillo)
-SalirConCubo(x,y): salir de un cuarto cargado una caja
pre-condiciones: at(shakey,x) ^ Cuarto(x) ^ Caja(y)
efecto: at(shakey, pasillo) ^ holding(y)
-EntrarConCubo(x,y): entrar a un cuarto cargando una caja
pre-condiciones: at(shakey,pasillo) ^ Cuarto(x) ^ Caja(y) ^ holding(y)
efecto: at(shakey, x) ^ ¬holding(y)
-ApagarLuz(x,y): apaga la luz de un cuarto
pre-condiciones: at(shakey, x) ^ Cuarto(x) ^ prendido(y)
efecto: apagado(y)