El objetivo de este trabajo es dar a conocer, mediante una precisa descripción, lo que son los Sistemas Expertos (SE); los cuales son conocidos también como Sistemas Basados en Conocimiento.
3. RESUMEN
El objetivo de este trabajo es dar a conocer, mediante una precisa descripción, lo que son los
Sistemas Expertos (SE); los cuales son conocidos también como Sistemas Basados en
Conocimiento. Pues, se basan en conocimientos propios que tiene un profesional en
determinada área. Así mismo, mostrar brevemente los orígenes, conceptos, aplicaciones,
ventajas, limitaciones, y la arquitectura básica de este campo de la Inteligencia Artificial.
Como conclusión más resaltante, los Sistemas Expertos son software inteligentes, pues
almacenan los conocimientos de un “experto humano” para, posteriormente, usarlo en la
solución de un problema emergente.
Palabras clave: Sistemas Expertos, Base de Conocimientos, Base de Hechos, Motor de
Inferencia, Inteligencia Artificial.
3
5. INTRODUCCIÓN
En la actualidad el cambiante mercado competitivo se vuelve más complejo por la gran
diversidad de información que las empresas se ven obligados a almacenar y analizar, razón por
la cual estas empresas se ven en la necesidad de recurrir a poderosas y robustas herramientas
o sistemas que les sirvan de soporte a la hora de tomar decisiones. Es así como nacen los
denominados Sistemas Expertos, los cuales tienen la finalidad de brindar posibles soluciones a
determinados casos con un elevado porcentaje de exactitud. De esta forma estos inteligentes,
precisos y eficientes sistemas son adoptados por más organizaciones, en las cuales se
convierten en una importante estrategia de negocio.
Este trabajo está organizado de la siguiente forma: En el primer capítulo hablaremos
brevemente sobre cómo, a lo largo de la historia, nace este término. Por lo que definiremos lo
que es un sistema experto, cómo se clasifican, cuál es su arquitectura y características más
resaltantes. El segundo capítulo describe las aplicaciones en que se puede aprovechar un
sistema experto, cómo desarrollar y cómo llegar a programarlos. Para este último, se muestran
sencillos ejemplos de aplicación lógica y uno práctico. El tercer y último capítulo describe las
ventajas, desventajas y limitaciones de todo Sistema Experto.
Por otra parte es importante mencionar que, los denominados Sistemas Expertos, seguirán
siendo usados en todas 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 que, a su vez, les permite adquirir conocimientos.
5
6. CAPÍTULO I: Fundamentos sobre los Sistemas Expertos
Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones
teóricas y al desarrollo de experimentos a través de programas que demostraran
“actitudes inteligentes”, con estos programas se pretendía que una máquina de
computadora jugará ajedrez, demostrara teoremas matemáticos, genere probabilidades
estadísticas, etc.
No fue hasta los años 70 en que surgió un nuevo paradigma en la Inteligencia Artificial “los
Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría
un especialista en un área determinada, pero la idea no es sustituir a los expertos; sino,
más bien, que estos sistemas sirvan de apoyo a los especialistas en un “dominio” de
aplicación específica.1
1.1. Breve Historia de los Sistemas Expertos
Los Sistemas Expertos nacen como consecuencia de la Inteligencia Artificial. El cual es
un software que imita el comportamiento de un experto humano en la solución de un
problema; y que además, pueden almacenar conocimientos de expertos para un campo
determinado y solucionar un problema mediante deducción lógica de conclusiones.2
Para un mejor entendimiento de lo que es un SE, se ha creído conveniente dar a conocer
de manera muy resumida, el cómo se ha desarrollado esta nueva tecnología a lo largo de
la historia.
Los Sistemas Expertos han evolucionado según el orden siguiente:
A inicios de los años 50 ya se hablaba de Máquinas (computadoras) con inteligencia
propia, con la capacidad de aprender, razonar y actuar en determinadas situaciones. Es
así como el matemático británico Alan Mathison Turing, después de varios años de
estudios en este campo, publicó “La Inteligencia y funcionamiento de las máquinas”, en
1950, con el fin de demostrar hasta qué punto las máquinas contaban con inteligencia.
Ese mismo año, un notable matemático estadounidense, Norbert Wiener, desarrollaría el
principio de la retroalimentación. La cual es base fundamental de los sistemas de control.
1
Alejandro Madruga. Soy un cibernético, «¿Que es un sistema experto?».
http://cibernetica.wordpress.com/2007/03/09/%c2%bfqueesunsistemaexperto/. (accedido enero 18, 2014)
2
José Criado Briz. Ingenieros en Informática, «Introducción a los sistemas expertos».
http://ingenieroseninformatica.org/recursos/tutoriales/sist_exp/cap1.php. (accedido enero 06, 2014)
6
7. Años más adelante, en 1955, Newell y Simon desarrollan la Teoría de la lógica. Cuyo
desarrollo permitió crear un programa que exploraba la solución a un problema, utilizando
ramas y nudos, seleccionando únicamente las ramas que más parecían acercarse a la
solución correcta del problema.
Luego, en 1956, un joven John McCarthy convocaría a una conferencia en Dartmouth. En
donde, este mismo personaje, acuñó allí el término “Inteligencia Artificial”. A esta
conferencia asistieron también Minsky, Newell y Simon; personajes quienes más adelante
aportarían con grandes conocimientos en esta nueva área de la informática.
En 1957, durante esta década los investigadores Alan Newell y Herbert Simon
desarrollaron un programa llamado GPS (General Problem Solver; solucionador general
de problemas), el cual podía trabajar con criptoaritmética, con las torres de Hanói y con
otros problemas similares. Pero lo que no podía hacer el GPS era resolver problemas del
mundo real, tales como un diagnóstico médico.
Posteriormente, en 1958, McCarthy anuncia su nuevo desarrollo, el lenguaje LISP (LISt
Processing). El lenguaje de elección para todos aquellos desarrolladores inmersos en el
estudio de la IA.
A partir de 1965, un equipo dirigido por Edward Feigenbaum, comenzó a desarrollar SE
utilizando bases de conocimiento definidas minuciosamente. Dos años más tarde se
construye DENDRAL, el cual es considerado como el primer SE. La función de dicho SE
era identificar estructuras químicas moleculares a partir del análisis espectrográfico.
Junto a esto, en 1970, se produce el advenimiento de los Sistemas Expertos. Desde
entonces los Sistemas Expertos se han utilizado para ayudar a los médicos a diagnosticar
enfermedades e informar a los mineros a encontrar vetas de mineral.
Luego, en 1972, aparece el lenguaje PROLOGUE basado en las teorías de Minsky.
Orientado también al desarrollo de IA.
Finalmente, en 1987, Martin Fischles y Oscar Firschein describieron los atributos de un
agente inteligente. Los cuales debían tener, lo siguiente:
➔ Actitudes mentales tales como creencias e intenciones.
➔ Capacidad de obtener conocimiento, es decir, aprender.
➔ Puede resolver problemas, incluso particionando problemas complejos en otros
más simples.
➔ Entiende. Posee la capacidad de crearle sentido, si es posible, a ideas ambiguas
o contradictorias.
➔ Planifica, predice consecuencias, evalúa alternativas (como en los juegos de
ajedrez).
7
8. ➔ Conoce los límites de su propias habilidades y conocimientos.
➔ Puede distinguir a pesar de las similitud de las situaciones.
➔ Puede ser original, creando incluso nuevos conceptos o ideas, y hasta utilizando
analogías.
➔ Puede generalizar.
➔ Puede percibir y modelar el mundo exterior.
➔ Puede entender y utilizar el lenguaje y sus símbolos.
En los 90’, la IA se utilizaría de forma efectiva en la Guerra del Golfo sobre sistemas de
misiles visores para los soldados y otros avances, y al mismo tiempo, invade nuestros
hogares y vida cotidiana en muchos más lugares.
Desde entonces, se han ido investigando y desarrollando nuevas formas de aprovechar
los SE. Por lo que, diremos que la IA, es una nueva tecnología emergente y en expansión.
La cual posee características humanas, como el aprendizaje, la adaptación, el
razonamiento, la autocorrección, el mejoramiento implícito, y la percepción modular del
mundo.
1.2. Definición de Sistema Experto
De manera general, decimos que:
“Un sistema experto puede definirse como un sistema basado en los
conocimientos que imita el pensamiento de un experto, para resolver problemas
de un terreno particular de aplicación”.
En la literatura existente se pueden encontrar muchas definiciones de sistema experto.
Por ejemplo, Stevens (1984), página 40, nos da la definición siguiente:
“Los sistemas expertos son máquinas que piensan y razonan como un experto
lo haría en una cierta especialidad o campo. Por ejemplo, un sistema experto en
diagnóstico médico requeriría como datos los síntomas del paciente, los resultados
de análisis clínicos y otros hechos relevantes, y, utilizando estos, buscaría en una
base de datos la información necesaria para poder identificar la correspondiente
enfermedad.[...] Un Sistema Experto de verdad, no solo realiza las funciones
adicionales de manejar grandes cantidades de datos, sino que también manipula
esos datos de forma tal que el resultado sea inteligible y tenga significado para
responder a preguntas incluso no completamente especificadas.”.
Aunque lo anterior no es todavía una definición razonable de un sistema experto, han
8
9. surgido desde entonces otras definiciones, debido al rápido desarrollo de la tecnología.
Como es el caso de Castillo y Álvarez (1991) y Durkin (1994). El sentido de estas
definiciones puede resumirse como sigue:
“Un sistema experto puede definirse como un sistema informático (hardware y
software) que simula a los expertos humanos en un área de especialización dada.
Como tal, un sistema experto debería ser capaz de procesar y memorizar
información, aprender y razonar en situaciones deterministas e inciertas,
comunicar a los usuarios, tomar decisiones apropiadas, y explicar el por qué se
han tomado tales decisiones”.3
Por lo que, estos sistemas expertos son en lo esencial sistemas de computación basados
en conocimientos cuyos componentes representan un enfoque cualitativo de la
programación. Muchas personas pueden creer que un Sistema Experto (SE) es un
sistema compuesto por subsistemas y a su vez estos por otros subsistemas hasta llegar
a los programas, y que los SE se miden por la cantidad de programas que contienen. Sin
embargo, la cantidad no es lo que prima en los SE, sino la cualidad del mismo, esta
cualidad está dada por la separación de las reglas que describen el problema (Base de
Conocimientos), del programa de control que es quien selecciona las reglas adecuadas
(Motor de inferencias).4
En resumen, podemos decir que un Sistema Experto es una Base de Conocimientos
(BC), una Base de Hechos (BH) y un Motor (o Máquina) de Inferencias (MI). Y por otra
parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por
la cantidad de reglas que hay contenida en su Base de Conocimientos. Dichas
deducciones, las definiremos al detalle en el apartado 2.3 Arquitectura.
1.3. Clasificación de Sistema Experto
Principalmente los sistemas expertos, según la naturaleza de problemas para los que
están diseñados,
pueden clasificarse en dos tipos: problemas esencialmente
deterministas y problemas esencialmente estocásticos.
❖ Problemas de tipo determinista, son aquellos sistemas completamente predictivos,
3
Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad de
Cantabria, Santander, España, 1998), 3 4.
4
Alejandro Madruga. Soy un cibernético, «¿Que es un sistema experto?».
http://cibernetica.wordpress.com/2007/03/09/%c2%bfqueesunsistemaexperto/. (accedido enero 18, 2014)
9
10. pero siempre y cuando se conozcan sus entradas. Por lo que, pueden ser formulados
usando un conjunto de reglas que relacionan varios objetos bien definidos. 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.
Ejemplo: Sistemas Expertos usados para transacciones bancarias. Pues, en estos, ya
se definen las reglas de lo que éste sistema realizará en determinadas situaciones.
❖ Problemas de tipo estocásticos, son aquellos cuyo comportamiento es no
determinista, en la medida que el subsiguiente estado del sistema está determinado
tanto por las acciones predecibles del proceso como por elementos aleatorios. Por lo
que un SE estocástico opera utilizando métodos probabilísticos para solucionar
problemas, como el algoritmo de enfriamiento simulado, las redes neuronales
estocásticas, la optimización estocástica, los algoritmos genéticos y la programación
genética. Un problema puede ser estocástico por sí mismo, por el solo hecho de
planificar bajo incertidumbre.
Ejemplo: Sistemas Expertos usados en el campo médico, ya que las relaciones entre
síntomas y enfermedades se conocen solo con un cierto grado de certeza; puesto que,
la presencia de un conjunto de síntomas no siempre implica la presencia de una
enfermedad.
1.4. Arquitectura de un Sistema Experto 5
La arquitectura de los SE, se entienden mejor cuando se examinan sus principales
componentes. Estas componentes se muestran esquemáticamente en la siguiente
imagen, y se explican a continuación:
5
Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad de
Cantabria, Santander, España, 1998), 10 14.
10
11. Fuente: Conceptos básicos sobre sistemas expertos Componentes de un SE
A. El Experto y/o 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
(programadores). 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. Esta etapa requiere una enorme dedicación y un
gran esfuerzo debido a los diferentes lenguajes que hablan las distintas partes y a las
diferentes experiencias que estas tienen.
B. La Base de Conocimiento
Los especialistas son responsables de suministrar a los “ingenieros del conocimiento”
una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien
definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos
humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como
resultado, el especialista se convierte en un mejor conocedor de su propio campo de
especialidad.
Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a
afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc.
Los datos se refieren a la información relacionada con una aplicación particular. Por
ejemplo, en diagnóstico médico, los síntomas, las enfermedades y las relaciones entre
ellos, forman parte del conocimiento, mientras los síntomas particulares de un paciente
dado forman parte de los datos. Mientras el conocimiento es permanente, los datos son
11
12. efímeros, es decir, no forman parte de la componente permanente de un sistema y son
destruidos después de usarlos. El conocimiento se almacena en la base de
conocimiento y los datos se almacenan en la memoria de trabajo. Todos los
procedimientos de los diferentes sistemas y subsistemas que son de carácter transitorio
se almacenan también en la memoria de trabajo.
C. Motor de Inferencia
El motor de inferencia es el corazón de todo sistema experto. El cometido principal de
esta componente es el de sacar conclusiones aplicando el conocimiento a los datos.
Por ejemplo, en diagnóstico 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. Como puede esperarse, el tratamiento de
situaciones de incertidumbre (probabilísticas) puede ser considerablemente más difícil
que el tratamiento de situaciones ciertas (deterministas). En muchos casos, algunos
hechos (datos) no se conocen con absoluta certeza. Por ejemplo, piénsese en un
paciente que no está seguro de sus síntomas. Puede darse el caso de tener que trabajar
solo con conocimiento de tipo no determinista, es decir, de casos en los que se dispone
sólo de información aleatoria o difusa. El motor de inferencia es también responsable de
la propagación de este conocimiento incierto. De hecho, en los sistemas expertos
basados en probabilidad, la propagación de incertidumbre es la tarea principal del motor
de inferencia, que permite sacar conclusiones bajo incertidumbre. Esta tarea es tan
compleja que da lugar a que esta sea probablemente la componente más débil de casi
todos los sistemas expertos existentes.
D. La Base de Hechos
Es la que 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
aplicar las reglas para obtener las conclusiones buscadas.
12
13. E. Interfaz de Usuario
La interfaz 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. Un ejemplo de
la información que tiene que ser mostrada tras el trabajo del motor de inferencia, es el de
las conclusiones, las razones que expliquen tales conclusiones y una explicación de las
acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de inferencia
no puede concluir debido, por ejemplo, a la ausencia de información, la interfaz de
usuario es un vehículo para obtener la información necesaria del usuario.
Consecuentemente, una implementación inadecuada de la interfaz de usuario que no
facilite este proceso minara notablemente la calidad de un sistema experto. Otra razón
de la importancia de la interfaz de usuario es que los usuarios evalúan comúnmente los
sistemas expertos y otros sistemas por la calidad de dicha interfaz más que por la del
sistema experto mismo, aunque, como se dice, no se deberá juzgar “la calidad de un
libro por su portada”.
1.5. Características propias de un Sistema Experto
❖ Una de las principales características de un sistema experto es su capacidad para
aprender. Este aprendizaje se divide en aprendizaje estructural y aprendizaje
paramétrico.
❖ Por aprendizaje estructural nos referimos a algunos aspectos relacionados con la
estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ello, el
descubrimiento de nuevos síntomas relevantes para una enfermedad o la inclusión de
una nueva regla en la base de conocimiento son ejemplos de aprendizaje estructural.
❖ Por aprendizaje paramétrico nos referimos a estimar los parámetros necesarios para
construir la base de conocimiento. Por ello, la estimación de frecuencias o
probabilidades asociadas a síntomas o enfermedades es un ejemplo de aprendizaje
paramétrico.
❖ Habilidad para obtener experiencia a partir de los datos disponibles. Estos datos pueden
ser obtenidos por expertos y no expertos, y pueden utilizarse por el subsistema de
adquisición de conocimiento y por el subsistema de aprendizaje.
❖ De las componentes antes mencionadas puede verse que los sistemas expertos
pueden realizar varias tareas. Estas tareas incluyen, pero no se limitan, a las siguientes:
13
14. ➢ Adquisición de conocimiento y la verificación de su coherencia; por lo que el
sistema experto puede ayudar a los expertos humanos a dar conocimiento
coherente.
➢ Almacenar (memorizar) conocimiento.
➢ Preguntar cuando se requiere nuevo conocimiento.
➢ Aprender de la base de conocimiento y de los datos disponibles.
➢ Realizar inferencia y razonamiento en situaciones deterministas y de
incertidumbre.
➢ Explicar conclusiones o acciones tomadas.
➢ Comunicar con los expertos y no expertos humanos y con otros sistemas
expertos.
14
15. CAPÍTULO II: Implementación y Ejemplos de un Sistema Experto
Para poder implementar Sistemas Expertos (SE), es necesario saber cómo desarrollar un
SE, qué etapas seguir y cómo programar un SE. En este capítulo aprenderemos todo ello,
y finalmente crearemos un sencillo ejemplo.
2.1. Aplicaciones de un Sistema Experto 6
Los sistemas expertos, se aplican a una gran diversidad de campos y/o áreas, como la
informática, electrónica, educación, agricultura, militar, transporte, etc.; sin embargo, sus
principales aplicaciones se dan en las gestiones empresariales.. En esta sección se dan
unos pocos ejemplos del tipo de problemas que pueden resolverse mediante sistemas
expertos.
❖ Ejemplo 1, transacciones bancarias: No hace mucho, para hacer una transacción
bancaria, tal como depositar o sacar dinero de una cuenta, uno tenía que visitar el banco
en horas de oficina. Hoy en día, esas y otras muchas transacciones pueden realizarse
en cualquier momento del día o de la noche usando los cajeros automáticos que son
ejemplos sencillos de sistemas expertos. De hecho, se pueden realizar estas
transacciones desde casa comunicándose con el sistema experto mediante la línea
telefónica o el internet.
❖ Ejemplo 2, control de tráfico: El control de tráfico es una de las aplicaciones más
importantes de los sistemas expertos. No hace mucho tiempo, el flujo de tráfico en las
calles de una ciudad se controlaba mediante guardias de tráfico que controlaban el
mismo en las intersecciones. Hoy se utilizan sistemas expertos que operan
automáticamente los semáforos y regulan el flujo del tráfico en las calles de una ciudad y
en los ferrocarriles.
❖ Ejemplo 3, gestiones empresariales: En donde un SE realizará las funciones básicas
de tratamiento de la información, para: contabilidad general, ayudar en la toma de
decisiones financieras, gestión de la tesorería, planificación, etc. La ventaja es que un SE
puede llegar a manejar grandes volúmenes de información y realizar operaciones
numéricas rapidísimas.
❖ Ejemplo 4, problemas de planificación: Los sistemas expertos pueden utilizarse
también para resolver problemas complicados de planificación de forma que se
6
Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad de
Cantabria, Santander, España, 1998), 4.
15
16. optimicen ciertos objetivos como, por ejemplo, la organización y asignación de aulas
para la realización de exámenes finales en una gran universidad, de forma tal que se
logren los objetivos siguientes:
➢ Eliminar las coincidencias de asignación simultánea de aulas: Solo se puede
realizar un examen en cada aula al mismo tiempo.
➢ Asientos suficientes: Un aula asignada para un examen debe tener al menos dos
asientos por estudiante.
➢ Minimizar los conflictos temporales: Minimizar el número de alumnos que tienen
exámenes coincidentes.
➢ Eliminar la sobrecarga de trabajo: Ningún alumno debe tener más de dos
exámenes en un periodo de 24 horas.
➢ Minimizar el número de exámenes realizados durante las tardes.
Además los SE también se aplican en la contabilidad en apartados como: Auditoría,
Fiscalidad, planificación, análisis financiero y la contabilidad financiera.
2.2. ¿Cómo desarrollar un Sistema Experto?7
Al igual que para desarrollar un sistema de información convencional existen varias
metodologías de desarrollo como la Ingeniería de la Información, tendencias estructuradas
y orientadas a objetos; así existen varias metodologías para desarrollar un sistema
experto. Metodologías como las de Buchanan, Grover, Brule, Blanque y García Martínez,
KADS; entre otras. Sin embargo, Weiss y Kulikowski (1984) sugieren las etapas
siguientes para el diseño e implementación de un sistema experto:
7
Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad de
Cantabria, Santander, España, 1998), 15 16.
16
17. Fuente: Sistemas Expertos y Modelos de Redes Probabilísticas (Pág. 15)
Describiendo las etapas de la imagen, tenemos:
❖ 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 que puedan resolver el problema. En algunos casos, sin
embargo, las bases de datos pueden jugar el papel del experto humano.
❖ Diseño de un sistema experto: Esta etapa incluye el diseño de estructuras para
almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la
interfaz de usuario, etc.
❖ Elección de la herramienta de desarrollo, shell, o lenguaje de programación: Se
debe decidir si realizar un sistema experto a medida, o utilizar un shell, una herramienta,
o un lenguaje de programación. Si existiera un shell que satisfaga todos los
17
18. requerimientos del diseño, esta deberá ser la elección, no solo por razones de tipo
financiero sino también por razones de fiabilidad. Las conchas y herramientas
comerciales están sujetas a controles de calidad, a los que otros programas no lo están.
❖ Desarrollo y prueba de un prototipo: Si el prototipo no pasa las pruebas requeridas,
las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que
se obtenga un prototipo satisfactorio.
❖ Refinamiento y generalización: En esta etapa se corrigen los fallos y se incluyen
nuevas posibilidades no incorporadas en el diseño inicial.
❖ Mantenimiento y puesta al día: En esta etapa el usuario plantea problemas o defectos
del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.
NOTA: Todas estas etapas influyen en la calidad del sistema experto resultante, que
siempre debe ser evaluado en función de las aportaciones de los usuarios.
2.3. ¿Cómo programar un Sistema Experto?8
Para desarrollar y programar los sistemas expertos primero es necesario (tal y como se
había definido en el capítulo II) abordar un área de interés, dentro de esta área se
seleccionan a los expertos, que son los especialistas capaces de resolver los problemas
en dicha área. Por ejemplo, el área de interés de las empresas de proyectos de
construcción, son precisamente los proyectos, y un especialista podría ser un arquitecto,
un ingeniero civil, entre otros.
Ahora bien, casi siempre estos especialistas, son expertos en un dominio específico y es
sobre este dominio, donde poseen su mayor experiencia (Dominio de Experticidad), por
ejemplo un Ing. civil que tenga especialidad en cimientos.
Una vez seleccionado al experto o a los expertos, y estos estén de acuerdo en dar sus
conocimientos, comienza a jugar su papel el “Ingeniero de Conocimientos”, que es el
encargado de extraer los conocimientos al experto y darle una representación adecuada,
ya sea en forma de reglas u otro tipo de representación, conformando así la base de
conocimientos del sistema experto.
Formas de representación de los conocimientos:
8
Alejandro Madruga. Soy un cibernético, «¿Que es un sistema experto?».
http://cibernetica.wordpress.com/2007/03/09/%c2%bfqueesunsistemaexperto/. (accedido enero 18, 2014)
18
19. ➢ Reglas de producción.
➢ Redes semánticas.
➢ Marcos (Frames).
La forma de representación más usada es por reglas de producción, también llamadas
reglas de inferencias. Casi todos los sistemas expertos están basados en este tipo de
representación, ahora nos ocuparemos de los sistemas basados en reglas.
Las reglas de producción son del tipo:
SI Premisa ENTONCES Conclusión (SI A ENTONCES B).
Donde tanto las premisas como la conclusión, no son más que una cadena de hechos
conectados por “Y” o por “O”, de forma general sería:
SI Hecho1 Y/O Hecho2 Y/O… HechoN ENTONCES Hecho1 Y/O … HechoN
Los hechos son afirmaciones que sirven para representar conceptos, datos, objetos, etc;
y el conjunto de hechos que describen el problema es la base de hechos.
Según el lenguaje de programación Prolog (recomendable para programar SE), estas
reglas son del tipo:
Si H1 y H2 y H3,… entonces Hc
De dónde, llegaremos hasta “Hc” (Hecho de Conclusión), siempre y cuando se
cumpla todos los demás hechos (H).
Por lo que, tendríamos que:
Hc si H1 y H2 y H3 y…
Y finalmente, llegamos a la siguiente sintaxis:
Hc: H1, H2, H3,…
Donde los hechos son un conjunto de predicados que deben cumplirse.
Ejemplo:
Regla #1: Si X>3 y Y=5 entonces Z =3 y A<5.
En caso que X no sea mayor que 3 la regla falla y se buscará otra regla. En este
19
20. caso debe cumplirse ambas condiciones (para la X y la Y). En tanto, la regla se
cumpla, entonces se ejecutará la acción para Z y A.
Por lo tanto, los hechos son afirmaciones que se refieren a los conceptos (clases y
objetos) y a las relaciones (atributos) entre ellos.
Ahora, veamos como es que se representan estos hechos en diferentes aplicaciones de
la IA:
❖ MYCIN (software)
Sistema Experto desarrollado a principios de los años 70 por Edgar ShortLiffe, en la
Universidad de Stanford. Fue escrito en Lisp, y su función principal consistía en el
diagnóstico de enfermedades infecciosas de la sangre; además, MYCIN era capaz de
"razonar" el proceso seguido para llegar a estos diagnósticos, y recetar medicaciones
personalizadas a cada paciente (según su estatura, peso, etc.)
Ejemplo de cómo clasificaba este software una entrada:
❖ DENDRAL (software)
Sistema Experto desarrollado a mediados de los años 60 por Edward Feigenbaum, en la
Universidad de Stanford. Inicialmente escrito en Lisp, fue el primer sistema experto en
ser utilizado para propósitos reales, en investigaciones sobre estructuras moleculares;
usados por químicos y biólogos.
Ejemplo de cómo clasificaba este software una entrada:
❖ PROLOG (Shell)
20
21. Proveniente del francés PROgrammation en LOGique. Este es un lenguaje de
programación que utiliza un paradigma lógico y declarativos, y que se centra alrededor
de un conjunto pequeño de mecanismos, incluyendo reconocimiento de patrones,
estructura de datos basadas en árboles y backtraking (retroceso) automático. Es ideal
para resolver problemas que involucren objetos estructurados y las relaciones entre
ellos.
Ejemplo:
❖ EXSYS (software)
Es un sistema experto basado en reglas con muchas mejoras, tales como Frames,
Blackboards y el lenguaje de comandos de procedimiento (Procedural Command
Language). Cláusulas como IFTHENELSE que se utilizan para describir la lógica del
sistema.
Ejemplo:
❖ R1 (Shell)
Este software permite introducir la base de conocimiento sin preocuparse de programar
los otros componentes principales del sistema (motor de inferencia e interfaz de
usuario). Sin embargo, se debe incluir factores de certeza.
Ejemplo:
21
22. NOTA: Estos lenguajes descomponen, claramente, una oración, un término, un
conocimiento; en palabras que, por medio de hechos, un sistema experto logrará conjugar
y arrojar un resultado.
2.4. Ejemplos de Reglas en los SE9
En relación a lo descrito anteriormente, se mostrará ejemplos prácticos de estas reglas.
2.4.1. Ejemplo 1, por definición de datos
Juan es un estudiante.
Juan tiene 8 años.
El perro es blanco.
A María le gusta el cine.
Pedro prefiere la película.
La edad de Luis es de 25 años.
Pedro tiene un salario de 200 soles.
Para resolver este ejemplo, debemos tener en cuenta una serie de reglas. Las cuales
resultan de la combinación de hechos, los cuales permiten representar conocimientos y
sacar inferencias de los mismos.
Por lo que, representando estos conocimientos en reglas, podríamos tener:
Regla #1: SI Juan es estudiante Y Juan tiene 8 años Entonces Juan estudia en la primaria.
Regla #2: SI el perro es blanco Y el perro se llama Dinky ENTONCES el perro es de Juan.
Regla #3: SI a María le gusta la película Y Juan prefiere la pelota ENTONCES hacen falta
los televisores.
Observe cómo partiendo de hechos conocidos, que describen algún conocimiento, se
pueden inferir nuevos hechos (nuevos conocimientos). Por otra parte la regla #2, no tiene
porque ser totalmente cierta, existe la posibilidad de que el perro no sea de Juan; quizás
se puede afirmar, si fuéramos a cuantificar esa posibilidad, que el perro pertenece a Juan
con una certeza de un 80%, y por último la regla #3 es dependiente del contexto, ya que
aquí se supone que ambos (Juan y María) viven juntos y que los programas de TV
9
Alejandro Madruga. Soy un cibernético, «Conceptos básicos sobre sistemas expertos».
http://cibernetica.wordpress.com/2012/12/04/conceptosbasicossobresistemasexpertos/. (accedido enero 18,
2014)
22
24. al delfín, a la ballena, a la marsopa, etc. Igual sucedió para los peces.
Entonces, de estos mencionados ejemplos, salta la siguiente interrogante:
2.4.3. ¿Cómo buscan los sistemas expertos?
Habiendo dado un estado inicial, se van generando estados a través de la aplicación de un
conjunto de reglas, las cuales al aplicarse originan un nuevo estado, así sucesivamente
hasta alcanzar el estado final.
Por lo que, en consecuencia, habrá un estado inicial y un estado final, que serán definidos
como:
1.
Una base de hechos en la cual aparecerá un hecho que satisface ciertas
características.
2.
Una base de hechos en la cual habrán desaparecido todos los hechos a
establecer.
3.
Una base de hechos tal que ninguna regla puede aportar una nueva modificación.
Los puntos 1 y 3 son comúnmente adoptados por los motores de encadenamiento hacia
delante, mientras el 2 es adoptado por motores con encadenamiento hacia atrás.
2.4.4. Ejemplo de búsqueda primero en profundidad
Tomemos el ejemplo de las tinas, donde se parte de dos tinas (recipientes para contener
agua) y se quiere lograr que la de 4 galones tenga 2 galones. Las tinas no tienes marcas
que indiquen la cantidad de galones.
Vamos a definir algunas reglas de forma general, considerando las siguientes
restricciones:
1) “Si una tina se llenó hasta el tope, no llenar la otra”.
2) “Si una tina se acaba de llenar hasta el tope, no se puede botar”.
Orden de las reglas:
24
26. CAPÍTULO III: Ventajas, desventajas y limitaciones de un
Sistema Experto
Hasta aquí, no todo es, digamos: “positivo”, “beneficioso”; en los sistemas expertos.
Puesto que estos, así como tiene una gran ventaja en su uso, también tienen desventajas
y limitaciones. Veamos:
3.1. Ventajas de un Sistema Experto10
Estos programas proporcionan la capacidad de trabajar con grandes cantidades de
información, que son uno de los grandes problemas que enfrenta el analista humano que
puede afectar negativamente a la toma de decisiones pues el analista humano puede
depurar datos que no considere relevantes, mientras un SE debido a su gran velocidad de
proceso analiza toda la información incluyendo las no útiles para de esta manera aportar
una decisión más sólida.
Entre otras ventajas, tenemos:
a. Permanencia: A diferencia de un experto humano un SE no envejece, y por tanto no
sufre pérdida de facultades con el paso del tiempo.
b. Duplicación: Una vez programado un SE lo podemos duplicar infinidad de veces.
c. 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.
d. Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de
duplicación el coste finalmente es bajo.
e. Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o dañinos para el ser
humano.
f.
Fiabilidad: Los SE no se ven afectados por condiciones externas, un humano sí
(cansancio, presión, etc.).
g. Consolidar varios conocimientos.
10
Paul Peterson. PaulPeterson SlideShare, «Ventajas y Aplicación de los Sistemas Expertos».
http://www.slideshare.net/PaulPeterson/ventajasyaplicacindelossistemasexpertos474422. (accedido febrero
01, 2014)
26
27. h. Apoyo Académico. Siempre están dispuestos a dar explicaciones, asistir o enseñar a la
gente, así como a aprender.
i.
Están disponibles ininterrumpidamente de día y noche, ofreciendo siempre su máximo
desempeño.
j.
Siempre se ajustan a las normas establecidas y son consistentes en su desempeño, no
desarrollan apreciaciones subjetivas, tendenciosas, irracionales o emocionales.
k. No padece de olvido, fatiga, dolor o comete errores de cálculo.
l.
No requiere un sueldo, promociones, seguros médicos, incapacidades.
m. Y lo más importante, es que pueden tener una vida de servicio ilimitada.
3.2. Desventajas de un Sistema Experto11
a. Necesidad de adiestramiento para su manejo.
b. Necesidad de aprender el lenguaje de programación del mismo para poder usarlo
adecuadamente. Este lenguajes extremadamente lógico y formal. Con un ser humano
esto no ocurre.
c. Sentido Común: Para un SE nada es obvio, todo debe tener una connotación estructural
ya que si esto no se ejecuta de esa forma, sencillamente la data de respuesta no será la
adecuada.
d. Rigidez: Un SE es sumamente rígido a la hora de recibir una información, debido a la
estructura de su programación.
3.3. Limitaciones de un Sistema Experto
a. Es evidente que para actualizar se necesita de reprogramación de estos (tal vez este
sea una de sus limitaciones más acentuadas) otra de sus limitaciones puede ser el
elevado costo en dinero y tiempo, además que estos programas son poco flexibles a
11
Alejandro Tapia. Alejandro Tapia SlideShare, «Inteligencia artificialysistemasexpertos».
http://www.slideshare.net/Alejandrojpt/inteligenciaartificialysistemasexpertos. (accedido enero 16, 2014)
27
28. cambios y de difícil acceso a información no estructurada.
b. Debido a la escasez de expertos humanos en determinadas áreas, los SE pueden
almacenar su conocimiento para cuando sea necesario poder aplicarlo. Así mismo los
SE pueden ser utilizados por personas no especializadas para resolver problemas.
Además si una persona utiliza con frecuencia un SE aprenderá de él.
c. Por otra parte la inteligencia artificial no ha podido desarrollar sistemas que sean
capaces de resolver problemas de manera general, de aplicar el sentido común para
resolver situaciones complejas ni de controlar situaciones ambiguas.
d. El futuro de los SE da vueltas por la cabeza de cada persona, siempre que el campo
elegido tenga la necesidad y/o presencia de un experto para la obtención de cualquier
tipo de beneficio.
28
29. CONCLUSIONES
Los sistemas expertos son desarrollos de la investigación en el campo de la inteligencia
artificial. Un sistema experto es un programa de computador que simula la forma en que los
expertos humanos solucionan problemas, es decir, es un tomador de decisiones artificial.
Los sistemas expertos son herramientas basadas en el computador que están diseñadas para
que operen como soportes de decisiones inteligentes. Por ejemplo, se han construido sistemas
expertos para ayudar a geólogos a decidir dónde perforar para obtener petróleo; a banqueros,
para evaluar solicitudes de préstamos; a técnicos en ventas de computadores, en la manera de
configurar sistemas de computadoras; y a empleados, a decidir entre un amplio número de
alternativas de prestaciones de la compañía.
Además, llegamos a la conclusión de que, los problemas cuyas soluciones requieren toma de
decisiones son buenos candidatos para el desarrollo de sistemas expertos.
La mayoría de los sistemas expertos están conformados por varios componentes, entre los que
se cuentan la base de conocimientos, motor de inferencia y base de hechos. Existe una
variedad de "shells" o editores para la creación de bases de conocimiento para sistemas
expertos, que es parte de la actividad que conlleva al pensamiento crítico. Considerando que,
para la construcción de la base de conocimientos requiere que el programador incorpore el
conocimiento causal.
Y por último, el éxito de un SE depende casi exclusivamente de la calidad de su base de
conocimiento. El inconveniente es que codificar la pericia de un experto humano puede resultar
difícil, largo y laborioso. Sin embargo, el resultado, puede ayudar significativamente en la toma
de decisiones en un determinado negocio.
29
30. REFERENCIAS BIBLIOGRÁFICAS
❏ Buenas Tareas sitio web, «Base De Hechos Inteligencia Artificial Ensayos de Colegas
Kibsal».
http://www.buenastareas.com/ensayos/BaseDeHechosInteligenciaArtificial/268014.ht
ml. (accedido enero 31, 2014).
❏ Castillo, Enrique et al., eds., Sistemas Expertos y Modelos de Redes Probabilísticas.
Universidad de Cantabria, Santander, España, 1998.
❏ Castro Marcel. «Sistemas Expertos».
http://strix.ciens.ucv.ve/~iartific/Material/PP_Sistemas_Expertos.pdf. (accedido febrero
01, 2014).
❏ Criado B. José. «Introducción a los sistemas expertos».
http://ingenieroseninformatica.org/recursos/tutoriales/sist_exp/cap1.php. (accedido enero
06, 2014).
❏ Editorial Paraninfo. Inteligencia artificial: modelos, técnicas y áreas de aplicación, 2003.
http://books.google.com.pe/books?id=_spC6S7UfZgC (accedido enero 15, 2014).
❏ Madruga Alejandro. «Conceptos básicos sobre sistemas expertos».
http://cibernetica.wordpress.com/2012/12/04/conceptosbasicossobresistemasexperto
s/. (accedido enero 18, 2014).
❏ Madruga Alejandro. «¿Que es un sistema experto?».
http://cibernetica.wordpress.com/2007/03/09/%c2%bfqueesunsistemaexperto/.
(accedido enero 18, 2014).
❏ Monografias sitio web, «Sistemas expertos (SE) Monografias.com».
http://www.monografias.com/trabajos16/sistemasexpertos/sistemasexpertos.shtml.
(accedido enero 18, 2014).
❏ Monografias sitio web, «Sistema experto de inteligencia artificial Monografias.com».
http://www.monografias.com/trabajos96/sistemaexpertointeligenciaartificial/sistemaex
pertointeligenciaartificial.shtml. (accedido enero 17, 2014).
❏ Peterson Paul. «Ventajas y Aplicación de los Sistemas Expertos».
30