¿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