Ingeniería del Conocimiento Ingeniería Electrónica Práctica 2 – Sistemas Expertos y Kappa-PC 1. Práctica – Kappa-PC Considere las siguientes reglas para aconsejar las actividades a una persona: R1: vacaciones examen = no Tiempo_libre R2: dinero Actividad = compras R3: Tiempo_libre dinero Actividad = viaje R4: examen = si Actividad = estudio R5: desocupado Tiempo_libre Se desea determinar cuál será la actividad de Juan utilizando Kappa-PC, sabiendo que está desocupado y tiene dinero. a) Indicar como estructuraría la BD y que elementos agregaría para implementarlo. b) Ahora suponga Pedro tiene vacaciones, no rinde examen, tiene dinero. Cómo funcionaría el motor de inferencia en FC para este caso. 2. Práctica – Kappa-PC Dadas las siguientes reglas para diagnóstico de enfermedades simples: Si temperatura alta Entonces fiebre Si fiebre y dolores en el cuerpo y dolor de garganta Entonces gripe Si dolor de garganta y estornudos Entonces resfrío Si fiebre y gangleos Entonces infección Si resfrío Entonces aspirina y abrigarse Si gripe Entonces paracetamol y acostarse Si infección Entonces antibióticos a) Crear en Kappa-PC la estructura de objetos necesarios (y sus slots correspondientes) para poder representar estructuradamente las variables del sistema. b) Implementar las reglas. c) Probar el sistema tanto en Forward Chain como en Backward Chain. 3. Práctica – Kappa-PC Dadas las siguientes reglas para diagnosticar problemas típicos en el uso de PCs: Si programa falla Entonces programa erróneo Si programa erróneo Entonces bug en el código Si año de compra >= 2005 Entonces PC nueva Si año de compra < 2005 Entonces PC vieja Si programa lento y PC nueva Entonces memoria insuficiente Si programa lento y PC vieja Entonces PC obsoleta Si PC obsoleta Entonces renovar PC Si memoria insuficiente Entonces memoria saturada Si programa se tilda Entonces conflictos Si conflictos o memoria saturada Entonces windows sobrecargado Si bug en el codigo Entonces corregir fuentes Si windows sobrecargado Entonces reiniciar PC a) Crear en Kappa-PC los objetos necesarios y sus slots correspondientes para poder representar estructuradamente las variables del sistema. b) Implementar las reglas. c) Probar el sistema tanto en Forward Chain (utilizando diferentes estrategias de búsqueda) como en Backward Chain. d) Modificar el sistema para que las reglas incorporen el uso de patrones. e) Incorporar metaconocimiento (en forma de metareglas) para poder realizar las inferencias en etapas. 4. Generación de reglas y Kappa-PC Si los clientes tienen entre 15 y 25 años, les agrada el rock, y prefieren las bandas nacionales es conveniente recomendarles “Circo Beat” de Fito Páez. Si en cambio prefieren las bandas de rock extranjeras, la mejor opción es “Pop” de U2. Si el género preferido es el folklore, lo más adecuado es “Tarefero de mis pagos” de Chango Spasiuk. Para los clientes de más de 25 años que se inclinan por el rock, y prefieren las bandas nacionales, aconsejar “Almendra (1969)” de Almendra, si en cambio se inclinan por las bandas extranjeras, conviene recomendar el “Álbum Blanco” de Los Beatles. En caso de que prefieran el folklore, la mejor opción es “Vengo a ofrecer mi corazón” de Mercedes Sosa. a. Construya un modelo del dominio presentado, de forma de implementar en KappaPC un sistema capaz de recomendar un CD de música. Se espera que el árbol de búsqueda tenga al menos dos niveles de operadores, y que la recolección de información resulte pertinente. b. Elegir una estrategia de búsqueda c. Pruébelo en los siguientes casos: - El cliente es Juan que tiene 20 años, le encanta el rock y prefiere la música nacional. - El cliente es Susana, de 37 años que prefiere el folklore. 5. Generación de reglas y Kappa-PC Dado el siguiente conjunto de reglas en pseudo-código, encontrar las reglas análogas en lenguaje de Kappa-PC e implementar un sistema en dicho entorno: Reglas generales If motor=arranca_bien Then NO HAY NINGUN PROBLEMA If motor=no_arranca Then Sistema_combustible=falla OR Sistema_bateria=falla Sistema_ignicion=falla => COMO GIRA STARTER? OR Starter=falla OR If Starter=gira_lentamente Then Sistema_bateria=falla OR Starter=falla => HACER EL TEST DE LA BATERIA If Starter=gira Then Sistema_bateria=bien And Starter=bien => MIRAR RELOJ COMBUSTIBLE If motor=falsas_explosiones OR motor=ratea Then Sistema_combustible=falla OR Sistema_ignición=falla COMBUSTIBLE => MIRAR RELOJ Sistema de Ingnición If Sistema_ignición=falla Then Bujias=mal If Bujias=mal Then Bujias=viejas Or Bujias=incorrectas => CHEQUEE EL ESTADO DE LAS BUJIAS If Estado_bujias=aureola Then Bujias=incorrectas => REEMPLACE LAS BUJIAS POR LAS RECOMENDADAS DE FABRICA If Estado_bujias=poca_luz Then Bujias=viejas => CAMBIE LAS BUJIAS Starter If Starter=falla Then CAMBIE EL STARTER Sistema de Bateria If Test_bateria=mal Then Bateria=Low If Test_bateria=bien Then Sistema_bateria=bien If Bateria=Low Then Sistema_bateria=falla If Sistema_bateria=falla Then Bateria=mal OR Alternador=no_carga => RECARGAR LA BATERIA E INTENTAR NUEVAMENTE If Carga_bateria=fracaso Then Bateria=mal If Carga_bateria=exitosa Then Bateria=bien If Alternador=no_carga Then Alternador=falla => REPARE EL ALTERNADOR If Bateria=mal Then Electrolito=mal OR Placas=cortocircuito => CHEQUEAR ELECTROLITO Y PLACAS O CAMBIAR BATERIA Sistema de Combustible If reloj_combustible=indica_empty Then Tanque=vacio => CARGUE COMBUSTIBLE E INTENTE NUEVAMENTE If reloj_combustible=no_indica_empty Then Tanque=no_agotado => COMPROBAR SI LLEGA COMBUSTIBLE If Combustible=llega Then Sistema_combustible=bien If Tanque=no_agotado And Combustible=no_llega Then Sistema_combustible=falla => COMPROBAR COMBUSTIBLE EF EL FUNCIONAMIENTO If Combustible=no_llega And Combustible_EF=llega Then Filtro=obstruido => LIMPIE EL FILTRO DE COMBUSTIBLE If Tanque=no_agotado And Combustible_EF=no_llega Then Bomba=falla => REEMPLACE LA BOMBA DE COMBUSTIBLE DE 6. Interpretación, representación del conocimiento e implementación en Kappa-PC Desarrollar un sistema capaz de hacer un pronóstico del estado del tiempo, solicitando al usuario la menor cantidad de información necesaria. Los estratos son nubes de baja altura con aspecto de capas. Los nimboestratos son nubes de altura media. Los cirroestratos son nubes de gran altura. Los cúmulos y cumulonimbos pueden estar a baja o gran altura y su aspecto es como pilas de algodón, pero los cumulosnimbos son grises, mientras que los cúmulos son blancos. Si no hay nubes puede inferirse que el tiempo será soleado. La presencia de cúmulos indica buen tiempo. Las nubes con estratos indican lluvia ligera pero si el viento sopla de noreste a sur la lluvia puede ser prolongada. Las nubes con nimboestratos indican lluvia breve si la dirección del viento es sur a norte, pero se indica lluvia persistente si la dirección del viento es de noreste a sur. Los cumulonimbos indican chubascos. Los cirroestratos indican lluvia en las 24 hs. si el viento es norte a sur. A partir de la implementación realizada, se deberá estudiar el funcionamiento del motor de inferencias de KAPPA-PC en: a. forward chaining (utilizando diferentes estrategias de búsqueda) b. backward chaining 7. Interpretación, representación del conocimiento e implementación en Kappa-PC Elección de monitor para PC Los monitores para PC pueden clasificarse de acuerdo a su resolución. Los monitores de baja resolución, pequeños, monocromáticos, aconsejables para aplicaciones de línea tales como cajeros de supermercados. Los monitores estándar y los de resolución mejorada, aconsejables para aplicaciones hogareñas o de oficina. En estas últimas aplicaciones, si el monitor se utilizará durante períodos prolongados, se sugiere el de resolución mejorada aunque por supuesto es más caro. Finalmente están los monitores profesionales cuyo dot pitch es menor o igual a 0.28 pulgadas. Estos monitores profesionales se aconsejan para aplicaciones específicas que requieren diferentes características: Para diseño asistido por computadora (CAD) se requiere un manejo aceptable del color, pero muy bajo nivel de distorsión y se aconseja pantalla plana. Para diseño gráfico, es fundamental un muy buen manejo del color. Para aplicaciones médicas, se aconseja monitor monocromático, pero con una excelente escala de grises y relación de tamaño invertida (monitor vertical). a) Educir las reglas para este sistema y la estructura del dominio. b) Implementarlo en Kappa-PC. 8. Para discutir – Tipos de conocimiento En cada caso, indicar si se trata de hechos o reglas, y si estos son inciertos, imprecisos, heurísticos y/o subjetivos. Justificar. a) Si una persona mide más de un metro ochenta, entonces es alta. b) Es probable que hoy llueva. c) Si elegimos una persona dentro de un grupo de 10, entonces con un 55 % de certeza, es mujer. d) Yo soy alto. e) Cuando un monitor tiene lluvia, hay que mirar primero las resistencias laterales. f) Si una PC no enciende, es probable que sea la fuente. g) Los alumnos de esta facultad son mayormente hombres. h) Escribir un programa prolijamente, facilita la detección de errores. i) Estudiando una materia mientras la cursas es más fácil rendir el final. j) Cuando se encuentra una falla mecánica en un auto, seguramente puede arreglarse. 9. Para repasar - Métodos de búsqueda (en Kappa-PC) Marcar V o F según corresponda: a) Hay formas de lograr que el método de búsqueda Selectivo sea exhaustivo. b) El método Best First, si se usa sin poner prioridades a las reglas deja de ser exhaustivo. c) El Backward Chain sólo puede ser usado si se tiene un objetivo que probar. d) Si se carece de evidencia sólo se puede usar el Forward Chain. e) Si se usa el método Best First sin prioridades en las reglas es muy parecido al método de búsqueda en profundidad. f) Los métodos de búsqueda sólo se aplican al Forward Chain. g) El método de búsqueda horizontal no puede ser usado si se corre el motor sin ningún objetivo. h) Si todas las reglas tienen sólo un antecedente y sólo un consecuente, y si además no hay hechos que figuren como antecedente de dos reglas diferentes, entonces el método en profundidad y el horizontal trabajan de la misma forma. 10. Para recordar - Integrantes del desarrollo de un SE Marcar V o F según corresponda: a) El usuario final de un sistema experto tiene que conocer las reglas de la base de conocimientos. b) El experto del dominio tiene que decidir donde usar metaconocimiento. c) El usuario final de un sistema experto tiene que saber en que lenguaje se desarrolló el sistema. d) El ingeniero del conocimiento tiene que orientar el sistema experto para el usuario final. e) El experto del dominio tiene que interactuar tanto con el Ingeniero del conocimiento como con el usuario final. f) El ingeniero del conocimiento es el responsable de que la base de conocimientos no se solape con el motor de inferencias. g) El experto del dominio, el usuario final y el ingeniero del conocimiento pueden trabajar cada uno por su cuenta en el desarrollo del sistema experto. h) El usuario final es el encargado de coordinar al ingeniero del conocimiento y al experto del dominio para trabajar los tres en conjunto durante el desarrollo del sistema experto. Problema para entregar: Lo siguiente es lo que respondió un experto en placas de video para PCs de escritorio, cuando se le preguntó sobre las características principales a tener en cuenta a la hora de seleccionar una placa de video para incorporarle a una computadora: “A la hora de seleccionar una placa de video, se tienen que tener en cuenta algunos factores fundamentales, que son compatibilidad, velocidad, y precio. En general las placas de video de marca Nvidia son más compatibles con gran variedad de sistemas operativos, ya que están fabricadas con componentes estándar y además la empresa permite la descarga de actualizaciones de drivers desde Internet. Las placas de marca ATI son buenas placas, y veloces, pero funcionan correctamente sólo bajo Windows, quitándose responsabilidad el fabricante si el usuario desea instalar algún otro sistema operativo. Los modelos más nuevos de Nvidia son bastante más rápidos que sus antecesores, pero todo en detrimento del precio. Comparando modelos de Nvidia y ATI lanzados al mercado en fechas similares, se puede observar que el modelo de ATI correspondiente es un poco más veloz, aunque el de Nvidia es más barato, salvo que se tome el mismo modelo de Nvidia pero con más memoria interna, en cuyo caso el precio aumenta, pero las prestaciones son claramente superiores. Ahora bien, todo esto se tiene que tener en cuenta si el usuario desea la computadora para algo más que utilización cotidiana de escritorio e Internet, es decir, básicamente para juegos y diseño en 3 dimensiones. Si el usuario solamente utilizará la computadora para escribir en algún procesador de textos, navegar por Internet, o incluso ver películas en CD o DVD, le bastará con una placa de video que venga incorporada en el motherboard de la computadora. Una ventaja adicional es que las placas de video integradas son mas baratas que el modelo correspondiente de una placa no integrada, probablemente porque el fabricante se ahorra componentes en la memoria interna de la placa. En este caso, la memoria que se le asignará a la placa de video puede ser variable (ya que se utiliza la memoria del sistema, no memoria interna de la placa), pero lo que si hay que tener en cuenta son las marcas de las placas de video integradas, por las mismas cuestiones de compatibilidad que se enunciaron previamente. Las motherboard marca Intel tienen integradas placas de video marca Nvidia, en cambio las motherboard marca Asus, tienen integradas placas de video marca ATI. Las placas de video integrada no ofrecen la posibilidad de tener salida a TV (característica bastante útil cuando el cliente piensa ver películas con su computadora), en cambio cuando se compra una placa de video no integrada, es posible por un poco de diferencia de precio comprar el modelo que tiene salida a TV. Lo que se le suele preguntar al cliente cuando viene a comprar una computadora es para qué tiene pensado usarla, como para ver que background tiene y si va a necesitar algo específico o se le puede dar lo estándar con el objetivo de ahorrar dinero. Obviamente para esto se tiene en cuenta el presupuesto disponible por el cliente, y los conocimientos de computación que pueda llegar a tener, para ver si luego él mismo podrá modificar la configuración de su computadora (bajándose actualizaciones, instalando nuevo hardware, o probando su nueva adquisición con diferentes sistemas operativos, programas y/o juegos).” Se pide: a) Identificar algunos de los elementos del dominio del problema y especificar qué rol cumplen. b) Obtener del texto un grupo de entre 10 y 15 reglas implícitas y enunciarlas en lenguaje natural. c) Implementar en Kappa-PC un mini sistema experto, que le ayude a una persona que tiene pensado comprarse una computadora a decidir qué placa de video incorporar en su futura máquina. Implementarlo de la manera más conveniente que crea, y explicitar en el informe del punto 4 las características que no haya sido posible incorporarle (ya sea por dificultad, falta de tiempo, falta de comprensión, etc.) d) Escribir un pequeño informe, explicitando cómo y por qué se eligió la manera de implementar que se usó, qué ventajas y desventajas tiene, y qué mejoras habría que hacerle que no pudieron ser incorporadas en el TP, así como cualquier otro detalle que crea conveniente.