PracticaProtegeJess.pdf

Anuncio
FACULTAD DE CIENCIAS EXACTAS, INGENIERIA Y AGRIMENSURA
INTRODUCCION A LA INTELIGENCIA ARTIFICIAL – L.C.C.
2007
Ontologías + Motor de Inferencia ( Protege + Jess )
Ejercicio: El sistema Boxer
El sistema de Reglas
El sistema trata de ayudar a empaquetar una serie de objetos en cajas. Los objetos tienen propiedades
como peso, tamaño o fragilidad, y se supone que hay un número suficiente de cajas ( todas tamaño 10).
El proceso de empaquetado pasa por las siguientes fases:
1.
2.
3.
4.
Empaquetar los objetos frágiles envolviéndolos previamente.
Empaquetar los objetos pesados asegurando que no se ponen junto con objetos frágiles.
Empaquetar los objetos de peso medio asegurando que no se ponen junto con objetos frágiles.
Empaquetar los objetos de poco peso colocándolos en cualquier caja que tenga sitio.
A continuación se describe el sistema de reglas a partir del cual debe realizarse la implementación en
Jess.
Regla 1:
IF Fase es empaquetar_objetos_fragiles
Hay algún objeto frágil a empaquetar
Hay una caja vacía o una caja que tiene sólo objetos frágiles
cENs envolierdel objeto frágil
Regla21:
IF Fase es empaquetar_objetos_fragiles
Hay algún objeto frágil a empaquetar
Hay una caja vacía o una caja que tiene sólo objetos frágiles
cENs coloaerdel objeto enlna caja
Regla31:
Regla4:
IF Fase es empaquetar_objetos_fragiles
Hay algún objeto frágil a empaquetar
cENs mpeztar una cajanuevja
IF Fase es empaquetar_objetos_fragiles
Comenzar la fase de empaquetar_objetos_de_peso_medio
Regla 8:
IF Fase es empaquetar_objetos_de_peso_medio
Hay algún objeto de peso medio que empaquetar
Hay una caja vacía o una caja que no contiene objetos frágiles
El espacio libre en la caja >= tamaño del objeto
THEN colocar el objeto en la caja
decrementar el tamaño libre de la caja
Regla 9:
IF Fase es empaquetar_objetos_de_peso_medio
Hay algún objeto de peso medio a empaquetar
THEN empezar una caja nueva
Regla 10:
IF Fase es empaquetar_objetos_de_peso_medio
THEN Finalizar esta fase
Comenzar la fase de empaquetar_objetos_de_poco_peso
Regla 11:
IF Fase es empaquetar_objetos_de_poco_peso
Hay algún objeto de poco peso que empaquetar
El espacio libre en la caja >= tamaño del objeto
THEN colocar el objeto en la caja
decrementar el tamaño libre de la caja
Regla 12:
IF Fase es empaquetar_objetos_de_poco_peso
Hay algún objeto de poco peso a empaquetar
THEN empezar una caja nueva
Regla 13:
IF Fase es empaquetar_objetos_de_poco_peso
THEN Finalizar esta fase
Detener la ejecución del sistema
Datos de Entrada
Se definirá la siguiente estructura para representar los objetos a ser empaquetados
( deftemplate objeto
(slot nombre)
(slot unidades)
(slot peso)
(slot tamanio)
(slot frágil)
(slot envuelto))
A partir de esta definción, una entrada concreta podría ser:
(deffacts objects “objetos a empaquetar”
(objeto (nombre “libro”) (unidades 7) (peso pesado) (tamanio 2) (frágil no) (envuelto no))
(objeto (nombre “lampara”) (unidades 2) (peso medio) (tamanio 8) (frágil si) (envuelto no))
(objeto (nombre “juego de platos”) (unidades 1) (peso medio) (tamanio 5) (frágil si) (envuelto no))
(objeto (nombre “chaqueta”) (unidades 2) (peso ligero) (tamanio 3) (frágil no) (envuelto no))
(objeto (nombre “tv”) (unidades 1) (peso pesado) (tamanio 10) (frágil si) (envuelto no))
(objeto (nombre “juego de vasos”) (unidades 1) (peso medio) (tamanio 4) (frágil si) (envuelto no))
(objeto (nombre “vaqueros”) (unidades 4) (peso ligero) (tamanio 2) (frágil no) (envuelto no))
(objeto (nombre “camisa”) (unidades 8) (peso ligero) (tamanio 1) (frágil no) (envuelto no)))
La salidad del sistema será la impresión por pantalla del contenido de cada una de las cajas siguiendo el
siguiente formato:
Caja numero: 5
Contiene: (“libro”, “libro”, “libro”, “libro”, “camisa”, “camisa” )
Espacio libre: 0
Contiene objetos fragiles: no
Descargar