martes, 3 de abril de 2012

SISTEMAS EXPERTOS


1.      CAPITULO
SISTEMAS EXPERTOS

1.1.   Concepto

Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica. Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un problema en un programa de computadora viene del conocimiento de un dominio específico. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole (no necesariamente tiene que ser de inteligencia artificial). También se dice que un SE se basa en el conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control (información sobre el seguimiento de una acción).

Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo:

  1. Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, que a la vez se basan en hechos.

  1. Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con más rapidez y eficacia todas las tareas que realiza.

¿Qué es un sistema experto?

Los sistemas expertos forman parte de un firme y verdadero avance en inteligencia artificial. Los sistemas expertos pueden incorporar miles de reglas. Para una persona seria una experiencia casi "traumática" el realizar una búsqueda de reglas posibles al completado de un problema y concordar estas con las posibles consecuencias, mientras que se sigue en un papel los trazos de un árbol de búsqueda.

1.2.   ESTRUCTURA BÁSICA DE UN SE
Un Sistema Experto está conformado por:

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

Descripción: 'Sistemas expertos'

1.3.   VENTAJAS Y LIMITACIONES DE LOS SISTEMAS EXPERTOS
·       Permanencia: A diferencia de un experto humano un SE (sistema experto) no envejece, y por tanto no sufre pérdida de facultades con el paso del tiempo.
·       Replicación: Una vez programado un SE lo podemos replicar infinidad de veces.
·       Rapidez: Un SE puede obtener información de una base de datos y realizar cálculos numéricos mucho más rápido que cualquier ser humano.
·       Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicación el coste finalmente es bajo.
·       Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o dañinos para el ser humano.
·       Fiabilidad: Los SE no se ven afectados por condiciones externas, un humano sí (cansancio, presión, etc.).
·       Consolidar varios conocimientos.
·       Apoyo Académico.

1.4.   TIPOS DE SE

Principalmente existen tres tipos de sistemas expertos:}
ü  Basados en casos o CBR (Case Based Reasoning).
ü  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

1.5.   EJEMPLOS
·         Dendral
·         XCon
·         Dipmeter Advisor
·         Mycin
·         CADUCEUS
·         R1
·         CLIPS, Jess
·         Prolog
CARACTERISTICAS
Sistema
Fecha
Autor
Aplicación
DENDRAL
1965
Stanford
Deduce información sobre estructuras químicas
Macsyma
1965
MIT
Análisis matemático complejo
HearSay
1965
Carnegie - Mellon
Interpreta en lenguaje natural un subconjunto del idioma
Mycin
1972
Stanford
Diagnóstico de enfermedades de la sangre
Tieresias
1972
Stanford
Herramienta para la transformación de conocimientos
Prospector
1972
Stanford
Exploración mineral y herramientas de identificación
Age
1973
Stanford
Herramienta para generar Sistemas Expertos
OPS5
1974
Carnegie - Mellon
Herramientas para desarrollo de Sistemas Expertos
Caduceus
1975
University of Pittsburg
Herramienta de diagnóstico para medicina interna
Rosie
1978
Rand
Herramienta de desarrollo de Sistemas Expertos
R1
1978
Carnegie - Mellon
Configurador de equipos d computación para DEC


Diferencias entre un experto y un no experto humano

Experto
No experto
Tiempo de Resolución
Pequeño
Grande
Eficacia Resolutiva
Alta
Baja
Organización
Alta
Baja
Estrategias y Tácticas
No
Búsqueda de Soluciones
Heurística
No Heurística
Cálculos Aproximados
No

Diferencias entre un SE y un programa tradicional

Sistema Experto
Programa Tradicional
Conocimiento
En programa e independiente
En programa y circuitos
Tipo de datos
Simbólicos
Numéricos
Resolución
Heurística
Combinatoria
Def. problema
Declarativa
Procedimental
Control
Independiente. No secuencial
Dependiente. Secuencial
Conocimientos
Imprecisos
Precisos
Modificaciones
Frecuentes
Raras
Explicaciones
No
Solución
Satisfactoria
Optima
Justificación
No
Resolución
Área limitada
Específico
Comunicación
Independiente
En programa

Diferencias entre un sistema experto y un experto humano

Sistema experto
Experto humano
Conocimiento
Adquirido
Adquirido + Innato
Adquisición del conocimiento
Teórico
Teórico + Práctico
Campo
Único
Múltiples
Explicación
Siempre
A veces
Limitación de capacidad
Sí, no valuable
Reproducible
Sí, idéntico
No
Vida
Infinita
Finita

1.6.   FASES DE UN SISTEMA EXPERTO

ETAPA 1: ANÁLISIS Y DESCRIPCIÓN DEL PROBLEMA..
ü Fase 1.1.- Descripción General del Problema:
o   Familiarización con el proceso sobre el cual se desea realizar el Sistema Experto..
o   Familiarización con los ambientes computacionales donde se encuentran los datos a ser utilizados
o    Definición detallada del problema que motiva el desarrollo del Sistema Experto.
ü  Fase 1.2.- Análisis de Factibilidad para el desarrollo del Sistema Experto:
o   La tarea a desarrollar requiere del conocimiento manejado por un experto.
o   Disponibilidad del experto o equipo de expertos.
o   La experticia es requerida en varios lugares simultáneamente.
o   El sistema requiere del manejo de incertidumbre y aplicación de juicios personales.
o   Existe un grupo potencial de usuarios.
o   Se dispone del tiempo para desarrollar el Sistema Experto.

        Fase 1.3.- Análisis de datos: Verificación de la ubicación y forma de representación de los datos a ser manejados por el sistema experto,, considerando el tipo de base de datos ((industrial,, relacional,, orientada a objeto,, etc.)),, plataforma computacional ((Windows, DOS,, UNIIX,, VMS,, etc.)).

        Fase 1.4.- Elección de la fuente de conocimiento: Es necesario contar con un experto o un grupo de ellos que estén dispuestos a colaborar con el proyecto. Los expertos deben ser reconocidos como tal por el grupo de usuarios.

ETAPA 2: ESPECIFICACIÓN  DE REQUERIMIENTOS.

        Fase 2.1.- Estimación del perfil de los usuarios finales del Sistema Experto.
        Fase 2.2.-Verificación de los requerimientos con el usuario.
        Fase 2.3.-Determinación de los requerimientos de información: Se especifica la información que debe producir el Sistema Experto y  sus atributos tales como el formato de presentación, la frecuencia de salida,, sus usuarios directos y su interconexión con otros programas..
        Fase 2.4.-Determinación de los requerimientos funcionales: Consiste en la definición de las funciones generales que debe satisfacer el Sistema Experto.
        Fase 2.5.-Determinación de los requerimientos de entrada de datos:
o   Selección de las posibles de entrada al Sistema Experto.
o   Identificación de las fuentes de datos.
o   Especificación de los procesos de adquisición de datos.
o   Especificación de los procesos de generación de parámetros.
o   Caracterización de la interoperabilidad entre las bases de datos que se requieren en la implantación.
        Fase 2..6..--Definición de los requerimientos de hardware y software para ya implantación del Sistema Experto::
o    Especificación de la plataforma de hardware que se utilizará para el desarrollo y operación del Sistema Experto.
o    Determinación, análisis y selección de las herramientas de software disponibles en el mercado para el desarrollo de Sistemas Expertos.

ETTAPA 3: ANÁLISIS DE COSTOS, TIEMPO Y RECURSOS..

        Fase 3. 1. -  Elaboración Dell plan de actividades de desarrollo e implantación.
        Fase 3. 2. - Estimación Dell tiempo requerido para el desarrollo del Sistema Experto.
        Fase 3. 3. - Estimación de llosa recursos computacionales ((hardware--software)) requeridos para el desarrollo del Sistema Experto.
        Fase 3. 4. - Estimación de los costos de desarrollo.



ETAPA 4: INGENIERÍA DEL CONOCIMIIENTO.
        Fase 4.1.- Adquisición del Conocimiento: Es donde el Ingeniero del Conocimiento interactúa con el experto para obtener la información sobre la solución de los problemas, así como las estrategias utilizadas para la obtención de cada solución.
        Fase 4.2.- Estructuración del Conocimiento: En esta fase, el Ingeniero del Conocimiento debe llevar a una base de conocimiento la información proporcionada por el experto. El conocimiento puede ser de carácter superficial o profundo dependiendo de la estructura interna y de las interacciones entre sus componentes.

ETTAPA 5: DISEÑO PRELIMIINAR DEL SISTTEMA EXPERTO.

ü  Fase 5.1.- Diseño preliminar de la arquitectura del Sistema Experto.
ü  Fase 5.2.- Selección de la herramienta computacional de acuerdo a los requerimientos surgidos en la etapa de Ingeniería del Conocimiento.
ü  Fase 5.3.-Diseño preliminar de procesos de adquisición y almacenamiento de datos.
ü  Fase 5.4.- Diseño preliminar de procesos de interconexión.
        5.4.1.-  Integración Interna.
        5.4.2.- Integración Externa.
        5.4.2.- Selección de software auxiliar.
ü  Fase 5.5.- Verificación del diseño preliminar del Sistema Experto.

ETAPA 6: DESAROLLO E IMPLANTACIÓN DELL SISTEMA EXPERTO..

ü  Fase 6.1.- Construcción del prototipo.
ü  Fase 6.2.- Validación del prototipo.
ü  Fase 6.3.-Construcción de modelo operacional
ü  Fase 6.4.- Prueba y depuración.
ü  Fase 6.5.-Mantenimiento y actualización.

1.7.   COMPONENTES DE UN SISTEMA EXPERTO

Los dos componentes principales de cualquier Sistema Experto son una BASE DE CONOCIMIENTOS y un PROGRAMA DE INFERENCIA, o también llamado MOTOR DE INFERENCIAS.
ü  La base de conocimientos del Sistema Experto con respecto a un tema específico para el que se diseña el sistema. Este conocimiento se codifica según una notación específica que incluye reglas, predicados, redes semánticas y objetos.

ü  El motor de inferencia, que 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.
ü  Subsistema de control de coherencia. Este componente previene la entrada de información incoherente en la base de conocimiento. Es un componente muy necesario, a pesar de ser un componente reciente.
ü  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.
ü  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. Se encarga de almacenar 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 interface.

1.8.   DISEÑO DE SISTEMAS EXPERTOS
1.8.1.     Metodología de Prototipos
En el desarrollo de Sistemas Expertos se nos plantean dos importantes 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.
El diseño y la especificación requieren una temprana determinación de la interfaz del software y de la funcionalidad de los componentes. Durante el desarrollo, resulta apropiado empezar con implementaciones tipo test para encontrar el camino hacia una solución definitiva y para hacerlas coincidir con las necesidades del usuario.

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. Este proceder se define bajo el nombre de `Rapid Prototyping'. Para Sistemas Expertos, el `Rapid Prototyping' es el procedimiento más adecuado, pues posibilita una rápida reacción a los deseos en constante cambio tanto por parte de los expertos como parte del usuario.

1.8.2.     Metodología Orientada a Objetos
La programación orientada a objetos (OOP en adelante) 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.

Cada área de memoria a la que se refiere en el párrafo anterior es conocida como clase, mientras que las copias creadas a partir de la clase son llamadas objetos. La OOP tiene varias propiedades, entre los cuales destacan:

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

El concepto de encapsulación evita que se pueda modificar el estado interno de un objeto por el código cliente que lo utiliza, es decir solamente el código mismo del objeto puede modificar el estado interno del mismo. Esto se puede aprovechar en la construcción de SE creando clases que correspondan a los componentes de un SE.

No hay comentarios:

Publicar un comentario