Caso de estudio11(1)..

Anuncio
Sistemas Expertos
Caso de Estudio:
Selección de un
microcontrolador
Introducción
Un Sistema Experto (SE) clásico comienza con
una serie de preguntas.
En base a las respuestas genera una
recomendación.
Para la recomendación de un microcontrolador
se debe proveer cierta información sobre el
sistema en el cual se aplicará.
El primer paso es colectar la información.
Ingeniería del conocimiento
Un sistema basado en reglas se relaciona con
un dominio.
Dominio: Subconjunto del conocimiento global.
El proceso de colectar la información sobre el
dominio es llamado Ingeniería del
Conocimiento (IC).
El ingeniero del conocimiento -sin tener que
convertirse en un experto- debe conocer los
requerimientos, principios, recursos y fronteras
Entrevistas y Documentación
La IC es un proceso iterativo:
–
–
–
–
–
–
Charlas con los clientes (necesidades y recursos).
Estimaciones del tiempo de desarrollo.
Estudio sobre el dominio (se logra mejor
comunicación con los expertos).
Entrevista con el experto.
Estructura de la información recabada (esbozo,
diagrama de flujo, etc).
Código Jess con comentarios.
Entrevistas
Debe haber acuerdos entre los clientes y los
potenciales usuarios del sistema.
La gente es la mejor fuente de información.
La gente también recomienda libros, sitios
web, y a otra gente que puede ayudar a
entender el dominio del problema.
Es conveniente no utilizar lenguaje específico
de programación.
Reglas potenciales I
Juguetes especiales, como un auto a control
remoto requiere alta velocidad de respuesta,
necesita un ancho de palabra de 32 bits y
consume bastante energía.
Un sistema de frenos ABS implementa cálculos
críticos en tiempo limitado y 16 bits de ancho
de palabra son suficientes.
La implementación de un lavarropas es de 16
bits y consume bastante energía.
Reglas potenciales II
La placa de un mouse óptico requiere más de 80
MHz de velocidad, 32 bits y consume menos de
4.8 V.
Cualquier sistema que requiera cálculos críticos en
tiempo limitado necesita alta velocidad de
respuesta.
Sistemas que requieren bastante energía deben
contar con placas de más de 4.8 Voltios.
Una placa de alta velocidad de respuesta debe
proveer más de 80 MHz.
Reglas potenciales III
Características de algunos microcontroladores
PIC32:
–
–
PIC32MX320: 4.8 V a 6 V, 80 MHz.
PIC32MX200: menos de 4.8 V, 80 MHz.
Características de algunos microcontroladores
PIC16:
–
–
–
PIC16F1947: 80 MHz.
PIC16F8XX: 4.8 V a 6 V.
PIC16F6XX: 80 MHz.
Reglas en Jess
(defrule calculos-criticos
?t <- (MAIN::aplicacion (complejidad-calculos
"critica") (tiempo "limitado"))
=>
(modify ?t (velocidad "rapido")))
(defrule energia-alta
?t <- (MAIN::aplicacion (energia "bastante"))
=>
(modify ?t (energia (> 4.8))))
Revisión de reglas I
Generalmente, falta información.
Se debe desarrollar una serie de nuevas preguntas y
reunirse con el experto nuevamente (iteraciones).
La IC no necesariamente termina cuando comienza
el desarrollo.
Se comienza a mostrar un prototipo en las
entrevistas.
A veces el ingeniero del conocimiento es también un
programador.
Revisión de reglas II
(defrule calculos-criticos
?t <- (MAIN::aplicacion (complejidad-calculos
"critica") (tiempo "limitado") (velocidad nil))
=>
(modify ?t (velocidad "rapido")))
(defrule energia-alta
?t <- (MAIN::aplicacion (energia "bastante"))
=>
(modify ?t (energia 6)))
Organización de los datos
Las reglas Jess trabajan por reconocimiento
de patrones sobre los hechos.
Para escribir las reglas se debe tener idea de
cómo serán los hechos y viceversa. ¿Cómo
empezar?
–
Candidatos para deftemplate: micro (un
microcontrolador específico), usuario (el operador
del sistema), aplicación (requerimientos), pregunta,
respuesta, recomendación.
Estructura del sistema
El recomendador necesita hacer cuatro cosas:
–
–
–
Inicializar la aplicación.
Ver qué micro recomendar.
Mostrar al usuario los micros recomendados.
Estos tres pasos se mapean a tres fases de
procesamiento: Módulos inicio,
recomendacion, reporte.
Organización de las reglas
Defmodules particiona los hechos y las reglas.
Se necesita decidir qué templates van en cada
módulo observando qué reglas necesitan acceder
a los datos.
Recordar que si dos módulos necesitan compartir
una plantilla, ésta debe estar en el módulo main.
–
Observemos que en nuestro ejemplo tendremos
dos templates: aplicacion y micro en el módulo
MAIN.
Escribiendo el código I
Se codifica todo el conocimiento al formato de las
reglas Jess:
(defrule auto-palabra
?t <- (MAIN::aplicacion (nombre "Auto a control remoto"))
=>
(modify ?t (palabra 32)))
Para lanzar el sistema:
(deffunction ejecutar ()
(reset)
(focus inicio recomendacion respuesta)
(imprime-inicio)
(run))
Escribiendo el código II
La activación y el lanzamiento de las reglas
conduce a la asignación del nombre del
microcontrolador:
(defrule responder
?m <- (micro (nombre ~nil))
=>
(printout t ?m.nombre crlf))
Código Resultante
Descargar