COMPONENTES DE UN SISTEMA EXPERTO.

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
COMPONENTES DE UN SISTEMA EXPERTO. por Mind Map: COMPONENTES DE UN SISTEMA EXPERTO.

1. Base de conocimiento

1.1. Base de conocimiento: Se codifica según una notación específica que incluye reglas, predicados, redes semánticas y objetos.

1.2. La arquitectura de un Sistema Experto: Es la base de conocimientos, un programa de inferencia o también llamado Motor de inferencias.

1.3. Una base de conocimiento: Puede almacenar, además de hechos, un conjunto de reglas que se sirven de esos hechos para obtener información que no se encuentra almacenada de forma explícita

1.4. Gestor de bases de datos (DBMS: Database Management System) Sistema gestor de bases de conocimiento (KBMS: Knowledge Base Management System).

1.5. El motor de inferencia

1.5.1. El motor de inferencia: es el que combina los hechos y las preguntas particulares, utilizando la base de conocimiento, seleccionando los datos y pasos apropiados para presentar los resultados.

1.5.1.1. Componentes detallados de un Sistema Experto

1.5.1.1.1. Subsistema de control de coherencia: Este componente previene la entrada de información incoherente en la base de conocimiento. Subsistema de adquisición de conocimiento: Se encarga de controlar si el flujo de nuevo conocimiento a la base de datos es redundante. Sólo almacena la información que es nueva para la base de datos. Motor de inferencia: se encarga de obtener conclusiones comenzando desde el conocimiento abstracto hasta el conocimiento concreto. Si el conocimiento inicial es muy poco, y el sistema no puede obtener ninguna conclusión, se utilizará el subsistema de demanda de información.

1.5.1.1.2. Subsistema de demanda de información: Completa el conocimiento necesario y reanuda el proceso de inferencia hasta obtener alguna conclusión válida. El usuario puede indicar la información necesaria en este proceso ayudado de una interfase de usuario (la cual facilita la comunicación entre el Sistema Experto y el usuario). Subsistema de incertidumbre: almacena la información de tipo incierto y propaga la incertidumbre asociada a esta información. Subsistema de ejecución de tareas: Permite realizar acciones al Sistema Experto basadas en el motor de inferencia. Subsistema de explicación: Este componente entra en ejecución cuando el usuario solicita una explicación de las conclusiones obtenidas por el SE. Esto se facilita mediante el uso de una interfase.

1.5.1.1.3. Estructura de un sistema experto

1.5.1.2. Requerimientos para un Sistema Experto.

1.5.1.2.1. Se determinar si se comenzará el SE desde cero o se utilizará un shell que es un SE sin la base de conocimientos. Si se opta por usar el shell se debe elegir el que más se adecue al objetivo del SE que se desea construir o si se opta por comenzar desde cero, se deberá entonces determinar qué metodología utilizar. Se debe conocer el equipo de gente necesario, después los métodos que utiliza ese equipo de gente y por último cómo prueban y construyen prototipos de software para terminar en el sistema final.

1.5.1.2.2. Componente del equipo dentro del desarrollo

2. Construcción de las principales partes de un SE

2.1. Son la base de conocimiento y el motor de inferencia. La metodología tradicional se enfoca principalmente a la construcción de dichos componentes. La base de conocimiento: es una base de datos que posee una información y unas reglas específicas sobre una materia o tema determinado. La base de conocimiento se puede ver como una lista de objetos con sus reglas y atributos asociados.

2.2. El motor de inferencia. Para construir un motor de inferencia, existen tres métodos básicos: encadenamiento hacia adelante, encadenamiento hacia atrás y reglas de producción

2.3. Método de encadenamiento hacia delante

2.3.1. A este método se le llama conducido por datos, porque el motor de inferencia utiliza la información que el usuario le proporciona para moverse a través de una red de operadores AND y operadores OR hasta que encuentra un punto terminal que es el objeto. En resumen, el sistema de encadenamiento hacia delante construye un árbol desde las hojas hasta la raíz.

2.4. Método de encadenamiento hacia atrás

2.4.1. Un motor de inferencia de encadenamiento hacia atrás comienza con una hipótesis (objeto) y pide información para confirmarlo o negarlo. A este método se le llama conducido por objetos porque el SE empieza con un objeto e intenta verificarlo. En resumen, el encadenamiento hacia atrás poda un árbol, lo cual es lo contrario al método anterior, en el cual se construye un árbol.

2.5. Método de reglas de producción

2.5.1. es una mejora al método de encadenamiento hacia atrás. La teoría operativa general es que el sistema pide como información aquella que elimine la mayor incertidumbre posible, el sistema no puede determinar exactamente qué información eliminará una mayor incertidumbre, los sistemas de reglas de producción requieren que la base de conocimientos contenga no sólo la información objeto - atributo, sino además un valor cuantificador, lo que hace aun más difícil la construcción de la base de conocimientos.

3. Metodologías para la construcción de Sistemas Expertos.

3.1. Riesgos: • No existen implementaciones similares que puedan servir de orientación al encargado del desarrollo en casi la totalidad de los casos. • En muchos puntos, los requisitos necesarios están esbozados con muy poca precisión. Un método efectivo es la implementación de un prototipo de Sistema Experto que permita llevar a cabo las funciones más importantes de éste, aunque con un esfuerzo de desarrollo considerablemente inferior al de una implementación convencional

3.2. Metodología de Prototipos.

3.3. Metodología Orientada a Objetos.

3.3.1. Es un tipo de programación que provee una manera de modularizar programas estableciendo áreas de memoria particionadas para datos y procedimientos, que pueden ser usadas como plantillas para crear copias de tales módulos conforme se requieran. La OOP tiene varias propiedades, entre los cuales destacan

3.3.1.1. • Abstracción. Permite enfocarse en la solución general del problema, sin preocuparse de los detalles. • Encapsulación. Es el concepto de que un objeto debería tener separada su interfaz de su implementación. Es decir, un objeto es visto como una “caja negra”. • Polimorfismo. Significa que un objeto se puede comportar de diversas maneras, dependiendo del contexto en el que se encuentre. • Herencia. Significa que se pueden crear clases que “hereden” el comportamiento de una o más clases padre; y que además añadan su propio comportamiento.

3.3.1.1.1. Esta metodología tiene diversas ventajas, entre las cuales destaca el hecho que cualquier modificación o mantenimiento que se le quiera realizar a un determinado componente no afectará al otro y viceversa. Tello propone crear especializaciones o jerarquías de clases (usando herencia) que incluyan métodos que permitan a los objetos modificarse a sí mismos, logrando con esto que un SE aprenda por sí mismo, modificando su base de conocimiento sin modificar los demás componentes.

3.4. Lenguajes utilizados para la construcción de Sistemas Expertos.

3.4.1. LISP.

3.4.1.1. 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 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 y hacer que ese programa forme parte de su LISP personal. Listas y Átomos. La estructura más importante es la lista. Los átomos pueden subordinarse a cualidades. La Función. Cada función LISP y cada programa LISP tienen estructura de lista. Los programas no pueden distinguirse sintácticamente de los datos. LISP ofrece sus propias funciones básicas. Forma de Trabajo. LISP es un lenguaje funcional. Ofrece la posibilidad de realizar definiciones recursivas de funciones. La unión de procedimientos se realiza de forma dinámica, es decir en plena ejecución, no como en otros lenguajes de programación. El sistema realiza automáticamente una gestión dinámica de memoria. Los átomos son números, cadenas de caracteres o símbolos. Un símbolo puede tener varios valores, al igual que una variable en otros lenguajes de programación, como por ejemplo un número, o también puede ser el nombre de una función, o incluso ambos. Además a un símbolo se le pueden subordinar cualidades, que además del valor del símbolo, contienen información adicional. Estas cualidades también reciben el nombre de atributos.

3.4.1.1.1. Componentes de un sistema LISP

3.4.1.2. CLIPS es otra herramienta para el desarrollo de SE que ofrece un entorno completo para su construcción basado en reglas y objetos

3.4.1.2.1. 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. Prolog nació en Europa, y fue implementado primeramente para dar soporte al Procesamiento del Lenguaje Natural (PLN). Prolog tiene cierto vigor híbrido en el sentido de que contiene características declarativas de la lógica computacional matemática y algunos aspectos procedurales de la programación convencional Lo revuelto de Prolog es su simplicidad y que no tiene las características más comunes de los lenguajes procedurales.

3.4.1.3. Smalltalk. Smalltalk

3.4.1.3.1. Smalltalk. 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.

3.4.1.4. C y C++.

3.4.1.4.1. 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

3.4.1.5. Herramientas y shells

3.4.1.5.1. Herramientas y shells utilizados en la construcción de SE. Inicialmente cada SE que se creaba se construía a partir de un lenguaje de IA tal como LISP. Pero 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.

3.4.1.6. Gold Works II.

3.4.1.6.1. 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.

3.4.1.7. ART. ART

3.4.1.7.1. ART. 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.

3.4.1.8. LOOPS

3.4.1.8.1. 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.

3.4.1.9. KEE. KEE,

3.4.1.9.1. 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.

3.4.1.10. Humble. Humble

3.4.1.10.1. 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.

3.4.1.11. EMYCIN. EMYCIN

3.4.1.11.1. 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