Está en la página 1de 18

LOS SISTEMAS BASADOS EN CONOCIMIENTO

Los Sistemas basados en Conocimiento representan un paso delante de los sistemas de


información convencionales al pretender representar funciones cognitivas del ser humano como el
aprendizaje y el razonamiento. Esta clase de aplicaciones descansan en las contribuciones de la
Inteligencia Artificial en lo general y en la Ingeniería del Conocimiento en lo particular. Su
orientación es la automatización del análisis de problemas, la búsqueda de soluciones, la toma de
decisiones y el empleo de conocimiento especializado en un campo específico de aplicación.

Entre los productos más significativos de los Sistemas basados en Conocimiento se encuentran los
Sistemas Expertos, los cuales están encargados de representar el conocimiento de los especialistas
de una rama en la procura de su aprovechamiento para tareas de diagnóstico, enseñanza y
control.

La composición de los Sistemas basados en Conocimiento consta de: Un mecanismo de


aprendizaje, una base de conocimientos, un motor de razonamiento, y medios de comunicación
hombre-máquina. Por tal motivo, en este ejemplar se dedica un capítulo para tratar cada uno de
esos temas, en los que se expone los procedimientos que se realizan para la confección de los
componentes y se describe las estructuras de representación de conocimiento apropiadas para su
organización.

Los sistemas basados en conocimiento surgen como una evolución de los paradigmas de
programación a lo largo de la historia de la informática. En los primeros tiempos de la
computación, los programas, ante una petición del usuario, típicamente producían una salida
accediendo a datos almacenados en ficheros con formatos particulares de cada aplicación.

Más adelante surgieron las bases de datos, que abstraían la capa de almacenamiento/persistencia
de datos, eliminando esos ficheros, facilitando así la gestión de la información necesaria para la
aplicación. Además aparecen los conceptos de la interfaz gráfica del sistema operativo, facilitando
la entrada/salida.

Los sistemas basados en conocimiento son una nueva evolución: en estos sistemas, los datos, la
“base de conocimientos”, se convierten en lo más importante, y el código que los explota, el
“motor de inferencias”, se generaliza según diferentes paradigmas. Esta base de conocimientos la
produce un usuario experto en el dominio, los ingenieros del conocimiento, que son diferentes a
los programadores de la interfaz o del propio motor de inferencias.

Sistemas Expertos

Sistema informático diseñado para resolver problemas de un área específica, y al que de algún
modo se le ha dotado de una competencia similar a la de un experto humano de esa área.

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:

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.

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.

Debido a esto en la actualidad se están mezclando diferentes técnicas o aplicaciones


aprovechando las ventajas que cada una de estas ofrece para poder tener empresas más seguras.
Un ejemplo de estas técnicas sería los agentes que tienen la capacidad de negociar y navegar a
través de recursos en línea; y es por eso que en la actualidad juega un papel preponderante en los
sistemas expertos.

Estructura básica de un SE

Un Sistema Experto está conformado por:

 Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un
experto.
 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.

Tipos de SE

Principalmente existen tres tipos de sistemas expertos:

 Basados en reglas previamente establecidas.


 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.
Ventajas y limitaciones de los Sistemas Expertos
Ventajas

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

Limitaciones

 Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema
experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no
ser que se especifique que esto no es posible ya que un hombre no puede gestar hijos.
 Lenguaje natural: Con un experto humano podemos mantener una conversación informal
mientras que con un SE no podemos.
 Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores
y de errores ajenos, que un SE haga esto es muy complicado.
 Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones
relevantes de un problema y separarlas de cuestiones secundarias.
 Capacidad sensorial: Un SE carece de sentidos.
 Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la
resolución de un problema.
 Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco
estructurado.

Ejemplos importantes

 Dendral
 XCon
 Dipmeter Advisor
 Mycin
 CADUCEUS
 R1
 CLIPS, Jess
 Prolog
Tareas que realiza un Sistema Experto

Monitorización

La monitorización es un caso particular de la interpretación, y consiste en la comparación continua


de los valores de las señales o datos de entrada y unos valores que actúan como criterios de
normalidad o estándares. En el campo del mantenimiento predictivo los Sistemas Expertos se
utilizan fundamentalmente como herramientas de diagnóstico. Se trata de que el programa pueda
determinar en cada momento el estado de funcionamiento de sistemas complejos, anticipándose
a los posibles incidentes que pudieran acontecer. Así, usando un modelo computacional del
razonamiento de un experto humano, proporciona los mismos resultados que alcanzaría dicho
experto.

Diseño

Diseño es el proceso de especificar una descripción de un artefacto que satisface varias


características desde un número de fuentes de conocimiento.

El diseño se concibe de distintas formas:

 El diseño en ingeniería es el uso de principios científicos, información técnica e


imaginación en la definición de una estructura mecánica, máquina o sistema que ejecute
funciones específicas con el máximo de economía y eficiencia.
 El diseño industrial busca rectificar las omisiones de la ingeniería, es un intento consciente
de traer forma y orden visual a la ingeniería de hardware donde la tecnología no provee
estas características.

Los SE en diseño ven este proceso como un problema de búsqueda de una solución óptima o
adecuada. Las soluciones alternas pueden ser conocidas de antemano o se pueden generar
automáticamente probándose distintos diseños para verificar cuáles de ellos cumplen los
requerimientos solicitados por el usuario, ésta técnica es llamada “generación y prueba”, por lo
tanto estos SE son llamados de selección. En áreas de aplicación, la prueba se termina cuando se
encuentra la primera solución; sin embargo, existen problemas más complejos en los que el
objetivo es encontrar la solución óptima.

Planificación

La planificación es la realización de planes o secuencias de acciones y es un caso particular de la


simulación. Está compuesto por un simulador y un sistema de control. El efecto final es la
ordenación de un conjunto de acciones con el fin de conseguir un objetivo global.

Los problemas que presentan la planificación mediante SE son los siguientes:

1. Existen consecuencias no previsibles, de forma que hay que explorar y explicar varios
planes.
2. Existen muchas consideraciones que deben ser valoradas o incluirles un factor de peso.
3. Suelen existir interacciones entre planes de subobjetivos diversos, por lo que deben
elegirse soluciones de compromiso.
4. Trabajo frecuente con incertidumbre, pues la mayoría de los datos con los que se trabaja
son más o menos probables pero no seguros.
5. Es necesario hacer uso de fuentes diversas tales como bases de datos.

Control

Un sistema de control participa en la realización de las tareas de interpretación, diagnóstico y


reparación de forma secuencial. Con ello se consigue conducir o guiar un proceso o sistema. Los
sistemas de control son complejos debido al número de funciones que deben manejar y el gran
número de factores que deben considerar; esta complejidad creciente es otra de las razones que
apuntan al uso del conocimiento, y por tanto de los SE.
Cabe aclarar que los sistemas de control pueden ser en lazo abierto, si en el mismo la
realimentación o el paso de un proceso a otro lo realiza el operador, o en lazo cerrado si no tiene
que intervenir el operador en ninguna parte del mismo. Reparación, correcta o terapia.

La reparación, corrección, terapia o tratamiento consiste en la proposición de las acciones


correctoras necesarias para la resolución de un problema. Los SE en reparación tienen que cumplir
diversos objetivos, como son: Reparación lo más rápida y económicamente posible. Orden de las
reparaciones cuando hay que realizar varias. Evitar los efectos secundarios de la reparación, es
decir la aparición de nuevas averías por la reparación.

Simulación

La simulación es una técnica que consistente en crear modelos basados en hechos, observaciones
e interpretaciones sobre la computadora, a fin de estudiar el comportamiento de los mismos
mediante la observación de las salidas para un conjunto de entradas. Las técnicas tradicionales de
simulación requieren modelos matemáticos y lógicos, que describen el comportamiento del
sistema bajo estudio.

El empleo de los SE para la simulación viene motivado por la principal característica de los SE, que
es su capacidad para la simulación del razonamiento de un experto humano, que es un proceso
complejo.

En la aplicación de los SE para simulación hay que diferenciar cinco configuraciones posibles:

1. Un SE puede disponer de un simulador con el fin de comprobar las soluciones y en su caso


rectificar el proceso que sigue.
2. Un sistema de simulación puede contener como parte del mismo a un SE y por lo tanto el
SE no tiene que ser necesariamente de simulación.
3. Un SE puede controlar un proceso de simulación, es decir que el modelo está en la base de
conocimiento del SE y su evolución es función de la base de hechos, la base de
conocimientos y el motor de inferencia, y no de un conjunto de ecuaciones aritmético –
lógicas.
4. Un SE puede utilizarse como consejero del usuario y del sistema de simulación.
5. Un SE puede utilizarse como máscara o sistema frontal de un simulador con el fin de que
el usuario reciba explicación y justificación de los procesos.

Instrucción

Un sistema de instrucción realizara un seguimiento del proceso de aprendizaje. El sistema detecta


errores ya sea de una persona con conocimientos e identifica el remedio adecuado, es decir,
desarrolla un plan de enseñanza que facilita el proceso de aprendizaje y la corrección de errores.

Recuperación de información

Los Sistemas Expertos, con su capacidad para combinar información y reglas de actuación, han
sido vistos como una de las posibles soluciones al tratamiento y recuperación de información, no
sólo documental. La década de 1980 fue prolija en investigación y publicaciones sobre
experimentos de este orden, interés que continua en la actualidad.

Lo que diferencia a estos sistemas de un sistema tradicional de recuperación de información es


que éstos últimos sólo son capaces de recuperar lo que existe explícitamente, mientras que un
Sistema Experto debe ser capaz de generar información no explícita, razonando con los elementos
que se le dan. Pero la capacidad de los SE en el ámbito de la recuperación de la información no se
limita a la recuperación. Pueden utilizarse para ayudar al usuario, en selección de recursos de
información, en filtrado de respuestas, etc. Un SE puede actuar como un intermediario inteligente
que guía y apoya el trabajo del usuario final.

MOTOR DE INFERENCIA

Es el componente de un Sistema Experto, encargado de gerenciar y controlar lógicamente el


manejo y utilización del conocimiento almacenado en la base. El paradigma del motor de
inferencia es la estrategia de búsqueda para producir el conocimiento demandado.

El sistema sigue los siguientes pasos:

1. Evaluar las condiciones de todas las reglas respecto a la base de datos


2. Si no se puede aplicar ninguna regla, se termina sin éxito; en caso contrario se elige
cualquiera de las reglas aplicables y se ejecuta su parte acción
3. Si se llega al objetivo, se ha resuelto el problema; en caso contrario, se vuelve al paso 1

El Motor de Inferencia realiza dos tareas principales:

 Examina los hechos y las reglas, y si es posible, añade nuevos hechos


 Decide el orden en que se hacen las inferencias.
Para realizar estas tareas utiliza estrategias de inferencia y estrategias de control.

Las estrategias de inferencia que más se emplean en sistemas expertos están basadas en la
aplicación de las reglas lógicas denominadas “modus ponens” y modus tollens”.
Modus Ponens.

Es quizá la regla de inferencia más comúnmente utilizada. Se utiliza para obtener conclusiones
simples, en ella se analiza la premisa de la regla, y si es cierta, la conclusión entra a formar parte
del conocimiento. Como ilustración supóngase que se tiene la regla, “Si A es cierto, entonces B es
cierto”, y que se sabe además que “A es cierto”. La regla Modus Ponens, concluye que “B es
cierto”.

Modus Tollens.

Se utiliza también para obtener conclusiones simples. En este caso se examina la conclusión, y si es
falsa, se concluye que la premisa también es falsa. Por ejemplo, supóngase de nuevo que “Si A es
cierto, entonces B es cierto” pero se sabe que “B es falso”. Entonces, utilizando la regla Modus
Ponens no se puede obtener ninguna conclusión pero la regla Modus Tollens concluye que “A es
falso”.

BASES DE HECHOS
Base de hechos (Memoria de trabajo). Contiene los hechos sobre un problema que se han
descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario
introduce la información del problema actual en la base de hechos. El sistema empareja esta
información con el conocimiento disponible en la base de conocimientos para deducir nuevos
hechos.

Contiene la información que permanece invariable y que recibe el nombre de hecho.

Podemos decir que constituye la memoria de trabajo del sistema experto.


Los hechos representan la estructura dinámica del conocimiento ya que su número puede verse
incrementado a medida que se van relacionando las reglas.

Alberga los datos propios correspondientes a los problemas que se desea tratar con la ayuda del
sistema. Asimismo, a pesar de ser la memoria de trabajo, la base de hechos puede desempeñar el
papel de memoria auxiliar. La memoria de trabajo memoriza todos los resultados intermedios,
permitiendo conservar el rastro de los razonamientos llevados a cabo. Puede, por eso, emplearse
para explicar el origen de las informaciones deducidas por el sistema en el transcurso de una
sesión de trabajo o para llevar a cabo la descripción del comportamiento del propio sistema
experto. Al principio del período de trabajo, la base de hechos dispone únicamente de los datos
que le ha introducido el usuario del sistema, pero, a medida que va actuando el motor de
inferencias, contiene las cadenas de inducciones y deducciones que el sistema forma al aplicarlas
reglas para obtener las conclusiones buscadas.

BASES DEL CONOCIMIENTO


Una Base de Conocimiento (o knowledge base en inglés; KB, kb or Δ) es un tipo especial de base de
datos para la gestión del conocimiento. Provee los medios para la recolección, organización y
recuperación computarizada de conocimiento.

Es la parte del sistema experto que contiene el conocimiento sobre el dominio. Hay que obtener el
conocimiento del experto y codificarlo en la base de conocimientos. Una forma clásica de
representar el conocimiento en un sistema experto son lar reglas. Una regla es una estructura
condicional que relaciona lógicamente la información contenida en la parte del antecedente con
otra información contenida en la parte del consecuente.

La base de conocimientos aloja la totalidad de las informaciones específicas relativas al campo del
saber deseado Está escrita en un lenguaje específico de representación de los conocimientos que
contiene y en el cual el experto puede definir su propio vocabulario técnico. A la inversa de lo que
sucede en los programas clásicos, en la base de conocimientos las informaciones entran tal como
llegan, ya que el orden no influye en los resultados obtenidos. Sucede así porque cada elemento
de conocimiento es comprensible por sí mismo tomado de forma aislada y, por lo tanto, no es
necesario referirse al contexto en el cual está inserto. La información se representa, por regla
general, mediante reglas de producción o redes semánticas. Las reglas de producción constituyen
el método más utilizado para construir bases de conocimientos en los sistemas expertos. Llamadas
también implicaciones lógicas, su estructura es la siguiente: para unas ciertas causas, unos efectos;
o, para determinadas condiciones, ciertas consecuencias. Junto a cada regla, se almacena también
su porcentaje en forma de probabilidad. Éste indica, mediante un tanto por ciento, el grado de
certeza de las consecuencias que se obtienen como resultado de la aplicación de la regla de
producción. En cuanto a las redes semánticas, se trata de un método de construcción de bases de
conocimientos en el cual los conocimientos se muestran mediante un grafo en el que los vértices
representan los conceptos u objetos y las aristas indican las relaciones entre ellos.

Contiene el conocimiento del dominio. Este conocimiento debe representarse a fin de que pueda
incluirse en el sistema.

Se lo representa lo más sencillamente posible y se lo hace de un modo relacional entre los


mismos, mediante las reglas.

O sea la base de conocimientos contiene reglas.


Las mismas toman la forma de:

IF < premisa > THEN < conclusión >

Tipos
Las bases de conocimiento se han clasificado en dos grandes tipos:

 Bases de conocimiento legibles por máquinas, diseñadas para almacenar conocimiento en


una forma legible por el computador, usualmente con el fin de obtener razonamiento
deductivo automático aplicado a ellas. Contienen una serie de datos, usualmente en la
forma de reglas que describen el conocimiento de manera lógicamente consistente.
Operadores lógicos como Y (conjunción), O (disyunción), condición lógica y negación son
utilizada para aumentarla desde el conocimiento atómico. En consecuencia la deducción
clásica puede ser utilizada para razonar sobre el conocimiento en la base de conocimiento.
Este tipo de bases de conocimiento son utilizadas por la Web semántica.
 Bases de conocimiento legibles por Humanos están diseñadas para permitir a las personas
acceder al conocimiento que ellas contienen, principalmente para propósitos de
aprendizaje. Estas son comúnmente usadas para obtener y manejar conocimiento
explícito de las organizaciones, incluyen artículos, white papers, manuales de usuario y
otros. El principal beneficio que proveen las bases de conocimiento es proporcionar
medios de descubrir soluciones a problemas ya resueltos, los cuales podrían ser aplicados
como base a otros problemas dentro o fuera del mismo área de conocimiento.

El más importante aspecto de una base de conocimiento es la calidad de la información que esta
contiene. Las Mejores Bases de Conocimiento tienen artículos cuidadosamente redactados que se
mantiene al día, un excelente sistema de recuperación de información (Motor de Búsqueda), y un
delicado formato de contenido y estructura de clasificación. Una Base de Conocimiento puede
usar una ontología para especificar su estructura (tipos de entidades y relaciones) y su esquema de
clasificación. Una ontología, junto con un grupo de instancias de sus clases constituye una Base de
Conocimiento.

Determinando qué tipo de información es capturada, y dónde se encuentra la información en una


base de conocimiento es algo que es determinado por los procesos que respaldan al sistema. Una
estructura robusta de procesos es la columna vertebral de cualquier Base de Conocimiento.
Algunas Bases de Conocimiento tienen un componente de inteligencia artificial. Este tipo de Bases
de Conocimiento pueden sugerir soluciones a problemas esporádicos en la retroalimentación por
el usuario, y son capaces de aprender de la experiencia (sistemas expertos). Representación de
Conocimiento, Razonamiento automatizado y argumentación son las áreas activas de la
investigación de la inteligencia artificial.

Ejemplos de Instalaciones.
La Escuela de Medicina de Tufts University ha creado una infraestructura de software llamada the
Tufts University Sciences Knowledgebase, TUSK. Sirve como base de conocimiento de información
curricular para las escuelas de ciencias de la salud en Tufts (médica, dental, veterinaria, salud
pública, nutrición, ciencias biomédicas). Esta infraestructura es compartida con tres escuelas de
medicina en los Estados Unidos, tres en África una en la India. La infraestructura permite a las
instituciones crear una base de conocimiento al servicio de las necesidades locales.
CLIPS
CLIPS es una herramienta que provee un entorno de desarrollo para la producción y ejecución de
sistemas expertos. Fue creado a partir de 1984, en el Lyndon B. Johnson Space Center de la NASA.
Los fondos cesaron a principios de los años 1990, y hubo un mandato de la NASA para comprar
software comercial.

CLIPS es un acrónimo de C Language Integrated Production System (Sistema de Producción


Integrado en Lenguaje C). En la actualidad, entre los paradigmas de programación que soporta
CLIPS se encuentran la Programación lógica, la Programación imperativa y la Programación
Orientada a Objetos.

CLIPS probablemente es el sistema experto más ampliamente usado debido a que es rápido,
eficiente y gratuito. Aunque ahora es de dominio público, aún es actualizado y mantenido por su
autor original, Gary Riley.

Historia y Motivación
Durante el año 1984, en el Lyndon B. Johnson Space Center, la sección de Inteligencia Artificial
había desarrollado alrededor de una docena de prototipos de sistemas expertos usando hardware
y software de aquella época. A pesar del demostrado potencial de los sistemas expertos, la
mayoría de aquellos prototipos no estaban siendo usados regularmente. Según la NASA esto se
debió a que el lenguaje de programación usado para el desarrollo de estas aplicaciones era LISP.
Se encontraron varias debilidades de LISP, entre las que se destacan tres: no estaba disponible
para una amplia variedad de equipos de cómputo, no era fácilmente integrable con otras
aplicaciones, y su costo era muy elevado.

La sección de Inteligencia Artificial notó que el uso de un lenguaje convencional (como C)


eliminaría la mayoría de esos inconvenientes. Al principio se buscó que la nueva herramienta fuera
desarrollada por terceros, pero los costos aún eran demasiado altos y los tiempos de entrega no
eran satisfactorios. Por lo tanto, fue necesario que la sección de Inteligencia Artificial desarrollara
su propio lenguaje para sistemas expertos basado en C.

Primeras versiones

El primer prototipo de CLIPS fue desarrollado durante la primavera (boreal) de 1985, y tomó poco
más de dos meses. Era compatible con todos los desarrollos hechos por la sección de Inteligencia
Artificial, y su sintaxis estaba basada en la sintaxis de ART (otra herramienta para el desarrollo de
sistemas expertos). Sin embargo, CLIPS fue desarrollado sin tener acceso o haber conocido
previamente el código fuente de ART.

Inicialmente, con el desarrollo de CLIPS se buscaba tener mayor conocimiento sobre la


construcción de sistemas expertos y sentar las bases de un lenguaje para reemplazar las
herramientas comerciales que estaban siendo usadas. La versión 1.0 de CLIPS demostró que eso
era posible. Después de un desarrollo adicional, se vio que el costo de CLIPS sería
significativamente menor al de otras herramientas y que sería ideal para entrenamiento. Otro año
de desarrollo y de uso interno sirvió para mejorar portabilidad, desempeño, funcionalidad y
documentación de soporte. A mediados de 1986, CLIPS v3.0 estuvo disponible para grupos fuera
de la NASA.

Madurez y expansión
Otras funcionalidades agregadas transformaron CLIPS; ya no era una herramienta para
entrenamiento sobre construcción de sistemas expertos, sino que ahora servía también para el
desarrollo y ejecución de los mismos. Las versiones CLIPS v4.0 y v4.1 (1987) tenían significativas
mejoras en cuanto a desempeño, integración con otros lenguajes, y capacidad de ejecución. CLIPS
v4.2 (1988) fue una completa re-escritura del código fuente con el fin de hacerlo más modular.
Esta versión también incluyó un manual detallado de la arquitectura de CLIPS y una aplicación de
ayuda para la verificación y validación de programas basados en reglas. Nuevas funcionalidades
vinieron con la CLIPS v4.3 (1989).

Originalmente, CLIPS era un lenguaje de reglas basado en el Algoritmo Rete (Programación Lógica).
CLIPS v5.0 (1991) introdujo dos nuevos paradigmas de programación: Programación Imperativa y
Programación Orientada a Objetos (POO). El lenguaje POO dentro de CLIPS es llamado COOL
(CLIPS Object-Oriented Language, o Lenguaje Orientado a Objetos de CLIPS). CLIPS v5.1 (1991) ya
soportaba las recientemente desarrolladas o mejoradas interfaces X Window, MS-DOS y
Machintosh. CLIPS v6.0 (1993) tenía nuevas funcionalidades relacionadas con el reconocimiento
de patrones en objetos/reglas y soporte a Ingeniería de Software basada en reglas. CLIPS v6.1
(1998) soportaba compiladores C++, aunque ya no soportaba los viejos compiladores C no ANSI.
También se agregaron comandos para llevar control del tiempo de desarrollo y para funciones
definidas por el usuario. CLIPS v6.2 es soportada por diversos sistemas operativos, y tiene mejoras
en su interfaz de desarrollo para Windows 95/98/NT y MacOS.

Actualmente, CLIPS es mantenido fuera de la NASA como software de dominio público.

Características principales

Las características principales de CLIPS son:

Representación del Conocimiento: CLIPS permite manejar una amplia variedad de conocimiento,
soportando tres paradigmas de programación: el declarativo, el imperativo, y el orientado a
objetos. La programación lógica basada en reglas permite que el conocimiento sea representado
como reglas heurísticas que especifican las acciones a ser ejecutadas dada una situación. La POO
permite modelar sistemas complejos como componentes modulares. La programación imperativa
permite ejecutar algoritmos de la misma manera que en C, Java, LISP y otros lenguajes.

Portabilidad: CLIPS fue escrito en C con el fin de hacerlo más portable y rápido, y ha sido instalado
en diversos sistemas operativos (Windows 95/98/NT, MacOS X, Unix) sin ser necesario modificar
su código fuente. CLIPS puede ser ejecutado en cualquier sistema con un compilador ANSI de C, o
un compilador de C++. El código fuente de CLIPS puede ser modificado en caso que el usuario lo
considere necesario, con el fin de agregar o quitar funcionalidades.

Integralidad: CLIPS puede ser embebido en código imperativo, invocado como una sub-rutina, e
integrado con lenguajes como C, Java, FORTRAN y otros. CLIPS incorpora un completo lenguaje
orientado a objetos (COOL) para la elaboración de sistemas expertos. Aunque está escrito en C, su
interfaz más próxima se parece a LISP. Pueden escribirse extensiones a CLIPS sobre C, y al
contrario, CLIPS puede ser llamado desde C. CLIPS puede ser extendido por el usuario mediante el
uso de protocolos definidos.

Desarrollo Interactivo: La versión estándar de CLIPS provee un ambiente de desarrollo interactivo


y basado en texto; este incluye herramientas para la depuración, ayuda en línea, y un editor
integrado. Las interfaces de este ambiente tienen menús, editores y ventanas que han sido
desarrollados para MacOS, Windows 95/98/NT, X Window, entre otros.
Verificación/Validación: CLIPS contiene funcionalidades que permiten verificar las reglas incluidas
en el sistema experto que está siendo desarrollado, incluyendo diseño modular y particionamiento
de la base de conocimientos del sistema, chequeo de restricciones estáticas y dinámicas para
funciones y algunos tipos de datos, y análisis semántico de reglas para prevenir posibles
inconsistencias.

Documentación: En la página web oficial de CLIPS se encuentra una extensa documentación que
incluye un Manual de Referencia y una Guía del Usuario.

Bajo Costo: CLIPS es un software de dominio público.

Ejemplo de CLIPS
Como otros lenguajes para sistemas expertos, CLIPS trabaja con reglas y hechos. Algunos hechos
pueden hacer que una regla sea aplicable. Una regla aplicable se activa. En principio las reglas y
hechos se crean definiéndolos, como se muestra a continuación:

(deffacts personas_empadronadas
(persona (nombre "Manolo") (edad 54))
(persona (nombre "Ignacio") (edad 18))
(persona (nombre "Marisa") (edad 34))
)
En el fragmento de código de arriba se han definido 3 hechos:
Existe un objeto de la clase persona con nombre "Manolo" y edad 54.
Existe un objeto de la clase persona con nombre "Ignacio" y edad 18.
Existe un objeto de la clase persona con nombre "Marisa" y edad 34.
(defrule censar
(persona (nombre ?n) (edad ?e))
(test (> ?e 17))
=>
(assert (elector (nombre ?n)))
)
En el fragmento de código de arriba se ha definido una regla:

Para todo objeto de la clase persona con nombre n y edad e, si e es mayor que 17, existe un objeto
de la clase elector con nombre n.
ACTIVIDADES PARA EL APRENDIZAJE

Sistema experto: Los sistemas expertos son llamados así porque emulan el razonamiento de un
experto en un dominio concreto y en ocasiones son usados por éstos. Con los sistemas expertos se
busca una mejor calidad y rapidez en las respuestas dando así lugar a una mejora de la
productividad del experto.

Base de conocimiento: Una Base de Conocimiento (o knowledge base en inglés; KB, kb or Δ) es un


tipo especial de base de datos para la gestión del conocimiento. Provee los medios para la
recolección, organización y recuperación computarizada de conocimiento.

Mecanismo de inferencia: El mecanismo de inferencia es la unidad lógica con la que se extraen


conclusiones de la base de conocimientos, según un método fijo de solución de problemas que
está configurado imitando el procedimiento humano de los expertos para solucionar problemas.

Reglas: Las reglas son cláusulas que describen una acción dinámica relativa al dominio de los
elementos. Su estructura está dada por un conjunto de condiciones denominado antecedentes y
una acción a tomar llamada consecuente, ejemplo si la puerta No. 1 está cerrada utilice la puerta
No. 3.

Procesador cognitivo: El modelo del procesador cognitivo de Newell y Simon (1972) considera la
mente como un sistema de procesamiento de la información. La Figura 2.1 lo resume
gráficamente. La analogía con la estructura de un ordenador es patente. Incluso, y basándose en
datos experimentales, el modelo incluye la hipótesis de que el procesador cognitivo selecciona
perceptos y reacciona ante ellos en ciclos reconocimiento y acción de unos 70 milisegundos. Las
transferencias entre la M.C.P (memoria a corto plazo y la M.L.P (memoria a largo plazo) tardarían
unos siete segundos. Obviamente, estos números no sin caprichosos. Están apoyados, como el
«número mágico 7±2», en diversos experimentos.

Sistema de producción: Un sistema de producción es aquel sistema que proporciona una


estructura que agiliza la descripción, ejecución y el planteamiento de un proceso industrial. Estos
sistemas son los responsables de la producción de bienes y servicios en las organizaciones. Los
administradores de operaciones toman decisiones que se relacionan con la función de
operaciones y los sistemas de transformación que se emplean. De la misma manera los sistemas
de producción tienen la capacidad de involucrar las actividades y tareas diarias de adquisición y
consumo de recursos. Estos son sistemas que utilizan los gerentes de primera línea dada la
relevancia que tienen como factor de decisión empresarial. El análisis de este sistema permite
familiarizarse de una forma más eficiente con las condiciones en que se encuentra la empresa en
referencia al sistema productivo que se emplea.
VENTAJAS Y LIMITACIONES DE LOS SISTEMAS EXPERTOS
Ventajas
• 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.

Limitaciones
• Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema
experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no ser
que se especifique que esto no es posible ya que un hombre no puede gestar hijos.
• Lenguaje natural: Con un experto humano podemos mantener una conversación informal
mientras que con un SE no podemos.
• Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y
de errores ajenos, que un SE haga esto es muy complicado.
• Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones
relevantes de un problema y separarlas de cuestiones secundarias.
• Capacidad sensorial: Un SE carece de sentidos.
• Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la resolución
de un problema.
• Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco
estructurado.

CARACTERISTICAS DE LOS SISTEMAS EXPERTOS


Habilidad para llegar a una solución a los problemas en forma rápida y certera: Esta es la habilidad
principal que se espera que un experto posea y pueda llevar a cabo. Al mencionar en "forma
rápida y certera" obliga a que el experto no solo tenga conocimiento del campo en el que se va a
diagnosticar, sino que además tenga experiencia tomando decisiones en él.

Habilidad para explicar los resultados a la persona que no cuenta con ese conocimiento: Esto
significa que el experto debe poder responder en forma clara y certera las preguntas
concernientes a las razones de los resultados, el razonamiento derivado de los mismos y las
implicaciones subsecuentes. Generalmente las personas que no cuentan con el conocimiento
esperan recibir una respuesta más práctica y que se acerque a las condiciones que ellos puedan
entender.

Habilidad para aprender las experiencias: Los expertos deben de aprender tanto de sus propias
experiencias como de la experiencia de los demás. Están obligados a estar al día en cuanto a la
base de conocimientos así como a modificar el proceso de su razonamiento. Los expertos que no
mantienen al día generalmente se vuelven obsoletos.

Habilidad de reestructurar el conocimiento para que se adapte al ambiente: Esto se refiere a que
el experto pueda subdividir la base de conocimiento y usar la porción útil de la misma en la
resolución del problema, reduciendo así su tiempo de respuesta. También se refiere a visualizar el
problema de distintas perspectivas usando varias porciones del conocimiento al problema desde
distintos niveles.

Conciencia de sus limitaciones: Los expertos pueden evaluar su capacidad para resolver un
problema dado y determinar si el mismo se encuentra dentro de sus posibilidades de resolución.
Esto también significa que saben cuándo referirse a otros expertos.

APLICACIONES DE LOS SISTEMAS EXPERTOS


Las principales aplicaciones de los sistemas expertos son las relacionadas con el mundo
empresarial. Esto se debe a que resultan muy útiles en funciones como la contabilidad, tesorería,
gestiones internas…El campo que más aplicaciones de sistemas expertos está realizando es el de la
auditoría.

Pero los sistemas expertos son aplicados en muchas más áreas con resultados satisfactorios.
Algunas de las principales son: telecomunicaciones, medicina, militar, derecho, aeronáutica,
geología, electrónica…

El espectro de aplicaciones de la tecnología de los sistemas expertos a los problemas industriales y


comerciales es tan amplio debido a la fácil caracterización del desafió. Las aplicaciones encuentran
su perfil en la mayoría de las áreas del trabajo del conocimiento. Las aplicaciones se agrupan en
siete clases importantes.

1. Diagnóstico y localización de averías de dispositivos y de sistemas de todas las clases.

Esta clase abarca los sistemas que deducen incidentes y sugieren las acciones correctivas para un
dispositivo o un proceso que funciona incorrectamente. El diagnóstico médico era una de las
primeras áreas del conocimiento a las cuales la tecnología de los Sistemas Expertos (SE) fue
aplicada, pero el diagnóstico de sistemas dirigidos sobrepasó rápidamente el diagnóstico médico.
Probablemente, hay más aplicaciones de diagnóstico de Sistemas Expertos que de cualquier otro
tipo. El problema de diagnóstico se puede manifestar, en resumen, como: dado la evidencia que se
presenta, cuál es el problema / razón / causa subyacente?

2. Planeamiento y programación.

Los sistemas que caen en esta clase analizan un conjunto de una o más metas potencialmente
complejas y obran recíprocamente para determinar un conjunto de acciones para lograr esas
metas, y/o proveen el orden temporal detallado de esas acciones considerando el personal, el
material y otros apremios. Esta clase tiene gran potencial comercial.
Los ejemplos implican la programación de vuelos, el personal y las puertas de una línea aérea; la
programación del departamento de empleo de la fábrica; y las hojas de operación (planning) de
proceso de la fabricación.

3. Configuración de objetos manufacturados.

La configuración, por el cual una solución a un problema se sintetice de un conjunto dado de


elementos relacionados por un conjunto de apremios, es históricamente una de las aplicaciones
de los sistemas expertos más importante. Las aplicaciones de la configuración fueron iniciadas por
las compañías de computadoras como medio para facilitar la fabricación de las minicomputadoras.
La técnica ha encontrado su forma de uso en muchas industrias diferentes, por ejemplo,
construcción modular, fabricación, y otros problemas que implicaban diseño y la fabricación
compleja de la ingeniería.

4. Toma de Decisión Financiera.

La industria de los servicios financieros ha sido un usuario vigoroso de las técnicas de los Sistemas
Expertos. Los programas consultivos se han creado para asistir a banqueros en la determinación
de si hacer préstamos a los negocios y a los individuos. Las compañías de seguro han utilizado los
sistemas expertos para evaluar el riesgo presentado por el cliente y determinar un precio para la
aplicación típica del seguro; en 9 los mercados financieros está en la negociación de la moneda
extranjera.

5. Publicación del Conocimiento.

Ésta es una aplicación relativamente nueva, pero también es un área potencialmente delicada. La
función primaria del sistema experto es entregar el conocimiento que es relevante al problema del
usuario, en el contexto del problema del usuario. Los dos sistemas expertos más extensamente
distribuidos en el mundo están en esta categoría. El primero es un consejero que aconseja al
usuario con el uso gramatical apropiado en un texto. El segundo es un consejero de impuesto, que
acompaña un programa de preparación de impuesto y aconseja al usuario en la estrategia y táctica
de impuesto, y la política de impuesto individual.

6. Vigilancia y control del proceso.

Los sistemas que caen en esta clase analizan datos en tiempo real de los dispositivos físicos con la
meta de advertir las anomalías, predecir las tendencias, y controlar la corrección del optimizador y
del incidente.

Los ejemplos de sistemas en tiempo real que vigilan activamente los procesos se pueden
encontrar en las industrias de la siderurgia y de la refinación del petróleo.

7. Diseño y fabricación.

Estos sistemas asisten al diseño de dispositivos y de procesos físicos, extendiéndose del diseño
conceptual del alto nivel de entidades abstractas a la configuración de los procesos de la
fabricación.

EXPLIQUE LAS CARACTERÍSTICAS DE LOS LENGUAJES, INTERFACES Y HERRAMIENTAS


MÁS POPULARES PARA DESARROLLAR SISTEMAS EXPERTOS.
LENGUAJES DE PROGRAMACIÓN

La hipótesis fundamental del funcionamiento de IA es que el comportamiento inteligente se puede


describir exactamente como la manipulación del símbolo y se puede modelar el proceso de
símbolo con las capacidades de la computadora.

En los años 50 los lenguajes de programación especiales fueron inventados para facilitar la
manipulación del símbolo. El más destacado se llama LISP (LISt Processing). Debido a su elegancia
y simple flexibilidad, la mayoría de los programas de investigación de IA se escriben en LISP, pero
las aplicaciones comerciales se han alejado del LISP.

A principios de los años 70 otro lenguaje de programación de IA fue inventado en Francia. Se llama
PROLOG (PROgramming in LOGic). El LISP tiene sus raíces en un área de las matemáticas, PROLOG
en otra. PROLOG consiste en las declaraciones que son hechos (afirmaciones), reglas (de la
inferencia) y preguntas.

Los programas escritos en PROLOG tienen comportamiento de gobernar los sistemas bases similar
a los escritos en el LISP. PROLOG, sin embargo, no se convirtió inmediatamente en un lenguaje
opcional para los programadores de IA. A principios de los años 80 fue impulsado por el aviso de
Japón que utilizaría este lenguaje de programación para el proyecto de la Quinta Generación de
Sistemas Informáticos; Fifth Generation Computing Systems (FGCS).

HERRAMIENTAS Y TÉCNICA PARA EL DESARROLLO DE SISTEMAS EXPERTOS

En teoría, los sistemas expertos se deben desarrollar a partir de algún lenguaje de programación.
Desde la introducción de los sistemas de computación, los lenguajes de fáciles de usar, más
potentes y cada vez más capaces de manejar. En los inicios del desarrollo de SE se usaban los
lenguajes Pascal, FORTRAN Y COBOL. LISP fue uno de los primeros lenguajes especiales
desarrollados y empleados para aplicaciones de inteligencia artificial. PROLOG es otro. Sin
embargo, actualmente existen otros productos de SE (como los shells) que evitan el trabajo de
programar.

Shells y productos para SE: Un shell (interprete) de SE es un grupo de paquetes y herramientas de


software utilizados para diseñar, desarrollar, poner en operación y mantener SE con una
programación mínima. Existen shells de SE tanto para computadoras personales como para
sistemas de macrocomputadoras. Algunos son baratos con costo inferior a los 500 dólares. El
usuario introduce los datos o parámetros apropiados y el SE proporciona el resultado para el
problema o situación. Algunos de los shells más populares son Exsys de MultilLogic, Inc. Level 5, de
Rule Machines Corporación y XpertRule, de Attar Software.

HERRAMIENTAS UTILIZADAS PARA DESARROLLAR SISTEMAS EXPERTOS.

La construcción de un Sistema Experto no es una tarea sencilla, debido a que involucra mucha
participación de distintas personas, cada una de las cuales aportará algo para que el Sistemas
Expertos a desarrollar sea robusto y fácil de usar y mantener. Además se deben hacer varias
elecciones en cuanto al desarrollo del Sistema Experto una de ellas es elegir que herramienta
utilizar para su estructuración.

A continuación una lista de las herramientas que se pueden utilizar para desarrollar un Sistema
Experto:
 ART-IM
 CBR Express v.1.1.
 Nex - Expert Object v.2.0.
 Exsys Corvid
 Xpertrule
 G2
 Visual Prolog
 Jess
 Winprolog
 Clisps
 Expert System Builder

ELEMENTOS DE UN SISTEMA EXPERTO

En un sistema basado en reglas, la base de conocimientos contiene el conocimiento de dominio


necesario para resolver los problemas codificados en forma de reglas; mientras que las reglas son
un paradigma popular para representar conocimiento, otros tipos de sistemas expertos usan
diferentes representaciones.

Un sistema experto consta de los siguientes componentes:

 Interfaz de usuario: el mecanismo que permite la comunicación entre el usuario y el sistema


experto.
 Medio de explicación: explica al usuario el razonamiento del sistema.
 Memoria actica: una base de datos global de los hechos usados por las reglas.
 Mecanismo de inferencia: hace inferencias al decidir cuales reglas satisfacen los hechos u
objetos, da prioridad a las reglas satisfechas y ejecuta la regla con la más elevada prioridad.
 Agenda: una lista con prioridades asignadas a las reglas, creada por el mecanismo de
inferencia, cuyos patrones satisfacen los hechos u objetos de la memoria activa.
 Medio para la adquisición de conocimiento: vía automática para que el usuario introduzca
conocimientos en el sistema, sin tener al ingeniero del conocimiento para que codifique
este en forma explícita.

El medio para la adquisición del conocimiento es una función opcional en muchos sistemas. En
algunas herramientas para los sistemas expertos esta puede aprender por inducción de reglas
mediante ejemplos, y también generar reglas automáticamente.

En un sistema experto basado en reglas, la base de conocimiento también recibe el nombre de


memoria de producción. El mecanismo de inferencia determina cuales antecedentes de regla, si
hay alguno, queda satisfecho por los hechos. Dos métodos generales de inferencia que se usan
con frecuencia como estrategias para la solución de problemas con los sistemas expertos son:
encadenamiento hacia delante y encadenamiento hacia atrás.

El encadenamiento hacia delante es el razonamiento desde los hechos hacia las conclusiones.
Mientras que el encadenamiento hacia atrás implica el razonamiento en reversa desde una
hipótesis, habrá de comprobarse una posible conclusión, a los hechos que la sustentan.

También podría gustarte