Los sistemas expertos (SE) se emplean para ejecutar una variedad muy complicada de tareas que en el pasado solo podían llevarse a cabo por un número limitado de personas expertas. A través de la aplicación de las técnicas de Inteligencia Artificial los SE captan el conocimiento básico que permite a una persona desempeñarse como un experto frente a problemas complicados. La característica más fascinante de los Sistemas Expertos que los distingue de la mayoría de las aplicaciones tradicionales es su capacidad para enfrentar problemas que constituyen el reto del mundo real, por medio de la aplicación de procesos que reflejan el discernimiento y la intuición humana. Dato, Información, Conocimiento Antes de definir el término SISTEMA EXPERTO es necesario recordar que la inteligencia artificial ligaba íntimamente los términos inteligencia y conocimiento; también mencionamos que la cantidad de conocimientos es lo que otorgaba, en gran parte, el nivel de inteligencia de los seres vivos. Entonces es necesario e indispensable reconocer…….¿que es el conocimiento? ¿Que es el conocimiento? Existen corrientes filosóficas, ciencias como la gnoseología y muchos científicos que se encarga de estudiar las fuentes, tipos y formas de adquirir conocimiento. Nosotros no entraremos a descubrir ni tratar estos temas a fondo, nos concentraremos en aspectos prácticos que nos ayuden a comprender términos muy relacionados como: DATO, INFORMACION, CONOCIMIENTO para ver su aplicación en la vida diaria. Dato Piense en una fecha, un número, un nombre cualquiera…….¿Ud. cree que es un dato? Efectivamente, de la forma más simple podemos decir que un dato es un hecho, que individualmente carece de valor para una persona. Por ejemplo el número 7 carece de valor individualmente, la fecha de cumpleaños del Presidente de la República del Perú; carecen de valor porque individualmente no significa nada para un tomador de decisiones frente a un problema, pues no generan acciones concretas Información El concepto de información nace cuando un dato o conjunto de datos es de utilidad para un tomador de decisiones, es decir cuando los datos son interpretados y útiles para una persona. Por ejemplo, el color rojo en un semáforo constituye una información ya que tiene una interpretación objetiva y universal para un grupo de personas-los automovilistas- y les sirve como apoyo para tomar una decisión: en este caso detener el automóvil. Otro ejemplo sería la fecha de cumpleaños de un familiar ya que llevaría a una persona a tomar una acción como comprarle un regalo, darle una serenata, etc., es claro que un dato se convierte en información cuando le es útil a una persona o tomador de decisiones. En el caso de una empresa, las utilidades, ganancias o pérdidas de una empresa serían información para los ejecutivos o la alta dirección para tomar decisiones y generar cursos de acción. Conocimiento El conocimiento, en contraste con los conceptos de datos e información, sugiere alternativas de acción o guías de actuación específicas asociadas a la información. Aquí podemos definir al conocimiento como el conjunto de reglas, hechos, verdades, razones y los datos heurísticos recopilados por expertos, que han resultado y resultan útiles en la resolución de problemas Por ejemplo, el sueldo mensual de un cliente del Banco de Crédito le permitirá al analista de créditos de dicho banco determinar el monto hasta el cual se le puede dar un préstamo al cliente y un curso de acción correspondiente. Pirámide del conocimiento Historia de los Sistemas Expertos Las investigaciones de los sistemas expertos comenzaron a finales de 1950. Las investigaciones lo realizaron en el área de los lenguajes para el razonamiento simbólico para procesar listas, así el primer lenguaje simbólico para procesamiento de listas IPL, se utilizó ampliamente en las primeras aplicaciones de Inteligencia Artificial. Actualmente en Estados Unidos el LISP es uno de los más populares. La investigación específica en SE, empezó a mediados de los años 60. Varios sistemas se desarrollaron entre 1965 y 1970, aunque estos eran de alcance limitado y orientado a juegos o temas académicos e idealizados. Historia de los Sistemas Expertos Definición Un Sistema Experto es una aplicación informática que soluciona problemas complicados que de otra manera exigiría ampliamente la pericia humana. Para lograr esto se simula el proceso de razonamiento humano, mediante la aplicación específica del conocimiento o inferencia. La finalidad principal de los sistemas expertos es la correcta reproducción del comportamiento de un experto humano en su dominio de competencia. Internamente un sistema experto ideal se puede caracterizar como un sistema que comprende: Amplio conocimiento específico a partir del campo de interés. Aplicación de técnicas de búsqueda. Soporte para análisis heurístico. Habilidad para inferir nuevos conocimientos a partir de conocimientos ya existentes. Procesamiento de símbolos. Capacidad para explicar su propio razonamiento El papel del conocimiento en Sistemas Expertos Un experto muestra 2 formas distintas de pericia
Un conocimiento general (procedimiento básico) que
es común en muchas áreas. Un conocimiento experto es el conocimiento de un área específica. Esta observación conduce a un principio que es fundamental en el diseño de SE. Los expertos humanos Un experto humano es una persona que es competente en un área determinada del conocimiento o del saber. Un experto humano es alguien que sabe mucho sobre un tema determinado y que puede dar un consejo adecuado. Esta experiencia sólo se adquiere tras un largo aprendizaje y a base de mucha experiencia.1 Los expertos humanos tienen las siguientes características generales: Características Son personas raras, tanto por su escaso número como su comportamiento poco “ortodoxo” y e “incomprensible” frente a los problemas con los que se enfrentan. Son caros por dos motivos: por su escaso número y por necesitar un largo periodo de aprendizaje. No están siempre disponibles, pues son humanos y cuando se jubilan o mueren se llevan con ellos todos sus conocimientos. Es por eso que tradicionalmente están acompañados de un “aprendiz”. Hay expertos que tienen mal carácter, son informales o poco comunicativos, lo que a veces les hace antipáticos. Diferencias entre un experto y un no experto humano Diferencias entre un SE y un programa tradicional Diferencias entre un sistema experto y un experto humano Ventajas de los sistemas expertos Están siempre disponibles a cualquier hora del día y de la noche, y de forma interrumpida. Mantiene el humor. Pueden duplicarse (lo que permite tener tantos SE como se necesiten). Pueden situarse en el mismo lugar donde sean necesarios. Permiten tener decisiones homogéneas efectuadas según las directrices que se les fijen. Son fáciles de reprogramar. Pueden perdurar y crecer en el tiempo de forma indefinida. Pueden ser consultados por personas o otros sistemas informáticos. Desventajas de los sistemas expertos El conocimiento es difícil de extraer de los expertos humanos. La aproximación de cada experto a la situación evaluada puede ser diferente. Tienen una noción muy limitada acerca del contexto de problema, no pueden percibir todas las cosas que un experto humano puede apreciar de una situación. Pueden existir decisiones que sólo son de competencia para un ser humano y no una máquina. No saben como subsanar sus limitaciones, no son capaces de trabajar en equipo o investigar algo nuevo. Son muy costosos de desarrollar y mantener. Limitaciones El desarrollo de un SE complejo puede ser difícil, costoso y requerir de tiempo, por lo tanto, es importante asegurarse de que los posibles beneficios valen el esfuerzo y que las diversas características del SE se equilibran, en términos de costo, control y complejidad. No se han usado o probado en forma extensa. Dificultad de uso. Están limitados a problemas relativamente limitados. No pueden enfrentar con facilidad a conocimientos Posibilidad de error. Dificultad de mantenimiento. Pueden tener costo altos de desarrollo. Ocasionan preocupaciones legales y éticas. Forma en que los usuarios interactúan con los SE El usuario de un SE puede estar operando en cualquiera de los siguientes modos: VERIFICADOR. El usuario intenta comprobar la validez del desempeño del sistema. TUTOR. El usuario da información adicional al sistema o modifica el conocimiento que ya está presente en el sistema. ALUMNO. El usuario busca rápidamente desarrollar pericia personal relacionada con el área específica mediante la recuperación de conocimientos organizados y condensados del sistema. CLIENTE. El usuario aplica la pericia del sistema a tareas específicas reales. Sistema experto VS. sistema clásico Tipos de Sistemas Expertos Principalmente existen tres tipos de sistemas expertos: Basados en reglas. Basados en casos o CBR (Case Based Reasoning- Razonamiento Basado en Casos). Basados en redes bayesianas. En cada uno de ellos, la solución a un problema planteado se obtiene: Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación. Aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema. Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes. Estructura básica de un s.e. Un Sistema Experto está conformado por: Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con el experto. Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis. Motor de inferencia: Modela el proceso de razonamiento humano. Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión. Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el lenguaje natural. Estructura básica de un S.E. Lenguajes utilizados en la construcción de S.E. LISP Acrónimo de lenguaje de Procesamiento de Listas, fue inventado por John McCarthy y su equipo en la Universidad de Stanford a finales de 1950. Originalmente fue creado como un modelo computacional de procesos matemáticos, reflejando el rigor de las propias matemáticas.7 Actualmente está diseñado para manejar símbolos matemáticos (variables), por lo que es utilizado perfectamente para la investigación en IA, donde un símbolo puede representar cualquier cosa. LISP tiene dos características principales que lo hacen sobresalir de entre los demás lenguajes para IA; primero, es altamente flexible, es decir, es posible escribir un programa LISP para producir cualquier comportamiento deseable de la computadora; segundo, es indefinidamente extensible, lo que significa que si como programador siente que a LISP le falta alguna característica, puede escribir un programa LISP que provea dicha característica. Clips Es otra herramienta para el desarrollo de S.E. que ofrece un entorno completo para su construcción basado en reglas y objetos. CLIPS está siendo utilizado por numerosos usuarios como la NASA (que es su creadora), muchas universidades y empresas. CLIPS viene de (C Language Integrated Production System) y como su nombre indica uno de los objetivos que buscaban sus creadores era la fácil integración con programas en C. Así, al darle una portabilidad con programas en lenguaje C, las universidades que lo usan pueden trasladar fácilmente sus aplicaciones al entorno del agente. Prolog Prolog es un lenguaje de programación que se centra alrededor de un conjunto pequeño de mecanismos, incluyendo reconocimiento de patrones, estructuras de datos basadas en árboles y bactraking (retroceso) automático. Este conjunto pequeño constituye una estructura de programación sorprendentemente poderosa y flexible. Prolog es ideal para resolver problemas que involucren objetos – en particular objetos estructurados – y relaciones entre ellos. Por ejemplo, un ejercicio muy sencillo en Prolog es expresar relaciones espaciales, de la forma: “la esfera azul detrás de la verde”.10 Características de importantes de Prolog Sentencias de asignación. Sentencias goto. Sentencias if – then – else. Ciclos do, ciclos for y ciclos while. Sin embargo, Prolog compensa tales características con las siguientes, las cuales lo hacen un lenguaje poderoso para la representación del conocimiento: Predicados que expresan relaciones entre entidades. Un método para definir predicados mediante reglas de aserción y hechos. Un método para hacer preguntas para comenzar cómputos. Un procedimiento de búsqueda hacia atrás para evaluar metas. Estructura de datos que pueden simular registros estilo Pascal o listas estilo Lisp. Un reconocedor de patrones que construye y analiza las estructuras de datos. Un conjunto de predicados preconstruidos para aritmética, entrada y salida y servicios de sistemas. Smalltalk Fue el primer lenguaje de programación que fue diseñado para basarse exclusivamente en objetos. Fue originalmente inventado por Alan Kay en Xerox PARC en 1972, pero mucha gente le ha hecho importantes contribuciones al diseño del lenguaje. Este lenguaje se ha convertido en una opción muy popular en diversos campos como los videojuegos y la Inteligencia Artificial. Virtualmente todo lo que existe en un sistema Smalltalk es una instancia de una clase particular de objeto y generalmente puede haber tantas instancias como se deseen. Esto significa que se pueden tener cualquier número de instancias de cualquier característica del sistema activas al mismo tiempo. C y C++ C es uno de los lenguajes de programación más populares en uso. Proporciona un esqueleto estructurado sin límites para la creatividad del programador; una de las ventajas de C sobre otros lenguajes usados para investigación en IA es que es un lenguaje estructurado y además, si su aplicación no requiere usar la técnica Backtracking ni los recursos de una base de datos, estos no se convierten en un peso extra que debe soportar la aplicación. En cuanto a C++ se puede decir que es una extensión orientada a objetos de C, la cual permite utilizar la metodología orientada a objetos para la creación de diversos sistemas y programas, incluso los de IA. Herramientas y Shells utilizados en la construcción de S.E. Después de que muchos SE se construyeron así, quedo claro que estos sistemas estaban construidos como un conjunto de representaciones declarativas (reglas) combinado con un intérprete de estas representaciones; también quedo claro que era posible separar el intérprete del conocimiento específico del dominio y por lo tanto se podían crear sistemas que podían ser usados para construir nuevos SE agregando simplemente conocimiento correspondiente al dominio del nuevo problema. Herramientas y Shells utilizados en la construcción de S.E. Así nacieron los shells los cuales sirven como base para muchos SE, ya que proporcionan mucha flexibilidad en representación del conocimiento y razonamiento, así como adquisición de conocimiento. 16 A continuación se mencionan algunos de los principales shells de SE, que como ya se mencionó, son SE sin su base de conocimiento, es decir, se pueden utilizar de forma genérica para cualquier tema. MEDTOOL Para desarrollar Sistemas Expertos Gold Works II Esta herramienta de programación creada por Gold Hill Computers Inc. se ejecuta bajo LISP y utiliza la metodología orientada a objetos. Este programa corre en computadoras IBM compatibles, Macintosh y estaciones de trabajo Sun. Las características que realzan a este programa incluyen una herramienta dinámica de gráficos que permite la creación de imágenes activas así como también permite desarrollar interactivamente interfaces gráficas dinámicas sin tener que escribir ni una línea de código; también se incluyen visores orientados a gráficos para marcos, reglas y afirmaciones (aserciones). Se integra fácilmente con C. Art Es una herramienta que tiene un número de características poderosas para el desarrollo de SE, por ejemplo, permite la construcción de varios escenarios o mundo hipotéticos, los cuáles pueden ser explorados automáticamente para determinar su deseabilidad. De esta forma varios escenarios alternos pueden ser explorados para probar un plan estratégico dado con un conjunto de sentencias dado. La característica de esquema es otro aspecto de este programa el cual provee una representación orientada a objetos para sistemas resolutores de problemas basados en conocimientos. Loops LOOPS fue desarrollado en el Xerox PARC en 1983. Una de las ideas centrales en el diseño del ambiente LOOPS es proveer un sistema de programación de IA que pueda soportar una estructura de múltiples paradigmas que permitan tantas opciones de entre paradigmas de programación como sea posible. La versión actual soporta cuatro paradigmas de programación principales: el paradigma orientado a objetos, el paradigma basado en reglas, el paradigma orientado a accesos y el paradigma procedural normal. Como cualquier otro sistema de programación orientado a objetos, LOOPS permite la creación de jerarquías de clases e instancias de dichas clases. Kee KEE, acrónimo de Ambiente de Ingeniería del Conocimiento, de IntelliCorp es una de las herramientas de desarrollo orientados a objetos de SE más avanzada en la actualidad. Hoy en día tiene un considerable uso en esfuerzos mayores de desarrollo tanto en el sector comercial como en el gobierno. Las funciones en KEE se implementan como extensiones de LISP, de manera que todo el vocabulario del lenguaje LISP puede usarse en conjunción con las funciones predefinidas. El sistema entero esta construido en una estructura de objetos, que en el ambiente son llamados unidades. Humble Humble es un Shell orientado a objetos para SE escrito en Smalltalk que combina reglas con encadenamiento hacia delante y hacia atrás con representación de objetos, paso de mensajes y uso de objetos. Las reglas de sintaxis usadas en Humble son una versión modificada de la sintaxis de Smalltalk. A diferencia de la mayoría de los shells, Humble tiene la capacidad de construir bloques if – then – else. La característica principal de Humble es que las reglas operan sobre entidades. Las entidades son un importante tipo de objeto que tienen una representación específica. En las aplicaciones las entidades se categorizan en un número de tipos diferentes los cuáles son definidos por el desarrollador o por el Ingeniero de conocimientos. Emycin EMYCIN es acrónimo de Empty MYCIN (MYCIN vacío); este shell fue creado a partir de MYCIN, uno de los SE más exitosos en la época de los setentas. Se construyó con el fin de que fuera usado para otros fines, además del diagnóstico de enfermedades en la sangre (objetivo para el cual fue creado). Este shell utiliza un lenguaje, llamado ARL, el cual es una notación de Algol y provee facilidades para monitorear el comportamiento de reglas. Sin embargo es difícil distinguir diferentes tipos de conocimiento (no se puede hacer diferencia entre conocimiento de control y conocimiento a cerca de los valores esperados de los parámetros), por lo que el agregar una nueva regla también se vuelve un proceso complicado. Aplicaciones de los Sistemas Expertos. Factores que justifican el desarrollo de un sistema experto: El coste para formar nuevos expertos es muy alto. Existe el riesgo de perder los conocimientos y la experiencia en posesión de los expertos. Los expertos reconocidos que resuelven ese tipo de problemas son escasos. Es conveniente disponer de expertos sin restricciones de tiempo y lugar. Los expertos tienen que trabajar en ambientes hostiles. Aplicaciones de los Sistemas Expertos.
Tipo de problemas que hacen apropiado el desarrollo de un
sistema experto. Las tareas requieren principalmente tratamiento y razonamiento simbólico. Las tareas admiten el uso de métodos heurísticos. Las tareas no son demasiado fáciles. Las tareas tienen un valor eminentemente práctico. Las tareas tienen un tamaño razonable, esto es, el número de conceptos que deben ser manejados es limitado y no requiere conocimientos de muchas áreas diferentes. Campo de aplicaciones de los SE. Sistemas de ayuda a la toma de decisiones. Se trata de sistemas que a partir de una problemática determinada sugieren la solución que consideran más idónea a partir del conocimiento incluido en el sistema. En la actualidad, en España se procede al desarrollo del Sistema de Información Normativo Aplicado al Control (SINAC) fruto de la colaboración entre la Intervención General de la Administración del Estado y la Dirección General de Informática Presupuestaria. Su función primordial consiste en ayudar en la fiscalización y control de la actividad económica del Sector Público. Otro ejemplo significativo podría ser la Metodología de Análisis y Gestión de Riesgos de los sistemas de Información de las AdminisTraciones públicas(MAGERIT), elaborada por un equipo interdisciplinar del Comité Técnico de Seguridad de los Sistemas de Información y Tratamiento Automatizado de Datos Personales. Campo de aplicaciones de los SE Configuración. Se encargan de la selección y planificación de los componentes que se necesitan en un proceso determinado. Un caso típico son los sistemas que ayudan a configurar los equipos físicos a partir de los componentes existentes y de las restricciones establecidas. Diagnóstico. Se trata de sistemas que a partir de unos "síntomas" determinan las causas que lo producen. Ejemplo de ellos son los sistemas basados en el conocimiento de diagnóstico de enfermedades o de averías. Interpretación y Análisis. Sirven para tratar grandes volúmenes de información, interpretarla, dar un informe explicativo y sugerir las acciones a tomar. Ejemplo de ellos pueden ser los sistemas de evaluación de resistencia de estructuras frente a terremotos o sistemas de supervisión de procesos industriales. Campo de aplicaciones de los SE Monitorización. En algunas situaciones se considera un caso particular de sistemas de interpretación y análisis, pero debido a su frecuente uso se suelen considerar aparte. Estos sistemas suelen encargarse de monitorizar procesos suministrando una salida de control como respuesta. Existen muchos ejemplos de monitorización de procesos en factorías, plantas químicas, centrales nucleares, etc. Son sistemas que deben funcionar en tiempo real. Planificación. Son sistemas que establecen las etapas y recursos necesarios para alcanzar un determinado objetivo. Ejemplo de ellos podría ser un sistema basado en el conocimiento de planificación de trabajos en una factoría. Interfaces inteligentes. Hacen de puente entre las personas y equipos complejos y de difícil utilización. Caso típico son los interfaces inteligentes de acceso a base de datos. Campo de aplicaciones de los SE Diseño. Son aquéllos que efectúan la planificación o trazado de un objeto o sistema en base a los requisitos especificados. Suelen ser capaces de dar diferentes soluciones de forma que el usuario pueda elegir aquélla que le convenga. Ejemplo de este tipo son los sistemas de ayuda al diseño de puentes, presas, microcircuitos electrónicos, etc. Pues el ámbito de aplicación de los sistemas basados en el conocimiento es muy amplio, el siguiente cuadro indica algunas de las áreas en las que se han aplicado sistemas basados en el conocimiento y el tipo de problema que abordan. Conclusiones Actualmente el duro, difícil y cambiante mercado competitivo se vuelve más complejo por la gran diversidad de información que se ven obligados a almacenar y analizar, razón por la cual las empresas se ven en la necesidad de recurrir a poderosas y/o robustas herramientas o sistemas que les sirvan de soporte a la hora de tomar decisiones. De esta forma estos inteligentes, precisos y eficientes sistemas son adoptados por más organizaciones, en las cuales se convierten y/o transforman en una importante estrategia de negocio. Por otra parte es importante mencionar que estos seguirán siendo usados en los todos y cada una de las áreas y/o campos donde los expertos humanos sean escasos. Por consecuencia de lo anterior estos sistemas son utilizados por personas no especializadas, por lo cual el uso frecuente de los (SE) les produce y/o genera conocimiento a los usuarios.