lunes, 2 de abril de 2012

SISTEMAS EXPERTOS

¿Qué es un Sistema Experto?

Los sistemas expertos son máquinas que piensan y razonan como un experto lo haría en una cierta especialidad o campo. Como tal, un sistema experto debería ser capaz de procesar y memorizar información, aprender y razonar en situaciones deterministas e inciertas, comunicar con los hombres u otros sistemas expertos, tomar decisiones apropiadas, y explicar por qué se han tomado tales decisiones. Se puede pensar también en un sistema experto como un consultor que puede suministrar ayuda a los expertos humanos con un grado razonable de fiabilidad.
Componentes de un Sistema Experto
Entre los componentes de un Sistema Experto tenemos:


Fig 1: Componentes de un Sistema Experto

La Componente Humana
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 del conocimiento, con los usuarios en mente. Los expertos humanos suministran el conocimiento básico en el tema de interés, y los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender.

La Base del Conocimiento
Los especialistas son responsables de suministrar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad.


Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la información relacionada con una aplicación particular.


Subsistema de Adquisición de Conocimiento 
El subsistema de adquisición de conocimiento controla el flujo del nuevo conocimiento que fluye del experto humano a la base de datos. El sistema determina que nuevo conocimiento se necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la base de datos y, en caso necesario, incorpora estos conocimientos a la misma. 


Control de Coherencia 
Este subsistema controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. En situaciones complejas incluso un experto humano puede formular afirmaciones inconsistentes. Por ello, sin un subsistema de control de la coherencia, unidades de conocimiento contradictorio pueden formar parte de la base de conocimiento, dando lugar a un comportamiento insatisfactorio del sistema. Es también bastante común, especialmente en sistemas con mecanismos de propagación de incertidumbre, que se llegue a conclusiones absurdas o en conflicto. 


Motor de Inferencia 
El motor de inferencia es el corazón de todo sistema experto. El objetivo principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnóstico médico, los síntomas de un paciente (datos) son analizados a la luz de los síntomas y las enfermedades y de sus relaciones (conocimiento). Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilístico.


Interfase de Usuario
La interfase de usuario es el enlace entre el sistema experto y el usuario. Por ello, para que un sistema experto sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener información de forma fácil y agradable.


El Subsistema de Ejecución de Ordenes
El subsistema de ejecución de órdenes es el componente que permite al sistema experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Como ejemplo: un sistema experto diseñado para analizar el tráfico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el tráfico global. 


El Subsistema de Explicación 
El usuario puede pedir una explicación de las conclusiones sacadas o de las acciones iniciadas por el sistema experto. Por ello, es necesario un subsistema que explique el proceso seguido por el motor de inferencia o por el subsistema de ejecución.

Etapas de Desarrollo de un Sistema Experto
Las etapas para llevar a cabo el desarrollo de un sistema experto son:


Fig 2: Fases de Desarrollo de un Sistema Experto

Planteamiento del problema: la primera etapa en cualquier proyecto es normalmente la definición del problema a resolver. Puesto que el objetivo principal de un sistema experto es responder a preguntas y resolver problemas, esta etapa es quizás la más importante en el desarrollo de un sistema experto. Si el sistema está mal definido, se espera que el sistema suministre respuestas erróneas. 

Encontrar expertos humanos: personas que tienen el conocimiento del problema  a resolver.

Diseño de un sistema experto: esta etapa incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la interfase de usuario.

Elección de la herramienta de desarrollo: se trata de seleccionar las herramientas, lenguajes de programación necesarios para el desarrollo del sistema experto.

Desarrollo y prueba de un prototipo: si el prototipo no pasa las pruebas requeridas, las etapas anteriores deben ser repetidas hasta que se obtenga un prototipo satisfactorio.

Refinamiento y generalización: en esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseño inicial.

Mantenimiento y puesta al día: en esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances.

Tipos de Sistemas Expertos 

Sistemas Expertos Deterministas: los sistemas expertos que tratan   problemas deterministas son conocidos como sistemas basados en reglas, porque sacan sus conclusiones basándose en un conjunto de reglas utilizando un mecanismo de razonamiento lógico.
Sistemas Estocásticos: son sistemas expertos que usan la misma estructura de los sistemas basados en reglas, pero introducen una medida asociada a la incertidumbre de las reglas y a la de sus premisas. En este caso se pueden utilizar algunas fórmulas de propagación (factores de certeza) para calcular la incertidumbre asociada a las conclusiones. (Castillo, Gutierrez, & Hadi) 

Ejemplos de Sistemas Expertos 

Clips: es una herramienta que provee un entorno de desarrollo para la producción y ejecución se sistemas expertos. Este sistema experto tiene las siguientes características: Representación del conocimiento, portabilidad, integrabilidad, desarrollo interactivo, verificación/validación, documentación y bajo costo.

Mycin: es un sistema experto desarrollo en Lisp, su función principal consistía en el diagnostico de enfermedades infecciosas de la sangre, además era capaz de recetar medicaciones a sus pacientes en base a 500 reglas que poseía. 

XCon: sistema experto basado en reglas que se lo utilizaba para asistir a los pedidos de los sistemas de computadores. 

Dendral: su desarrollo se llevó a cabo durante 10 años aproximadamente, utilizado para propósitos reales donde permite interpretar la estructura molecular.

Delta: sistema experto que ayuda a los mecánicos en el diagnostico y reparación de locomotoras a diesel/eléctricas por medio de un reproductor de vídeo. (Wikipedia, 2011)

        Bibliografía:

Castillo, E., Gutierrez, J. m., & Hadi, A. (s.f.). Sistemas Expertos y Modelos Probabilisticos. España.

Wikipedia. (2011). Sistemas Expertos. Recuperado el 30 de Marzo de 2012, de http://www.es.m.wikipedia.org/wiki/Sistema_experto





No hay comentarios:

Publicar un comentario