Práctica 6

Anuncio
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:
Atributos
Nº_Semillas
Tipo_Semilla
Color
Forma
Valores
1
>1
Hueso
Múltiple
Verde
Amarillo
Rojo
Morado
Tostado
Naranja
Larga
Ensanchada
Redonda
Atributos
Clase_Frutal
Fruta
Valores
Emparrado
Árbol
Naranja
Ciruela
Manzana
Cereza
Plátano
Cautalupo
Albaricoque
Melón
Sandía
Melocotón
Superficie
Lisa
Rugosa
Diámetro
>10
<10
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
Base-Conocimiento Inicial
Diámetro = 3 cms
Forma = Redonda
Nº_Semillas = 1
Color = rojo
Objetivo
Fruta
¿Qué ocurre si no se establece ningún objetivo?
•
Encadenamiento hacia atrás
Base-Conocimiento Inicial
Diámetro = 3 cms
Forma = Redonda
Clase_Frutal = Árbol
Objetivo
Fruta
Ante la pregunta Color? se contesta Rojo y ante la pregunta Nº_Semillas? se contesta 1.
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:
Atributos
Valores
Atributos
Edad-Invitado
>=21
<21
Invitado
Bebida
Alcoholica
Si / No
Cena
Bebida
Tipo_Comida
Vino
Cerveza
Gaseosa
Formal
Informal
Día
Valores
Jefe
Vecino
Amigo
Pescado
Carne
Pizza
Viernes
<>Viernes
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
Base-Conocimiento Inicial
Edad_Invitado = >=21
Tipo_Comida = Informal
Invitado = Vecino
Día = <>Viernes
Objetivo
Cena
¿Qué ocurre si no se establece ningún objetivo?
•
Encadenamiento hacia atrás
Base-Conocimiento Inicial
Objetivo
Cena
Bebida
Ante la pregunta Edad_Invitado? se contesta <21 y ante la pregunta Invitado? se contesta Amigo.
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:
Atributos
Valores
Atributos
Estación
Húmeda
Seca
Profundidad
Mes
Enero ..
Diciembre
Nivel
Precipitaciones
Lluvia
Cambio
Fuertes
Ligeras
Ninguna
Fuerte
Ligera
Ninguna
Bajando
Ninguno
Subiendo
Predicción
Valores
<3
>5
>=3 y <=5
Alto
Bajo
Normal
Soleado
Nuboso
Tormenta
Evacuación
Si / No
Inundación
Si / No
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
Base-Conocimiento Inicial
Mes = Enero
Precipitaciones = Ligeras
Profundidad = 4
Predicción = Nuboso
Objetivo
Inundación
¿Qué ocurre si no se establece ningún objetivo?
•
Encadenamiento hacia atrás
Base-Conocimiento Inicial
Mes = Enero
Nivel = Alto
Objetivo
Inundación
Evacuación
Ante la pregunta Precipitaciones? se contesta Fuertes y ante Predicción? se contesta Tormenta.
Descargar