ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto SISTEMAS EXPERTOS - 299017 EVALUACIÓN NACIONAL DEL CURSO TEMÁTICAS: UNIDAD 1 – VISIÓN GENERAL DE LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS UNIDAD 2 – DESARROLLO DE UN SISTEMA EXPERTO UNIDAD 3 – APRENDIZAJE DE LOS SISTEMAS EXPERTOS DOCUMENTOS DE REFERENCIA: Modulo: Sistemas Expertos. UNAD. 2009 Aula virtual: Sistemas Expertos ESTRATÉGICA DE APRENDIZAJE: Estudio de casos OBJETIVO Desarrollar un sistema experto desde la construcción de su base de conocimientos, con lo aprendido en el curso. DESCRIPCIÓN DE LA ACTIVIDAD El tutor creará un foro llamado “Evaluación Nacional” donde los estudiantes se organizaran, definirán roles, enviarán los aportes y construirán el producto final; las dudas al tutor pueden hacerse en el foro general o en el sistema de mensajería. TIPO DE ACTIVIDAD Y EVALUACIÓN Grupal – Foro Examen Final – 200 puntos PARTICIPACIÓN EN EL FORO: TRABAJO DE GRUPO Los estudiantes con lo adelantado en las unidades anteriores, se organizarán dividiendo sus roles al interior del grupo y seleccionando un líder quien será el encargado de subir el producto final, es importante recalcar que TODOS los estudiantes deben participar y se esperan MÍNIMO 3 aportes, en fechas diferentes. PREAMBULO: EL DISEÑO DE UN SISTEMA EXPERTO El diseño de un sistema cualquiera consiste en la evaluación de las alternativas y la especificación de una solución detallada. El diseño especifica como logrará el sistema los objetivos para los cuales se creará. Para un sistema experto, el concepto anterior también es válido. Una vez se tiene el problema a resolver se debe analizar y evaluar las soluciones dentro del área de conocimiento respectivo. Aclarando que el diseño de un sistema experto variará en relación a los sistemas tradicionales. En todo desarrollo de un sistema, juega un papel importante el equipo de trabajo. Para el desarrollo de un sistema experto, se consideran las siguientes clases de personas que interactúan en su creación: Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 1 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto 1. El experto: La función del experto es la de poner sus conocimientos especializados a disposición del Sistema Experto. 2. El ingeniero del conocimiento: Es el encargado de realizar las preguntas al experto, estructura sus conocimientos y los implementa en la base de conocimientos. 3. El usuario: Aporta sus deseos y sus ideas, determina especialmente el escenario en el que debe aplicarse el Sistema Experto. ETAPAS DEL DESARROLLO DE UN SISTEMA EXPERTO Definición del Problema. Precisamente en la primera fase del proyecto es de vital importancia determinar correctamente el ámbito estrechamente delimitado de trabajo. Por lo que, el ingeniero del conocimiento y el experto trabajan muy unidos para elaborar el problema que debe ser resuelto por el sistema. Adquisición del conocimiento. Una vez delimitado el dominio, nuestro sistema se debe ampliar con los conocimientos del experto. El experto debe comprobar constantemente si su conocimiento ha sido transmitido de la forma más conveniente. El ingeniero del conocimiento es responsable de una implementación correcta, pero no de la exactitud del conocimiento. La responsabilidad de esta exactitud recae en el experto. Desarrollo de prototipos. Existen dos importantes riesgos en el desarrollo de Sistemas Expertos: No existen implementaciones similares que puedan servir de orientación al encargado del desarrollo en la casi totalidad de los casos. En muchos puntos, los requisitos necesarios están esbozados con muy poca precisión. Un método efectivo para la disminución de los problemas anteriores, es la implementación de un prototipo de Sistema Experto que permita llevar a cabo las funciones más importantes de éste. Para Sistemas Expertos, la implementación de prototipos es el procedimiento más adecuado, pues posibilita una rápida reacción a los deseos en constante cambio, tanto por parte de los expertos como parte del usuario. Integración de ingeniería de sistemas. Una vez definidas y estructuradas las bases del sistema experto se procede a la integración de la parte cognoscitiva y tradicional del sistema, incluyendo las aprobaciones del experto, usuario e ingeniero del conocimiento. Verificación y pruebas. Por último es necesaria la implementación del sistema elaborado. Para ello se realizan diversas clases de pruebas. Dichas pruebas ayudan al mejoramiento y a la depuración final del sistema, para obtener un producto que cubra las necesidades del usuario. ¿Qué hace el ser humano o los programas para resolver problemas? El ser humano utiliza una serie de métodos para resolver problemas, el más sencillo de ellos es el método algorítmico. Todas las personas poseen algoritmos para resolver problemas tales como amarrar las cintas de los zapatos, multiplicar números, planear unas vacaciones, etc. Algunos de los algoritmos son sencillos otros son más complejos, sin embargo todos ellos estas conformado por secuencia de acciones que deben descubrirse o aprenderse. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 2 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto CONSIDERACIONES DE INGENIERÍA DE SOFTWARE La ingeniería de software es aplicable al desarrollo de los sistemas expertos pero además se necesitan otras técnicas, por la razón que estos sistemas están integrados tanto por paquetes convencionales como por componentes exclusivos. La creación equivale simplemente a desarrollar un paquete de programas; por consiguiente el sistema queda sujeto a las mismas normas, métodos y técnicas de ingeniería que cualquier otro grupo de programas. Parece trivial pero es necesario plantearlo porque los nuevos sistemas expertos deberán incluir todas estas reglas, tales como, presentación cómoda al usuario, diseño adecuado, etc. Para desarrollar el software es necesario la búsqueda de los recursos adecuados para implementarlo. Dichos recursos son mano de obra, maquinaria y tiempo. Pero ¿Qué es Ingeniería de software? Es el conjunto de métodos, técnicas y herramientas que controlan el proceso integral del desarrollo de software y suministra las bases para construir software de calidad de forma eficiente en los plazos adecuados. La Ingeniería de software abarca cuatro elementos clave: 1. Métodos o técnicas: Indican cómo construir técnicamente el software, y abarca una serie de tareas que incluyen la planificación y estimación de proyectos, el análisis de requisitos, el diseño de estructuras de datos, programas y procedimientos, la codificación, las pruebas y el mantenimiento. Los métodos introducen frecuentemente una notación específica para la tarea en cuestión y una serie de criterios de calidad. 2. Herramientas: Son instrumentos o sistemas automatizados para realizar algo de la mejor manera posible. Esta manera óptima puede significar que la herramienta produce resultados más exactos, más eficientes, más productivos, o que refuerza la calidad del producto resultante. Proporcionan un soporte automático o semiautomático para todas las fases del desarrollo y sistemas que integran las herramientas de cada fase de manera que sirven para todo el proceso. Estas herramientas se denominan CASE (Computer Aided Software Engineering). 3. Procedimientos: Son la combinación de las técnicas y las herramientas que en forma conjunta dan un resultado particular. Los procedimientos indicarán qué herramientas deberán utilizarse cuando se aplican determinadas técnicas. Definen la secuencia en que se aplican los métodos, los documentos que se requieren, los controles que aseguran la calidad y las directrices que permiten a los gestores evaluar los progresos. 4. Paradigmas: Representan un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. Los más comunes son el desarrollo en cascada, el desarrollo en espiral, el desarrollo por prototipos, el desarrollo incremental, etc. También existen modelo híbridos, los cuales combinan elementos de diferentes modelos según las necesidades existentes. Todos los elementos antes mencionados de la ingeniería de software son aplicados en el desarrollo de los sistemas expertos. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 3 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto ACTIVIDADES A DESARROLLAR 1. Seleccionar un TEMA A DESARROLLAR de la tabla relacionada a continuación y de acuerdo con la definición del problema seleccionado, codificación y selección de tipo de sistema experto es necesario que a su sistema experto le establezca probabilidades, es decir, dependiendo de las selecciones de hechos que se le hagan y selecciones de reglas que tome el SE, este debe arrojar la respuesta indicando la probabilidad de esa respuesta. 2. En el respectivo foro de socialización dar la discusión necesaria para llegar a acuerdos y la definición de roles que cada integrante del grupo adoptara para el desarrollo de la actividad propuesta. 3. Crear el subsistema de explicación del sistema experto, es necesario explicar porque se tomaron ciertas decisiones, esta fase debe incluir la visita y entrevista al experto humano en el tema para la evaluación y elaboración de la propuesta de SE a implementar según el caso seleccionado. 4. Indicar el precio de su SE para venderlo en el mercado, justificando el por qué ese precio y cuál sería la estrategia publicitaria para ofertarlo. 5. Elaborar un manual de usuario del sistema creado que aborde instalación, uso, funciones y como corregir posibles errores (piensen que este manual saldrá al mercado). 6. Desarrollar una presentación (power point, flash, Latex, prezy, etc), donde muestren el problema a resolver, el desarrollo y bondades del SE, expliquen cada uno de los componentes, los resultados, el valor del venta del SE. (Revisar indicaciones para realizar una buena presentación publicitaria del SE). 7. El grupo deberá publicar un video al respecto en Youtube.com como valor agregado del trabajo y sustentación del mismo, la URL debe estar publicada en el mensaje de entrega del Producto Final. 8. Entregan un único informe, la presentación y el manual de usuario en el foro de entrega del producto final. TEMAS PROPUESTOS PARA DESARROLLAR EL SISTEMA EXPERTO ORDEN DESCRIPCIÓN 1 Sistema de Ayuda sobre Legislación Colombiana en Riesgos de Trabajo. Este sistema ayuda al usuario a encontrar dentro de la legislación colombiana, material relativo a los accidentes de trabajo. Se consume mucho tiempo dentro de las leyes para encontrar el material correcto y es este sistema el encargado de ayudar a ahorrar tiempo en esta búsqueda 2 Sistema Experto para Asistir Decisiones Turísticas. El estudio del comportamiento del consumidor del turismo es una actividad compleja en el cual intervienen numerosas variables. Los sistemas expertos actúan como asistentes y auxiliares complejos de gran utilidad, brindando ayuda efectiva en aquellos trabajos que requieren responsabilidad, competencia e intuición. Se desarrollara un prototipo de Sistema Experto, basado en plataforma Web, para asistir a los potenciales turistas en sus decisiones. El sistema recomienda un destino de acuerdo a las preferencias de los consumidores bajo el paquete turístico denominado: "Colombia, un misterio un legado...". 3 Sistema Experto de Gestión Bancaria. Consiste en el desarrollo de un Sistema que tiene como principal objetivo contribuir a la toma de decisiones en el área bancaria respecto de las solicitudes de préstamos hipotecarios y de tarjetas de crédito en sus diversas modalidades. Su misión es poner en manos del experto especializado en la materia una herramienta que ayude a la toma de decisiones, ofreciendo de modo objetivo y consistente una propuesta de resolución de los casos planteados. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 4 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto ORDEN DESCRIPCIÓN 4 Recetario Homeópata. Desarrollar un sistema experto que ayude en la decisión de tratamiento de enfermedades a un médico homeópata. La entrada al sistema serán los síntomas y las características de carácter del paciente. La salida será la medicación más adecuada al paciente. 5 Sistema de Asistencia para la Selección de Estrategias y Actividades Instruccionales. En el ámbito educativo existe la necesidad de hacer más eficiente la toma de decisiones sobre los modelos instruccionales, apoyándose de las potencialidades que tienen las TIC y los avances en las técnicas de la Inteligencia Artificial, que están dirigidos al desarrollo de programas computarizados, que emulan los procesos del pensamiento humano utilizando estructuras que contienen conocimiento y la experiencia de los expertos humanos. Se debe elaborar una propuesta, basada en la Ingeniería del Conocimiento, para el desarrollo de un sistema experto que recomiende al docente, modelos de enseñanza como macroestrategias pertinentes a la planificación e implementación de la actividad didáctica. 6 Sistema Informático Jurídico para la Individualización y Acuerdos sobre la Pena. Implementar un sistema informático jurídico cuyo objeto será el de asistir a los operadores de la justicia –jueces, fiscales y defensores- del fuero penal en el proceso de individualización de la pena. Se deben tener en cuenta las leyes actuales que operan en tal sentido. 7 Sistema sobre Peticiones, Quejas, Reclamos o Felicitaciones Concernientes a la Prestación del Servicio. El sistema desarrollado encontrara soluciones a las PQRF de los clientes, evaluando el delicado equilibrio entre la satisfacción del cliente y el costo para la empresa. Juego el Perro Pastor. El estudio del control de animales es un experimento del dominio real que puede ser probado por sistemas inteligentes, dado que el grado de procesamiento por parte del computador es elevado y el tiempo en el que se tiene que encontrar una solución es corto. Dentro de nuestro caso de estudio tenemos un perro pastor que tiene que controlar su rebaño de ovejas, definir el escenario. 8 9 Premisas: (1). Contamos un escenario tipo markoviano, en este existen ciertos espacios que son marcados como peligrosos y otro tipo de agente lobo que su objetivo es satisfacer su apetito. (2). En el escenario tenemos un agente perro que tiene que controlar un grupo de agentes que llamaremos ovejas. El perro tiene como objetivo conducir a las ovejas por el ambiente evitando que estas caigan en estados peligrosos o que sean comidas por el lobo. El juego termina cuando el perro ovejero tiene a todas sus ovejas dentro del corral. (3). Las ovejas tienen un comportamiento simple estas permanecen casi todo el tiempo agrupadas, esto si el perro, por un mal movimiento las dispersa. (4). Se usara un motor de inferencia para crear todas las reglas del perro y las ovejas y el lobo. Sistema de Ayuda para la Selección de Personal. Se busca agilizar el proceso de selección del personal o Talento Humano de la empresa XYZ, es decir, mediante un cuestionario con diversas preguntas extraídas del diálogo con el experto (el cual se debe realizar), se busca automatizar el proceso de selección haciéndolo más rápido y eficaz. Se deben tener en cuenta los perfiles requeridos por la empresa y las respuestas al cuestionario del usuario, clasificándolo como aspirante a la vacante o no. El sistema se debe implementar en línea. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 5 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto ORDEN 10 DESCRIPCIÓN Sistema Experto en Orientación Vocacional y Profesional. Constantemente los jóvenes se enfrentan al problema de elección carrera, para ello existen profesionales que los guían en su decisión. Cuando uno de esos expertos deja de trabajar en el tema por diversas circunstancias el conocimiento se pierde, es ahí donde entra la inteligencia artificial, específicamente los sistemas con bases de conocimiento. Se requiere la creación de un sistema experto en orientación vocacional y profesional que permita a los orientadores educativos tener una base de conocimiento en la cual se pueda apoyar para su labor de guía. La solución debe incluir dos áreas del conocimiento principalmente, por un lado, la ingeniería en sistemas y por el otro la Medicina. INDICACIONES PARA LA PRESENTACIÓN DEL INFORME Formato: Página: carta Márgenes: superior, inferior, izquierdo y derecho: 2cm Interlineado: sencillo Texto: Times New Roman a 11 puntos Formato de entrega: PDF - ZIP Nombre del archivo: EVALUACIONFINAL_GRUPO Contenido - Presentación: Portada, Introducción, Objetivos Justificación Definición del problema Desarrollo de actividades Conclusiones Bibliografía (Normas APA) Adjuntar el código en extensión .pl (Prolog) Adjuntar Manual de Usuario ENVÍO DE LA ACTIVIDAD Desde la opción FORO Proyecto Final en el curso virtual, subir los archivos solicitados (tamaño máximo 2 MB). La actividad debe enviarse antes de la fecha establecida en el cronograma o agenda de actividades. No olviden los componentes básicos de un trabajo y tener presentes las Normas Icontec para la elaboración y presentación de trabajo escrito. Evite copiar y pegar, es preferible hacer una síntesis de lo consultado y analizar lo que se encuentra... Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 6 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto ANEXOS COMPONENTES TÍPICOS DE UN SISTEMA EXPERTO El Componente Humano.- Un sistema experto es generalmente el resultado de la colaboración de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros en conocimiento. La Base del conocimiento.- Los especialistas son responsables de suministrar a los ingenieros en conocimientos una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Subsistencia de Adquisición de Conocimiento.- Controla el flujo del nuevo conocimiento que influye del experto humano a la base del conocimiento. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 7 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto Control de la Coherencia.- Este subsistema controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. Motor de inferencia.- Es el corazón de todo sistema experto. El cometido de este componente es sacar conclusiones aplicando el conocimiento a los datos. Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinístico o conocimientos probabilísticos. El Subsistema de Adquisición de Conocimiento.- Si el conocimiento es limitado y no se puede sacar conclusiones, el motor de inferencia utiliza el subsistema de Adquisición de Conocimiento para obtener el conocimiento necesario y continuar con el proceso de inferencia hasta que se haya sacado las conclusiones. Interfaz de usuario.- Es el enlace entre el sistema experto y el usuario y debe ser de forma fácil y agradable en su uso. Subsistema de Ejecución de Órdenes.- Es el componente que le permite al sistema experto ejecutar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Subsistema de Explicación.- El usuario puede pedir una explicación de las conclusiones sacadas o de las acciones iniciadas por el sistema experto. Subsistema de Aprendizaje.- Una de las principales características es su capacidad de aprender. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 8 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA – ECBTI Curso: 299017 – SISTEMAS EXPERTOS Guía de Actividades Evaluación Nacional por Proyecto FASES DE DESARROLLO DE UN SISTEMA EXPERTO 1. Planteamiento del Problema.- El Objetivo principal de un sistema experto es responder a preguntas y resolver problema, esta es la etapa más importante en el desarrollo de un sistema experto. 2. Encontrar expertos humanos que puedan resolver el problema. En ciertos casos, no obstante, las bases de datos pueden jugar un papel del experto humano. 3. Diseño de un Sistema experto.-incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, al interface de usuario, etc. 4. Elección de la Herramienta de desarrollo.- Debe decidirse si realizar un sistema experto a medida, o utilizar una concha, una herramienta, o un lenguaje de programación. 5. Desarrollo y prueba de un prototipo.- Deben ser repetitivas hasta que se obtengan un prototipo satisfactorio. 6. Refinamiento y generalización.- En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseño inicial. 7. Mantenimiento y puesta al día.- En esta etapa el usuario plante problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc. Jhon Jairo Pérez Burbano – Cead Pitalito Zona Sur 299017 – SISTEMAS EXPERTOS 9