martes, 3 de abril de 2012

SISTEMAS EXPERTOS

Un Sistema Experto (SE), es básicamente un programa de computadora basado en conocimientos y raciocinio que lleva a cabo tareas que generalmente sólo realiza un experto humano; es decir, es un programa que imita el comportamiento humano en el sentido de que utiliza la información que le es proporcionada para poder dar una opinión sobre un tema en especial. Se definen como sigue: un Sistema Experto es un programa de computadora interactivo que contiene la experiencia, conocimiento y habilidad propios de una persona o grupos de personas especialistas en un área particular del conocimiento humano, de manera que permitan resolver problemas específicos de ése área de manera inteligente y satisfactoria. La tarea principal de un SE es tratar de aconsejar al usuario.

Los usuarios que introducen la información al SE son en realidad los expertos humanos, y tratan a su vez de estructurar los conocimientos que poseen para ponerlos entonces a disposición del sistema. Los SE son útiles para resolver problemas que se basan en conocimiento.

Ejemplos:

A continuación se detallan ejemplos de sistemas expertos:

DENDRAL: Es capaz de calcular o descubrir hechos relativos a las estructuras moleculares a partir de unos datos químicos sin elaborar.

MYCIN: El mas famoso de todos, diagnostica infecciones en la sangre y meningitis y además sugiere el tratamiento que se debe seguir en cada caso.

PUFF: El hermano menor de MYCIN, que diagnostica y trata enfermedades del pulmón.

MOLGENO: Ayuda a los biólogos que trabajan en el campo del DNA y la ingeniería genética.

PROGRAMMERS APPRENTICE: Se trata de un sistema que ayuda a la escritura de programas.

EURISKO: Sistema experto capaz de aprender a medida que funciona, que crea circuitos micro eléctricos tridimensionales

GENESIS: Permite a los científicos planificar y simular experimentos en el campo de la unión de genes


EXPERT SYSTEMAS TO COMBAT INETRNATIONAL TERRORRISM: Ayuda a los expertos a la escritura de programas.

TATR TWIRL: Simulaciones de guerras completas y guía de mejores acciones posibles a realizar, en casi todas las situaciones.


RI: Programa utilizado para el descubrimiento de yacimientos petrolíferos bajo aguas marinas.


COMPONENTES DE UN SISTEMA EXPERTO

La Componente Humana

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 colaboración de los expertos humanos, los ingenieros del conocimiento y los usuarios es, quizás, el elemento más importante en el desarrollo de un sistema experto. Esta etapa requiere una enorme dedicación y un gran esfuerzo debido a los diferentes lenguajes que hablan las distintas partes y a las diferentes experiencias que tienen.

La Base de 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 qué 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 la Coherencia

El subsistema de control de la coherencia ha aparecido en los sistemas expertos muy recientemente. Sin embargo, es una componente esencial de un sistema experto. 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

El Motor de Inferencia

El motor de inferencia es el corazón de todo sistema experto. El cometido principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnóstico medico, 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 están basadas en conocimiento determinista o conocimiento probabilístico. Como puede esperarse, el tratamiento de situaciones de incertidumbre (probabilísticas) puede ser considerablemente más difícil que el tratamiento de situaciones ciertas (deterministas).

El Subsistema de Adquisición de Conocimiento

Si el conocimiento inicial es muy limitado y no se pueden 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 hayan sacado conclusiones. En algunos casos, el usuario puede suministrar la información requerida para este y otros objetivos. De ello resulta la necesidad de una interface de usuario y de una comprobación de la consistencia de la información suministrada por el usuario antes de introducirla en la memoria de trabajo.

Interface de Usuario

La interface 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  Órdenes

El subsistema de ejecución de órdenes es la componente que permite al sistema experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Como ejemplos, un sistema experto diseñado para analizar el tráfico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el tráfico global, o un sistema para controlar una central nuclear puede abrir o cerrar ciertas válvulas, mover barras, etc., para evitar un accidente.

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.

El Subsistema de Aprendizaje

Una de las principales características de un sistema experto es su capacidad para aprender. Diferenciaremos entre aprendizaje estructural y aprendizaje paramétrico. Por aprendizaje estructural nos referimos a algunos aspectos relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.).

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 esta mal definido, se espera que el sistema suministre respuestas erróneas.

Encontrar expertos humanos que puedan resolver el problema

En algunos casos, sin embargo, las bases de datos pueden jugar el papel del experto humano.

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 interface de usuario, etc.

Elección de la herramienta de desarrollo, concha, o lenguaje de programación

Debe decidirse si realizar un sistema experto a medida, o utilizar una concha, una herramienta, o un lenguaje de programación. Si existiera una concha satisfaciendo todos los requerimientos del diseño, ´esta debería ser la elección, no solo por razones de tipo financiero sino también por razones de fiabilidad. Las conchas y herramientas comerciales están sujetas a controles de calidad, a los que otros programas no lo están.

Desarrollo y prueba de un prototipo

Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) 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, etc.

Bibliografía

No hay comentarios:

Publicar un comentario