You are on page 1of 50

SISTEMAS EXPERTOS

Introducción a los sistemas expertos


Los sistemas expertos (SE) se emplean para ejecutar una
variedad muy complicada de tareas que en el pasado solo
podían llevarse a cabo por un número limitado de personas
expertas.
A través de la aplicación de las técnicas de Inteligencia
Artificial los SE captan el conocimiento básico que permite a
una persona desempeñarse como un experto frente a
problemas complicados.
La característica más fascinante de los Sistemas Expertos
que los distingue de la mayoría de las aplicaciones
tradicionales es su capacidad para enfrentar problemas que
constituyen el reto del mundo real, por medio de la
aplicación de procesos que reflejan el discernimiento y la
intuición humana.
Dato, Información, Conocimiento
Antes de definir el término SISTEMA EXPERTO es
necesario recordar que la inteligencia artificial ligaba
íntimamente los términos inteligencia y conocimiento;
también mencionamos que la cantidad de
conocimientos es lo que otorgaba, en gran parte, el
nivel de inteligencia de los seres vivos. Entonces es
necesario e indispensable reconocer…….¿que es el
conocimiento?
¿Que es el conocimiento?
Existen corrientes filosóficas, ciencias como la
gnoseología y muchos científicos que se encarga de
estudiar las fuentes, tipos y formas de adquirir
conocimiento. Nosotros no entraremos a descubrir ni
tratar estos temas a fondo, nos concentraremos en
aspectos prácticos que nos ayuden a comprender
términos muy relacionados como: DATO,
INFORMACION, CONOCIMIENTO para ver su aplicación
en la vida diaria.
Dato
Piense en una fecha, un número, un nombre
cualquiera…….¿Ud. cree que es un dato?
Efectivamente, de la forma más simple podemos decir
que un dato es un hecho, que individualmente carece
de valor para una persona. Por ejemplo el número 7
carece de valor individualmente, la fecha de
cumpleaños del Presidente de la República del Perú;
carecen de valor porque individualmente no significa
nada para un tomador de decisiones frente a un
problema, pues no generan acciones concretas
Información
El concepto de información nace cuando un dato o conjunto
de datos es de utilidad para un tomador de decisiones, es
decir cuando los datos son interpretados y útiles para una
persona. Por ejemplo, el color rojo en un semáforo
constituye una información ya que tiene una interpretación
objetiva y universal para un grupo de personas-los
automovilistas- y les sirve como apoyo para tomar una
decisión: en este caso detener el automóvil. Otro ejemplo
sería la fecha de cumpleaños de un familiar ya que llevaría a
una persona a tomar una acción como comprarle un regalo,
darle una serenata, etc., es claro que un dato se convierte en
información cuando le es útil a una persona o tomador de
decisiones. En el caso de una empresa, las utilidades,
ganancias o pérdidas de una empresa serían información
para los ejecutivos o la alta dirección para tomar decisiones y
generar cursos de acción.
Conocimiento
El conocimiento, en contraste con los conceptos de
datos e información, sugiere alternativas de acción o
guías de actuación específicas asociadas a la información.
Aquí podemos definir al conocimiento como el conjunto
de reglas, hechos, verdades, razones y los datos
heurísticos recopilados por expertos, que han
resultado y resultan útiles en la resolución de
problemas Por ejemplo, el sueldo mensual de un cliente
del Banco de Crédito le permitirá al analista de créditos
de dicho banco determinar el monto hasta el cual se le
puede dar un préstamo al cliente y un curso de acción
correspondiente.
Pirámide del conocimiento
Historia de los Sistemas Expertos
Las investigaciones de los sistemas expertos
comenzaron a finales de 1950. Las investigaciones lo
realizaron en el área de los lenguajes para el
razonamiento simbólico para procesar listas, así el
primer lenguaje simbólico para procesamiento de listas
IPL, se utilizó ampliamente en las primeras aplicaciones
de Inteligencia Artificial. Actualmente en Estados
Unidos el LISP es uno de los más populares.
La investigación específica en SE, empezó a mediados
de los años 60. Varios sistemas se desarrollaron entre
1965 y 1970, aunque estos eran de alcance limitado y
orientado a juegos o temas académicos e idealizados.
Historia de los Sistemas Expertos
Definición
Un Sistema Experto es una aplicación informática que soluciona
problemas complicados que de otra manera exigiría ampliamente
la pericia humana. Para lograr esto se simula el proceso de
razonamiento humano, mediante la aplicación específica del
conocimiento o inferencia. La finalidad principal de los sistemas
expertos es la correcta reproducción del comportamiento de un
experto humano en su dominio de competencia. Internamente un
sistema experto ideal se puede caracterizar como un sistema que
comprende:
 Amplio conocimiento específico a partir del campo de interés.
 Aplicación de técnicas de búsqueda.
 Soporte para análisis heurístico.
 Habilidad para inferir nuevos conocimientos a partir de
conocimientos ya existentes.
 Procesamiento de símbolos.
 Capacidad para explicar su propio razonamiento
El papel del conocimiento en
Sistemas Expertos
Un experto muestra 2 formas distintas de pericia

Un conocimiento general (procedimiento básico) que


es común en muchas áreas.
Un conocimiento experto es el conocimiento de un
área específica.
Esta observación conduce a un principio que es
fundamental en el diseño de SE.
Los expertos humanos
Un experto humano es una persona que es competente
en un área determinada del conocimiento o del saber.
Un experto humano es alguien que sabe mucho sobre
un tema determinado y que puede dar un consejo
adecuado. Esta experiencia sólo se adquiere tras un
largo aprendizaje y a base de mucha experiencia.1 Los
expertos humanos tienen las siguientes características
generales:
Características
Son personas raras, tanto por su escaso número como su
comportamiento poco “ortodoxo” y e “incomprensible”
frente a los problemas con los que se enfrentan.
Son caros por dos motivos: por su escaso número y por
necesitar un largo periodo de aprendizaje.
No están siempre disponibles, pues son humanos y cuando
se jubilan o mueren se llevan con ellos todos sus
conocimientos. Es por eso que tradicionalmente están
acompañados de un “aprendiz”.
Hay expertos que tienen mal carácter, son informales o
poco comunicativos, lo que a veces les hace antipáticos.
Diferencias entre un experto y un no
experto humano
Diferencias entre un SE y un
programa tradicional
Diferencias entre un sistema experto
y un experto humano
Ventajas de los sistemas expertos
Están siempre disponibles a cualquier hora del día y de la
noche, y de forma interrumpida.
Mantiene el humor.
Pueden duplicarse (lo que permite tener tantos SE como se
necesiten).
Pueden situarse en el mismo lugar donde sean necesarios.
Permiten tener decisiones homogéneas efectuadas según
las directrices que se les fijen.
Son fáciles de reprogramar.
Pueden perdurar y crecer en el tiempo de forma indefinida.
Pueden ser consultados por personas o otros sistemas
informáticos.
Desventajas de los sistemas expertos
El conocimiento es difícil de extraer de los expertos
humanos.
La aproximación de cada experto a la situación
evaluada puede ser diferente.
Tienen una noción muy limitada acerca del contexto de
problema, no pueden percibir todas las cosas que un
experto humano puede apreciar de una situación.
Pueden existir decisiones que sólo son de competencia
para un ser humano y no una máquina.
No saben como subsanar sus limitaciones, no son
capaces de trabajar en equipo o investigar algo nuevo.
Son muy costosos de desarrollar y mantener.
Limitaciones
El desarrollo de un SE complejo puede ser difícil, costoso y
requerir de tiempo, por lo tanto, es importante asegurarse de
que los posibles beneficios valen el esfuerzo y que las diversas
características del SE se equilibran, en términos de costo,
control y complejidad.
No se han usado o probado en forma extensa.
Dificultad de uso.
Están limitados a problemas relativamente limitados.
No pueden enfrentar con facilidad a conocimientos
Posibilidad de error.
Dificultad de mantenimiento.
Pueden tener costo altos de desarrollo.
Ocasionan preocupaciones legales y éticas.
Forma en que los usuarios
interactúan con los SE
El usuario de un SE puede estar operando en cualquiera de
los siguientes modos:
 VERIFICADOR. El usuario intenta comprobar la validez del
desempeño del sistema.
TUTOR. El usuario da información adicional al sistema o
modifica el conocimiento que ya está presente en el
sistema.
ALUMNO. El usuario busca rápidamente desarrollar pericia
personal relacionada con el área específica mediante la
recuperación de conocimientos organizados y
condensados del sistema.
CLIENTE. El usuario aplica la pericia del sistema a tareas
específicas reales.
Sistema experto VS. sistema clásico
Tipos de Sistemas Expertos
Principalmente existen tres tipos de sistemas expertos:
Basados en reglas.
Basados en casos o CBR (Case Based Reasoning-
Razonamiento Basado en Casos).
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.
Estructura básica de un s.e.
Un Sistema Experto está conformado por:
Base de conocimientos (BC): Contiene conocimiento
modelado extraído del diálogo con el 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.
Estructura básica de un S.E.
Lenguajes utilizados en la
construcción de S.E.
LISP
Acrónimo de lenguaje de Procesamiento de Listas, fue inventado por
John McCarthy y su equipo en la Universidad de Stanford a finales de
1950. Originalmente fue creado como un modelo computacional de
procesos matemáticos, reflejando el rigor de las propias
matemáticas.7
Actualmente está diseñado para manejar símbolos matemáticos
(variables), por lo que es utilizado perfectamente para la investigación
en IA, donde un símbolo puede representar cualquier cosa. LISP tiene
dos características principales que lo hacen sobresalir de entre los
demás lenguajes para IA; primero, es altamente flexible, es decir, es
posible escribir un programa LISP para producir cualquier
comportamiento deseable de la computadora; segundo, es
indefinidamente extensible, lo que significa que si como programador
siente que a LISP le falta alguna característica, puede escribir un
programa LISP que provea dicha característica.
Clips
Es otra herramienta para el desarrollo de S.E. que ofrece
un entorno completo para su construcción basado en
reglas y objetos. CLIPS está siendo utilizado por
numerosos usuarios como la NASA (que es su
creadora), muchas universidades y empresas. CLIPS
viene de (C Language Integrated Production System) y
como su nombre indica uno de los objetivos que
buscaban sus creadores era la fácil integración con
programas en C. Así, al darle una portabilidad con
programas en lenguaje C, las universidades que lo usan
pueden trasladar fácilmente sus aplicaciones al entorno
del agente.
Prolog
Prolog es un lenguaje de programación que se centra
alrededor de un conjunto pequeño de mecanismos,
incluyendo reconocimiento de patrones, estructuras de
datos basadas en árboles y bactraking (retroceso)
automático. Este conjunto pequeño constituye una
estructura de programación sorprendentemente
poderosa y flexible. Prolog es ideal para resolver
problemas que involucren objetos – en particular
objetos estructurados – y relaciones entre ellos. Por
ejemplo, un ejercicio muy sencillo en Prolog es expresar
relaciones espaciales, de la forma: “la esfera azul detrás
de la verde”.10
Características de importantes de
Prolog
 Sentencias de asignación.
 Sentencias goto.
 Sentencias if – then – else.
 Ciclos do, ciclos for y ciclos while.
Sin embargo, Prolog compensa tales características con las siguientes, las
cuales lo hacen un lenguaje poderoso para la representación del conocimiento:
 Predicados que expresan relaciones entre entidades.
 Un método para definir predicados mediante reglas de aserción y hechos.
 Un método para hacer preguntas para comenzar cómputos.
 Un procedimiento de búsqueda hacia atrás para evaluar metas.
 Estructura de datos que pueden simular registros estilo Pascal o listas estilo
Lisp.
 Un reconocedor de patrones que construye y analiza las estructuras de
datos.
 Un conjunto de predicados preconstruidos para aritmética, entrada y salida
y servicios de sistemas.
Smalltalk
Fue el primer lenguaje de programación que fue
diseñado para basarse exclusivamente en objetos. Fue
originalmente inventado por Alan Kay en Xerox PARC en
1972, pero mucha gente le ha hecho importantes
contribuciones al diseño del lenguaje. Este lenguaje se
ha convertido en una opción muy popular en diversos
campos como los videojuegos y la Inteligencia Artificial.
Virtualmente todo lo que existe en un sistema Smalltalk
es una instancia de una clase particular de objeto y
generalmente puede haber tantas instancias como se
deseen. Esto significa que se pueden tener cualquier
número de instancias de cualquier característica del
sistema activas al mismo tiempo.
C y C++
C es uno de los lenguajes de programación más populares en
uso. Proporciona un esqueleto estructurado sin límites para
la creatividad del programador; una de las ventajas de C
sobre otros
lenguajes usados para investigación en IA es que es un
lenguaje estructurado y además, si su aplicación no requiere
usar la técnica Backtracking ni los recursos de una base de
datos, estos no se convierten en un peso extra que debe
soportar la aplicación.
En cuanto a C++ se puede decir que es una extensión
orientada a objetos de C, la cual permite utilizar la
metodología orientada a objetos para la creación de diversos
sistemas y programas, incluso los de IA.
Herramientas y Shells utilizados en
la construcción de S.E.
Después de que muchos SE se construyeron así, quedo
claro que estos sistemas estaban construidos como un
conjunto de representaciones declarativas (reglas)
combinado con un intérprete de estas
representaciones; también quedo claro que era posible
separar el intérprete del conocimiento específico del
dominio y por lo tanto se podían crear sistemas que
podían ser usados para construir nuevos SE agregando
simplemente conocimiento correspondiente al dominio
del nuevo problema.
Herramientas y Shells utilizados
en la construcción de S.E.
Así nacieron los shells los cuales sirven como base para
muchos SE, ya que proporcionan mucha flexibilidad en
representación del conocimiento y razonamiento, así
como adquisición de conocimiento. 16
A continuación se mencionan algunos de los principales
shells de SE, que como ya se mencionó, son SE sin su
base de conocimiento, es decir, se pueden utilizar de
forma genérica para cualquier tema.
MEDTOOL
Para desarrollar Sistemas Expertos
Gold Works II
Esta herramienta de programación creada por Gold Hill
Computers Inc. se ejecuta bajo LISP y utiliza la metodología
orientada a objetos. Este programa corre en computadoras
IBM compatibles, Macintosh y estaciones de trabajo Sun.
Las características que realzan a este programa incluyen una
herramienta dinámica de gráficos que permite la creación de
imágenes activas así como también permite desarrollar
interactivamente interfaces gráficas dinámicas sin tener que
escribir ni una línea de código; también se incluyen visores
orientados a gráficos para marcos, reglas y afirmaciones
(aserciones). Se integra fácilmente con C.
Art
Es una herramienta que tiene un número de
características poderosas para el desarrollo de SE, por
ejemplo, permite la construcción de varios escenarios o
mundo hipotéticos, los cuáles pueden ser explorados
automáticamente para determinar su deseabilidad. De
esta forma varios escenarios alternos pueden ser
explorados para probar un plan estratégico dado con un
conjunto de sentencias dado.
La característica de esquema es otro aspecto de este
programa el cual provee una representación orientada a
objetos para sistemas resolutores de problemas
basados en conocimientos.
Loops
LOOPS fue desarrollado en el Xerox PARC en 1983. Una de las
ideas centrales en el diseño del ambiente LOOPS es proveer
un sistema de programación de IA que pueda soportar una
estructura de múltiples paradigmas que permitan tantas
opciones de entre paradigmas de programación como sea
posible. La versión actual soporta cuatro paradigmas de
programación principales: el paradigma orientado a objetos,
el paradigma basado en reglas, el paradigma orientado a
accesos y el paradigma procedural normal. Como cualquier
otro sistema de programación orientado a objetos, LOOPS
permite la creación de jerarquías de clases e instancias de
dichas clases.
Kee
KEE, acrónimo de Ambiente de Ingeniería del
Conocimiento, de IntelliCorp es una de las herramientas
de desarrollo orientados a objetos de SE más avanzada
en la actualidad. Hoy en día tiene un considerable uso
en esfuerzos mayores de desarrollo tanto en el sector
comercial como en el gobierno.
Las funciones en KEE se implementan como
extensiones de LISP, de manera que todo el vocabulario
del lenguaje LISP puede usarse en conjunción con las
funciones predefinidas. El sistema entero esta
construido en una estructura de objetos, que en el
ambiente son llamados unidades.
Humble
Humble es un Shell orientado a objetos para SE escrito en
Smalltalk que combina reglas con encadenamiento hacia
delante y hacia atrás con representación de objetos, paso de
mensajes y uso de objetos. Las reglas de sintaxis usadas en
Humble son una versión modificada de la sintaxis de
Smalltalk. A diferencia de la mayoría de los shells, Humble
tiene la capacidad de construir bloques if – then – else.
La característica principal de Humble es que las reglas operan
sobre entidades. Las entidades son un importante tipo de
objeto que tienen una representación específica. En las
aplicaciones las entidades se categorizan en un número de
tipos diferentes los cuáles son definidos por el desarrollador
o por el Ingeniero de conocimientos.
Emycin
EMYCIN es acrónimo de Empty MYCIN (MYCIN vacío); este
shell fue creado a partir de MYCIN, uno de los SE más
exitosos en la época de los setentas. Se construyó con el fin
de que fuera usado para otros fines, además del diagnóstico
de enfermedades en la sangre (objetivo para el cual fue
creado). Este shell utiliza un lenguaje, llamado ARL, el cual es
una notación de Algol y provee facilidades para monitorear el
comportamiento de reglas. Sin embargo es difícil distinguir
diferentes tipos de conocimiento (no se puede hacer
diferencia entre conocimiento de control y conocimiento a
cerca de los valores esperados de los parámetros), por lo que
el agregar una nueva regla también se vuelve un proceso
complicado.
Aplicaciones de los Sistemas
Expertos.
Factores que justifican el desarrollo de un sistema
experto:
 El coste para formar nuevos expertos es muy alto.
 Existe el riesgo de perder los conocimientos y la
experiencia en posesión de los expertos.
 Los expertos reconocidos que resuelven ese tipo de
problemas son escasos.
 Es conveniente disponer de expertos sin restricciones
de tiempo y lugar.
 Los expertos tienen que trabajar en ambientes hostiles.
Aplicaciones de los Sistemas
Expertos.

Tipo de problemas que hacen apropiado el desarrollo de un


sistema experto.
 Las tareas requieren principalmente tratamiento y
razonamiento simbólico.
 Las tareas admiten el uso de métodos heurísticos.
 Las tareas no son demasiado fáciles.
 Las tareas tienen un valor eminentemente práctico.
 Las tareas tienen un tamaño razonable, esto es, el número de
conceptos que deben ser manejados es limitado y no
requiere conocimientos de muchas áreas diferentes.
Campo de aplicaciones de los SE.
 Sistemas de ayuda a la toma de decisiones. Se trata de
sistemas que a partir de una problemática determinada sugieren la
solución que consideran más idónea a partir del conocimiento
incluido en el sistema. En la actualidad, en España se procede al
desarrollo del Sistema de Información Normativo Aplicado al
Control (SINAC) fruto de la colaboración entre la Intervención
General de la Administración del Estado y la Dirección General de
Informática Presupuestaria. Su función primordial consiste en
ayudar en la fiscalización y control de la actividad económica del
Sector Público. Otro ejemplo significativo podría ser la
Metodología de Análisis y Gestión de Riesgos de los sistemas de
Información de las AdminisTraciones públicas(MAGERIT),
elaborada por un equipo interdisciplinar del Comité Técnico de
Seguridad de los Sistemas de Información y Tratamiento
Automatizado de Datos Personales.
Campo de aplicaciones de los SE
 Configuración. Se encargan de la selección y planificación de
los componentes que se necesitan en un proceso
determinado. Un caso típico son los sistemas que ayudan a
configurar los equipos físicos a partir de los componentes
existentes y de las restricciones establecidas.
 Diagnóstico. Se trata de sistemas que a partir de unos
"síntomas" determinan las causas que lo producen. Ejemplo
de ellos son los sistemas basados en el conocimiento de
diagnóstico de enfermedades o de averías.
 Interpretación y Análisis. Sirven para tratar grandes
volúmenes de información, interpretarla, dar un informe
explicativo y sugerir las acciones a tomar. Ejemplo de ellos
pueden ser los sistemas de evaluación de resistencia de
estructuras frente a terremotos o sistemas de supervisión de
procesos industriales.
Campo de aplicaciones de los SE
 Monitorización. En algunas situaciones se considera un caso
particular de sistemas de interpretación y análisis, pero
debido a su frecuente uso se suelen considerar aparte. Estos
sistemas suelen encargarse de monitorizar procesos
suministrando una salida de control como respuesta. Existen
muchos ejemplos de monitorización de procesos en
factorías, plantas químicas, centrales nucleares, etc. Son
sistemas que deben funcionar en tiempo real.
 Planificación. Son sistemas que establecen las etapas y
recursos necesarios para alcanzar un determinado objetivo.
Ejemplo de ellos podría ser un sistema basado en el
conocimiento de planificación de trabajos en una factoría.
 Interfaces inteligentes. Hacen de puente entre las personas y
equipos complejos y de difícil utilización. Caso típico son los
interfaces inteligentes de acceso a base de datos.
Campo de aplicaciones de los SE
 Diseño. Son aquéllos que efectúan la planificación o
trazado de un objeto o sistema en base a los requisitos
especificados. Suelen ser capaces de dar diferentes
soluciones de forma que el usuario pueda elegir aquélla
que le convenga. Ejemplo de este tipo son los sistemas
de ayuda al diseño de puentes, presas, microcircuitos
electrónicos, etc.
Pues el ámbito de aplicación de los sistemas basados en el
conocimiento es muy amplio, el siguiente cuadro indica
algunas de las áreas en las que se han aplicado sistemas
basados en el conocimiento y el tipo de problema que
abordan.
Conclusiones
Actualmente el duro, difícil y cambiante mercado competitivo
se vuelve más complejo por la gran diversidad de información
que se ven obligados a almacenar y analizar, razón por la cual
las empresas se ven en la necesidad de recurrir a poderosas y/o
robustas herramientas o sistemas que les sirvan de soporte a la
hora de tomar decisiones. De esta forma estos inteligentes,
precisos y eficientes sistemas son adoptados por más
organizaciones, en las cuales se convierten y/o transforman en
una importante estrategia de negocio.
Por otra parte es importante mencionar que estos seguirán
siendo usados en los todos y cada una de las áreas y/o campos
donde los expertos humanos sean escasos. Por consecuencia de
lo anterior estos sistemas son utilizados por personas no
especializadas, por lo cual el uso frecuente de los (SE) les
produce y/o genera conocimiento a los usuarios.

You might also like