Sistemas Basados en Reglas

Práctica 6
Sistemas Basados en Reglas
Vamos ahora a trabajar con sistemas basados en reglas. Para ello utilizaremos una aplicación desarrollada como proyecto fin de carrera en la Escuela Universitaria de Ingeniería Técnica Informática de Gijón
1 La aplicación
La aplicación puede descargarse en el aparatado Recursos del sitio Web:
http://www.aic.uniovi.es/ssii/P6/Aplicacion.exe
Para saber cómo se utiliza la aplicación debéis ir al apartado Manual del sitio Web o descargarlo en formato pdf en nuestra Web:
http://www.aic.uniovi.es/ssii/P6/ManualSBR.pdf
[Trabajo] El manual, aunque extenso, es muy sencillo y rápido de leer. Para aprender a usar la aplicación haced el ejemplo del manual.
2 Sistema de Reglas para Identificación de frutas
El ejemplo del manual es demasiado pequeño. Vamos a extenderlo un poco más. Para ello aumentaremos el número de atributos y reglas. Veamos cuáles son ahora los atributos y sus posibles valores:

Las reglas que utilizaremos serán:
Ø  R0: Si Forma = Larga y Color = Verde Entonces Fruta = Plátano”
Ø  R1: Si Forma = Larga y Color = Amarillo Entonces Fruta = Plátano”
Ø  R2: Si Forma = Redonda y Diámetro = > 10 Entonces Clase_Frutal = Emparrado”
Ø  R3: Si Forma= Ensanchada y Diámetro = > 10 Entonces Clase_Frutal = Emparrado”
Ø  R4: Si Forma= Redonda y Diámetro = < 10 Entonces Clase_Frutal = Árbol”
Ø  R5: Si Nº_Semillas = 1 Entonces Tipo_Semilla = Hueso”
Ø  R6: Si Nº_Semillas = >1 Entonces Tipo_Semilla = Múltiple”
Ø  R7: Si Clase_Frutal = Emparrado y Color = Verde Entonces Fruta = Sandía”
Ø  R8: Si Clase_Frutal = Emparrado y Superficie = Lisa y Color = Amarillo Entonces Fruta = Melón”
Ø  R9: Si Clase_Frutal = Emparrado y Superficie = Rugosa y Color = Tostado Entonces Fruta = Cautalupo”
Ø  R10: Si Clase_Frutal = Árbol y Color = Naranja y Tipo_Semilla = Hueso Entonces Fruta = Albaricoque”
Ø  R11: Si Clase_Frutal = Árbol y Color = Naranja y Tipo_Semilla = Múltiple Entonces Fruta = Naranja”
Ø  R12: Si Clase_Frutal = Árbol y Color = Rojo y Tipo_Semilla = Hueso Entonces Fruta = Cereza”
Ø  R13: Si Clase_Frutal = Árbol y Color = Rojo y Tipo_Semilla = Múltiple Entonces Fruta = Manzana”
Ø  R14: Si Clase_Frutal = Árbol y Color = Amarillo y Tipo_Semilla = Múltiple Entonces Fruta = Manzana”
Ø  R15: Si Clase_Frutal = Árbol y Color = Verde y Tipo_Semilla = Múltiple Entonces Fruta = Manzana”
Ø  R16: Si Clase_Frutal = Árbol y Color = Naranja y Tipo_Semilla = Hueso Entonces Fruta = Melocotón”
Ø  R17: Si Clase_Frutal = Árbol y Color = Morado y Tipo_Semilla = Hueso Entonces Fruta = Ciruela”
Tienen prioridad “10” todas aquellas reglas cuyo consecuente determina el valor del atributo “Fruta”: R0, R1,
R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17. El resto de reglas tienen prioridad “0”: R2, R3, R4, R5,
R6. En caso de empate se selecciona la regla con menor identificador

[Trabajo] Debéis cargar el dominio en la aplicación (viene en el directorio ejemplos de la aplicación) y posteriormente probar el encadenamiento hacia delante y el encadenamiento hacia atrás. Podéis probar los siguientes ejemplos:
• Encadenamiento hacia delante

¿Qué ocurre si no se establece ningún objetivo? 3
R/ con la base del conocimiento, las reglas y los atributos bien definidos, el programa nos encontrara toda la información acerca de la fruta que estamos buscando sin necesidad de añadir mas información, aunque igualmente nos definira el tipo de fruta como cereza en 3 ciclos.
• Encadenamiento hacia atrás

Ante la pregunta Color? se contesta Rojo y ante la pregunta Nº_Semillas? se contesta 1.
R/ si solo se pone como base de conocimiento el color y el numero de semillas, el encadenamiento hacia atras queda con muchas posibilidades de encontrar una respuesta y pedira ayuda al usuario, lo que conyevara a que pregunte la forma de la fruta, ahora si ya esta preestablecida la informacion anterior, si nos encontrara la fruta en 3 ciclos.
3 Determinar el tipo de comida y bebida en una cena con un invitado
Presentamos ahora el planteamiento de otro problema. Primero los atributos y sus posibles valores:

Veamos las reglas:
R0: Si Edad_Invitado < 21 Entonces Bebida-Alcoholica = No”
R1: Si Edad_Invitado >= 21 Entonces Bebida-Alcoholica = Si”
R2: Si Bebida_Alcoholica = Si y Tipo_Comida = Formal Entonces Bebida = Vino”
R3: Si Bebida_Alcoholica = Si y Invitado = Jefe Entonces Bebida = Vino”
R4: Si Bebida_Alcoholica = Si y Invitado = Vecino Entonces Bebida = Cerveza”
R5: Si Invitado = Jefe y Día = Viernes Entonces Cena = Pescado”
R6: Si Invitado = Jefe y Día = <>Viernes Entonces Cena = Carne”
R7: Si Edad_Invitado = <21 Entonces Cena = Pizza”
R8: Si Edad_Invitado = >=21 Entonces Cena = Pescado”
R9: Si Bebida_Alcoholica = No Entonces Bebida = Gaseosa ”
Tienen prioridad “10” todas aquellas reglas cuyo consecuente determina el valor del atributo “Cena” o “Bebida”. El resto de reglas tienen prioridad “0”.

[Trabajo] Debéis crear un nuevo dominio con este conocimiento y posteriormente probar el encadenamiento hacia delante y el encadenamiento hacia atrás. Podéis utilizar los siguientes ejemplos:
• Encadenamiento hacia delante

¿Qué ocurre si no se establece ningún objetivo?
R/ si no se establece ningún objetivo la información es igualmente suficiente y nos encuentra a la primera el tipo de cena, es decir, tarda 1 ciclo en definir el tipo de cena que se va a brindar
• Encadenamiento hacia atrás

Ante la pregunta Edad_Invitado? se contesta <21 y ante la pregunta Invitado? se contesta Amigo.
R/el programa aplicando el encadenamiento hacia atrás tardara 4 ciclos en definir la cena y la bebida con esta base de conocimiento dada.
4 Determinar si se va a producir una inundación o no y si es o no
necesaria la evacuación
Veamos el último problema. Primero los atributos y sus posibles valores:

Estas son las reglas:
R0: Si Mes = Mayo Entonces Estación = Húmeda”
R1: Si Mes = Junio Entonces Estación = Húmeda”
R2: Si Mes = Julio Entonces Estación = Húmeda”
R3: Si Mes = Agosto Entonces Estación = Húmeda”
R4: Si Mes = Septiembre Entonces Estación = Húmeda”
R5: Si Mes = Octubre Entonces Estación = Húmeda”
R6: Si Mes = Noviembre Entonces Estación = Seca”
R7: Si Mes = Diciembre Entonces Estación = Seca”
R8: Si Mes = Enero Entonces Estación = Seca”
R9: Si Mes = Febrero Entonces Estación = Seca”
R10: Si Mes = Marzo Entonces Estación = Seca”
R11: Si Mes = Abril Entonces Estación = Seca”
R12: Si Precipitaciones = Ninguna y Estación = Seca Entonces Cambio = Bajando”
R13: Si Precipitaciones = Ninguna y Estación = Húmeda Entonces Cambio = Ninguno”
R14: Si Precipitaciones = Ligera Entonces Cambio = Ninguno”
R15: Si Precipitaciones = Fuertes Entonces Cambio = Subiendo”
R16: Si Profundidad < 3 Entonces Nivel = Bajo”
R17: Si Profundidad >= 3 y <= 5 Entonces Nivel = Normal”
R18: Si Profundidad > 5 Entonces Nivel = Alto”
R19: Si Predicción = Soleado Entonces Lluvia = Ninguna”
R20: Si Predicción = Nuboso Entonces Lluvia = Ligera”
R21: Si Predicción = Tormenta Entonces Lluvia = Fuerte”
R22: Si Nivel = Bajo Entonces Inundación = No”
R23: Si Cambio = Ninguno y Nivel = Normal Entonces Inundación = No y Evacuación = No”
R24: Si Cambio = Ninguno y Nivel = Bajo Entonces Inundación = No y Evacuación = No”
R25: Si Cambio = Subiendo y Nivel = Normal Entonces Inundación = No y Evacuación = No”
R26: Si Cambio = Subiendo y Nivel = Bajo Entonces Inundación = No y Evacuación = No”
R27: Si Cambio=Subiendo y Nivel=Normal y Lluvia=Fuerte Entonces Inundación=Si y Evacuación = No”
R28: Si Cambio=Subiendo y Nivel=Normal y Lluvia=Ligera Entonces Inundación=No y Evacuación=No”
R29: Si Cambio=Subiendo y Nivel=Alto y Lluvia=Ninguna Entonces Inundación=Si y Evacuación=Si”
R30: Si Cambio=Subiendo y Nivel=Alto y Lluvia=Ligera Entonces Inundación=Si y Evacuación=Si”
R31: Si Cambio=Subiendo y Nivel=Alto y Lluvia=Fuerte Entonces Inundación=Si y Evacuación=Si”
Tienen prioridad “10” todas aquellas reglas cuyo consecuente determina el valor del atributo “Inundación” o “Evacuación”. El resto de reglas tienen prioridad “0”.
[Trabajo] Debéis crear un nuevo dominio con este conocimiento y posteriormente probar el encadenamiento hacia delante y el encadenamiento hacia atrás. Podéis utilizar los siguientes ejemplos:
• Encadenamiento hacia delante

¿Qué ocurre si no se establece ningún objetivo?
R/ el programa nos dira que no existe ninguna regla a disparar ya que no cuenta con un objetivo claro a definir, adicional a ello, la base de conocimiento inicial es insuficiente para definir algo.

• Encadenamiento hacia atrás


Ante la pregunta Precipitaciones? se contesta Fuertes y ante Predicción? se contesta Tormenta.
R/no existe información suficiente en las reglas para definir estos dos atributos con la base de conocimiento dada, lo que conlleva a que no habra respuesta en el encadenamiento hacia atrás.
.

Comentarios

Entradas populares de este blog

MiniMax, Negamax y Alfa/Beta

Expecti minimax

Taller Redes Semanticas