1 Fundamento de Sistemas ExpertosMódulo 1 - Las Mejores Prácticas de Ingeniería de Software
2 Fundamentos de Sistemas ExpertosTópicos Definición Características ¿Cuándo usar y no usar un SBC? Aplicaciones Ventajas y desventajas Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
3 1. Definición de Sistemas ExpertosEs un programa de computación Inteligente que usa el conocimiento y los procedimiento de inferencia para resolver problemas que son suficientemente difíciles como para requerir significada experiencia humana para su solución. Edward Feigenbaum (1982) Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
4 1. Definición de Sistemas ExpertosLos programas de IA que consiguen una capacidad a nivel de experto en la resolución de problemas mediante la reproducción de un cuerpo de conocimiento se denominan sistemas basados en conocimiento, o sistemas expertos. Feigenbaum, McCorduck y Nii (1988) Los sistemas basados en conocimiento denotan los programas que razonan utilizando grandes bases de conocimiento Nils J. Nilsson(2000) Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
5 1. Definición de Sistemas ExpertosLos sistemas expertos son una rama de la IA que hace un amplio uso del conocimiento especializado para resolver problemas como un especialista humano (persona que tiene experiencia desarrollada en cierta área). Giarratano – Riley (2001) Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
6 2. Característica de un Sistema ExpertoEl procesamiento del conocimiento es indiferente al conocimiento. Simula la labor de un experto humano, y no de un operador. Alto desempeño. El sistema debe tener la capacidad de responder a un nivel de competencia igual o superior al de un especialista en el campo. Esto significa que la calidad del consejo dado por el sistema debe ser muy alta. Comprensible. El sistema debe ser capaz de explicar los pasos de su razonamiento. Este rasgo es importante, 1ro porque proporciona una revisión del razonamiento; 2do permite asegurar en la fase de desarrollo de que el sistema ha adquirido el conocimiento y lo está usando de manera correcta. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
7 2. Característica de un Sistema ExpertoFlexibilidad. Debido a la gran cantidad de conocimiento que puede albergar un SE es importante contar con un mecanismo eficiente para añadir, modificar y eliminar el conocimiento. Tiempo de respuesta adecuado. El sistema debe actuar en un tiempo razonable, comparable o mejor al tiempo requerido por un especialista para alcanzar una decisión. Confiabilidad. El sistema experto debe ser confiable y no propenso a fallos. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
8 3. ¿Cuando usar y no usar un SE?¿ Cuando usar un SE ? EL problema puede ser resuelto usando conocimiento y/o experiencia El conocimiento debe ser claro, preciso y bien definido. El conocimiento debe ser colocado en forma explícita (conocimiento tácito). El conocimiento debe proporcionar soluciones satisfactoria. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
9 3. ¿Cuando usar o no usar un SE?¿ Cuando NO usar un SE ? Problemas de optimización. Cantidad de conocimiento inconmensurable Problemas basados en búsqueda (juegos inteligentes) Problemas basados en conocimiento no explícito. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
10 Se trata de apoyar al experto humano (quien toma decisión) 4. Aplicaciones de SE Recordar: Se trata de apoyar al experto humano (quien toma decisión) Se trata de criticar las decisiones del experto humano. Se trata de suplantar al experto humano Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
11 4. Aplicaciones de SE Industria: Identificación de materialesSistemas de detección de fallas Sistemas de clasificación Monitoreo y administración de la producción Control de sistemas críticos Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
12 4. Aplicaciones de SE Servicio: Diagnóstico de enfermedadesSegmentación Tutor inteligente Software Educativo Auditoria Control estratégico Alineamiento de presupuestos Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
13 5. Ventajas y DesventajasNo tiene capacidad de aprender. No tiene capacidad de generalizar conocimiento. No tiene capacidad de hacer analogías. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
14 5. Ventajas y DesventajasCoste reducido. El coste de poner la experiencia a disposición del usuario se reduce de manera considerable. A mayor uso menor costo. Peligro reducido. Los sistemas expertos pueden usarse en ambientes que podrían ser peligrosos para un ser humano. Experiencia Permanente. La experiencia es permanente y no depende de causas externas. Experiencia múltiple. El conocimiento de varios especialistas puede estar disponible de manera simultánea. Mayor confiabilidad. Al proporcionar una segunda opinión los sistemas expertos incrementan la confianza en que un especialista ha tomado la decisión correcta. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
15 5. Ventajas y DesventajasEl conocimiento que tiene es fácil de actualizar. Es capaz de utilizar grandes cantidades de conocimiento. Son fáciles de duplicar. Son consistentes. Son documentables. Explicación. El sistema experto puede explicar de forma clara y detalladamente el razonamiento que conduce a una conclusión aumentando la confianza. Respuesta rápida. Respuesta en tiempo real. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
16 5. Ventajas y DesventajasRespuestas sólidas, completas y sin emociones. El sistema experto siempre funciona a plena capacidad sin tener presión ni fatiga. Inteligente. El sistema experto puede actuar como un tutor inteligente, dejando que el estudiante ejecute programas de ejemplo y explicando el razonamiento del sistema. Base de datos inteligente. Los sistemas expertos pueden usarse para tener acceso a una base de datos en forma inteligente. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
17 Arquitectura Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
18 Arquitectura de los Sistemas ExpertosTópicos La Arquitectura y Funcionamiento La Base de Conocimiento. La Base de Hechos. El Motor de Inferencia. El Módulo de Adquisición del Conocimiento. El Módulo de Explicación La Interface Usuario. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
19 Arquitectura de los Sistemas Expertos 1. Arquitectura y FuncionamientoBase de Conocimiento Módulo de Explicación Módulo de Adquisición de Conocimiento Interfase Usuario Motor de Inferencia Base de Hechos Adquisición de Conocimiento Representación del Conocimiento Tratamiento del Conocimiento Utilización del Conocimiento Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
20 Arquitectura de los Sistemas Expertos 1. Arquitectura y FuncionamientoLos componentes principales de todo sistema experto son: La Base de Conocimiento. Es un repositorio en donde se almacena el conocimiento y la experiencia asociada al problema a resolver. La Base de Hechos. Es un repositorio temporal en donde se almacenan los hechos del problema a resolver. El Motor de Inferencia. Es el programa que tiene por objetivo resolver el problema, esto adquirido los hechos, usa la base conocimiento y algún mecanismo de inferencia, y con ello obtiene la solución al problema. Las componente importantes pero no indispensables de un sistema expertos son: El módulo de Interface de Usuario. A través del cual el usuario interactúa con el sistema El módulo de Adquisición de Conocimiento. A través del cual el responsable del conocimiento actualiza el conocimiento de la Base de Conocimiento. El módulo de Explicación. Este módulo tiene por finalidad explicar el raciocinio del sistema en la obtención de la solución al problema. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
21 Arquitectura de los Sistemas Expertos 1. Arquitectura y FuncionamientoEl usuario (quien usa el sistema), interactúa con el sistema experto a través del módulo de interfase de usuario. A través de este módulo, el usuario ingresa al sistema los hechos asociados a un problema y este le responde las conclusiones. Esto se consigue a través del motor de inferencia, quien a su vez interactúa con la Base de Conocimiento y la Base de Hechos. El usuario también puede solicitar información sobre como el sistema obtuvo sus conclusiones, esto se consigue gracias al módulo de explicación. La adquisición y actualización del conocimiento del sistema, lo realiza el responsable del conocimiento (que puede ser un experto o un usuario designado por la organización). Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
22 Arquitectura de los Sistemas Expertos 2. La Base de ConocimientoLa Base de Conocimientos de un Sistema Experto contiene el conocimiento y o experiencia de los expertos en un dominio o área del saber determinado. Una característica muy importante de los Sistemas Expertos es es que la base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver los problemas. De esta forma, cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente fácil añadir nuevas reglas, eliminar las antiguas, o corregir los existentes, sin necesidad de modificar el motor de inferencia. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
23 Arquitectura de los Sistemas Expertos 2. La Base de ConocimientoLa Base de Conocimiento está constituido de: Objetos y sus relaciones Situaciones particulares (meta – conocimiento, meta-reglas) Estrategias de resolución y sus condiciones (en algunos casos) Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
24 Arquitectura de los Sistemas Expertos 3. La Base de HechosLa base de hechos o base de datos es una memoria auxiliar que se utiliza para almacenar los datos asociado al problema que se desea resolver. En ella también se registra los resultados intermedios obtenido a lo largo del procedimiento de deducción. Al memorizar todos los resultados intermedios, conserva el vestigio de los razonamientos efectuados; por lo tanto, se puede utilizar explicar las deducciones y el comportamiento del sistema. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
25 Arquitectura de los Sistemas Expertos 3. La Base de HechosLa base de hechos es temporal, salvo necesidades del usuario, y depende exclusivamente de la situación estudiada. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
26 Arquitectura de los Sistemas Expertos 4. El Motor de InferenciaEl motor de inferencia (o mecanismo de inferencia) es la componente principal del SE cuya misión es obtener conclusiones mediante la aplicación del conocimiento abstracto (metodología de inferencias) sobre al conocimiento concreto (base de conocimiento) y los datos (base de hechos). La metodología de inferencia puede ser: Encadenamiento hacia delante (forward chaining, progresivo o deductivo) Encadenamiento hacia atrás (backward chaining, regresivo o inductivo) Redes Neuronales Artificiales Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
27 Arquitectura de los Sistemas Expertos 4. El Motor de InferenciaSi el motor de inferencia no puede obtener conclusión, el sistema podrá solicitar a través del modulo de adquisición de conocimiento más conocimiento o través del módulo de interfase con el usuario más hechos, a fin de obtener alguna conclusión válida. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
28 Arquitectura de los Sistemas Expertos 5Arquitectura de los Sistemas Expertos 5. El Módulo de Adquisición de Conocimiento Es un subsistema que ayuda a la estructuración e implementación del conocimiento en la Base de Conocimiento. Este módulo permite que se puedan añadir, eliminar o modificar elementos de conocimiento en el sistema experto. El proceso de construir la Base de Conocimiento (transferir conocimiento del experto para el SE) es conocido como cognimática; las personas que realizan este proceso son llamados de cognimáticos o ingenieros de conocimiento. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
29 Arquitectura de los Sistemas Expertos 5Arquitectura de los Sistemas Expertos 5. El Módulo de Adquisición de Conocimiento Algunas Consideraciones: 1. El conocimiento se debe introducirse de la forma más sencilla posible. 2. Posibilidades de representación clara de todas las informaciones contenidas en una base de conocimientos. 3. Comprobación automática de la sintaxis. 4. Posibilidad constante de acceso al lenguaje de programación. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
30 Arquitectura de los Sistemas Expertos 6. El Módulo de ExplicaciónEs un subsistema que tiene por objetivo dar una explicación de las conclusiones obtenidas o de las acciones ejecutadas por el Sistema Experto. Está diseñado para aclarar al usuario la línea de razonamiento seguida en el proceso de inferencia. Si el usuario pregunta al sistema cómo ha alcanzado una conclusión, éste le presentará la secuencia completa de reglas usada. Esta posibilidad de explicación es especialmente valiosa cuando se tiene la necesidad de tomar decisiones importantes amparándose en el consejo del sistema experto. El subsistema de explicación también puede usarse para depurar el sistema experto durante su desarrollo. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
31 Arquitectura de los Sistemas Expertos 7. La Interfase de UsuarioTambién denominado de sistema de consulta, es la componente que gobierna el dialogo entre el usuario y el sistema. Su objetivo es permitir un dialogo casi–natural con la máquina. El interfaz de usuario permite que el usuario pueda: describir el problema al sistema experto, interpretar sus preguntas, los comandos y la información ofrecida. Esta componente posibilita que la respuesta proporcionada por el sistema sea inteligible para el interesado. También puede solicitar más información si le es necesaria al sistema experto. En algunos sistemas se utilizan técnicas de tratamiento del lenguaje natural para mejorar la comunicación entre el usuario y el sistema experto. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
32 Requisitos o Características de la interfazArquitectura de los Sistemas Expertos 7. La Interfase de Usuario Requisitos o Características de la interfaz El aprendizaje del manejo debe ser rápido. Debe evitarse en lo posible la entrada de datos errónea. Los resultados deben presentarse en una forma clara para el usuario. Las preguntas y explicaciones deben ser comprensibles. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
33 Taxonomía Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
34 Taxonomía de Sistemas ExpertosExisten varias formas de clasificar a los sistemas expertos: [Henao 2002] Por su funcionalidad o propósito. Por su estado de evolución. Por la forma de interacción con el usuario. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
35 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Esta clasificación es de acuerdo con la función que él realiza o el propósito para el cual fue desarrollado: Descubrimiento Diagnóstico Diseño Interprete Monitorización Planeación Descripción Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
36 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Descubrimiento: Sistemas que generan nuevos conceptos a partir de reglas y principios consistentes y permiten encontrar nuevas relaciones entre los datos. - PROSPECTOR: Para el descubrimiento de yacimientos de molibdeno. - AM: Para la formulación de conceptos y conjeturas sobre la teoría de números. - META-DENDRAL: Para el descubrimiento de reglas sobre la conducta de algunos compuestos en el espectrómetro de masas. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
37 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Diagnóstico: Para detectar las causas del mal funcionamiento de un sistema. - MYCIN: Diagnostica las causas de enfermedades infecciosas en un paciente. - ACE: Localiza las causas de fallas en redes telefónicas. - REACTOR: Encuentra las fallas en los sistemas de enfriado de reactores nucleares. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
38 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Diseño: Con el objetivo de configurar estructuras a partir de unas condiciones iniciales. - XCON: Configura sistemas computarizados. - SECS: Genera complejos compuestos químicos. - PALLADIO: Diseña y prueba nuevos circuitos de tipo VLSI. detectar las causas del mal funcionamiento de un sistema. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
39 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Interprete: Sistema que infiere el significado de los datos (analiza los datos), es decir, sirve para determinar qué está sucediendo en un momento dado. - PROSPECTOR: Interpreta datos de muestras de material mineral para detectar yacimientos. - REACTOR: Interpreta los datos en tiempo real, de reactores nucleares. - CRYSALIS: Interpreta los datos de un mapa de densidad de electrones para inferir la estructura tridimensional de una proteína. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
40 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Monitorización: Su objetivo es comparar el estado de un proceso real con el estado esperado, para detectar desviaciones y sugerir las correcciones. - YES/MVS: Controla y hace la monitorización de las funciones de un sistema operativo. - VM: Hace la monitorización del estado de un paciente en una sala de cuidado intensivo. - REACTOR: Hace la monitorización de los procesos de un reactor nuclear. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
41 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Planeación: Para plantear la mejor acción a realizar para alcanzar un objetivo. - THE UNDERWRITING ADVISOR: Ayuda al asesor de seguros en la determinación de si otorgar o no una póliza y en qué condiciones. - PLANNER: Hace la planeación estratégica de una organización. - KNOBS: Asiste en la planeación táctica de ataques aéreos. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
42 Taxonomía de Sistemas Expertos1. Taxonomía – Funcionalidad Predicción: Sistemas que infieren las probables consecuencias de una situación, utilizando modelos de simulación. - PLANT: Estima los daños potenciales de plagas sobre plantíos. - I&W: Predice los posibles lugares de conflictos armados. - PTRANS: Estima los requerimientos de manufactura de algún producto. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
43 Taxonomía de Sistemas Expertos2. Taxonomía – Evolución del Sistema Esta clasificación es de acuerdo con el grado de evolución que el sistema ha tenido. Es decir, que dependiendo de su propósito, cubrimiento y del conocimiento que maneja se tienen diversos estados del sistema [Waterman 86]: - Prototipo de demostración - Prototipo de investigación - Prototipo de campo - Modelo de producción - Sistema comercial Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
44 Taxonomía de Sistemas Expertos2. Taxonomía – Evolución del Sistema Prototipo de demostración: El sistema soluciona una porción del problema, sugiriendo que el enfoque es viable y el desarrollo del sistema es alcanzable. Es pequeño y se utiliza como estrategia de convencimiento de la utilidad del SBC. Prototipo de investigación: El sistema presenta un desempeño aceptable del problema pero puede ser frágil debido a que no se ha probado y revisado completamente. Es de tamaño mediano. Prototipo de campo: El sistema muestra un buen desempeño y ha sido revisado en el entorno del usuario. Es de tamaño que varía de mediano a grande. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
45 Taxonomía de Sistemas Expertos2. Taxonomía – Evolución del Sistema Modelo de producción: El sistema exhibe muy buena calidad, desempeño, rapidez y una ejecución eficiente en el entorno del usuario. Son grandes programas implementados en lenguajes eficientes. Sistema comercial: El sistema es un modelo de producción que está siendo usado regularmente en una base comercial. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
46 Taxonomía de Sistemas Expertos3. Taxonomía – Interacción con el Usuario Esta clasificación se refiere a la forma como el SBC interactúa con el usuario en términos de compartir tareas y responsabilidades [Guida 94]: Sistema soporte: Sistema prescriptivo Sistema autónomo: Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
47 Taxonomía de Sistemas Expertos3. Taxonomía – Interacción con el Usuario Sistema soporte: Es un SBC que puede darle soporte experto al usuario. Este sistema puede actuar en diferentes roles, como asistente, colega crítico, segunda opinión, asesor, consultor tutor, etc. Ofrece conocimientos y competencias pero no prescribe soluciones o decisiones. Actúa como un ayudante, sin la intención de reemplazar al experto. Sistema prescriptivo: Es un SBC que puede guiar, restringir y controlar la actividad de un usuario en la ejecución de una tarea compleja. Mejora la calidad y el tiempo de respuesta sin reemplazar a los expertos. Este sistema tiene la autoridad para mejorar los objetivos, restricciones, soluciones o decisiones. Sistema autónomo: No interactúa con ningún humano ya que se utiliza para reemplazarlos Módulo 1 - Las Mejores Prácticas de Ingeniería de Software
48 Taxonomía de Sistemas ExpertosReferencias: [Waterman 86] D. Waterman. A Guide to Expert Systems. Addsison-Wesley Publishing Company. The United States of America p. [Guida 94] G. Guida, C. Tasso. Design and Development of Knowledge Based Systems. England : John Wiley & Sons p. [Henao 2002] M. Henao Calad. CommonKADS-RT: Una Metodología para el Desarrollo de Sistemas Basados en el Conocimiento de Tiempo Real. Tesis Doctoral, Universidad Politécnica de Valencia 2002. Módulo 1 - Las Mejores Prácticas de Ingeniería de Software