modulo sistemas expertos

Anuncio
SISTEMAS EXPERTOS
DIANA MARCELA CARDONA ROMAN
Ver 2.0
UNIVERSIDAD NACIONAL ABIERTA Y A
DISTANCIA – UNAD
2.009
SISTEMAS EXPERTOS
DIANA MARCELA CARDONA ROMAN†
Ingeniera de Sistemas‡
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E
INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
2.009
†
‡
La primera versión fue realizada por el Ing. Especialista John Alejandro Figueredo Luna
Estudiante de Maestría de Ing. De sistemas y computación de la Universidad Nacional de Colombia
iii
CONTENIDO TEMÁTICO
GLOSARIO DE TERMINOS
UNIDAD 1. VISION GENERAL DE LA INTELIGENCIA ARTIFICIAL Y LOS
SISTEMAS EXPERTOS
CAPITULO 1. INTRODUCCIÓN A LOS CONCEPTOS BÁSICOS DE LA IA

Lección 1 Visión General de la Inteligencia Artificial
o Introducción
o La base de la inteligencia artificial (IA)
o ¿Pueden pensar las máquinas?

Lección 2
o Los fines de la Inteligencia Artificial
o Historia y Evolución de la Inteligencia Artificial

Lección 3 Características de la Inteligencia Artificial
o Programa fijo y programa modificado por el procesamiento

Lección 4 Funcionamiento Básico de la Inteligencia Artificial
o Símbolos vs. Métodos Numéricos
o Alfabeto del Lenguaje de la Lógica de Primer Orden

Lección 5 Principales Ramas de la Inteligencia Artificial
o Sistemas Expertos
o Robótica
o Sistemas de Visión
o Procesamiento de Lenguaje Natural
o Sistemas de Aprendizaje
o Redes Neuronales
o Sistemas Inmunes Artificiales
o Extracción de Conocimiento (Minería de Datos)
CAPITULO 2. VISION GENERAL DE LOS SISTEMAS EXPERTOS

Lección 6 Visión General de los Sistemas Expertos
o Introducción
o Historia de los Sistemas Expertos (SE)

Lección 7 ¿Que es un Sistema Experto?
o Características de un Sistema Experto

Lección 8 Ventajas de los Sistemas Expertos
o ¿Cuáles son las ventajas de un sistema experto?

Lección 9 Comparación del Sistema Experto
o Los Expertos Humanos
o Diferencias entre un Experto y un no experto humano
iv
o
o
o

Diferencias entre un Sistema Experto y un Programa Tradicional
Diferencias entre un Sistema Experto y un Experto Humano
Ventajas de los sistemas expertos
Lección 10 Futuro de los Sistemas Expertos
o Forma en que los usuarios interactúan con los sistemas expertos
o Sistema Experto vs. Sistema Clásico
o Futuro de los Sistemas Expertos
CAPITULO 3. CAMPOS DE APLICACIÓN, TAREAS QUE REALIZAN Y EJEMPLOS DE
SISTEMAS EXPERTOS

Lección 11 Campos de Aplicación
o Medicina
o Análisis de estados financieros
o Planificación Financiera
o Contabilidad
o Industria

Lección 12 Otros campos de aplicación
o Electrónica, informática y telecomunicaciones
o Militar
o Robótica
o Reconocimiento de patrones
o Otros campos de aplicación

Lección 13 Tareas que realizan los sistemas expertos
o Interpretación, diagnóstico y monitoreo
o Diseño y selección
o Planificación
o Control
o Reparación, corrección o terapia
o Simulación, pronóstico o predicción
o Instrucción
o Recuperación de Información

Lección 14 Ejemplos de Sistemas Expertos en Empresas
o En la Industria
o En Contabilidad
o En Análisis de Estados Financieros
o En Planificación Financiera
o En la Aviación
o En Medicina

Lección 15 Aplicaciones actuales
o Simulación del Baloncesto
o GENSYM: Operaciones Expertas
o G2 CLASSIC
v
UNIDAD 2. DESARROLLO DE UN SISTEMA EXPERTO
CAPTULO 4. ARQUITECTURA Y ELEMENTOS DE LOS SISTEMAS EXPERTOS

Lección 16 Generalidades
o Introducción

Lección 17 Arquitectura de un SE

Lección 18 Elementos de un Sistema Experto (I)
o Componente Humana
o Base de Conocimiento

Lección 19 Elementos de un Sistema Experto (II)
o Componente de adquisición
o Control de Coherencia
o Motor de Inferencia

Lección 20 Elementos de un Sistema Experto (III)
o Componente de ejecución
o El componente explicativo
o La interfase del usuario
CAPITULO 5. PROCESO DE DESARROLLO DE UN SISTEMA EXPERTO

Lección 21
o Introducción
o Desarrollo de un sistema experto
 La base de conocimiento
 Cinco Pasos en la Construcción de una Base de Conocimientos
 Proceso Lógico de Carga de la Base de Conocimiento

Lección 22
o El motor de inferencia
 Método de encadenamiento hacia delante
 Método de encadenamiento hacia atrás.
 Método de reglas de producción

Lección 23
o Construcción del Mecanismo de Inferencia
o Identificación de patrones.
o Ejecución de las reglas.

Lección 24
o La fase de restricción.
o La fase de selección.

Lección 25
o Ejemplo de Funcionamiento del Motor de Inferencia
vi
CAPITULO 6. SISTEMAS EXPERTOS BASADOS EN CONOCIMIENTO

Lección 26
o Definición de sistemas basados en conocimiento
o Características de los sistemas basados en conocimiento
o Principales problemas

Lección 27
o Estructura de los Sistemas Basados en Conocimiento.

Lección 28
 Fases en la adquisición del conocimiento
 Tecnología de los Sistemas Basados en Conocimiento
Lección 29
o Metodologías para la construcción de SE
 Metodología de Prototipos
 Metodología Orientada a Objetos


Lección 30 Ejemplo de Construcción de Un SE, Problema de Monitorización
o Árboles de decisión
o Árboles de decisión que aprenden
o Definición del problema
o Proceso del desarrollo del programa
UNIDAD 3. APRENDIZAJE DE LOS SISTEMAS EXPERTOS
CAPITULO 7. TIPOS DE SISTEMAS EXPERTOS

Lección 31 Sistemas Basados en Reglas
o Base del conocimiento
o Motor de inferencia
 Modus Ponens y Modus Tollens
 Encadenamiento de Reglas
 Encadenamiento de Reglas orientado a un objetivo
o Control de Coherencia
 Coherencia de Reglas
 Incoherencia de Reglas
 Coherencia de Hechos
o Ejemplo
o Conclusiones

Lección 32 Sistemas Expertos Probabilisticos
o La incertidumbre
o Tipos de variables aleatorias
o Definición de Sistemas Expertos Basados en Probabilidad
 Medidas de Probabilidad.
 Propiedades
 Distribución de probabilidad
vii
o
o
o
 Probabilidad Condicional
 Dependencia e Independencia
 Teorema de Bayes
 Reglas generalizadas
Introducción de los sistemas expertos basados en probabilidad
La Base del Conocimiento
 Modelo de Síntomas Dependientes
 Modelo de Síntomas Independientes
 Modelo de Síntomas Relevantes Dependientes
Motor de Inferencia

Lección 33 Redes Bayesianas
o Aprendizaje Automático de la Red Bayesiana
o Clasificadores Bayesianos
 Ejemplo: Adenocarcinoma gástrico
o Comparación entre los SE basado en Reglas y los SE basados en
Probabilidades

Lección 34 Sistemas Basados en Casos
o Historia
o El ciclo del razonamiento basado en casos

Lección 35 Redes Neuronales Artificiales
o Ventajas
CAPITULO 8. LENGUAJES UTILIZADOS

Lección 36 Lenguajes utilizados en la construcción de SE
o LISP
o CLIPS
o Prolog
o Smalltalk
o C y C++

Lección 37 Herramientas y SHELLS utilizados en la construcción de SE
o Gold Works II
o ART
o LOOPS
o KEE
o Humble
o EMYCIN

Lección 38
o Representación del conocimiento
o Lógica Proposicional
o Lógica de Predicados
o Ventajas y desventajas de la lógica de predicados

Lección 39
o Reglas de Producción
o Ventajas y desventajas de las reglas de producción
viii
o
o

Redes Asociativas
Ventajas y desventajas de las Redes Asociativas
Lección 40 Estructuras Frame
o Ventajas y desventajas de los frames
o Representación orientada a objetos
o Ventajas y desventajas de la representación orientada a objetos
CAPITULO 9. INTRODUCCIÓN A PROLOG

Lección 41 Conceptos básicos

Lección 42 Tipos de operadores de Prolog

Lección 43 Construcción de reglas de producción en Prolog

Lección 44 Estructura de un programa en Prolog

Lección 45 Ejemplo programa en Prolog
BIBLIOGRAFIA
ix
GLOSARIO DE TERMINOS
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.
Base de conocimientos: 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.
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.
Dominio: Área de conocimientos que atiende el sistema experto.
Experto en Dominio: Persona o grupo cuya experiencia o conocimientos se
capturan para usarse en un sistema experto.
Lógica Difusa: Área de investigación especializada en la ciencia de la
computación que permite matices de gris y que no requiere que todo sea un
extremo blanco o negro, si/no, o cierto/ falso.
Motor de inferencia: El sistema experto modela el proceso de razonamiento
humano con un módulo conocido como el motor de inferencia. Dicho motor de
inferencia trabaja con la información contenida en la base de conocimientos y la
base de hechos para deducir nuevos hechos. Contrasta los hechos particulares de
la base de hechos con el conocimiento contenido en la base de conocimientos
para obtener conclusiones acerca del problema.
Interfaz de usuario: La interacción entre un sistema experto y un usuario se
realiza en lenguaje natural. También es altamente interactiva y sigue el patrón de
la conversación entre seres humanos.
Regla: Instrucción condicional enlaza determinada condiciones con acciones o
resultados.
Shell: Herramienta con propósitos especiales, diseñada para cierto tipo de
aplicaciones en las que el usuario solo debe proporcionar la base del conocimiento.
Subsistema de explicación: Una característica de los sistemas expertos es su
habilidad para explicar su razonamiento. Usando el módulo del subsistema de
explicación, un sistema experto puede proporcionar una explicación al usuario de
x
por qué está haciendo una pregunta y cómo ha llegado a una conclusión. Este
módulo proporciona beneficios tanto al diseñador del sistema como al usuario. El
diseñador puede usarlo para detectar errores y el usuario se beneficia de la
transparencia del sistema.
xi
UNIDAD 1. VISION GENERAL DE LA INTELIGENCIA
ARTIFICIAL Y LOS SISTEMAS EXPERTOS
CAPITULO 1. INTRODUCCIÓN A LOS CONCEPTOS BÁSICOS DE LA IA
Lección 1
1.1.
INTRODUCCIÓN
La finalidad de la inteligencia artificial consiste en crear teorías y modelos que
muestren la organización y funcionamiento de la inteligencia. Actualmente, el
mayor esfuerzo en la búsqueda de la inteligencia artificial se centra en el
desarrollo de sistemas de procesamientos de datos que sean capaces de imitar a
la inteligencia humana, realizando tareas que requieran aprendizaje, solución de
problemas y decisiones. A veces llamada inteligencia de máquina, la inteligencia
artificial o AI (Artificial Intelligence) cubre una vasta gama de teorías y prácticas.
La inteligencia artificial se define como aquella inteligencia exhibida por artefactos
creados por humanos (es decir, artificial). A menudo se aplica hipotéticamente a
los computadores. El nombre también se usa para referirse al campo de la
investigación científica que intenta acercarse a la creación de tales sistemas.
Existen cuatro puntos de vista principales sobre estos sistemas:




1.2.
Los que piensan como humanos.
Los que actúan como humanos.
Los que piensan racionalmente.
Los que actúan racionalmente.
La base de la inteligencia artificial
La inteligencia artificial se basa en dos áreas de estudio: el cuerpo humano y el
ordenador electrónico. Puesto que la meta es copiar la inteligencia humana, es
necesario entenderla. Sin embargo, a pesar de todos los progresos en Neurología
y Psicología, la inteligencia del hombre se conoce poco, exceptuando sus
manifestaciones externas. Muchos estudiosos de la inteligencia artificial se han
vuelto para obtener su modelo de inteligencia hacia el estudio de la Psicología
cognoscitiva, que aborda la forma de percibir y pensar de los seres humanos.
Después comprueban sus teorías programando los ordenadores para simular los
procesos cognoscitivos en el modelo. Otros investigadores intentan obtener
teorías generales de la inteligencia que sean aplicables a cualquier sistema de
inteligencia y no solo al del ser humano.
xii
1.3.
¿Pueden pensar las máquinas?
En 1950 el matemático inglés Alan M. Turing publicó un ensayo que comenzaba
así: "Quiero proponer una pregunta: ¿Pueden pensar las máquinas?." Como la
pregunta era demasiado vaga (¿Qué entendemos por "pensar"?), Turing
desarrolló un experimento basado en un juego de salón en el que una persona
formula a dos jugadores escondidos (un hombre y una mujer) preguntas que le
servirán para descubrir cuál de los dos es la mujer.
Turing propuso sustituir uno de los dos jugadores escondidos por una máquina
inteligente capaz de conversar. Si el examinador, que se servía de un teletipo para
comunicarse, no podía distinguir cuál de los dos jugadores era la máquina, ello
evidenciaría – según Turing – que la máquina podía pensar. En la actualidad, este
experimento de Turing podría ser superado, en situaciones limitadas, por muchos
programas de ordenador estudiados para dialogar con el usuario.
Investigaciones acerca de la inteligencia artificial realizadas en la Universidad de
Yale (EE.UU.) han llevado al desarrollo de programas de ordenador mediante los
cuales éstos pueden aprender y razonar. Otros estudiosos de la inteligencia
artificial están poniendo a punto sistemas para dotar a los ordenadores de
capacidad visual y auditiva. Una importante área de investigación es la del
lenguaje normal, que permite a los ordenadores comunicarse mediante lenguaje
humano en lugar de hacerlo en lenguaje de máquina.
Es decir, la mayoría de los ordenadores están programados para recibir e
interpretar instrucciones de este tipo: S#DYR=48-56, LOC=AS NOT SW,
EN=RALSTON". Únicamente personas preparadas son capaces de comunicarse
eficazmente de esta forma. Pero si un ordenador programado para gestionar la
documentación de una compañía petrolífera pudiese entender la orden
dactilografiada (traducción de la anterior) "Encuéntrame toda la documentación
relativa a las perforaciones de los pozos de Arabia Saudita entre 1948 y 1956,
pero únicamente la de los pozos en que trabajó Ralston, no los de la zona
surocciodental del país", muchas personas podrían utilizarlo.
Lección 2
1.4 Los fines de la Inteligencia Artificial
Las primeras investigaciones acerca de la inteligencia artificial estaban
principalmente dirigidas al hallazgo de una técnica universal para la solución de
problemas. Este intento a gran escala ha sido abandonado y las investigaciones
actuales están dirigidas al diseño de numerosos programas para ordenadores
capaces de imitar los procesos de toma de decisiones de expertos, como médicos,
químicos, basados en los conocimientos de especialistas en cada materia, son
ahora utilizados para diagnosticar enfermedades, identificar moléculas químicas,
localizar yacimientos de minerales e incluso diseñar sistemas de fabricación.
Investigaciones acerca de la percepción han sido aplicadas a los robots y se han
2
diseñado algunos capaces de "ver". La meta final consiste en crear un sistema
capaz de reproducir todas las facetas de la inteligencia humana.
1.5 Historia y Evolución de la Inteligencia Artificial
La Inteligencia Artificial "nació" en 1943 cuando Warren McCulloch y Walter Pitts
propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas
nerviosas abstractas proporcionaron una representación simbólica de la actividad
cerebral.
Más adelante, Norbert Wiener elaboró estas ideas junto con otras, dentro del
mismo campo, que se llamó "cibernética"; de aquí nacería, sobre los años 50, la
Inteligencia Artificial.
Figura 1.1 Visualización Inteligencia Artificial
Los primeros investigadores de esta innovadora ciencia, tomaron como base la
neurona formalizada de McCulloch y postulaban que:
"El cerebro es un solucionador inteligente de problemas, de modo que imitemos al
cerebro".
Pero si consideramos la enorme complejidad del mismo esto es ya prácticamente
imposible, ni que mencionar que el hardware de la época ni el software estaban a
la altura para realizar semejantes proyectos.
Se comenzó a considerar el pensamiento humano como una coordinación de
tareas simples relacionadas entre sí mediante símbolos. Se llegaría a la
realización de lo que ellos consideraban como los fundamentos de la solución
inteligente de problemas, pero lo difícil estaba todavía sin empezar, unir entre sí
estas actividades simples.
Es en los años 50 cuando se logra realizar un sistema que tuvo cierto éxito, se
llamó el Perceptrón de Rossenblatt. Éste era un sistema visual de reconocimiento
de patrones en el cual se asociaron esfuerzos para que se pudieran resolver una
gama amplia de problemas, pero estas energías se diluyeron enseguida.
3
Fue en los años 60 cuando Alan Newell y Herbert Simon, que trabajando la
demostración de teoremas y el ajedrez por ordenador logran crear un programa
llamado GPS (General Problem Solver: solucionador general de problemas). Éste
era un sistema en el que el usuario definía un entorno en función de una serie de
objetos y los operadores que se podían aplicar sobre ellos. Este programa era
capaz de trabajar con las torres de Hanoi, así como con criptoaritmética y otros
problemas similares, operando, claro está, con microcosmos formalizados que
representaban los parámetros dentro de los cuales se podían resolver problemas.
Lo que no podía hacer el GPS era resolver problemas ni del mundo real, ni
médicos ni tomar decisiones importantes. El GPS manejaba reglas heurísticas
(aprender a partir de sus propios descubrimientos) que la conducían hasta el
destino deseado mediante el método del ensayo y el error.
En los años 70, un equipo de investigadores dirigido por Edward Feigenbaum
comenzó a elaborar un proyecto para resolver problemas de la vida cotidiana o
que se centrara, al menos, en problemas más concretos. Así es como nació el
sistema experto.
El primer sistema experto fue el denominado Dendral, un intérprete de
espectrograma de masa construido en 1967, pero el más influyente resultaría ser
el Mycin de 1974. El Mycin era capaz de diagnosticar trastornos en la sangre y
recetar la correspondiente medicación, todo un logro en aquella época que incluso
fueron utilizados en hospitales (como el Puff, variante de Mycin de uso común en
el Pacific Medical Center de San Francisco, EEUU).
Ya en los años 80, se desarrollaron lenguajes especiales para utilizar con la
Inteligencia Artificial, tales como el LISP o el PROLOG. Es en esta época cuando
se desarrollan sistemas expertos más refinados, como por el ejemplo el EURISKO,
este programa perfecciona su propio cuerpo de reglas heurísticas
automáticamente, por inducción.
Lección 3
1.6. Características de la Inteligencia Artificial

Una característica fundamental que distingue a los métodos de Inteligencia
Artificial de los métodos numéricos es el uso de símbolos no matemáticos,
aunque no es suficiente para distinguirlo completamente. Otros tipos de
programas como los compiladores y sistemas de bases de datos, también
procesan símbolos y no se considera que usen técnicas de Inteligencia
Artificial.

El comportamiento de los programas no es descrito explícitamente por el
algoritmo. La secuencia de pasos seguidos por el programa es influenciado
por el problema particular presente. El programa especifica cómo encontrar
la secuencia de pasos necesarios para resolver un problema dado
(programa declarativo). En contraste con los programas que no son de
4
Inteligencia Artificial, que siguen un algoritmo definido, que especifica,
explícitamente, cómo encontrar las variables de salida para cualquier
variable dada de entrada (programa de procedimiento).

El razonamiento basado en el conocimiento, implica que estos programas
incorporan factores y relaciones del mundo real y del ámbito del
conocimiento en que ellos operan. Al contrario de los programas para
propósito específico, como los de contabilidad y cálculos científicos; los
programas de Inteligencia Artificial pueden distinguir entre el programa de
razonamiento o motor de inferencia y base de conocimientos dándole la
capacidad de explicar discrepancias entre ellas.

Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de
Inteligencia Artificial los programas no pueden trabajar con este tipo de
problemas. Un ejemplo es la resolución de conflictos en tareas orientadas a
metas como en planificación, o el diagnóstico de tareas en un sistema del
mundo real: con poca información, con una solución cercana y no
necesariamente exacta.
La Inteligencia Artificial incluye varios campos de desarrollo tales como: la robótica,
usada principalmente en el campo industrial; comprensión de lenguajes y
traducción; visión en máquinas que distinguen formas y que se usan en líneas de
ensamblaje; reconocimiento de palabras y aprendizaje de máquinas; sistemas
computacionales expertos.
Los sistemas expertos, que reproducen el comportamiento humano en un estrecho
ámbito del conocimiento, son programas tan variados como los que diagnostican
infecciones en la sangre e indican un tratamiento, los que interpretan datos
sismológicos en exploración geológica y los que configuran complejos equipos de
alta tecnología.
Tales tareas reducen costos, reducen riesgos en la manipulación humana en
áreas peligrosas, mejoran el desempeño del personal inexperto, y mejoran el
control de calidad sobre todo en el ámbito comercial.
1.6.1 Programa fijo y programa modificado por el procesamiento
Existen grandes diferencias entre el funcionamiento de las máquinas y el del
cerebro: algunas son evidenciadas en el esquema bajo estas líneas. Las
máquinas y el cerebro se diferencian en muchos aspectos: el primero es ligado a
la arquitectura del sistema de memoria y a la elaboración realizada por la
inteligencia natural, que influye en los programas sucesivos al ser almacenada en
la memoria que mantiene disponibles todos los hechos que se han ido
acumulando a lo largo del tiempo. Abajo a la izquierda se muestra el esquema de
funcionamiento de un sistema artificial: procesa datos que recibe del exterior y que
le son presentados ya seleccionados. Los procesa mediante un programa fijo,
siempre elegido y construido por el hombre, es decir, desde el exterior.
5
Figura 1.2 Visualización del mundo real por el Cerebro humano - Sistema Artificial
Este programa es sencillo comparado con los utilizados por el cerebro humano.
A lo largo del tiempo, un mismo programa que procese los mismos datos obtendrá
siempre los mismos resultados. Sin embargo, este sistema es muy veloz cuando
se le piden secuencias de operaciones. Contrariamente, el cerebro humano es
capaz de procesar al mismo tiempo todas las informaciones contenidas en una
imagen, y el resultado de dicho procesamiento puede servir para modificar el
programa, que para posteriores utilizaciones será más completo.
La observación de una imagen muestra la diferencia fundamental entre el modo de
procesar los datos del cerebro humano y el de la máquina. El cerebro humano no
actúa teniendo en cuenta un programa prefijado, sino más bien uno de naturaleza
variable en el tiempo; las variaciones dependen de los resultados procedentes. De
hecho, el cerebro tiene la propiedad de recordar imágenes similares; una vez vista
la figura, extrae de su memoria imágenes similares previamente almacenadas y
los resultados de los análisis realizados sobre ellas. Estos resultados sirven para
mejorar el programa según el cual sacará conclusiones aplicadas al examen de la
figura.
6
Lección 4
1.6. Funcionamiento Básico de la Inteligencia Artificial
Diferentes teorías:
1. Construir réplicas de la compleja red neuronal del cerebro humano (bottomup).
2. Intentar imitar el comportamiento del cerebro humano con un computador
(top-down).
1.6.1 Símbolos vs. Métodos Numéricos
El primer período de la Inteligencia Artificial, llamado sub-simbólico, data de
aproximadamente 1950 a 1965. Este período utilizó representaciones numéricas
(o sub-simbólicas) del conocimiento. Aunque la mayor parte de los libros de
Inteligencia Artificial enfatizan el trabajo realizado por Rosenblatt y Widrow con
redes neuronales durante este período, la realidad es que otra importante escuela
sub-simbólica data también de la misma época y estos son los algoritmos
evolutivos.
La escuela clásica dentro de la Inteligencia Artificial, utiliza representaciones
simbólicas basadas en un número finito de primitivas y de reglas para la
manipulación de símbolos. El período simbólico se considera aproximadamente
comprendido entre 1962 y 1975, seguido por un período dominado por los
sistemas basados en el conocimiento de 1976 a 1988. Sin embargo, en este
segundo período las representaciones simbólicas (por ejemplo, redes semánticas,
lógica de predicados, etc.) siguieron siendo parte central de dichos sistemas.
La Programación Lógica tiene sus orígenes más cercanos en los trabajos de J. A.
Robinson que propone en 1965 una regla de inferencia a la que llama resolución,
mediante la cual la demostración de un teorema puede ser llevada a cabo de
manera automática.
La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo
de Predicados de Primer Orden, llamadas cláusulas y la demostración de
teoremas bajo esta regla de inferencia se lleva a cabo por reducción al absurdo.
Otros trabajos importantes de esa época que influyeron en la programación lógica,
fueron los de Loveland, Kowalski y Green, que diseña un probador de teoremas
que extrae de la prueba el valor de las variables para las cuales el teorema es
válido.
Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante
una época, pero, por su ineficiencia, fueron relegados hasta el nacimiento de
Prolog, que surge en 1971 en la Universidad de Marsella, Francia.
7
La Lógica de Primer Orden, es uno de los formalismos más utilizados para
representar conocimiento en Inteligencia Artificial. La Lógica cuenta con un
lenguaje formal mediante el cual es posible representar fórmulas llamadas
axiomas, que permiten describir fragmentos del conocimiento y, además consta de
un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar
nuevo conocimiento.
1.6.2 Alfabeto del Lenguaje de la Lógica de Primer Orden
Contiene dos tipos de símbolos:
a. Símbolos lógicos, entre los que se encuentran los símbolos de constantes
proposicionales true y false; los símbolos de operadores proposicionales
para la negación (not,~), la conjunción (  ), la disyunción (  ) y las
implicaciones (→,←); los símbolos de operadores de cuantificación como el
cuantificador universal (  ); el cuantificador existencial (  ); y los símbolos
auxiliares de escritura como corchetes [,], paréntesis (,) y coma.
b. Símbolos no lógicos, agrupados en el conjunto de símbolos constantes; el
conjunto de símbolos de variables individuales; el conjunto de símbolos de
funciones n-arias; y el conjunto de símbolos de relaciones n-arias.
A partir de estos símbolos se construyen las expresiones válidas en el Lenguaje
de Primer Orden: los términos y las fórmulas.
Un término es cualquiera de las tres expresiones siguientes: una constante, por
ejemplo, el número "100", la palabra "alfredo" y la letra "c"; o una variable, por
ejemplo, "X" o bien una expresión de la forma "f(t1,...,tn)" donde "f" es un símbolo
de función n-aria y t1,...,tn son términos. Ejemplos de funciones son: f(100,X),
padre(Y) y sucesor(X).
Las fórmulas atómicas o elementales son expresiones de la forma R(t1,...,tn)
donde R es un símbolo de relación n-aria y t1,...,tn son términos.
Ejemplos de fórmulas son:
positivo(3),
not(igual(4,doble(2))),
tiene(X,cefalea).
recetar(X,aspirina)<=tiene(X,fiebre),
Esta última establece una regla que dice que, si X tiene fiebre y cefalea (dolor de
cabeza), X debe tomar una aspirina.
El Lenguaje de Primer Orden posee un amplio poder de expresión, los términos
permiten nombrar los objetos del universo, mientras que las fórmulas permiten
afirmar o negar propiedades de éstos o bien establecen las relaciones entre los
objetos del universo.
Puede decirse que la Programación Lógica utiliza la Lógica de Primer Orden como
lenguaje de programación. Un ejemplo de lenguaje basado en la Lógica de Primer
8
Orden es PROLOG y aunque toma su nombre de este término ("PROgramming in
LOGic"), no abarca toda la riqueza de la Lógica de Primer Orden para resolver
problemas, pues está restringido al uso de cierta clase de fórmulas denominadas
cláusulas definidas o cláusulas de Horn.
Un programa lógico está formado por un conjunto finito de cláusulas de programa
que son hechos o reglas. Por ejemplo:
1. padre(luis,miguel). Hecho
2. padre(miguel,jose). Hecho
3. padre(jose,juan). Hecho
4. abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla
Este programa está formado por cuatro cláusulas de programa, las tres primeras
son del tipo hecho y definen la relación padre/2 y la cuarta una regla que define la
relación abuelo/2. Nótese el uso de las variables X,Y y Z en esta cláusula, las
cuales permiten definir de manera general en Prolog la relación "ser abuelo de",
pues la lectura declarativa de dicha cláusula es la siguiente: "Para cualesquiera
X,Y,Z se cumple que: X abuelo de Y, si X padre de Z y Z padre de Y".
En Prolog es posible hacer preguntas sobre objetos y relaciones del dominio y
estas preguntas se formulan como objetivos o metas, que son evaluadas por el
intérprete de Prolog utilizando su mecanismo de inferencia interno, el cual
determina si la meta a demostrar es una consecuencia lógica del programa,
aplicando reglas de deducción para obtener la respuesta.
Por ejemplo, del programa anterior, utilizando la cláusula de tipo
meta ?abuelo(X,juan), para preguntar ¿quién es el abuelo de Juan? o bien
¿quiénes son los abuelos de Juan?, es posible deducir que Luis es abuelo de
Juan, aunque implícitamente no existe en el programa ningún hecho que así lo
afirme.
Figura 1.3 Análisis de oraciones
9
En este ejemplo de análisis de oraciones, podemos observar de qué manera se
analiza una oración ingresada por el usuario y cómo el ordenador lo traduce en un
lenguaje lógico de primer orden.
En este caso la ejecución del programa, para dicha meta, arrojaría como resultado
que X=luis.
El método de deducción utilizado por Prolog, para dar respuesta a los objetivos
planteados, se basa en el uso de una única regla de inferencia: el Principio de
Resolución.
Los primeros trabajos de prueba automática de teoremas utilizaban la resolución,
aplicada a cláusulas cualesquiera, pero el problema de las deducciones con
cláusulas generales es el gran número de combinaciones posibles para llevar a
cabo las resoluciones.
Por ello Prolog restringe el conjunto de cláusulas, lo que le permite llevar a cabo
una prueba dirigida y, en la mayoría de los casos, con un universo de
posibilidades explorable en tiempo de ejecución.
Lección 5
1.7.
Principales Ramas de la Inteligencia Artificial
Dentro de las principales ramas de la inteligencia artificial encontramos a los
sistemas expertos, lo que significa que los SE están presentes en las demás áreas
donde la inteligencia artificial tiene su arribo.
Figura 1.4 Rama de la Inteligencia Artificial3
3
Disponible en: http://www.e-ghost.deusto.es/docs/2005/conferencias/Bayes05.pdf
10
1.7.1. Sistemas Expertos
Los sistemas expertos son aquellos programas que se realizan haciendo explicito
el conocimiento en ellos, que tienen información específica de un dominio concreto
y que realizan una tarea relativa a este dominio.
Los sistemas expertos trabajan con inteligencia artificial simbólica, es decir, a nivel
de símbolos; como pueden ser ideas, imágenes, conceptos, etc. aunque debido a
su naturaleza algorítmica se usen internamente instrucciones computables y
estructuras de datos como los MOPS de Schank.
El éxito de un sistema experto radica fundamentalmente en el conocimiento sobre
el dominio que trata y su capacidad de aprendizaje. El conocimiento sobre el
dominio proporciona al sistema experto mayor información sobre el problema a
tratar y su entorno, de forma que pueda generar y adaptar soluciones de forma
más precisa, al tener un conocimiento más profundo sobre el tema, de forma
similar a un experto especializado. El aprendizaje, inductivo o deductivo según
corresponda, proporcionará al sistema experto mayor autonomía a la hora de
abordar problemas totalmente desconocidos; pudiendo generar nuevo
conocimiento partiendo del extraído inicialmente del experto o expertos humanos.
1.7.2. Robótica
La robótica es una ciencia o rama de la tecnología, que estudia el diseño y
construcción de máquinas capaces de desempeñar tareas realizadas por el ser
humano o que requieren del uso de inteligencia. Las ciencias y tecnologías de las
que deriva podrían ser: el álgebra, los autómatas programables, las máquinas de
estados, la mecánica o la informática.
RAE : 1. f. Técnica que aplica la informática al diseño y empleo de aparatos que,
en sustitución de personas, realizan operaciones o trabajos, por lo general en
instalaciones industriales.
1.7.3. Sistemas de Visión
La Visión artificial, también conocida como Visión por Computador (del inglés
Computer Vision) o Visión técnica, es un subcampo de la inteligencia artificial. El
propósito de la visión artificial es programar un computador para que "entienda"
una escena o las características de una imagen.
Los objetivos típicos de la visión artificial incluyen:
 La detección, segmentación, localización y reconocimiento de ciertos objetos
en imágenes (por ejemplo, caras humanas).
 La evaluación de los resultados (ej.: segmentación, registro).
 Registro de diferentes imágenes de una misma escena u objeto, i.e., hacer
concordar un mismo objeto en diversas imágenes.
 Seguimiento de un objeto en una secuencia de imágenes.
11



Mapeo de una escena para generar un modelo tridimensional de la escena; tal
modelo podría ser usado por un robot para navegar por la escena.
Estimación de las posturas tridimensionales de humanos.
Búsqueda de imágenes digitales por su contenido.
Estos objetivos se consiguen por medio de reconocimiento de patrones,
aprendizaje estadístico, geometría de proyección, procesado de imágenes, teoría
de grafos y otros campos. La visión artificial cognitiva está muy relacionada con la
psicología cognitiva y la computación biológica.
1.7.4. Procesamiento de Lenguaje Natural
El Procesamiento de Lenguajes Naturales, (PLN, o NLP; Natural Language
Processing), es una subdisciplina de la Inteligencia Artificial y, también de la
lingüística computacional. Estudia los problemas inherentes al procesamiento y
manipulación de lenguajes naturales, sin embargo no suele plantear el
entendimiento de lenguajes naturales.
Las principales tareas de trabajo en el PLN son:









Síntesis del discurso
Análisis del lenguaje
Comprensión del lenguaje
Reconocimiento del habla
Generación automática del lenguaje.
Traducción automática
Respuesta a preguntas
Recuperación de la información
Extracción de la información
1.7.5. Sistemas de Aprendizaje
El Aprendizaje Automático es una rama de la Inteligencia Artificial cuyo objetivo es
desarrollar técnicas que permitan a las computadoras aprender. De forma más
concreta, se trata de crear programas capaces de generalizar comportamientos a
partir de una información no estructurada suministrada en forma de ejemplos. Es
por lo tanto, un proceso de inducción del conocimiento. En muchas ocasiones el
campo de actuación del Aprendizaje Automático se solapa con el de la Estadística,
ya que las dos disciplinas se basan en el análisis de datos. Sin embargo, el
Aprendizaje Automático se centra más en el estudio de la Complejidad
Computacional de los problemas. Muchos problemas son de clase NP-hard, por lo
que gran parte de la investigación realizada en Aprendizaje Automático está
enfocada al diseño de soluciones factibles a esos problemas.
El Aprendizaje Automático tiene una amplia gama de aplicaciones, incluyendo
motores de búsqueda, diagnósticos médicos, detección de fraude en el uso de
12
tarjetas de crédito, análisis del mercado de valores, clasificación de secuencias de
ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica.
Los sistemas de aprendizaje son una combinación de software y equipos que le
permiten a la computadora cambiar su modo de funcionar o reaccionar a
situaciones, basado en la retroalimentación que recibe. Por ejemplo algunos
juegos computarizados tienen capacidades de aprendizaje. Si la computadora no
gana un juego en particular, recuerda no hacer los movimientos bajo las mismas
condiciones.
1.7.6. Redes Neuronales
Las redes de neuronas artificiales (RNA) son un paradigma de aprendizaje y
procesamiento automático inspirado en la forma en que funciona el sistema
nervioso de los animales. Consiste en simular las propiedades observadas en los
sistemas neuronales biológicos a través de modelos matemáticos recreados
mediante mecanismos artificiales (como un circuito integrado, un ordenador o un
conjunto de válvulas). El objetivo es conseguir que las máquinas den respuestas
similares a las que es capaz el cerebro que se caracterizan por su generalización
y su robustez.
1.7.7. Sistemas Inmunes Artificiales
Los sistemas inmunes artificiales (AIS) son sistemas computacionales adaptativos
cuya inspiración está basada en los diferentes mecanismos del sistema inmune
biológico, especialmente de los mamíferos, con la finalidad de solucionar
problemas de ingeniería complejos, en los que los investigadores del área han
mostrado resultados exitosos.
Abstracciones de los AIS:
 Selección Negativa
 Selección Clonal
 Redes Inmunes Artificiales
1.7.8. Extracción de conocimiento
La minería de datos (DM, Data Mining) consiste en la extracción no trivial de
información que reside de manera implícita en los datos. Dicha información era
previamente desconocida y podrá resultar útil para algún proceso. En otras
palabras, la minería de datos prepara, sondea y explora los datos para sacar la
información oculta en ellos.
Bajo el nombre de minería de datos se engloba todo un conjunto de técnicas
encaminadas a la extracción de conocimiento procesable, implícito en las bases
de datos. Está fuertemente ligado con la supervisión de procesos industriales ya
que resulta muy útil para aprovechar los datos almacenados en las bases de datos.
13
Las bases de la minería de datos se encuentran en la inteligencia artificial y en el
análisis estadístico. Mediante los modelos extraídos utilizando técnicas de minería
de datos se aborda la solución a problemas de predicción, clasificación y
segmentación4.
1.8 ACTIVIDADES COMPLEMENTARIAS
1. Definir el término inteligencia Artificial ¿Cuál es la diferencia entre la
inteligencia natural y artificial?
2. Definir e identificar 6 subcampos de la Inteligencia Artificial
3. ¿Que es un agente inteligente? Proporcione tres ejemplos de uso de un agente
inteligente.
4. Identificar tres ejemplos de la utilización de la robótica.
5. ¿Qué es una red neuronal? Describir dos aplicaciones de las redes neuronales.
6. ¿Pueden pensar las computadoras? ¿podrían llegar a hacerlo? Explique su
respuesta.
7. Cree usted que es posible construir una maquina tan o más inteligente que un
humano? Explique.
4
Tomado de: http://es.wikipedia.org/wiki/Data_mining
14
CAPITULO 2. VISION GENERAL DE LOS SISTEMAS EXPERTOS
Lección 6
2.1. INTRODUCCIÓN
Desde la aparición de las computadoras hasta nuestros días, la gente ha invertido
grandes esfuerzos por tratar de dar una cierta capacidad de decisión a estas
máquinas, incluso un cierto grado de inteligencia.
Un Sistema Experto en sí no tiene verdadera Inteligencia Artificial; más bien, es un
sistema basado en el conocimiento que, mediante el buen diseño de su base de
información y un adecuado motor de inferencias para manipular dichos datos
proporciona una manera de determinar resoluciones finales dados ciertos criterios.
Los Sistemas Expertos son una herramienta poderosa en el apoyo o guía de los
usuarios en los procesos que tienen una secuencia pasos definida, pero que
puede ser configurable.
Los sistemas expertos son SBC (Sistemas Basados en Conocimiento) que imitan
el pensamiento de un experto para resolver problemas de un campo particular (1),
pudiendo mejorar su productividad, ahorrar tiempo y dinero, conservar sus
valiosos conocimientos y difundirlos más fácilmente.
2.2. Historia de los Sistemas Expertos
Comúnmente se piensa que la Inteligencia Artificial, es un área que se viene
desarrollando hace aproximadamente 10 o máximo 15 años atrás, pero esto no es
cierto, este concepto viene desde los años 50 cuando Alan Turing publico su libro
llamado “Inteligencia y funcionamiento de las maquinas”. Los sistemas expertos
comienzan a difundirse a partir de los años 70 como una herramienta de software
utilizable en dominios de aplicación restringidos, tales como diagnósticos médicos,
detección de fallas en equipos eléctricos, detección de yacimientos minerales.
A continuación se dará un breve resumen de la historia de los Sistemas Expertos
agrupada por fechas:


1950: Alan Turing presentó un estudio sobre la Inteligencia Artificial,
"Computing Machinery and Inteligence". En este documento, propuso su
test (Turing test) para determinar cuando una máquina posee inteligencia
artificial. En un primer documento, Turing había sugerido la posibilidad de
simular el comportamiento del cerebro humano.
1955: IPL-II (Information Processing Language II), primer lenguaje de
Inteligencia Artificial. Fue creado por Alien Newell, J.C. Shaw y Herbert
Simón. IPL es un lenguaje basado en proceso de listas y puede
15







considerarse como un antecesor del LISP, lenguaje más usado actualmente
en Inteligencia Artificial.
1956: John McCarthy propone el uso del termino Inteligencia Artificial para
denominar el estudio del tema, en una conferencia en Dartmouth (USA).
Organizada además por Marvin Minsky, Mathaniel Rochester y Claude
Shannon con fondos de la Fundación Rockefeller, donde reunió a
profesionales que habían trabajado en el campo de la Inteligencia Artificial.
Entre los participantes, además de los cuatro organizadores estaban Arthur
Samuel, Trenchard llore, Oliver Selfridge, Alien Newell, Ray Solomonoff y
Herbert Simón. Logic Theorist (LT), desarrollado por Newell, Shaw y Simón
fue discutido en esta conferencia. LT, considerado como el primer programa
que utilizó técnicas de Inteligencia Artificial, emplea la búsqueda heurística
para resolver alguno de los problemas contenidos en el libro "Principia
Mathematica" de Whitehead y Russell
1957: Aparece la primera version de “The General Problem Solver” (GPS:
Solucionador General de Problemas), el cual era capaz de solucionar
problemas de sentido común pero no de la vida real, desarrollado por
Newell, Shaw y Simón.
1958: John McCarthy desarrolla en el MIT el lenguaje LISP (LISt Procesing).
1959: Arthur Samuel diseña un programa para jugar a las damas, capaz de
ganar a los mejores jugadores del momento. Su documento fue publicado
por IBM Journal and Development. Frank Rosenblatt describió su máquina,
Perception, para reconocimiento de formas en "Proceedings of a
Symposium on the Mechanization of Thought Processes". Después de un
período de abandono de las ideas propugnadas por Rosenblatt, hoy con la
aparición de las máquinas conexion istas, Boltzmann y neuromiméticas,
dichas ideas vuelven a tener vigencia.
1960: Inicio de las investigaciones en el MIT, del proyecto de Inteligencia
Artificial bajo la dirección de John McCarthy y Marvin Minsky.
1964: Daniel G. Bobrow publicó su tesis doctoral, basada en su Sistema
STUDENT. STUDENT es un programa que utiliza el lenguaje natural y
puede comprender y resolver problemas de álgebra.
1965: Se publica "Computer and Thought" editado por Edward A.
Feigenbaum. Este libro, es una recopilación de trabajos de los más
significados representantes del área.
o Comienzan las investigaciones en el Stanford University Heuristic
Programming Project (HPP), dentro del Stan-ford's Computer
Science Department, sobre Sistemas Expertos.
o 1965: Aparece el primer Sistema Experto llamado DENDRAL, se
utilizaba para identificar estructuras químicas moleculares a partir de
su análisis espectrográfico, su realización duro mas de 10 años
(1965-1975).
16








1966: Joseph Weizenbaum crea ELIZA para ilustrar que las técnicas de
lenguaje natural pueden hacer que un ordenador parezca inteligente. Se
inicia el desarrollo del robot móvil, SHAKEY, construido por SRI
International, cuyo modelo decisorio para planificación de tareas, utilizará
técnicas de Inteligencia Artificial.
1970: Patrick H. Winston publica su tesis doctoral "Learning Structural
Descriptions from Examples". Esta tesis describe ARCHES, un programa
que aprendía a partir de ejemplos.
o El proyecto de Inteligencia Artificial del MIT se convierte en el
Laboratorio de Inteligencia Artificial, bajo la dirección de Marvin
Minsky y Seymour Papert, incluyendo hoy en día las áreas de
robótica, Sistemas Expertos, técnicas de razonamiento y aprendizaje,
lenguaje natural y arquitectura de ordenadores.
1971: Se utiliza por primera vez el Sistema Experto MACSYMA,
desarrollado por William Martín y Joel Moses. Este Sistema realiza
operaciones de cálculo diferencial e integral y simplifica expresiones
simbólicas. La Agencia de Investigación de Proyectos Avanzados del
Ministerio de Defensa de los Estados Unidos patrocina la investigación
sobre comprensión del lenguaje hablado (Speech Understanding Research
Program). Algunos de los programas que se han desarrollado bajo esta
investigación son: SPEECHIS, HWIM, HEARSAY-I, HEARSAY-II, DRAGÓN
Y HARPY, estos cuatro últimos desarrollados en la Carnegie-MelIon
University.
1972: Se desarrolla MYCIN en la Universidad de Stanford, un Sistema
Experto para el diagnostico de enfermedades infecciosas. También aparece
el lenguaje PROLOG.
o William Woods, de Bolt Beranek y Newman desarrollaron LUNAR;
que fue utilizado por geólogos en la evaluación de los materiales
obtenidos en la luna por el Apolo-II.
1974: Aparece PROSPECTOR, un Sistema Experto de prospección minera
desarrollado en la Universidad de Stanford.
1976: Douglas B. Lenat escribió el Sistema Experto "AM", un programa que
define y evalúa conceptos matemáticos en la teoría de conjuntos. Randall
Davis en la Universidad de Stanford publica su tesis TEIREISIAS, un
Sistema que utiliza metareglas para introducir y actualizar bases de
conocimiento utilizadas en Sistemas Expertos.
1979: Se desarrolla XCOM, un Sistema Experto que se encargaba de
configurar todos los computadores que salían de la DEC (Digital
Equipament Corporation).
Entre 1980 y 1985 se produce la revolución de los Sistemas Expertos, en
este intervalo de tiempo se crearon Sistemas como el DELTA, de General
Electric Company, para la reparación de locomotoras diesel y eléctricas; se
crearon multitud de empresas dedicadas a los Sistemas Expertos como
Teknowledge Inc., Lisp Machines Inc., Thinking Machines Corporation,
Cognitive Systems Inc.
17

A partir de los 90 y con el desarrollo de la informática, se produce un amplio
desarrollo en el campo de la IA y por ende de los Sistemas Expertos,
pudiéndose afirmar que estos se han convertido en una herramienta
habitual en determinadas empresas en la actualidad.
Lección 7
2.3. ¿Que es un Sistema Experto?
Se puede decir que los Sistemas Expertos son el primer resultado operacional de
la Inteligencia artificial, pues logran resolver problemas a través del conocimiento y
raciocinio de igual forma que lo hace el experto humano.
Este termino fue usado por primera vez por el doctor, Edward Feigenbaum
profesor de la universidad de Standford, el cual en 1977, estipulo que el poder de
resolución de un problema en un programa de computadora viene del
conocimiento de dominio especifico, no solo de técnicas de programación y
formalismo que contiene.
Un Sistema Experto (SE), es básicamente un programa de computador basado en
conocimientos y raciocinio que lleva a cabo tareas que generalmente sólo realiza
un experto humano 5 ; es decir, es un programa que imita el comportamiento
humano en el sentido de que utiliza la información que le es proporcionada para
poder dar una opinión sobre un tema en especial.
Otros autores lo definen como sigue: un Sistema Experto es un programa de
computadora interactivo que contiene la experiencia, conocimiento y habilidad
propios de una persona o grupos de personas especialistas en un área particular
del conocimiento humano, de manera que permitan resolver problemas
específicos de ése área de manera inteligente y satisfactoria. La tarea principal de
un SE es tratar de aconsejar al usuario6.
Los usuarios que introducen la información al SE son en realidad los expertos
humanos, y tratan a su vez de estructurar los conocimientos que poseen.
El Sistema Experto utilizará para ello el conocimiento que tenga almacenado y
algunos métodos de inferencia.
Simultáneamente, el usuario puede aprender observando el comportamiento del
sistema, es decir, los sistemas expertos se pueden considerar al mismo tiempo
como un medio de ejecución y transmisión del conocimiento.
De esta definición se desprenden las dos habilidades fundamentales que poseen
los Sistemas Expertos:
5
6
PARSAYE, Kamran, Mark Chignell, Setrag Khoshafian y Harry Wong. Intelligent Databases.
SCHILDT Herbert, Utilización de C en Inteligencia Artificial.
18


La habilidad de aprendizaje, la cual requiere la interacción de un experto en
alguna rama específica del saber y un ingeniero de conocimiento, que se
encarga de traducir este conocimiento del experto a reglas heurísticas para
formar la base de conocimiento.
La habilidad para simular el razonamiento que posee el Sistema Experto,
esta se desprende de “caminar” a lo largo de las reglas heurísticas
introducidas al sistema por un experto, a través del proceso de aprendizaje
durante la generación de las bases del conocimiento.
Se debe tener en cuenta que la principal característica del experto humano viene a
ser el conocimiento en ese campo concreto, por consiguiente, un Sistema Experto
debe ser capaz de representar dicho conocimiento profundo con el objetivo de
utilizarlo para resolver problemas, justificar su comportamiento e incorporar
nuevos conocimientos.
El objetivo entonces de un sistema experto es igualar el comportamiento de los
expertos humanos; existen muchos expertos en el conocimiento como los
abogados, médicos, economistas. Todos ellos comparten una característica en
común; deben tomar decisiones acertadas en ambientes rodeados de riesgos e
incertidumbre pero poseen la habilidad superior de hacerlo como resultado de su
entrenamiento, experiencia y practica profesional (Biondo, 1990)
2.3.1. Características de un Sistema Experto
Para que un sistema computacional actúe como un verdadero experto, es
deseable que reúna, en lo posible, lo más importante de las características de un
experto humano, esto es:




Habilidad para adquirir conocimiento.
Fiabilidad, para poder confiar en sus resultados o apreciaciones.
Solidez en el dominio de su conocimiento.
Capacidad para resolver problemas.
La característica fundamental de un Sistema Experto es que separa los
conocimientos almacenados (Base de conocimiento) del programa que los
controla (Motor de inferencia). Los datos propios de un determinado problema se
almacenan en una base de datos aparte (Base de hechos).
Además cuenta con características adicionales las cuales serán nombradas a
continuación:

Competencia en su campo: Es el significado de experto. Es necesario que
pueda resolver problemas con una eficiencia y calidad comparables a las
de un experto humano.
19





Dominio reducido: El limitarse a un dominio reducido es un requisito para
alcanzar la competencia.
Capacidad de explicación: Es aquella capaz de explicar cómo ha resuelto el
problema, es decir, qué método ha aplicado y por qué lo ha aplicado.
Tratamiento de la incertidumbre: Es una exigencia que se deriva de la
complejidad de los problemas que van a aborda los sistemas expertos.
Flexibilidad en el diálogo: Es deseable que los sistemas expertos tengan
esta capacidad, llegando en la medida de lo posible a comunicarse
(entender y expresarse) en lenguaje natural como un experto humano.
Representación explícita del conocimiento: Es necesaria para considerar
que un sistema está basado en conocimiento.
La siguiente tabla muestra algunas diferencias que existen entre los sistemas
clásicos y los expertos:
Tabla 2.1 Comparación entre un sistema tradicional y un Sistema Experto.
SISTEMA EXPERTO
SISTEMA CLASICO
No contiene errores
Puede contener errores
No da explicaciones, los datos solo El Sistema Experto cuenta con el
se usan o escriben
modulo de explicación
Los cambios son tediosos
Los cambios en las reglas son fáciles
El sistema solo opera completo
El sistema puede funcionar con pocas
reglas
Se ejecuta paso a paso
La ejecución usa heurística y lógica
Representa y usa datos
Representa y usa conocimiento
Lección 8
2.4. ¿Cuáles son las ventajas de un sistema experto?
Los valiosos conocimientos de un experto se guardan y se difunden, de forma que,
no se pierden aunque desaparezca el especialista. En los Sistemas Expertos se
guarda la esencia de los problemas que se intenta resolver y se programa cómo
aplicar los conocimientos para su resolución. Estos ayudan a entender cómo se
aplican los conocimientos para resolver un problema. Esto es útil porque
normalmente el experto da por ciertos sus conocimientos y no analiza cómo los
aplica.
A continuación se nombraran otras de las ventajas que presentan los Sistemas
Expertos:

Permanencia: Los expertos humanos pueden morir, cambiar de empresa o
perder facultades lo que no puede ocurrir con un sistema experto.
20






Duplicación: El experto humano se encuentra en un único lugar físico y es
irreproducible, mientras que una vez construido un Sistema Experto se
pueden fabricar un número ilimitado de copias destinadas a todos los
lugares donde sean necesarias.
Fiabilidad: Un Sistema Experto responderá siempre de la misma manera
ante cierto problema, mientras que un experto humano puede estar
condicionado por factores emocionales, prejuicios personales, tensión,
fatiga, etc.
Bajo costo: Aunque puede resultar caro inicialmente construir un sistema
experto, una vez construido produce grandes beneficios.
Facilita el entrenamiento del personal: El Sistema Experto puede ayudar de
manera importante, y a costo menor, a la capacitación y adiestramiento del
personal sin experiencia.
La separación entre base de conocimiento y motor de inferencia
proporciona una gran flexibilidad al SE.
En manipulación de símbolos, los SE abren el campo a nuevas aplicaciones,
no automatizadas hasta la fecha.
Por otro lado, los sistemas expertos presentan grandes carencias frente a los
seres humanos:




Sentido común: Para un ordenador no hay nada obvio.
Lenguaje natural: Todavía nos encontramos muy lejos de tener un sistema
que pueda formular preguntas flexibles y mantener una conversación
informal con un usuario o con un paciente.
Experiencia sensorial: Los Sistemas Expertos de la actualidad se limitan a
recibir información.
Perspectiva global: Un experto humano es capaz de detectar
inmediatamente cuáles son las cuestiones principales y cuáles son
secundarias (separando los datos relevantes de los detalles insignificantes).
Además existen estas otras limitaciones:





Falta de capacidad de aprendizaje: Los expertos humanos son capaces de
aprender de la experiencia.
Capacidad de manejar conocimiento no estructurado: El experto humano
organiza y usa la información y el conocimiento presentados de forma poco
ordenada.
Funciones genuinamente humanas: por ejemplo, todo lo relacionado con el
lenguaje natural, la formación de conceptos, el conocimiento de sentido
común y la creación queda fuera de los Sistemas Expertos, al menos en el
estado actual del conocimiento.
La extracción del conocimiento es el problema más complejo que se les
plantea a los ingenieros de conocimientos.
Los SE son incapaces de reconocer un problema para el que su propio
conocimiento es inaplicable o insuficiente.
21


Los motores de inferencia poseen algunos límites.
Falta personal competente para investigar y desarrollar aplicaciones.
Lección 9
2.5. 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. Los expertos humanos tienen las siguientes características generales:




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.
La forma más rápida de formar a un experto es mediante el aprendizaje formal
o académico (“conocimiento profundo”) en un principio, y posteriormente un
aprendizaje informal o práctico (“conocimiento informal”).
2.6. Diferencias entre un experto y un no experto humano
Tabla 2.2 Diferencias entre un experto y un no experto humano.
NO EXPERTO
EXPERTO
Tiempo de Resolución
Pequeño
Grande
Eficacia Resolutiva
Alta
Baja
Organización
Alta
Baja
Estrategias y Tácticas
Sí
No
Búsqueda de Soluciones
Heurística
No Heurística
Cálculos Aproximados
Sí
No
El uso de heurísticas contribuye grandemente a la potencia y flexibilidad de los SE
y tiende a distinguirlos aún mas del software tradicional.
22
2.7. Diferencias entre un SE y un programa tradicional
Tabla 2.3 Diferencias entre un Sistema Experto y un Programa Tradicional.
SISTEMA EXPERTO
PROGRAMA TRADICIONAL
Conocimiento
En programa e independiente En programa y circuitos
Tipo de datos
Simbólicos
Numéricos
Resolución
Heurística
Combinatoria
Def. problema
Declarativa
Procedimental
Control
Independiente. No secuencial Dependiente. Secuencial
Conocimientos
Imprecisos
Precisos
Modificaciones
Frecuentes
Raras
Explicaciones
Sí
No
Solución
Satisfactoria
Optima
Justificación
Sí
No
Resolución
Área limitada
Específico
Comunicación
Independiente
En programa
2.8. Diferencias entre un sistema experto y un experto humano
Tabla 2.4 Diferencias entre un Sistema Experto y un Experto Humano.
SISTEMA EXPERTO
EXPERTO HUMANO
Conocimiento
Adquirido
Adquirido + Innato
Adquisición
del Teórico
Teórico + Práctico
conocimiento
Campo
Único
Múltiples
Explicación
Siempre
A veces
Limitación de capacidad Sí
Sí, no valuable
Reproducible
Sí, idéntico
No
Vida
Infinita
Finita
2.9. Ventajas de los sistemas expertos
Las ventajas que se presentan a continuación son en comparación con los
expertos humanos:




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.
23




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.
Lección 10
2.10. Forma en que los usuarios interactúan con los sistemas expertos
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.
El reconocimiento de las caracterizaciones anteriores contrasta con la percepción
de un simple papel (el cliente) de los sistemas tradicionales de software.
2.11. Sistema experto VS. Sistema clásico
La siguiente tabla compara las características de ambos tipos de sistemas
Tabla 2.5 Comparativa entre un Sistema Clásico y un Sistema Experto
Sistema Clásico
Sistema Experto
Conocimiento
y
procesamiento Base de conocimiento separada del
combinados en un programa
mecanismo de procesamiento
No contiene errores
Puede contener errores
No da explicaciones, los datos sólo se Una parte del sistema experto consiste
usan o escriben
en el módulo de explicación
Los cambios son tediosos
Los cambios en las reglas son fáciles
El sistema puede funcionar con pocas
El sistema sólo opera completo
reglas
Se ejecuta paso a paso
La ejecución usa heurísticas y lógica
Necesita información completa para Puede
operar
con
información
operar
incompleta
Representa y usa datos
Representa y usa conocimiento
24
La figura 1.5 muestra la diferencia estructurada e interna entre un programa
cualquiera o tradicional y un sistema experto.
Mientras que un sistema experto estaría definido de la siguiente forma:
Figura 1.5. Diferencia entre un programa tradicional y un sistema experto7
Del esquema se desprende que la base de hechos es en un sistema experto, lo
que los datos son en un programa tradicional. De la misma manera la base de
conocimientos reemplaza al algoritmo.
2.12. Futuro de los Sistemas Expertos







Los Sistemas Expertos se utilizaran mucho más en las organizaciones,
debido a que la tecnología también es cada vez más accesible para una
gran mayoría de las empresas.
Las interfaces de los Sistemas Expertos serán en leguaje natural, lo cual
facilitará la comunicación entre usuarios y el sistema.
Se manejarán herramientas inteligentes para explotar la información que
contengan las bases de datos, permitiendo con ello un mejor uso de la
información.
Los Sistemas Expertos se integrarán a otras tecnologías para dar un mayor
soporte en todas las áreas de la empresa.
Los Sistemas Expertos tendrán una mayor difusión, su programación y
utilización serán más fáciles.
Los SE estarán embebidos en diversas aplicaciones, especialmente en
software de uso general y en sistemas de supervisión y control.
En el futuro estos Sistemas Expertos sabrán más sobre sus preferencias de
las personas que ellas mismas.
7
Fuente: Dennis, Alonso.(2001) Sistemas Expertos. Documento en línea
http://es.geocities.com/denisalonso2001/SISTEMAS_EXPERTOS.htm
25
2.13. ACTIVIDADES COMPLEMETARIAS
1.
2.
3.
4.
¿Que es un sistema Experto?
¿Explique los componentes de un sistema Experto?
¿Cuáles son las ventajas de los sistemas expertos?
Realice una comparación entre un sistema experto y un experto humano,
¿cuales son las ventajas de implementar un sistema experto que realice las
funciones de un humano?
5. Explique las características y las ventajas de un sistema experto.
6. Complemente la historia de los sistemas expertos e investigue como se han
implementado en Colombia
7. Existe algún tipo de desarrollo de sistemas expertos en Colombia, Investigue
en que campos y como ha sido su implementación en su campo de acción.
8. Realice un análisis acerca del futuro de los sistemas expertos en Colombia.
9. ¿Que empresas de desarrollo de sistemas expertos existen en Colombia y que
adelantos han alcanzado en esta área?
10. Haga una comparación acerca del futuro de los sistemas expertos en
Colombia y el desarrollo de estos a nivel mundial.
26
CAPTULO 3. CAMPOS DE APLICACIÓN, TAREAS QUE REALIZAN Y
EJEMPLOS DE SISTEMAS EXPERTOS
Lección 11
3.1 Campos de Aplicación de los sistemas Expertos
3.1.1 Medicina
Los SE enfrentan tareas tales como la resolución de problemas, razonamiento
automático y aprendizaje automático. Es típico el estudio de estos sistemas
inteligentes en dominios específicos del conocimiento, como la medicina.8
Los programas en esta área se pueden clasificar en:


Métodos de contestación prefijada, formados por algoritmos aritméticos
lógicos, en los cuales el control y el conocimiento están juntos y están
escritos en lenguajes procedimentales.
Métodos estadísticos que se clasificaban en Bayesianos, de análisis
discriminantes y análisis secuencial.
3.1.2 Análisis de estados financieros
Es un equivalente a los estados de salud en la medicina. El análisis de estados
financieros se divide en tres fases9.
1. Examen o revisión.
Se revisan documentos contables como balance,
cuenta de pérdidas y ganancias, etc. utilizando para ello una serie de técnicas
o procedimientos específicos (comparaciones de masas patrimoniales,
porcentajes, ...).
2. Se analiza e interpreta la información antes recopilada y se obtiene un
panorama de la situación actual de la empresa.
3. Por último se predicen soluciones para ayudar a mejorar la situación futura de
la empresa.
3.1.3 Planificación Financiera
La disciplina conocida como Gestión Financiera implica un gran número de
subramas (análisis de inversiones, presupuesto de capital, análisis financiero, etc.)
incluyendo la planificación financiera. La mayoría de los sistemas expertos se
centran en resolver problemas de esta disciplina.10
Esta rama de la gestión de financiera intenta identificar el resultado de la
aplicación de planes futuros en la empresa, tratando de identificar los recursos que
ésta necesita para conseguirlos.
8
CRUZ, Roberto. Área de Bases de Datos e Inteligencia Artificial.
URL(http://dcc.ing.puc.cl/investigacion/areas/bases_dat.html)
9
BONSÓN, Enrique. Tecnologías Inteligentes para la Gestión Empresarial.
10
Ibid.
27
Los SE enfocados a la planificación financiera tienen sus principales aplicaciones
en:















Análisis de mercados.
Análisis de riesgos y tasación de seguros.
Aplicaciones de impuestos y tasas.
Asesoría jurídica y fiscal.
Ayuda a la correcta realización de operaciones bancarias.
Concesión de créditos y préstamos.
Evaluación de riesgos de gestión de cartera.
Gestión del personal.
Planes de inversión de capitales.
Planes de pensiones.
Previsión de los tipos de interés.
Previsión en las fluctuaciones en el mercado de divisas.
Supervisión de los estados financieros.
Valoración de la situación financiera de una empresa o cliente.
Verificación de firmas.
3.1.4 Industria
Los SE en la industria se aplican principalmente en:






Diagnóstico de control de calidad.
Detección y actuación en caso de alarmas y emergencias.
Configuración de equipos y sistemas bajo demanda.
Generación de especificaciones y manuales de utilización, mantenimiento y
reparación de sistemas fabricados bajo demanda.
Control de procesos industriales.
Gestión optima de los recursos.
Lección 12
3.1.5 Electrónica, informática y telecomunicaciones
Las aplicaciones principales de los SE son:







Diseño de circuitos de alto grado de integración.
Sistemas inteligentes de autodiagnóstico contenidos.
Configuración de equipos y sistemas.
Control de redes de comunicación.
Programación automática.
Ajuste de equipos y sistemas.
Optimización de programas de computadoras.
28
3.1.6 Militar
Las aplicaciones se centran en:







Elección inteligente de contramedidas electrónicas con el fin de obtener la
máxima efectividad con unos recursos limitados.
Guiado de vehículos y proyectiles de forma semiautomática.
Planificación estratégica.
Reconocimiento automático de blancos y valoración de los mismos.
Reconocimiento de planes del enemigo.
Interpretación de señales provenientes de sensores.
Optimización de carga.
3.1.7 Contabilidad
Las actividades administrativas, financieras y contables son campos en los que se
pueden aplicar los Sistemas Expertos, pues cumplen la mayoría de los requisitos
que son necesarios para poder desarrollar este tipo de sistemas (por ejemplo las
tareas requieren conocimiento especializado, existen auténticos expertos en la
materia, los expertos son escasos, la pericia necesita ser localizada en distintos
lugares, la mayoría de las tareas requieren soluciones heurísticas, ...).
Los sistemas expertos se dejan para las tareas que estén poco o no estructurados,
pues en este tipo de tareas se requiere mucho del juicio de un experto y se utilizan
reglas heurísticas para llegar rápidamente a una solución, dado que el campo de
soluciones puede ser muy amplio.
Los sistemas expertos se pueden aplicar en todas las áreas de la contabilidad.
Ahora bien, como esta clasificación muy grande y además poco práctica, se puede
clasifican las aplicaciones potenciales de los Sistemas Expertos en contabilidad en
las siguientes áreas de aplicación11:



Auditoría: Análisis de la materialidad y del riesgo, evaluación del control
interno, planificación de la auditoría, evaluación de la evidencia, análisis de
cuentas concretas, formación de opinión, emisión del informe, auditoría
interna, auditoría informática y demás situaciones en las cuales, como se
mencionó antes, requieren de la decisión de un experto.
Contabilidad de costes y de gestión: Cálculo y asignación de costos,
asignación de recursos escasos, control y análisis de desviaciones,
planificación y control de gestión, diseño de sistemas de gestión de
información, etc.
Contabilidad financiera: regulación legal, normas y principios contables,
recuperación y revisión analítica de registros contables, diseño de sistemas
contables, imputación contable, consolidación de estados contables, etc.
11
SÁNCHEZ Tomás, Antonio. Aplicación de los Sistemas Expertos en Contabilidad.
URL(http://ciberconta.unizar.es/Biblioteca/0002/Sanchez95.html#CONTABILIDAD)
29


Análisis de estados financieros: Análisis patrimonial, financiero y
económico de los estados contables, salud financiera de la empresa,
cálculo e interpretación de ratios, cálculo y análisis de tendencias, etc.
Planificación financiera e industria de los servicios financieros:
Planificación financiera corporativa, planificación financiera personal,
análisis de inversiones, gestión de tesorería, mercado de valores, seguros,
banca, concesiones de crédito, etc.
3.1.8 Robótica
Aun cuando los robots no son como se les muestra en las películas, realmente
pueden llegar a realizar actividades sorprendentes, sobre todo si son utilizados en
la fabricación de productos, donde las tareas son repetitivas y aburridas.
Los robots son muy solicitados en ambientes peligrosos para el ser humano, como
en el manejo de explosivos, altas temperaturas, atmósfera sin la cantidad
adecuada de oxígeno y en general bajo cualquier situación donde se pueda
deteriorar la salud12.
La mayoría de los robots tienen un brazo con varias uniones móviles y partes
prensiles, donde todos sus elementos son controlados por un sistema de control
programado para realizar varias tareas bajo una secuencia de pasos
preestablecidos. Los investigadores de IA pretenden adicionar al robot métodos y
técnicas que le permitan actuar como si tuviera un pequeño grado de inteligencia,
lo cual pretenden lograr con la conjunción de todas las áreas de la IA.
3.1.9 Reconocimiento de patrones
Trata con la necesidad identificar objetos o imágenes y utilizar esta información en
la resolución de problemas. Debido a que aquí se usa una técnica exhaustiva de
búsqueda y comparación de patrones, un sistema con esta característica, puede
llegar a detectar detalles que normalmente se escapan a la observación humana.
Comúnmente se requiere de una gran cantidad de recursos computacionales para
realizar este tipo de investigaciones por lo que los avances en son lentos.
3.1.10 Otros campos de aplicación
 Aeronáutica
 Agricultura
 Arqueología
 Derecho
 Educación
 Geología
 Meteorología
 Química
12
CONTRERAS, Carlos. Introducción a la Inteligencia Artificial.
URL(http://www.gdl.uag.mx/66/0ia.htm)
30


Transportes
Ventas
Lección 13
3.2 Tareas que Realizan los sistemas Expertos
3.2.1 Interpretación, Diagnóstico y Monitoreo
La interpretación consiste en encontrar el significado de los datos de entrada
obtenidos por sensores o introducidos por el usuario.
Con frecuencia aparecen datos contradictorios, incompletos o inexactos, por lo
que hay que dotar al SE de conocimiento para resolver un problema de este tipo.
Existen dos tipos de interpretación:


Análisis: La interpretación de datos se obtiene mediante la separación o
distinción de las partes que forman los datos.
Síntesis: La interpretación de los datos se obtiene mediante la combinación
de los mismos.
El diagnóstico consiste en identificar las causas internas que provocan un
problema, avería o disfunción a partir de una serie de datos o síntomas que son
consecuencia de la misma y que son observables.
En este tipo de sistemas se encuentran múltiples dificultades como las siguientes
a la hora de realizar su tarea:







Manifestaciones Nuevas. Es decir, síntomas que no se habían observado
con anterioridad.
Causas Nuevas.
Manifestaciones debidas a varias causas.
Datos Inaccesibles, caros o de obtención peligrosa.
Relaciones no biyectivas entre los datos y las causas.
Fallos o averías de aparición intermitente.
Existencia de varios fallos simultáneos o en cadena.
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 que el programa
determine 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
31
mismos resultados que alcanzaría dicho experto. La figura 1.6 muestra el
funcionamiento de un SE de este tipo.
Figura 1.6 Funcionamiento de un SE usado en mantenimiento predictivo
3.2.2 Diseño y Selección
El diseño se puede concebir 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 consiente de traer forma y orden visual a la ingeniería de hardware
donde la tecnología no provee estas características. 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.13
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 (problemas de derivación) o se pueden generar automáticamente
(problemas de formulación).
Los SE prueban 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 primer solución; sin embargo, existen
problemas más complejos en los que el objetivo es encontrar la solución más
óptima.
La utilidad de los programas basados en conocimientos aplicados a la ciencia y a
la ingeniería no se limita al análisis sofisticado, muchos programas recientes han
empezado a trabajar en la síntesis.
13
HOPGOOD, Adrian. Knowledge – Based Systems for Engineers and Scientists.
32
Existen programas que diseñan dispositivos simples y después buscan
oportunidades de reducción de costos o de reducción de componentes.
3.2.3 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 (costo mínimo, tiempo mínimo, etc).
Los problemas que presentan la planificación mediante SE son los siguientes:





Existen consecuencias no previsibles, de forma que hay que explorar y
explicar varios planes.
Existen muchas consideraciones que deben ser valoradas o incluirles un
factor de peso.
Suelen existir interacciones entre planes de subobjetivos diversos, por lo
que deben elegirse soluciones de compromiso.
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.
Es necesario hacer uso de fuentes diversas tales como bases de datos.
3.2.4 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.
3.2.5 Reparación, corrección 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.
33
3.2.6 Simulación, pronóstico o predicción
La simulación es una técnica 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, su capacidad para simular el comportamiento de un
experto humano, siendo este 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.
Los sistemas de pronóstico deducen consecuencias posibles a partir de una
situación. Su objetivo es determinar el curso del futuro en función de información
sobre pasado y presente. Esto abarca diversos problemas, tales como
predicciones meteorológicas, predicciones demográficas, o incluso previsiones de
la evolución bursátil entre otros.14
3.2.7 Simulación, pronóstico o predicción
Un sistema de instrucción (sistema experto para formación), realiza un
seguimiento del proceso de aprendizaje de un estudiante. El sistema detecta
errores de los estudiantes e identifica el remedio adecuado, es decir, desarrolla un
plan de enseñanza para facilitar el proceso de aprendizaje y la corrección de
errores.15
14
MARTÍNEZ De Ibarreta León, Francisco Javier. Sistemas Expertos: Áreas de aplicación.
URL(http://www.geocities.com/SiliconValley/Way/7788/SISEXP.HTM)
15
Ibid
34
3.2.8 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 los 80’s fue
detallada 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 estos ú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. Para
desempeñar de forma adecuada esta tarea, los enfoques centrados en la creación
de modelos de las estructuras cognitivas del usuario son los más prometedores.16
3.2.9 Resumen
A continuación se presenta un resumen de las tareas que realizan los sistemas
expertos.
Tabla 3.1 Tareas comunes de los sistemas expertos17
Tareas de los SE
Ejemplos
Interpretaciones
Análisis de grandes volúmenes de datos estadísticos,
con la finalidad de obtener características económicas,
étnicas, religiosas, etcétera.
Puede tomar un conjunto de datos y poder anticiparse
Predicciones
ante alguna situación. Por ejemplo, la predicción de
lluvias, huracanes a partir de las condiciones del
entorno.
Diagnósticos
Diagnóstico de fallas mecánicas en automóviles.
Planeación
Planeación de horarios académicos.
Diseño de circuitos electrónicos para optimizar y
Diseño
elaborar una arquitectura adecuada para su
funcionamiento.
Monitoreo
Revisión constante de las condiciones de trabajo de
maquinarias o cambios en su entorno para prevenir
fallas y saber en que momento realizar mantenimiento.
Depuración de sistemas Identificación de fallas en sistemas, y apoyo para su
16
TRAMULLAS y Kronos, Jesús. Recuperación de Información y Sistemas Expertos.
URL(http://www.tramullas.com/nautica/documatica/3-8.html)
17
Pérez Jiménez, Miguel Ángel. (2008) Sistemas expertos para la asistencia médica. Universidad Autónoma
de México. Documento en línea: http://www.unam.mx/artic/2008/septiembre/art1.html
35
y su reparación
Control de sistemas
solución.
Automatización de maquinarias para tener un control
propio.
Lección 14
3.3 Ejemplos de Sistemas Expertos en Empresas
Particularizando las aplicaciones en ramas específicas del conocimiento, se han
desarrollado un gran número de sistemas expertos que actúan en empresas,
algunos simplemente en diseño teórico; otros, con aplicación real en el campo
productivo de la organización.
3.3.1 En la Industria
 DELTA, de General Electric Company, para reparación de locomotoras
diesel y eléctricas. “Aldo en Disco” que repara calderas hidrostáticas
giratorias para la eliminación de bacterias.
 Teknowledge Inc., Carnegie Group, Symbolics, Lisp Machines Inc., Thinking
Machines Corporation, Cognitive Systems Inc. Fueron creadas en solicitud
de una creciente demanda de SE formando una inversión total de 300
millones de dólares. Las “máquinas LISP” eran su producto principal,
(ordenadores que ejecutaban programas LISP con la misma rapidez que en
un ordenador central) y el otro producto fueron las “herramientas de
desarrollo de Sistemas Expertos”.
 SIGCE 18 , Sistema de Información para Gerenciar la Capacitación
Empresarial. Es un sistema que le permite administrar de una forma fácil y
eficaz todo lo relacionado con la capacitación de cada uno de los
empleados y en general de toda su compañía. Este sistema lleva el control
de la capacitación desde la asignación de presupuestos y la programación
de cada uno de los eventos, hasta la generación de estadísticas e índices
de gestión que permiten conocer como se comportan cada una de las
variables involucradas en el proceso. También incorpora elementos como:
Capacitación de acuerdo a perfiles de cargo, Capacitación orientada a
competencias, Planes de capacitación individuales, entre otros.
3.3.2 En Contabilidad
 El Sistema Kiwi de Clark. Creado en 1975, intentaba interpretar frases
ordinarias descriptivas de operaciones económicas proponiendo el asiento
correspondiente a cada una de ellas.
 El sistema de Stepniewsky y Gervals. Utilizaba ya una base de
conocimiento y trabajaba mediante deducciones.
18
Sistemas Expertos Limitada. Medellín Colombia. Documento en línea http://www.sistemas-expertos.com/
36



Proyecto SICA de Page, Laurani y Oudet.
Desarrollado en 1989 con
PROLOG. Renuncia a interpretar el lenguaje escrito, centrándose en el
análisis de los datos que genera cada operación económica.
La base de datos BD/ML de Serrano.
El modelo R.E.A. de McCarthy. Analiza los procesos de la contabilidad
desde el punto de vista del Análisis Circulatorio.
3.3.3 En Análisis de Estados Financieros
 AFIN. Realiza un análisis de estados financieros en la empresa basándose
en el Plan General de Contabilidad Español de 1990.
 AIDE. Ayuda en el diagnóstico de empresas de la Central de Balances del
Banco de Francia.
 ALFEX. Proyecto referente a la creación de SE capaces de asesorar sobre
la salud financiera de una empresa, así como desarrollar bases de
conocimiento y herramientas adecuadas para manejarlas.
 ANALYSIS. Clasifica funcionalmente el balance y la cuenta de pérdidas y
ganancias.
 ANIBAL. Evalúa la gestión comercial y financiera de la empresa.
Se
pueden
mencionar
también
FINEXPERT/FINEPRO, FSA, entre otros.
ANSWERS,
CHARIS,
FINEX,
3.3.4 En Planificación Financiera
 AAFINPLAN. Proporciona orientación financiera a los empleados
 Capital Investment System. Ayuda a los directores de Texas Instruments a
la toma de decisiones en la compra de equipos, indicando factores como
exigencias legales, impacto medioambiental, entre otros.
 CASHVALUE. Evalúa proyectos de inversión.
También Client Profiling System, FAME, MANAGEMENT ADVISOR, Objective
Financial System, Personal Financial Analysis, PFPS, PLANMAN, PLANPOWER,
entre muchos otros más.
3.3.5 En la Aviación
Del tipo que incluyen agendas 19

ARMAC, GADS, RAMP, SALTO, RMAS, AAMPS, ACAMS, MOCA, ARIES,
EXPICS, Duty Roster System, Aeroplan. Incluyen su uso en empresas
como United Airlines, Air Canada, entre otras.
Del tipo de planeo de vuelos y configuraciones.

19
AALP y MD-11 Interior Design Config System
HARMON, Paul y Curtis Hall. Intelligent Software Systems.
37
Del tipo de mercadotecnia y reservaciones.

AA Advantage System, BAMBI, DOCS, IQ Manager, Passenger Rev
Accounting System
3.3.6 En Medicina
Para realizar un diagnóstico se requiere información sobre los síntomas del
paciente, condición general, historial clínico y resultados del laboratorio. Estos
datos se obtienen a partir de una serie de preguntas, cada una de las cuales es
determinada a partir de la respuesta anterior del paciente utilizando diversas
reglas o a través de la experiencia (almacenada en la memoria del ser humano
experto o bien, del sistema experto). Al principio las preguntas son generadas para
reducir el número de enfermedades posibles planteando una hipótesis, y al final se
realizan preguntas para soportar el diagnóstico.
Una de las formas comunes de llegar a un diagnóstico es mediante el
interrogatorio al paciente, en este sentido, los sistemas expertos son los más
aptos para esta tarea. Cuando el interrogatorio al paciente se realiza de forma
correcta se podrá elegir el tratamiento adecuado para su problema.
Otro punto a favor de los sistemas expertos es que al tener almacenado el
conocimiento en medios electrónicos, nunca se deteriorará, por el contrario, con el
módulo de aprendizaje se logran ingresar nuevas reglas para tratar nuevas
enfermedades, lo que asegura también que al realizar la prueba en pacientes con
los mismos síntomas se diagnostique de la misma forma. A pesar de la precisión
de los sistemas expertos, una parte que hace falta para poder respaldar los
resultados o para poder llegar a ellas más rápido es la exploración física.
Las formas de razonamiento diagnóstico tienen similitud con los razonamientos de
los sistemas expertos:
Probabilísticas. Se basan en la frecuencia de ocurrencia de las enfermedades y
consideran variables como sexo, edad, peso, frecuencia y la probabilidad asociada
entre síntomas-enfermedad.
Causales. Encuentran relaciones fisiopatológicas y las relacionan con los efectos
que causan, que pueden ser datos clínicos o antecedentes, así como el humor del
paciente, por citar algunos.
Determinísticos. Son mucho más directos, ya que identificando cada síntoma, se
asocia con una regla que lleva directamente hacia el diagnóstico. Se pueden
analizar, por ejemplo, la presencia de cefaleas, fiebre, alteraciones de la
conciencia y rigidez de nuca pueden significar meningoencefalitis.
Algunos sistemas de diagnostico:
 ETT. Clasifica pacientes con problemas de arterias coronarias. Identifica
varios factores que determinan los diagnósticos que emite como la edad,
38
las condiciones actuales del paciente, su historial médico, entre otros
factores20.

SPACEMED. Este es un Sistema Experto para asistencia en emergencias
médicas que sucedan durante un vuelo espacial o aborde de una estación
espacial en órbita. La principal característica de este SE es una diagnóstico
rápido en casos de envenenamiento, resultado de la inhalación de
contaminantes tóxicos liberados en la cabina o en la nave espacial. Este
sistema provee indicaciones para el tratamiento de cualquier tipo particular
de envenenamiento21.

DIAVAL. Es un Sistema Experto para diagnóstico mediante ecocardiografía,
el cual se basa en redes bayesianas, en vez de utilizar reglas; la decisión
de utilizar las redes bayesianas fue tomada basándose en la capacidad por
parte de dichas redes para manejar conocimientos imprecisos de una mejor
manera en comparación con las reglas 22 . Un conocimiento es impreciso
cuando cuenta solamente con predicados vagos, o sea que las variables no
reciben un valor preciso. El uso de este tipo de conocimiento nos adentra
en la lógica difusa, dado que se recurre a la utilización de coeficientes. El
coeficiente es un factor que se agrega para representar la incertidumbre o
la imprecisión que el experto asigna a este conocimiento 23 . DIAVAL fue
construido en la Universidad Nacional de Educación a Distancia (UNED) en
España, como proyecto para una tesis doctoral, siguiendo cinco etapas
clásicas: identificación, conceptualización, formalización, implementación y
evaluación. Este Sistema Experto provee una interfaz flexible y fácil de
manejar, conociendo la importancia de este factor en su aceptación por
parte de los médicos.
Ejemplo práctico de aplicación
Un médico puede utilizar un sistema experto para efectuar diagnósticos de manera
precisa y rápida. Por ejemplo, mediante un método Deterministico para el
diagnóstico y a través de inferencias con reglas, como lo muestra la figura 1.7, el
médico encuentra el tratamiento correcto para cada enfermedad. En un sistema
experto real se tienen muchas reglas analizadas y diseñadas por los médicos
especialistas.
Los sistemas expertos aplicados en la medicina permiten asegurar un buen
diagnóstico en los pacientes, ya que el ser humano puede cometer errores o no
considerar algún cuestionamiento o síntoma, lo cual puede afectar al tratamiento.
20
KANDEL, Abraham. Fuzzy Expert Systems.
TELLO, Ernest. Op. cit.
22
DÍEZ Vegas Francisco Javier. Sistema Experto Bayesiano para Ecocardiografía.
URL(http://ia.uned.es/~fdiez/tesis/tesis.html)
23
SCARABINO, Juan Carlos. Sistemas Expertos: Aspectos Técnicos.
URL(http://ciberconta.unizar.es/LECCION/sistexpat/INICIO.HTML)
21
39
Es importante destacar que la asistencia del sistema experto, ya sea en un
hospital o en un centro de salud comunitario, pudiera ahorrar recursos al eliminar
el trasladarse a otras ciudades para realizar el diagnóstico.
Figura 1.7 Ejemplo sencillo de sistema experto usando el método Deterministico.
Lección 15
3.3.7 Aplicaciones actuales
Algunos de los campos de aplicación de los Sistemas Expertos son: Medicina,
Finanzas y Gestión, Militar, Educación, Transportes, Aeronáutica, Agricultura,
Arqueología, Derecho, Geología e
Industria electrónica, informática y
telecomunicaciones.
A continuación se enunciaran algunos de los Sistemas Expertos que existen en la
actualidad o que se encuentran en desarrollo:
 MYCIN: Es el primer Sistema Experto que llego a funcionar con la misma
calidad que un experto humano. Es un sistema de diagnostico y
prescripción en medicina, altamente especializado, diseñado para ayudar a
los médicos a tratar con infecciones de meningitis y bacteriemia. Una serie
de tests han demostrado que MYCIN trabaja igual de bien que un médico.
40














TROPICAID: Permite obtener información adicional sobre los
medicamentos más usados. Este selecciona un conjunto de posibles
diagnósticos a partir del análisis del cuadro médico, y propone un
tratamiento óptimo para el caso concreto.
ADICORP: Realiza diagnósticos de equipos industriales complejos, además,
trabaja en proyectos de Visión Artificial.
PROSPECTOR: Sistema para la evaluación de emplazamientos geológicos.
Capaz de deducir una gran parte del depósito de pórfiro de molibdeno en el
estado de Washington, este yacimiento que los geólogos no habían sabido
detectar hasta entonces, y que esta valorado en cien millones de dólares.
Palladian Operations Advisor: Es de Palladian Software Inc. (USA), fue
diseñado específicamente para la dirección de la producción. Puede
analizar el estado de la combinación de productos para mantener la mayor
eficacia y rentabilidad posible de las operaciones.
LABEIN (Laboratorio de Ensayos e Investigaciones Industriales, en España),
desarrolló un sistema inteligente para el diseño de motores eléctricos
mediante la aplicación de las tecnologías clásicas de Sistemas Expertos a
los sistemas de CAD/CAE de diseño y análisis.
DELTA: Ayuda a los mecánicos en el diagnóstico y reparación de
locomotoras diesel y eléctricas. Este sistema no solo da consejos expertos,
sino que también presenta informaciones por medio de un reproductor de
vídeo.
STEAMER: Se creó para enseñar a los oficiales de la armada los
problemas de funcionamiento de una planta de propulsión a vapor, como
las que impulsan a ciertos barcos.
Eolo CN-235: Ofrece un curso específico para pilotos y técnicos de
mantenimiento, a todos los compradores del avión CN- 235. Es un sistema
de enseñanza interactivo que integra gráficos, texto y vídeo.
GUIDON: Utilizado por las Facultades de Medicina para formar a los
médicos en la realización de consultas. GUIDON viene a ser una
reorganización de MYCIN con intenciones educativas, por esto, tiene la
ventaja adicional de disponer de toda la base de conocimientos de MYCIN
además de la experiencia acumulada.
PUFF: Estudia la función pulmonar.
HERSAY: Intenta identificar la palabra hablada.
CASHVALUE: Evalúa proyectos de inversión.
VATIA, que asesora acerca del impuesto sobre el valor añadido o I.V.A.
COACH (Cognitive Adaptive Computer Help):Permite crear ayuda
personalizada al usuario. Es un observador de las acciones del usuario que
está aprendiendo a operar un ambiente, y en base a ellas construye un
modelo adaptativo del usuario.
41
3.3.7.1
Sistema experto para la simulación de sistemas tácticos de baloncesto
con software libre24
El objetivo de este SE es simular distintas tácticas de baloncesto. El programa
presenta un manejo sencillo y permite que se puedan introducir nuevas tácticas de
ataque y de defensa al conjunto de tácticas predefinidas que incorpora el sistema.
Como principal objetivo se marcó que el comportamiento del sistema fuera lo más
fiel posible al desarrollo de un sistema táctico en un partido de baloncesto
(salvando las limitaciones de la representación en ordenador del mundo real),
incluyendo todas las variantes de un sistema táctico en su justa medida. Cabe
destacar que los jugadores no son autónomos, sino que están coordinados para
comportarse de acuerdo a la táctica que desarrollan.
En el baloncesto, por lo general, cualquier jugador que tire a canasta sin oposición
(lo que se conoce como realizar un tiro cómodo) tiene muchas posibilidades de
encestar el balón. Por el contrario, el porcentaje de aciertos en tiros no cómodos
(cuando existe algún defensor amenazando al tirador) es mucho menor.
Para obtener un tiro cómodo el método más común es realizar buenos bloqueos.
Un bloqueo es un choque entre un atacante y un defensor que permite a un
segundo atacante moverse más libremente (normalmente para tirar a canasta o
recibir o dar un pase).
En el baloncesto las tácticas tienen una importancia vital para el desarrollo de un
partido. El reducido número de jugadores por equipo, cinco, hace que sea
importante que todos los jugadores intervengan en mayor o menor medida en la
jugada.
El bloqueo
Un bloqueo es un choque entre dos jugadores de distinto equipo que se provoca
para que un atacante tenga más libertad. Es importante que el jugador atacante
que choque esté quieto mientras se produce el contacto, pues en otro caso se le
señalará falta personal. Los pasos para realizar un bloqueo son los siguientes:
 Preparación: un primer atacante se queda quieto mientras otro compañero
se acerca a él.
 Realización: el segundo atacante hace un movimiento rápido y pasa
rozando al compañero (de modo que este moleste lo máximo posible a su
defensor).
 Acción del atacante: una vez ha pasado el atacante tiene un amplio abanico
de posibilidades. Si tiene el balón puede tirar a canasta, acercarse a ella,
pasar a un compañero, etc. En caso de que no lo tenga suele prepararse
para recibir un posible pase.
24
Palomo Manuel & Martín, Mateos Francisco Jesús.2002. Grupo Mejora del Proceso Software y Métodos
Formales. Departamento de Lenguajes y Sistemas Informáticos. Universidad de Cádiz. Escuela Superior de
Ingeniería. C/ Chile, s/n. Departamento de Ciencias de la Computación e Inteligencia Artificial, Universidad
de Sevilla
42

Reacción del defensor: la reacción del defensor es muy importante. Entre
otras acciones puede intentar seguir a su pareja (aunque a cierta distancia),
puede ordenar al jugador que bloquea, etc. No existe ninguna decisión
netamente mejor que otra para cada uno de los participantes en un bloqueo.
Según sus posiciones concretas, el entorno y las características de cada
jugador, cada uno debe tomar la decisión que considere oportuna.
Principales tácticas de ataque
El número de tácticas de ataque de un entrenador son inimaginables. Cualquier
secuencia de movimientos, bloqueos, pases, quiebros, etc. que faciliten un tiro
cómodo es válida. Sin embargo, por lo general, casi todas las tácticas suelen
basarse en dos situaciones iniciales, que son jugar al poste alto y jugar al poste
bajo (figura 1.8).
Figura 1.8. Principales tácticas de ataque
Cuando se juega al poste bajo los dos jugadores más altos del equipo ocupan
posiciones a sendos lados de la canasta. Los otros tres se distribuyen a lo largo de
la línea de tres puntos, uno en la perpendicular al aro y los otros dos a los lados.
El punto fuerte de este tipo de ataque es que permite, si se tienen jugadores altos
fuertes, que estos reciban el balón cerca de la canasta. Además, en el caso de
que venga otro defensor para ayudar a cubrirlo, pueden realizar un pase hacia el
jugador que quede libre, que dispondrá en ese caso de un tiro cómodo o libertad
para moverse. La principal desventaja es que los jugadores altos del equipo
defensor sean mejores que los del equipo atacante.
3.3.7.2 GENSYM: Operaciones Expertas25
El software de Operaciones Expertas permite fabricar productos y ejecutar
operaciones en un costo drásticamente más bajo aplicando tecnología de
razonamiento en el seguimiento, el control y a la optimización de procesos
25
Juan Manuel, Pignani. Informática aplicada a la Ingeniería de Procesos. Universidad Tecnológica
Nacional, Facultad Regional Rosario
43
complejos. Este software se utiliza extensamente en las industrias de fabricación,
de producción, del espacio aéreo y del transporte.
Disponibilidad continua del activo
Las aplicaciones mantienen la disponibilidad de todos los recursos esenciales para
un proceso; detectando, diagnosticando, y corrigiendo los problemas antes de que
afecten las operaciones. Trabajando con los sistemas tradicionales de DCS,
software de control y los primeros principios de modelado, provee una capa de
gestión y de habilidad sobre esos sistemas, automatizando las tareas
derrochadoras de tiempo y las tareas requeridas para detectar y resolver
rápidamente cada problema.
Funcionamiento del proceso
El objetivo es maximizar la calidad del producto y productividad, mientras que se
reduce al mínimo los costos. Los analizadores suaves basados en la red neuronal
proveen el acceso instantáneo a los datos (difíciles de medir) de la calidad del
producto y otras variables de proceso importantes, permitiendo un control de
proceso mucho más ajustado y reducciones significativas en la variabilidad del
producto. Los modelos también predicen los puntos de ajuste óptimos para el
aumento de la producción. Esto lo hacen dentro de un ambiente robusto que
puede validar los datos del sensor, manejar las nuevas condiciones de
funcionamiento, manejan situaciones anormales y aconsejan a los operadores.
Resultados
Disponibilidad creciente del activo, calidad del producto más alta, producción
creciente, seguridad mejorada, mínimas consecuencias para el medio ambiente y
beneficios más altos. Los operadores consiguen el pleno apoyo que necesitan
para manejar las operaciones de fabricación
3.3.7.3
G2 CLASSIC
G2 Classic es un ambiente orientado a objetos de gran alcance. Su función es la
de desplegar las aplicaciones inteligentes que mejoran drásticamente las
operaciones complejas del negocio. Esta tecnología provee ventajas competitivas
en los siguientes puntos:
 optimización de las eficacias de funcionamiento.
 mejoramiento del activo y sustentamiento de la disponibilidad.
 mejor manejo de las operaciones críticas del tiempo.
 construcción y despliegue de las aplicaciones de gestión de las operaciones,
drásticamente más rápido.
 reducción al mínimo de los costos de mantenimiento de las aplicaciones de
gestión de las operaciones.
 facilita el acotamiento y el conocimiento de las operaciones Con este
software, se puede aplicar conocimiento a los datos operacionales, al
alcance de las conclusiones, proveer consejo y ejecutar las decisiones,
44
todas en tiempo real. Para las operaciones de negocio, los sistemas
inteligentes capturan y aplican el conocimiento para permitir la mejora
continua de la eficiencia y el funcionamiento operacional.
Para los desarrolladores el uso de esta herramienta reduce tiempo en la
terminación de proyectos, reduce al mínimo los riesgos del proyecto y ofrece altos
niveles de la flexibilidad y capacidad de escalonar las aplicaciones. También
permite a los desarrolladores representar el conocimiento como objetos, reglas,
métodos y procedimientos usando gráficos y lenguaje natural estructural. Esto
permite probar y modificar las aplicaciones fácilmente, y que sean entendidas.
Particularizando las aplicaciones en ramas específicas del conocimiento, se han
desarrollado un gran número de sistemas expertos que actúan en empresas,
algunos simplemente en diseño teórico; otros, con aplicación real en el campo
productivo de la organización.
3.4 ACTIVIDADES COMPLEMENTARIAS
1. Explique las diferentes tareas que realizan los sistemas expertos
2. Investigue cuales de estas tareas son aplicadas en Colombia y con que
tipo de sistemas expertos.
3. Realice un cuadro comparativo entre las diferentes actividades que puede
realizar un SE.
4. Cuales son las ventajas y desventajas que se obtienen a implementar
sistemas expertos para el desarrollo de tares como la simulación,
pronostico y predicción.
5. Nombre algunos ejemplos en donde seria útil utilizar SE y explique el
porque.
6. Suponga que se le contrata para capturar el conocimiento de una brillante
asesora financiera, antes de su retiro de la empresa en seis meses, que
tiene un historial notable en la elección de acciones en crecimiento para un
fondo mutualista. El conocimiento se usara como la base para un sistema
experto que ayude a otros asesores financieros a tomar decisiones sobre
cuales acciones incluir o eliminar del fondo mutualista. ¿esta es una buena
opción para un sistema experto? Explique su respuesta.
7. Explicar la diferencia entre una base de datos y una base de conocimientos.
8. ¿Qué habilidades se necesitan para ser un buen ingeniero del
conocimiento? ¿El conocimiento del dominio ayudaría u obstaculizaría al
ingeniero del conocimiento en su propósito por capturar el conocimiento del
experto en dominio?
45
9. Suponga que vive en un área donde el clima se modifica a diario. Desarrolle
un sistema experto sencillo que proporcione asesoría sobre el tipo de ropa
que debe usarse de acuerdo con el clima. Es necesario que el sistema le
ayude a decidir que tipo de ropa y accesorios debe usar (sombrilla, botas,
etc.) en días soleados, con nieve, lluvia, calor, agradables fríos, etc. Las
entradas clave para el sistema incluyen el pronóstico del clima para la
noche anterior. La observación que haga usted de la temperatura y la
nubosidad durante la mañana y el clima del día anterior. Por medio del
programa de procesamiento de texto desarrolle siete o más reglas que se
podrían usar en este tipo de sistema experto. Crear cinco casos y usar las
reglas que se desarrollaron para determinar el mejor curso de acción.
10. Realice una investigación de las compañías especializadas en el diseño de
sistemas expertos y en que áreas del conocimiento han desarrollado sus
productos.
46
UNIDAD 2. DESARROLLO DE LOS SISTEMAS
EXPERTOS
CAPTULO 4. ARQUITECTURA Y ELEMENTOS DE LOS SISTEMAS EXPERTOS
Lección 16
4.1 Introducción
Se puede decir que los sistemas expertos son el primer resultado operacional de
la Inteligencia artificial, pues logran resolver problemas a través del conocimiento y
raciocinio de igual forma que lo hace el experto humano.
Un Sistema Experto (SE), es básicamente un programa de computadora basado
en conocimientos y raciocinio que lleva a cabo tareas que generalmente sólo
realiza un experto humano 26 ; es decir, es un programa que imita el
comportamiento humano en el sentido de que utiliza la información que le es
proporcionada para poder dar una opinión sobre un tema en especial y resolver
problemas específicos.
Otros autores lo definen como sigue: un Sistema Experto es un programa de
computadora interactivo que contiene la experiencia, conocimiento y habilidad
propios de una persona o grupos de personas especialistas en un área particular
del conocimiento humano, de manera que permitan resolver problemas
específicos de ése área de manera inteligente y satisfactoria.27 La tarea principal
de un SE es tratar de aconsejar al usuario28.
Los usuarios que introducen la información al SE son en realidad los expertos
humanos, y tratan a su vez de estructurar los conocimientos que poseen para
ponerlos entonces a disposición del sistema. Los SE son útiles para resolver
problemas que se basan en conocimiento29.
Las características principales de este tipo de problemas, según algunos autores,
son:
 Utilizan normas o estructuras que contengan conocimientos y experiencias
de expertos especializados.
 Se obtienen conclusiones a través de deducciones lógicas.
 Contienen datos ambiguos.
 Contienen datos afectados por factores de probabilidad.
26
PARSAYE, Kamran, Mark Chignell, Setrag Khoshafian y Harry Wong. Intelligent Databases.
DE MIGUEL González, Luis Javier. Técnicas de mantenimiento predictivo industrial basadas en Sistemas
Expertos.
28
SCHILDT Herbert, Utilización de C en Inteligencia Artificial.
29
CRIADO Briz, José Mario. Sistemas Expertos. URL (http://home.worldonline.es/jmariocr/index.htm)
27
47
Con base en lo anterior, algunos investigadores de IA señalan que un SE debe
cumplir con las siguientes características:
 Tener un amplio conocimiento específico del área de especialización.
 Aplicar técnicas de búsqueda.
 Tener soporte para Análisis Heurístico.
 Poseer habilidad para inferir nuevos conocimientos ya existentes.
 Tener la capacidad de procesar símbolos.
 Tener la capacidad para explicar su propio razonamiento.
Lección 17
4.2 Arquitectura de un Sistema Experto
Un Sistema Experto aplica las técnicas de resolución de problemas y
razonamiento de la Inteligencia Artificial al conocimiento codificado acerca de un
problema específico.
La efectividad del Sistema Experto dependerá, en gran medida, de la cantidad de
conocimiento que se le proporcione. Sin la existencia de una base suficiente de
conocimiento, aunque existan métodos de razonamiento muy potentes, es
imposible crear un comportamiento inteligente. Sin embargo, con métodos de
inferencia muy simples se pueden conseguir resultados muy buenos cuando se
aplican a una base adecuada de conocimientos. De la misma forma que una base
de conocimientos muy completa sin un adecuado motor de inferencia, serviría de
muy poco, pues quedaría reducida a algo estático sin posibilidad ni capacidad de
"deducción" ni generación de nuevo conocimiento.
Los Sistemas Basados en el Conocimiento significan el paso del paradigma del
poder, es decir, de la utilización de cómputo muy potente, al paradigma del
conocimiento, o sea, empleo del máximo posible de conocimiento.
La revolución aportada por los Sistemas Expertos consiste en considerar tanto las
informaciones imperativas de la Informática tradicional como las declarativas no
expresables por los lenguajes usuales de aquella y el conocimiento de la
naturaleza más diversa y no homogénea, como datos.
Estos expertos construyen sus bases de conocimiento con la ayuda de los
Ingenieros del Conocimiento. Esto se realiza en un lenguaje descriptivo, que tiene
muy pocas relaciones con los lenguajes tradicionales de programación. Los
conocimientos se introducen como elementos modulares, independientes y como
pequeñas moléculas de saber, muy libres las unas de las otras y fácilmente
modificables. Estos conjuntos de conocimientos son analizados por lo que se ha
dado en llamar motor de inferencias, "software" cuya programación utiliza, en
parte métodos .clásicos, pero único para toda una gama de aplicaciones y que
tiene como objetivo relacionar" las moléculas de conocimiento" que son
48
encadenadas lógicamente para deducir todas las informaciones posibles. La
descripción de un sistema, es justamente aquello que ve el usuario.
De este modo, una arquitectura puede ser soportada por un número
indeterminado de implantaciones distintas, cada una de las cuales puede, a su vez,
tener numerosas realizaciones. De hecho, es muy frecuente el caso de que la
misma arquitectura se realiza con nuevas tecnologías, cuando éstas son
utilizables. La arquitectura de un Sistema Experto complejo se puede estructurar,
tal y como se muestra en la figura 2.1.
Figura 2.1 Arquitectura de un Sistema Experto30
30
Figura tomada de la tesis doctoral Metodología Para El Desarrollo De Sistemas Expertos diseñada por el
doctor José Domingo Carrillo Verdun
49
Lección 18
4.3 Elementos de un Sistema Experto
Los dos componentes principales de cualquier sistema experto son una base de
conocimientos y un motor de inferencia.
a. Base de conocimientos, esta debe ser de un tema específico, donde el
conocimiento se codifica según una notación específica que incluye reglas,
predicados, redes semánticas y objetos.
b. Motor de inferencia, combina los hechos y las preguntas particulares,
utilizando la base de conocimiento, seleccionando los datos y pasos
apropiados para presentar los resultados.
Existen otros componentes en un SE entre ellos:

Subsistema de control de coherencia. Este componente previene la
entrada de información incoherente en la base de conocimiento. Es un
componente muy necesario, a pesar de ser un componente reciente.

Subsistema de adquisición de conocimiento. Se encarga de controlar si
el flujo de nuevo conocimiento a la base de datos es redundante. Sólo
almacena la información que es nueva para la base de datos.

Motor de inferencia. Este componente es básico para un SE; se encarga
de obtener conclusiones comenzando desde el conocimiento abstracto
hasta el conocimiento concreto. Si el conocimiento inicial es muy poco, y el
sistema no puede obtener ninguna conclusión, se utilizará el subsistema de
demanda de información.

Subsistema de demanda de información. Completa el conocimiento
necesario y reanuda el proceso de inferencia hasta obtener alguna
conclusión válida. El usuario puede indicar la información necesaria en este
proceso ayudado de una interfase de usuario (la cual facilita la
comunicación entre el Sistema Experto y el usuario).

Subsistema de incertidumbre. Se encarga de almacenar la información
de tipo incierto y propaga la incertidumbre asociada a esta información.

Subsistema de ejecución de tareas. Permite realizar acciones al Sistema
Experto basadas en el motor de inferencia.

Subsistema de explicación. Este componente entra en ejecución cuando
el usuario solicita una explicación de las conclusiones obtenidas por el SE.
Esto se facilita mediante el uso de una interfase.
50
Figura 2.2. Componentes típicos de un sistema experto. Las flechas representan el flujo de la
información.31
Figura 2.3 Relación entre los elementos de un sistema experto
31
Fuente: Castillo, Enrique. Gutiérrez, José Manuel Sistemas Expertos y Modelos de Redes Probabilísticas
51
4.3.1. La Componente Humana
Para desarrollar un sistema experto, primero se debe conocer el equipo humano
necesario, después los métodos que utiliza ese equipo y por ultimo cómo prueban
y construyen prototipos de software para terminar el sistema final.
Un sistema experto es generalmente el resultado de la colaboración de uno o
varios expertos humanos especialistas en el tema de estudio, los ingenieros del
conocimiento y los usuarios. Los expertos humanos suministran el conocimiento
básico en el tema de interés y los ingenieros del conocimiento trasladan este
conocimiento a un lenguaje, que el sistema experto pueda entender. La
colaboración de los expertos humanos, los ingenieros del conocimiento y los
usuarios es, quizá, el elemento más importante.
Figura 2.4 Equipo de desarrollo de un SE
Las personas que componen un grupo como en todos los ámbitos deben cumplir
ciertas características y cada uno de ellos dentro del equipo desarrolla un papel
distinto. A continuación se detalla cada componente del equipo dentro del
desarrollo y cuál es la función de cada uno:
a) El experto. La función del experto es la de poner sus
conocimientos especializados a disposición del Sistema Experto.
b) El ingeniero del conocimiento. Es el ingeniero que plantea las
preguntas al experto, estructura sus conocimientos y los
implementa en la base de conocimientos.
c) El usuario. El usuario aporta sus deseos y sus ideas,
determinando especialmente el escenario en el que debe aplicarse
el Sistema Experto.
En el desarrollo de un Sistema Experto, El ingeniero del conocimiento y el experto
trabajan muy unidos. El primer paso consiste en elaborar los problemas que
deben ser resueltos por el sistema. Precisamente en la primera fase de un
proyecto es de vital importancia determinar correctamente el ámbito
estrechamente delimitado de trabajo. Aquí se incluye ya el usuario posterior, o un
representante del grupo de usuarios. Para la aceptación, y en consecuencia para
52
el éxito, es de vital y suma importancia tener en cuenta los deseos y las ideas del
usuario.
Una vez delimitado el dominio, se alimenta el sistema con los conocimientos del
experto. El experto debe comprobar constantemente que su conocimiento haya
sido transmitido de la forma más conveniente. El ingeniero del conocimiento es
responsable de una implementación correcta, pero no de la exactitud del
conocimiento. La responsabilidad de esta exactitud recae en el experto.
De ser posible, el experto deberá tener comprensión para los problemas que
depara el procesamiento de datos. Ello facilitará mucho el trabajo. Además, no
debe ignorarse nunca al usuario durante el desarrollo, para que al final se
disponga de un sistema que le sea de máxima utilidad.
La estricta separación entre usuario, experto e ingeniero del conocimiento no
deberá estar siempre presente. Pueden surgir situaciones en las que el experto
puede ser también el usuario. Este es el caso, cuando exista un tema muy
complejo cuyas relaciones e interacciones deben ser determinadas una y otra vez
con un gran consumo de tiempo. De esta forma el experto puede ahorrarse
trabajos repetitivos.
La separación entre experto e ingeniero del conocimiento permanece, por regla
general, inalterada.
4.3.2. Base de Conocimientos
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 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.
53
La base de conocimientos contiene el conocimiento especializado extraído del
experto en el dominio. Es decir, contiene conocimiento general sobre el dominio
en el que se trabaja. El método más común para representar el conocimiento es
mediante reglas de producción. El dominio de conocimiento representado se
divide, pues, en pequeñas fracciones de conocimiento o reglas.
Lección 19
4.3.3. El componente de adquisición
Un buen componente de adquisición ayudará considerablemente la labor del
ingeniero del conocimiento. Este puede concentrarse principalmente en la
estructuración del conocimiento sin tener que dedicar tanto tiempo en la actividad
de programación.
Este componente controla el flujo del nuevo conocimiento que fluye del experto
humano a la base de datos. El sistema determina qué nuevo conocimiento se
necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe
incluirse en la base de datos y, en caso necesario, incorpora estos conocimientos
a la misma.
Requisitos o características del componente de adquisición:
1. El conocimiento, es decir, las reglas, los hechos, las relaciones entre los
hechos, etc.., debe poder introducirse de la forma más sencilla posible.
2. Posibilidades de representación clara de todas las informaciones
contenidas en una base de conocimientos.
3. Comprobación automática de la sintaxis.
4. Posibilidad constante de acceso al lenguaje de programación.
La puesta en práctica cada uno de los requisitos dependerá del lenguaje de
programación elegido y del hardware que se tenga. El experto deberá estar algo
familiarizado con el componente de adquisición para poder realizar
modificaciones por sí sólo.
El módulo de adquisición del conocimiento permite que se puedan añadir, eliminar
o modificar elementos de conocimiento (en la mayoría de los casos reglas) en el
SE. Si el entorno es dinámico, entonces este componente es muy necesario,
puesto que el sistema funcionará correctamente sólo si se mantiene actualizado
su conocimiento. El módulo de adquisición permite efectuar ese mantenimiento,
anotando en la base de conocimientos los cambios que se producen.
4.3.4. Control de Coherencia
El subsistema de control de la coherencia ha aparecido en los sistemas expertos
muy recientemente. Sin embargo, es una componente esencial de un sistema
experto. Este subsistema controla la consistencia de la base de datos y evita que
54
unidades de conocimiento inconsistentes entren en la misma. En situaciones
complejas incluso un experto humano puede formular afirmaciones inconsistentes.
Por ello, sin un subsistema de control de la coherencia, unidades de conocimiento
contradictorio pueden formar parte de la base de conocimiento, dando lugar a un
comportamiento insatisfactorio del sistema.
Es también común, especialmente en sistemas con mecanismos de propagación
de incertidumbre, que se llegue a conclusiones absurdas o en conflicto como, por
ejemplo, situaciones en las que el sistema genera probabilidades mayores que la
unidad o negativas. Por ello, el subsistema de control de coherencia comprueba e
informa a los expertos de las inconsistencias. Por otra parte, cuando se solicita
información de los expertos humanos, este subsistema informa sobre las
restricciones que esta debe cumplir para ser coherente con la existente en la base
de conocimiento. De esta forma, ayuda a los expertos humanos a dar información
fiable.
4.3.5. 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 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.
El mecanismo de inferencia de un sistema experto puede simular la estrategia de
solución de un experto. Es la unidad lógica con la que se extraen conclusiones de
la base de conocimiento, según un método fijo de solución de problemas que esta
configurado, limitando el procedimiento humano de los expertos para solucionar
problemas.
55
Una conclusión se produce mediante aplicación de las reglas sobre hechos
presentes. Las funciones de mecanismo de inferencia son:
1. Determinación de las acciones que tendrán lugar, el orden en que lo harán y
cómo lo harán entre las diferentes partes del sistema experto.
2. Determinar cómo y cuándo se procesarán las reglas, y dado el caso también la
elección de qué reglas deberán procesarse.
3. Control del diálogo con el usuario.
El motor de inferencias utiliza los datos que se le suministran y recorre la base de
conocimientos para alcanzar una solución. La estrategia de control puede ser de
encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se
comienza con los hechos disponibles en la base de datos, y se buscan reglas que
satisfagan esos datos, es decir, reglas que verifiquen la parte SI. Normalmente, el
sistema sigue los siguientes pasos:
1. Evaluar las condiciones de todas las reglas respecto a la base de datos,
identificando el conjunto de reglas que se pueden aplicar (aquellas que
satisfacen su parte condición).
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 (esto
último genera nuevos hechos que se añaden a la base de datos).
3. Si se llega al objetivo, se ha resuelto el problema; en caso contrario, se vuelve
al paso 1
A este enfoque se le llama también guiado por datos, porque es el estado de la
base de datos el que identifica las reglas que se pueden aplicar. Cuando se utiliza
este método, el usuario comenzará introduciendo datos del problema en la base
de datos del sistema.
Al encadenamiento regresivo se le suele llamar guiado por objetivos, ya que, el
sistema comenzará por el objetivo (parte acción de las reglas) y operará
retrocediendo para ver cómo se deduce ese objetivo partiendo de los datos. Esto
se produce directamente o a través de conclusiones intermedias o subobjetivos.
Lo que se intenta es probar una hipótesis a partir de los hechos contenidos en la
base de datos y de los obtenidos en el proceso de inferencia.
En la mayoría de los sistemas expertos se utiliza el encadenamiento regresivo.
Este enfoque tiene la ventaja de que el sistema va a considerar únicamente las
reglas que interesan al problema en cuestión. El usuario comenzará declarando
una expresión E y el objetivo del sistema será establecer la verdad de esa
expresión.
Para ello se pueden seguir los siguientes pasos:
1. Obtener las reglas relevantes, buscando la expresión E en la parte acción
(éstas serán las que puedan establecer la verdad de E)
56
2. Si no se encuentran reglas para aplicar, entonces no se tienen datos
suficientes para resolver el problema; se termina sin éxito o se piden al
usuario más datos.
3. Si hay reglas para aplicar, se elige una y se verifica su parte condición C
con respecto a la base de datos.
4. Si C es verdadera en la base de datos, se establece la veracidad de la
expresión E y se resuelve el problema.
5. Si C es falsa, se descarta la regla en curso y se selecciona otra regla.
6. Si C es desconocida en la base de datos (es decir, no es verdadera ni
falsa), se le considera como subobjetivo y se vuelve al paso 1 (C será
ahora la expresión E).
Existen también enfoques mixtos en los que se combinan los métodos guiados por
datos con los guiados por objetivos.
Lección 20
4.3.6. Componente de ejecución de tareas
El subsistema de ejecución de órdenes es la componente que permite al sistema
experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por
el motor de inferencia. Como ejemplos, un sistema experto diseñado para analizar
el tráfico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el
tráfico global, o un sistema para controlar una central nuclear puede abrir o cerrar
ciertas válvulas, mover barras, etc., para evitar un accidente. La explicación de las
razones por las que se inician estas acciones pueden darse al usuario mediante el
subsistema de explicación.
4.3.7. Componente explicativo
Explica al usuario la estrategia de solución encontrada y el porque de las
decisiones tomadas. Las soluciones descubiertas por los expertos deber poder ser
repetibles tanto por el ingeniero del conocimiento en la fase de comprobación así
como por el usuario. La exactitud de los resultados sólo podrá ser controlada,
naturalmente, por los expertos.
Siempre es deseable que durante el trabajo de desarrollo del sistema se conozca
el grado de progreso en el procesamiento del problema. Como se ha dicho
anteriormente pueden surgir preguntas como las siguientes:
 ¿Qué preguntas se plantean y por qué?
 ¿Cómo ha llegado el sistema a soluciones intermedias?
 ¿Qué cualidades tienen los distintos objetos?
A pesar de insistir sobre la importancia del componente explicativo es muy difícil
y hasta ahora no se han conseguido cumplir todos los requisitos de un buen
componente explicativo. Muchos representan el progreso de la consulta al
sistema de forma gráfica. Además los componentes explicativos intentan
justificar su función rastreando hacia atrás el camino de la solución. Aunque
57
encontrar la forma de representar finalmente en un texto lo suficientemente
inteligible las relaciones encontradas depara las mayores dificultades. Los
componentes explicativos pueden ser suficientes para el ingeniero del
conocimiento, ya que está muy familiarizado con el entorno del procesamiento de
datos, y a veces bastan también para el experto; pero para el usuario, que a
menudo desconoce las sutilezas del procesamiento de datos, los componentes
explicativos existentes son todavía poco satisfactorios.
La mayoría de los sistemas expertos contienen un módulo de explicación,
diseñado para aclarar al usuario la línea de razonamiento seguida en el proceso
de inferencia. Si el usuario pregunta al sistema cómo ha alcanzado una
conclusión, éste le presentará la secuencia completa de reglas usadas. Esta
posibilidad de explicación es especialmente valiosa cuando se tiene la necesidad
de tomar decisiones importantes amparándose en el consejo del SE. Además, de
esta forma, y con el tiempo suficiente, los usuarios pueden convertirse en
especialistas en la materia, al asimilar el proceso de razonamiento seguido por el
sistema. El subsistema de explicación también puede usarse para depurar el SE
durante su desarrollo.
Por ejemplo, si un cajero automático decide rechazar la palabra clave (una acción),
la máquina puede mostrar un mensaje (una explicación) como la siguiente:
¡Lo siento!, su palabra clave es todavía incorrecta tras tres intentos.
Retenemos su tarjeta de crédito, para garantizar su seguridad.
Por favor, póngase en contacto con su banco en horas de oficina.
En muchos dominios de aplicaciones, es necesaria la explicación de las
conclusiones debido a los riesgos asociados con las acciones a ejecutar. Por
ejemplo, en el campo del diagnóstico médico, los doctores en últimas son
responsables de los diagnósticos, independientemente de las herramientas
técnicas utilizadas para sacar conclusiones. En estas situaciones, sin un
subsistema de explicación, los doctores pueden no ser capaces de explicar a sus
pacientes las razones de su diagnóstico.
4.3.8. La interfaz del usuario
Sirve para que el usuario pueda realizar una consulta en un lenguaje lo más
natural posible. Este componente es la forma en la que el sistema se presenta
ante el usuario, y le permite describir el problema, interpreta sus preguntas, los
comandos y la información ofrecida; a la inversa, formula la información generada
por el sistema incluyendo respuestas a las preguntas, explicaciones y
justificaciones, es decir, posibilita que la respuesta proporcionada por el sistema
sea inteligible para el interesado. También puede solicitar más información al SE si
le es necesaria. En algunos sistemas se utilizan técnicas de tratamiento del
lenguaje natural para mejorar la comunicación entre el usuario y el SE.
58
Entonces, 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 interfase de usuario es un vehículo para
obtener la información necesaria del usuario. Consecuentemente, una
implementación inadecuada de la interfase de usuario que no facilite este proceso
dragaría 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 no se debería juzgar la calidad de un libro por
su portada. [Los estudiantes que estén interesados en el diseño de una interfase
de usuario pueden consultar los libros de Shneiderman (1987) y Brown y
Cunningham (1989).]
Como en los anteriores componentes, también en este surgen dudas y preguntas,
por ejemplo:



¿Cómo debe responder el usuario a las preguntas planteadas?
¿Cómo saldrán las respuestas del sistema a las preguntas que se le
planteen?
¿Qué informaciones se representarán de forma gráfica?
Los requisitos o características de la interfaz que se presenta al usuario al
desarrollar el sistema se pueden resumir en:
1. El aprendizaje del manejo debe ser rápido. El usuario no debe dedicar
mucho tiempo al manejo del sistema, debe ser intuitivo, fácil en su manejo.
No debemos olvidar que nuestro sistema simula al comportamiento de un
experto. Debe ser cómodo y relativamente sencillo en cuanto al manejo.
2. Debe evitarse en lo posible la entrada de datos errónea. Ejemplo:
Cuando acudimos a un médico, le contamos y detallamos nuestros
síntomas y el con sus preguntas junto con nuestras respuestas nos
diagnostica nuestra "enfermedad". Imagínense que acudimos a un médico y
le decimos que nos duele una pierna en lugar de un brazo, el diagnóstico
será inútil. El ejemplo es muy exagerado pero demuestra la importancia en
la correcta introducción de los datos al sistema.
3. Los resultados deben presentarse en una forma clara para el usuario.
Si nuestro médico nos diagnostica un medicamento pero en nuestra receta
no nos escribe cada cuantas horas hemos de tomarlo por ejemplo, por muy
bueno que sea el medicamento, la solución a nuestro problema será
59
ineficiente por completo. Por eso se insiste en que los resultados debe ser
claros y concisos.
4. Las preguntas y explicaciones deben ser comprensibles. Es necesario
explicar al usuario en lenguaje natural porque se da cierta respuesta, de
esta forma al usuario se le justifica una respuesta dada de forma
comprensible.
4.4 ACTIVIDADES COMPLEMENTARIAS
1. Realice un cuadro comparativo de los usos mas destacados de los sistemas
expertos.
2. Mediante un ejemplo identifique los elementos de un sistema experto para el
diagnostico de enfermedades respiratorias en los humanos.
3. ¿Cuales son las capacidades de un sistema experto?
4. Describa algunas de las características limitantes de los sistemas expertos.
5. Identificar los elementos básicos de un sistema experto y describir el papel de
cada uno de ellos.
60
CAPITULO 5. PROCESO DE DESARROLLO DE UN SISTEMA EXPERTO
Lección 21
5.1 INTRODUCCIÓN
Para desarrollar el software primero conocemos el equipo de gente necesario,
después los métodos que y utiliza ese equipo de gente y por ultimo como prueban
y construyen prototipos de software para terminar en el sistema final.
1. Equipos de desarrollo
1.1 Expertos
1.2 El ingeniero del conocimiento
1.3 El usuario
2. Métodos auxiliares en el desarrollo:
La eficiencia en la creación de sistemas expertos puede aumentarse en gran
medida con la aplicación de shells.
Un shell es un sistema experto que contiene una base de conocimientos vacía.
Existe el mecanismo de inferencia, el componente explicativo y a veces también la
interfaz del usuario.
3. construcción de prototipos
La implantación de un prototipo de sistema experto que le permite llevar a cabo las
funciones más importantes de éste, aunque con esfuerzo de desarrollo
considerablemente inferior al de una implementación convencional. Este proceder
se define bajo el nombre de “rapid prototyping”.
5.2 Desarrollo de un sistema experto
Weiss y Kulikowski (1984) sugieren las etapas para el diseño e implementación de
un sistema experto descritas en la Figura 2.5
Como ya se mencionó, los principales componentes de un SE son la base de
conocimiento y el motor de inferencia. La metodología tradicional se enfoca
principalmente a la construcción de dichos componentes.
1
Figura 2.5. Desarrollo de un Sistema Experto
5.2.1. La base de conocimiento
La base de conocimiento es una base de datos que posee una información y unas
reglas específicas sobre una materia o tema determinado. En la metodología
tradicional, la base de conocimiento se conforma de objetos y atributos. Un objeto
es una conclusión que es definida por sus atributos relacionados; y un atributo es
una característica o cualidad específica que ayuda a definir un objeto.
La base de conocimiento se puede ver como una lista de objetos con sus reglas y
atributos asociados. En el sentido más simple, la regla que se aplica para un
atributo determina si un objeto “tiene” o “no tiene” determinado atributo. Por lo que
un objeto se define usando una lista de atributos que el objeto posea o no.
Podemos decir que una base de conocimiento es una estructura de datos que
contiene el conjunto de conocimiento especializado introducido por el experto del
dominio (persona que domina el tema). Contiene una gran cantidad de información
sobre un tema específico, generalmente introducido por un experto por dicho tema,
sobre el cual se desarrolla la aplicación
Este conocimiento lo constituye la descripción de:
 Objeto a tener en cuenta y sus relaciones.
2
 Casos particulares o excepciones o diferentes estrategias de resolución con
sus condiciones de aplicación (meta-conocimiento, es decir conocimiento
sobre el conocimiento.)
Se representa de una manera sencilla, mediante reglas de producción. Una regla
es una instrucción condicionada que enlaza determinadas condiciones con
acciones o resultados. La regla se crea por medio de construcciones <sientonces> cada regla constará de una parte denominada condición (premisas) que
contiene las cláusulas que deben cumplirse para que la regla pueda ejecutarse y
de una parte denominada acción (consecuencia) representa el resultado de la
ejecución de dicha regla y las mismas pueden relacionarse dando lugar a nuevos
hechos, entonces una regla tendrá la forma:
Sí <condición> Entonces <acción>
ó If <premisa> Then <conclusión>
Ejemplo:
If Latencia Distal >= 3.8 Then Latencia Distal Normal
If Latencia Distal < 3.8 Then Latencia Distal Anormal
Si (el termómetro marca 39º) Y (el termómetro funciona correctamente) Entonces
el paciente tiene fiebre
Una característica muy importante es que la base de conocimientos es
independiente del mecanismo de inferencia que se utiliza para resolver los
problemas. De esta forma, cuando los conocimientos almacenados se han
quedado obsoletos, o cuando se dispone de nuevos conocimientos, es
relativamente fácil añadir reglas nuevas, eliminar las antiguas o corregir errores en
las existentes. No es necesario reprogramar todo el sistema experto.
Las reglas suelen almacenarse en alguna secuencia jerárquica lógica, pero esto
no es estrictamente necesario. Se pueden tener en cualquier secuencia y el motor
de inferencia las usará en el orden adecuado que necesite para resolver un
problema. 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.
Existen reglas de producción que no pertenecen al dominio del problema. Estas
reglas se llaman meta-reglas (reglas sobre otras reglas) y su función es indicar
bajo qué condiciones deben considerarse unas reglas en vez de otras. Un ejemplo
de meta-regla es:
SI hay reglas que usan materias baratas
Y hay reglas que usan materias caras
ENTONCES usar antes las primeras que las segundas
3
La base de datos o base de hechos es una parte de la memoria del ordenador que
se utiliza para almacenar los datos recibidos inicialmente para la resolución de un
problema. Contiene conocimiento sobre el caso concreto en que se trabaja.
También se registrarán en ella las conclusiones intermedias y los datos generados
en el proceso de inferencia. Al memorizar todos los resultados intermedios,
conserva el vestigio de los razonamientos efectuados; por lo tanto, se puede
utilizar explicar las deducciones y el comportamiento del sistema. Junto a cada
regla, se almacena también su porcentaje en forma de probabilidad.
5.2.1.1.
Cinco Pasos en la Construcción de una Base de Conocimientos (BC)
 Defina acerca de que va a hablar. Que su conocimiento del dominio sea
suficiente para poder definir de que objeto y hechos es necesario hablar, y
cuales habrá que ignorar.
 Escoja un vocabulario para predicado, funciones y constantes. Traduzca los
conceptos importantes del nivel de dominio a nombres del nivel de lógica. El
resultado es un vocabulario que se conoce como ontología del dominio. (Es
una teoría particular de la naturaleza del ser o de la existencia )
 Codifique todo el conocimiento en general relativo al dominio. La ontología es
una lista informal de los conceptos de un dominio. Al elaborar oraciones lógicas
o axiomas sobre los términos de la ontología se logran dos metas: Primero, se
precisan los términos con el fin de que los humanos estén de acuerdo de su
correspondiente interpretación; segundo, estamos ofreciendo condiciones que
permitirán la ejecución de procedimientos e inferencia para deducir
automáticamente consecuencias de la base de datos.
 Una vez obtenidos los axiomas, se puede decir que ya se produjo la BC. Habrá
que realizar mucho trabajo de depuración. La principal diferencia entre la
depuración de una BC y la de un programa consiste en que es más fácil revisar
una sola oración lógica y determinar si es correcta. Las aseveraciones tienden
a depender bastante del contexto.
 Codifique una descripción de un caso especifico del problema. Si la ontología
se eligió adecuadamente este paso es muy sencillo, consiste en la obtención
de oraciones atómicas.
 Haga consultas al procedimiento de inferencia y obtenga la respuesta: será el
procedimiento de inferencia el que opere en los axiomas y los hechos
concretos del problema para deducir así los hechos que nos interesa conocer.
5.2.1.2.
Proceso Lógico de Carga de la Base de Conocimiento
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á
4
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.
Además el sistema dispone de la llamada base de hechos, 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.
Lección 22
5.2.2. El motor de inferencia
Para construir un motor de inferencia, existen tres métodos básicos:
encadenamiento hacia adelante, encadenamiento hacia atrás y reglas de
producción.
5.2.2.1.
Método de encadenamiento hacia delante
A este método se le llama conducido por datos, porque el motor de inferencia
utiliza la información que el usuario le proporciona para moverse a través de una
red de operadores AND y operadores OR hasta que encuentra un punto terminal
que es el objeto. Si el motor de inferencia no puede encontrar un objeto que
cumpla con los requisitos, el SE pide más información. Los atributos que definen al
objeto crean un camino que conduce al mismo objeto: la única forma de alcanzar
dicho objeto es satisfacer todas sus reglas. En resumen el sistema de
encadenamiento hacia delante construye un árbol desde las hojas hasta la raíz,
como se puede ver en la figura 2.6.
5
Atributo
Atributo
Atributo
Atributo
Objeto
Figura 2.6 Método de encadenamiento hacia adelante
5.2.2.2.
Método de encadenamiento hacia atrás.
Este método es el contrario al método anterior. Un motor de inferencia de
encadenamiento hacia atrás comienza con una hipótesis (objeto) y pide
información para confirmarlo o negarlo. A este método se le llama conducido por
objetos porque el SE empieza con un objeto e intenta verificarlo. En resumen, el
encadenamiento hacia atrás poda un árbol, lo cual es lo contrario al método
anterior, en el cual se construye un árbol, esto se muestra en la figura 2.7.
Intenta objeto
Atributo cumplido
Atributo no cumplido
Atributo cumplido
Atributo no cumplido
Atributo cumplido
Atributo cumplido
Objeto encontrado
Figura 2.7. Encadenamiento hacia atrás
5.2.2.3.
Método de reglas de producción
Este método es una mejora al método de encadenamiento hacia atrás. La teoría
operativa general es que el sistema pide como información aquella que elimine la
mayor incertidumbre posible. El problema que existe con este método está en su
6
dificultad para llevarse a cabo, primeramente debido a que la base de
conocimiento a menudo es tan grande que el número de combinaciones que el
sistema puede soportar se rebasa fácilmente, por lo tanto, el sistema no puede
determinar exactamente qué información eliminará una mayor incertidumbre. En
segundo lugar, los sistemas de reglas de producción requieren que la base de
conocimientos contenga no sólo la información objeto – atributo, sino además un
valor cuantificador, lo que hace aun más difícil la construcción de la base de
conocimientos.
Lección 23
5.2.3. Construcción del Mecanismo de Inferencia
Un motor de inferencia interpreta y evalúa los hechos en la base de conocimientos
para proveer una respuesta. Este debe ser independiente del conocimiento y de
los hechos. Se caracterizar por:







El lenguaje en que ha sido escrito.
La velocidad de trabajo: Inferencias / segundo.
Las estrategias de búsqueda de soluciones:
o No Ordenada: aleatoria, heurística.
o Ordenada: Encadenamiento hacia adelante (guiado por los datos,
deductivo), encadenamiento hacia atrás (guiado por los objetivos,
inductivo).
La forma en que elige el conocimiento.
La posibilidad de incorporar metaconocimiento.
El tipo de lógica que emplea en el razonamiento:
o Booleana, trivalente, multivalente, difusa.
o Monotónica o no monotónica.
o Atemporal o temporal.
o Lógica de orden 0, orden 0+, orden 1.
El método que utiliza para la evaluación del conocimiento incompleto o
incierto:
o Determinístico.
o Probabilístico.
o Aproximado.
o Difuso.
En un sistema experto, dado un estado particular de la base de datos, se deben
reconocer las reglas aplicables y esto se llama filtrado o identificación de patrones,
operación especialmente larga, ya que muchos sistemas realizan una preselección
de las reglas antes de que comience la identificación propiamente tal. Es decir, se
considera un subconjunto de reglas y entre éstas, las aplicables. Esto, es lo que
se llama restricción.
7
Adicionalmente puede existir una base de datos con información puntual sobre
problemas específicos anteriormente resueltos por el sistema, y que se usa como
información adicional en el proceso de inferencia.
Una vez que las reglas han sido reconocidas deben ser elegidas, dependiendo de
la estrategia de control, que es la selección y una vez estas han sido elegidas
deben de ejecutarse.
5.2.3.1.
Identificación de patrones
Esta operación determina cuáles son las reglas potencialmente aplicables en un
estado dado de la base de datos.
Hay ciertos métodos típicos para resolver problemas mediante Inteligencia
Artificial como: descomposición de problemas, inferencia deductiva, deducción
lógica, etc.
No es necesario que la búsqueda se aplique a todas las reglas, el sistema de
control puede decidir cuáles no son necesarias a ese nivel.
El filtrado significa tener el conocimiento para encontrar las reglas cuya
precondición se satisfaga. Se debe comparar por tanto la precondición con la base
de datos. Si es una regla deductiva "si premisa entonces conclusión", la parte a
ser probada de la regla, se llama disparador o activador (tigger) es siempre una
fórmula bien formada ya sea de lógica proposicional o de lógica de primer orden.
Puede aplicarse a cualquier hecho.
El único lenguaje que está totalmente basado en el cálculo de predicados es el
PROLOG.
Los procesos de identificación de patrones pueden mejorarse examinando, dentro
del activador de cada regla, primero los predicados con más restricciones, es decir,
los que tienen el menor número de variables libres. Otra forma de proceder es que,
para cada regla o parte de su activador, se guarda en la memoria el resultado de
las posibles unificaciones para cada parte del activador. Después de cada ciclo del
motor de inferencia, esta memoria se actualiza y se denomina filtrado por
propagación.
5.2.3.2.
Ejecución de las reglas
Después de la fase de filtrado, cuando una regla está reconocida como aplicable,
teniendo en cuenta la base de datos existente, solo resta ejecutarla. Si hay varias
posibles reglas, la elección la realiza la estrategia de control.
La conclusión de la regla tiene por objeto modificar la base de conocimiento,
creando, modificando o suprimiendo un hecho.
8
Lección 24
5.2.3.3.
La fase de restricción
En un sistema dirigido por los datos, el filtrado consiste en retener todas las reglas
cuyas premisas son verdaderas teniendo en cuenta los hechos (verdaderos)
presentes en la base de datos. Este sistema funciona en encadenamiento hacia
delante.
Si el sistema es a la vez dirigido por los datos y por los objetivos, se denomina
mixto.
La restricción también puede estar especificada explícitamente por el experto para
utilizar reglas dentro de las reglas, es decir, meta reglas. Indica qué grupo de
reglas debe ser retenido, por prioridad, o definir un orden en los subconjuntos de
las reglas.
El conocimiento puede organizarse en forma de red como en las redes semánticas
utilizadas en el análisis sintáctico del lenguaje. Su posición dentro de la red dirige
las restricciones utilizando heurísticas. Esta formulación es particularmente
eficiente si se establece válidamente una organización jerárquica del conocimiento,
en este caso existiría una taxonomía de los hechos.
Otro modo de gobernar las restricciones es organizar las reglas en paquetes o
esquemas, lo que genera una estructura de árbol en reglas, lo que es una ventaja.
Todos estos modos dependen de la forma en que está representado el
conocimiento.
5.2.3.4.
La fase de selección
Como después de las fases anteriores quedan varias reglas se debe seleccionar
una y luego de procesada el programa debe saber dónde volver.
Cuando hay una o más reglas, se usan dos estrategias:
 La búsqueda en anchura, que elige una, generalmente la primera y se van
ejecutando por turno antes de comprobar que se ha alcanzado la condición
final. Si no es así se inicia otro ciclo del motor de inferencia. Este tipo de
búsqueda es exhaustiva y la usa el sistema experto MYCIN.
 Otra estrategia es la de elegir una regla entre las aplicables por medio de una
heurística, procesarla y modificar la base de datos. Si no se alcanza la
condición final, comienza otro ciclo del motor de inferencia. Es por lo tanto, una
estrategia en profundidad.
Cada una de las estrategias pueden ser irrevocables o avanzar por prueba y error.
9
Muchos sistemas efectúan marcha atrás, si no hay regla aplicable, pero si el
sistema está bajo un control irrevocable se detendrá.
Ejemplos
Ejemplo No. 1
Un ejemplo sencillo que ilustra cómo representar conocimiento a través de reglas:
Afirmación:
Todos los catedráticos son doctores.
Representación Lógica - Matemática:
En esta representación la variable x constituye el conjunto de todas las personas
posibles, CATEDRÁTICO representa la relación "SER CATEDRÁTICO" y
DOCTOR la de "SER DOCTOR". De esta manera la regla anterior representa el
hecho: Para toda persona x, Si x es catedrático entonces x es doctor.
Representación en SE:
SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)
En este caso CATEDRÁTICO y DOCTOR representan de nuevo relaciones que
deben estar representadas sobre el sistema.
Ejemplo No. 2
Una Regla es:
Si p y q entonces r
p y q son justo aquellos hechos que se mencionan en la cláusula "si" de la regla,
es decir, las condiciones para la aplicabilidad de la regla. Aplicar la regla es:
deducir de los hechos p y q el hecho r.
En un sistema experto existirá un hecho sólo cuando esté contenido en la base
de conocimientos.
Cuando se aplica una regla sobre algunos hechos cualesquiera se dice que se
dispara. El disparo de una regla provoca la inserción del nuevo hecho en la base
de conocimientos.
Ante problemas o clases de problemas distintos se estructuran, como es lógico,
diferentes mecanismos de inferencia. El mecanismo de inferencia debe de estar
"adaptado" al problema a solucionar. Una imposición de dinero exige, bajo
ciertas circunstancias, una estrategia distinta de procesamiento del conocimiento
que un diagnóstico de fallos de máquina.
10
Lección 25
5.2.4. Ejemplo de Funcionamiento del Motor de Inferencia
Para ilustrar cómo trabajan los procedimientos de inferencia, se supondrá un
sistema que contiene las siguientes reglas en la base de conocimiento:
R1: SI abrigo ENTONCES bingo
R2: SI chaqueta ENTONCES dentista
R3: SI bingo ENTONCES esposa

Enfoque guiado por datos (o encadenamiento hacia adelante):
El problema es determinar si se da esposa sabiendo que se cumplen abrigo y
chaqueta.
Lo primero que se hace es introducir en la base de datos abrigo y chaqueta:
B.D. = {abrigo, chaqueta}
El sistema identifica las reglas aplicables:
R = {R1, R2}
Selecciona R1 y la aplica. Esto genera bingo que se añade a la base de datos:
B.D. = {abrigo, chaqueta, bingo}
Como no se ha solucionado el problema, vuelve a identificar un conjunto de
reglas aplicables (excepto la ya aplicada, que no cambiaría el estado de la base
de datos):
R = {R2, R3}
Selecciona y aplica R2 quedando:
B.D. = {abrigo, chaqueta, bingo, dentista}
El problema todavía no se ha solucionado, luego el sistema selecciona otro
conjunto de reglas aplicables:
R = {R3}
Seleccionando y aplicando R3, la base de datos queda:
B.D. = {abrigo, chaqueta, bingo, dentista, esposa}
Como esposa se encuentra en ella, se ha llegado a la solución del problema.
11

Enfoque guiado por objetivos (o encadenamiento hacia atrás):
Se quiere determinar si se cumple esposa teniendo en la base de datos abrigo y
chaqueta:
B.D. = {abrigo, chaqueta}.
El conjunto de reglas aplicables en este caso será:
R = {R3} (R3 es la única que tiene esposa en su parte derecha).
Se selecciona R3 y se genera bingo. Como no se encuentra en la base de datos
( no es verdadero ni falso) se le considera como subobjetivo.
El sistema intentará ahora probar bingo.
Identifica las reglas aplicables:
R = {R1}.
Aplica R1 y se obtiene abrigo que es verdadero en la base de datos. De esta
forma, se prueba el subobjetivo, y al probar éste, se prueba esposa resolviendo
el problema.
El motor de inferencias, es un programa que, mediante el empleo de los
conocimientos puede resolver el problema que está especificado. Lo resuelve
gracias a los datos que contiene la base de hechos del sistema experto. Por regla
general, el tipo de reglas que forman la base de conocimientos es tal que, si A es
válido, puede deducirse B como conclusión. En este caso, la tarea que lleva a
cabo el motor de inferencias es la de seleccionar, validar y activar algunas reglas
que permiten obtener finalmente la solución correspondiente al problema
planteado.
El sistema experto establecido se compone, por lo tanto, de dos tipos bien
diferenciados de elementos, los propios del campo de los expertos relacionados
con el problema concreto (es decir, la base de conocimientos y la base de hechos)
y el que se puede aplicar de forma general a una gran variedad de problemas de
diversos campos (como el caso del motor de inferencias). Sin embargo, el motor
de inferencias no es un mecanismo universal de deducción, ya que hay dos tipos:
los que emplean el razonamiento aproximativo (para el cual el resultado puede ser
erróneo) y aquellos que emplean un tipo de razonamiento capaz de obtener un
resultado (si llegan a él), con toda seguridad, verdadero.
Los métodos generales desarrollados para la resolución de problemas y técnicas
de búsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser
suficientes para resolver los problemas orientados a las aplicaciones, ni fueron
capaces de satisfacer los difíciles requerimientos de la investigación.
A este conjunto de métodos, procedimientos y técnicas, se lo conoce como
Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo
12
inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del
conocimiento específico acerca del dominio del problema.
La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas
Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la
Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los
sistemas basados en el conocimiento.
13
CAPITULO 6. SISTEMAS EXPERTOS BASADOS EN CONOCIMIENTO
Lección 26
6.1 Definición de sistemas basados en conocimiento
La definición de un sistema basado en conocimiento (SBC) puede ser la siguiente:
Es un sistema computarizado capaz de resolver problemas en el dominio en el
cual posee conocimiento específico.
La solución es esencialmente la misma que hubiera dado un ser humano
confrontado con idéntico problema, aunque no necesariamente el proceso seguido
por ambos puede ser igual.
El simple concepto dado, puede causar confusión ya que muchos sistemas
basados en programas convencionales podrían ser incorrectamente categorizados
como sistemas basados en conocimiento. Esta inconsistencia puede ser aclarada,
sobre la base de tres conceptos fundamentales que distinguen a los sistemas
basados en conocimiento de los programas algorítmicos convencionales y de los
programas generales basados en búsqueda.
Inteligencia Artificial débil.
 Primero, la separación del conocimiento y el modo en que es usado.
 Segundo, la naturaleza del conocimiento empleado (heurística antes que
algorítmica).
 Tercero, El uso de conocimiento específico de un determinado dominio.
6.2 Características principales de sistemas basados en conocimiento
Las características mas sobresalientes de este tipo de sistemas son:







Amplia difusión del conocimiento
Fácil modificación
Respuestas coherentes
Disponibilidad casi completa
Conservación del conocimiento
Capacidad de resolver problemas disponiendo de información incompleta
Capacidad de explicar los resultados y la forma de obtenerlos
6.3 Principales Problemas
Los principales problemas asociados a este método son:
 Las soluciones no siempre son las mejores o correctas.
 Conocimiento limitado frente al dominio de un experto.
 Carecen del sentido común o criterio que puede tener un experto.
1
 Difícil extraer todo el conocimiento que maneja un experto.
Experiencia, Habilidades y Conocimiento.
Los tipos de experiencia que son de interés en los sistemas basados en
conocimiento, pueden ser clasificados en tres categorías: asociativa, motora y
teórica.
Los sistemas basados en conocimiento son excelentes para representar
conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurística o
el conocimiento que es adquirido mayoritariamente, a través de la observación.
Puede ser que no se comprenda exactamente lo que ocurre al interior de un
sistema (caja negra), pero se pueden asociar entradas o estímulos con salidas o
respuestas, para resolver problemas que han sido previamente conocidos.
La experiencia motora es más física que cognitiva. La habilidad se adquiere
fundamentalmente a través del ejercicio y la práctica física constante. Los
sistemas basados en conocimiento no pueden emular fácilmente este tipo de
experiencia, principalmente por la limitada capacidad de la tecnología robótica.
La experiencia teórica y el conocimiento profundo permite que los humanos
puedan resolver problemas que no se han visto antes, es decir, no existe una
posibilidad asociativa. El conocimiento teórico y profundo se adquiere a través de
estudio y entrenamiento formal, así como por medio de la resolución directa de
problemas.
Debido a su naturaleza teórica, este conocimiento se puede olvidar fácilmente, a
no ser que se use en forma continua. Al momento, los sistemas convencionales
basados en conocimiento tienen muchas dificultades para duplicar este tipo de
experiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelos
representan un notable intento de encapsular este conocimiento profundo y
razonar con él.
Lección 27
6.4 Estructura de los sistemas basados en conocimiento
La arquitectura de un sistema basado en conocimiento de alguna manera refleja la
estructura cognitiva y los procesos humanos. La primera parte es la memoria de
largo plazo, en la que guarda los hechos (Base de Hechos) y los conocimientos
(Base de Conocimientos) acerca del dominio en el que tiene experiencia.
2
Figura 2.8. Sistema Basado en conocimiento
La segunda parte es el sistema que realiza la función de razonamiento para
resolver problemas (Motor de Inferencia). Finalmente, la tercera parte la
conforman las unidades de entrada y salida que permiten la comunicación entre el
sistema y su entorno.
La representación del conocimiento determina el desarrollo de un sistema experto
e influye en las estrategias de control. Es muy versátil, hay muchas formas de
hacerlo y es complicada la elección. Generalmente la elección está basada en la
intuición o en las especiales circunstancias del problema.
La adquisición del conocimiento desde un experto depende de la cantidad y de su
adecuada representación. Se deben conocer los límites, pues sólo llegan hasta
donde son capaces de resolver un problema. Esto implica, que tiene que
circunscribirse a un dominio homogéneo.
El lenguaje de programación debe ser adecuado, se usan principalmente el LISP y
PROLOG, que difieren de los lenguajes clásicos en que sus reglas (que también
contienen hechos) entran masivamente, y que el programa, es decir, el motor de
inferencia, encontrará el camino a través de reglas.
Por otra parte, la programación es importante en esta etapa de desarrollo y para
ello existen dos modos que son teóricamente iguales, pero en la práctica difieren:
La programación declarativa es un tipo de programación implantada en los
sistemas expertos y por ciertos lenguajes. La principal diferencia es que en la
3
declarativa las reglas se formulan independientemente de su secuencia de
aplicación. El modo en que se ejecutan las reglas corresponde al motor de
inferencia y es independiente de las reglas en sí mismas. En la programación
procedural o procedimental, las reglas se implantan y ejecutan en un orden
establecido consiste en una cuidadosa descripción de los algoritmos que marcan
el camino de los diferentes procedimientos y funciones en los programas.
Las ventajas en los sistemas expertos es la modularidad, no hay un solo camino
para responder a un problema y son fáciles de leer, lo que simplifica comprobar su
consistencia.
Lección 28
6.4.1. Fases en la adquisición del conocimiento




Identificación del problema.
Estructuración del conocimiento.
La arquitectura del sistema y la maqueta.
El prototipo y terminación del sistema.
6.4.2. Tecnología de los Sistemas Basados en Conocimiento
Desde el punto de vista tecnológico, los sistemas basados en conocimiento
pueden presentar varias formas de aplicación:
 Aislada: un Sistema Basado en Conocimiento único se relaciona con el
entorno.
 Integrada: varios Sistemas Basados en Conocimiento conectados a bases de
conocimiento comunes. Tipo Front-End cuando todos los hechos y datos están
físicamente en la base común. Tipo Back-End cuando los hechos y datos
necesarios que no estén en las bases comunes, pueden obtenerse de otros
SBC.
 Embebida: un Sistema Basado en Conocimiento está integrado con otros
sistemas y no se lo distingue.
Lección 29
6.5 Metodologías para la construcción de SE
6.5.1. Metodología de Prototipos
En el desarrollo de sistemas expertos se nos plantean dos importantes riesgos:
4


No existen implementaciones similares que puedan servir de orientación al
encargado del desarrollo en casi la totalidad de los casos.
En muchos puntos, los requisitos necesarios están esbozados con muy
poca precisión.
El diseño y la especificación requieren una temprana determinación de la interfaz
del software y de la funcionalidad de los componentes. Durante el desarrollo,
resulta apropiado empezar con implementaciones tipo test para encontrar el
camino hacia una solución definitiva y para hacerlas coincidir con las necesidades
del usuario.
Un método efectivo es la implementación de un prototipo de sistema experto que
permita llevar a cabo las funciones más importantes de éste, aunque con un
esfuerzo de desarrollo considerablemente inferior al de una implementación
convencional. Este proceder se define bajo el nombre de ‘Rapid Prototyping’. Para
sistemas expertos, el ‘Rapid Prototyping’ es el procedimiento más adecuado, pues
posibilita una rápida reacción a los deseos en constante cambio tanto por parte de
los expertos como parte del usuario.
6.5.2. Metodología Orientada a Objetos
La programación orientada a objetos (POO en adelante) es un tipo de
programación que provee una manera de modularizar programas estableciendo
áreas de memoria particionadas para datos y procedimientos, que pueden ser
usadas como plantillas para crear copias de tales módulos conforme se requieran.
Cada área de memoria a la que se refiere en el párrafo anterior es conocida como
clase, mientras que las copias creadas a partir de la clase son llamadas objetos.
La POO tiene varias propiedades, entre los cuales destacan:




Abstracción. Permite enfocarse en la solución general del problema, sin
preocuparse de los detalles.
Encapsulación. Es el concepto de que un objeto debería tener separada
su interfaz de su implementación. Es decir, un objeto es visto como una
“caja negra”.
Polimorfismo. Significa que un objeto se puede comportar de diversas
maneras, dependiendo del contexto en el que se encuentre.
Herencia. Significa que se pueden crear clases que “hereden” el
comportamiento de una o más clases padre; y que además añadan su
propio comportamiento.
El concepto de encapsulación evita que se pueda modificar el estado interno de un
objeto por el código cliente que lo utiliza, es decir solamente el código mismo del
objeto puede modificar el estado interno del mismo. Esto se puede aprovechar en
5
la construcción de SE creando clases que correspondan a los componentes de un
SE.
Por lo tanto si se utiliza la metodología orientada a objetos a la construcción de SE,
se debe crear una clase que contenga el código referente a la base de
conocimiento. Si dicha base de conocimiento es un conjunto de objetos con sus
propiedades, entonces dicha clase será una clase contenedor de objetos de otra
clase, los cuales contendrán el nombre del objeto y una lista de atributos.
Objeto
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Atributo
Atributo
Atributo
Figura 2.9. La base de conocimientos es vista como un objeto contenedor de otros objetos usando
la Metodología Orientada a Objetos
Obviamente, la clase Base de Conocimiento deberá tener todo el código necesario
para leer los objetos, quizá de una base de datos, quizá de un archivo, guardar
los objetos, ingresar nuevos objetos o atributos, eliminar objetos o atributos, etc.
De manera similar, el motor de inferencia se implementa como una clase, la cual
contiene encapsulada toda la lógica que hace que funcione el SE, es decir si se
implementa usando encadenamiento hacia adelante, encadenamiento hacia atrás
o reglas de producción, dicha implementación estará contenida dentro de la clase.
Esta metodología tiene diversas ventajas, entre las cuales destaca el hecho que
cualquier modificación o mantenimiento que se le quiera realizar a un determinado
componente no afectará al otro y viceversa. Tello propone crear especializaciones
o jerarquías de clases (usando herencia) que incluyan métodos que permitan a los
objetos modificarse a sí mismos, logrando con esto que un SE aprenda por sí
mismo, modificando su base de conocimiento sin modificar los demás
componentes. Otra ventaja de la POO es que mediante la herencia, las clases
hijas heredarán el comportamiento de las clases padres, evitando con esto, tener
que incluir código redundante en las especializaciones.
6
Lección 30
6.6 Ejemplo de Construcción de Un SE, Problema de Monitorización32
6.6.1. Árboles de decisión
Paradigma útil para resolver problemas de clasificación ofrecen la solución a un
problema a partir de un conjunto de respuestas predeterminadas:
 Adecuado para clasificación, diagnóstico
 No adecuado para planificación, o diseño
 Reducen el conjunto de posibles soluciones mediante una serie de
decisiones o cuestiones que podan el espacio de búsqueda33
No
Es una serpiente
Nodo respuesta
Nodo respuesta
¿Es un animal de
sangre caliente?
Nodo decisión
Es un perro
No
Si
¿El animal
ronronea?
Nodo decisión
Es un gato
Si
Nodo respuesta
Figura 2.10. Representación de dispositivos para el problema en la planta de procesamiento
6.6.2. Árboles de decisión que aprenden
Algoritmo Resuelve-Árbol-y-Aprende
Establece como nodo actual en el árbol el nodo raíz;
MientrasQue el nodo actual es de decisión hacer
Preguntar la pregunta del nodo actual;
Si la respuesta es si
entonces Establece como actual el nodo de la rama si
sino Establece como actual el nodo de la rama no
fsi;
fmq;
Preguntar si la respuesta en el nodo actual es correcta;
Si la respuesta es correcta
entonces Determina respuesta correcta
sino Pide la respuesta correcta;
Pide qué pregunta cuando se responda “si” distinguirá la respuesta del nodo
actual de la repuesta correcta; Reemplaza el nodo respuesta por un nodo
decisión que tiene como rama no el nodo respuesta actual y como rama si
32
J.A. Bañares Bañares. 1999. Resolución de Problemas en LBR. Departamento de Informática e Ingeniería
de Sistemas C.P.S. Universidad de Zaragoza
33
Ibd 73
7
la respuesta correcta. La pregunta del nodo de decisión es la que distingue
los dos nodos respuesta.
fsi;
Fin.
Nodo de árbol de decisión
(deftemplate nodo
(slot nombre)
(slot tipo)
(slot pregunta)
(slot nodo-si)
(slot nodo-no)
(slot respuesta))
Árbol inicial
(nodo (nombre raíz) (tipo decisión)
(pregunta "Es un animal de sangre caliente?")
(nodo-si nodo1) (nodo-no nodo2))
(nodo (nombre nodo1) (tipo decisión)
(pregunta "El animal ronronea?")
(nodo-si nodo3) (nodo-no nodo4))
(nodo (nombre nodo2) (tipo respuesta)
(respuesta serpiente))
(nodo (nombre nodo3) (tipo respuesta) (respuesta gato))
(nodo (nombre nodo4) (tipo respuesta) (respuesta perro))
Regla para inicializar árbol
(defrule inicializa
(not (nodo (nombre raiz)))
=>
(load-facts "ANIMAL.DAT")
(assert (nodo-actual raiz)))
Reglas que preguntan cuestión asociada a nodo decisión
(defrule pide-decision-nodo-pregunta
?nodo <- (nodo-actual ?nombre)
(nodo (nombre ?nombre)
(tipo decision)
(pregunta ?pregunta))
(not (respuesta ?))
=>
(printout t ?pregunta " (si o no) ")
(assert (respuesta (read))))
(defrule respuesta-incorrecta
?respuesta <- (respuesta ~si&~no)
=>
8
(retract ?respuesta))
6.6.3. Definición del problema
Una planta de procesamiento contiene varios dispositivos que deben ser
monitorizados. Cada dispositivo tiene uno o más sensores que ofrecen
valores numéricos que indican la salud del dispositivo
El programa de monitorización debe
1. Leer los valores de los sensores
2. Evaluar las lecturas,
3. Emitir alarmas o parar dispositivos
Acciones para realizar el monitor
Tabla 6.1 Acciones que debe realizar el monitor
Valor del Sensor
valor <= línea roja baja
línea roja baja < valor <= línea guarda baja
línea guarda baja > valor < línea guarda alta
línea guarda alta >= valor < línea roja alta
valor >= línea guarda alta
Acción
PARADA dispositivo
Da ALARMA o PARADA
dispositivo
Ninguna
Da ALARMA o PARADA
dispositivo
PARADA dispositivo
6.6.4. Proceso del desarrollo del programa
Proceso iterativo
Se parte de la descripción general del problema y se van incorporando detalles
específicos.
Técnica
Gracias a las técnicas de desarrollo iterativas que soportan los SE’s, es posible
construir prototipos a partir de problemas con especificaciones pobres.
• Se realiza un prototipo
• Se apuntan los detalles que faltan en la especificación
• Se consulta con el experto los detalles y se elabora otro prototipo
Detalles necesarios para empezar
• Decisiones sobre la implementación:
• Reglas generales que permitan incorporar nuevos dispositivos y
sensores fácilmente, en lugar de reglas específicas.
• Detalles sobre el flujo de control
• 3 Fases por ciclo: Lectura sensores, Análisis valores, acciones
• Lectura sensores:
• Posibilidades:
9
-¿Lectura directa del sensor?
- ¿Simulación de los valores de los sensores?
- ¿El valor está disponible cuando se requiere?
- ¿Puede dar una lectura incorrecta el sensor?
Durante el desarrollo se debe mantener
• Una lista de asunciones
• Lista de preguntas
• Posibles inconsistencias relacionadas con la especificación
• Lista inicial de asunciones del problema de monitorización
• Los datos de los sensores siempre están disponibles y son fiables
• Los valores de los sensores se podrán leer directamente de éstos.
Se debería soportar el uso de valores de sensores simulados.
• Los valores de sensores de dispositivos parados no se monitorizarán.
• El programa de monitorización realiza las acciones especificadas:
ALARMA o PARADA de dispositivos.
El problema de divide en tres fases
- Lectura de los valores de los sensores
- Análisis de los valores
- Acciones
• También se debe mantener una lista de detalles sobre decisiones de
implementación
• Como representar la información, el control y la depuración del
programa
Implementación y Representación
Sensor S1
Sensor S2
Dispositivo D1
Sensor S3
Dispositivo D2
Sensor S4
Sensor S5
Dispositivo D3
Sensor S6
Dispositivo D4
Figura 2.11. Representación de dispositivos para el problema en la planta de procesamiento34
34
J.A. Bañares Bañares. 1999. Resolución de Problemas en LBR. Departamento de Informática e Ingeniería
de Sistemas C.P.S. Universidad de Zaragoza
10
6.7 ACTIVIDADES COMPLEMENTARIAS
1. Explique las funciones que realiza cada uno de los miembros del equipo de
desarrollo de un sistema experto.
2. ¿A quien se le considera un experto? Y ¿porque?
3. Cual es la función del usuario en el desarrollo de un sistema experto
4. ¿Que es una regla y para que son usadas en la base de conocimientos?
5. ¿Qué es una base de conocimientos y que es un motor de inferencia?
¿Cuál es la diferencia entre ellos?
6. Realice un cuadro comparativo entre los métodos básicos para construir un
motor de inferencia.
7. ¿Que es el metaconocimento?
8. ¿Qué es la modularidad? Y ¿porque es una ventajas de los sistemas
expertos?
9. Realice un cuadro comparativo entre las metodologías para la construcción
de SE.
10. Realice un mapa conceptual que resuma la unidad.
11
UNIDAD 3. APRENDIZAJE DE LOS SISTEMAS EXPERTOS
CAPITULO 7. TIPOS DE SISTEMAS EXPERTOS
Lección 31
7.1 Sistemas Basados en Reglas
En nuestra vida diaria encontramos muchas situaciones complejas gobernadas
por reglas deterministas: sistemas de control de tráfico, sistemas de seguridad,
transacciones bancarias, etc. Los sistemas basados en reglas son una
herramienta eficiente para tratar estos problemas. Las reglas deterministas
constituyen la más sencilla de las metodologías utilizadas en sistemas expertos.
La base de conocimiento contiene el conjunto de reglas que definen el problema, y
el motor de inferencia saca las conclusiones aplicando la lógica clásica a estas
reglas.
Los sistemas basados en reglas son los más utilizados por su simplicidad y
similitud con el razonamiento humano, han contribuido para su popularidad en
diferentes dominios. Las reglas representan de forma correcta conocimiento.
Los Sistemas Basados en Reglas son una herramienta eficiente para tratar
muchas situaciones complejas gobernadas por reglas deterministas, sistemas de
control de tráfico, sistemas de seguridad, transacciones bancarias, etc. La base de
conocimiento contiene el conjunto de reglas que definen el problema y el motor de
inferencia saca las conclusiones aplicando la lógica clásica a estas reglas.35
Las reglas representan el conocimiento utilizando un formato
SI-ENTONCES (IF-THEN), es decir tienen 2 partes:
La parte SI (IF), es el antecedente, premisa, condición o situación.
La parte ENTONCES (THEN), es el consecuente, conclusión, acción o
respuesta.
Las reglas pueden ser utilizadas para expresar un amplio rango de asociaciones,
una declaración de que algo es verdadero o es un hecho conocido, es una
afirmación. El conjunto de afirmaciones se conoce frecuentemente con el nombre
de base de afirmaciones. De igual forma, al conjunto de reglas se lo denomina
base de reglas.
Un sistema basado en reglas utiliza el modus ponens para manipular las
afirmaciones y las reglas durante el proceso de inferencia. Mediante técnicas de
búsqueda y procesos de unificación, los sistemas basados en reglas automatizan
sus métodos de razonamiento y proporcionan una progresión lógica desde los
35
El Concepto es tomado del documento: Inteligencia Artificial. 2003. Arrua Luciana. Meza Fernández
Eduardo.
1
datos iniciales, hasta las conclusiones deseadas. Esta progresión hace que se
vayan conociendo nuevos hechos o descubriendo nuevas afirmaciones, a medida
que va guiando hacia la solución del problema.
En consecuencia, el proceso de solución de un problema en los sistemas basados
en reglas va realizando una serie de inferencias que crean un sendero entre la
definición del problema y su solución, es por estas razones que utilizaremos el
conocimiento basado en reglas para nuestro objeto bajo estudio. Las inferencias
están concatenadas y se las realiza en forma progresiva, por lo que se dice que el
proceso de solución origina una cadena de inferencias.36
Una regla es una afirmación lógica que relaciona dos o más objetos e incluye dos
partes, la premisa y la conclusión. Cada una de estas partes consiste en una
expresión lógica con una o mas afirmaciones objeto-valor conectadas mediante
los operadores lógicos y, o, o no.37
En un sistema basado en reglas la representación del conocimiento formaliza y
ordena el conocimiento. Una representación ampliamente usada es la regla de
producción, o simplemente regla. Una regla consiste en: una parte SI, y otra parte
ENTONCES (también llamada como una condición y una acción). Las listas de
partes SI son un conjunto de condiciones en una cierta combinación lógica. La
porción del conocimiento representado por la regla es relevante a la línea del
razonamiento que es convertido si la parte SI de la regla está satisfecha; por lo
tanto, la parte ENTONCES puede ser concluida, o su acción de solucionar el
problema, ser tomada. 38
En los sistemas basados en reglas intervienen dos elementos importantes:
Los datos: Están formado por la evidencia o los hechos conocidos en una
situación particular. Este elemento es dinámico, es decir, puede cambiar de una
aplicación a otra, por lo tanto no es de naturaleza permanente y se almacena en la
memoria de trabajo. En situaciones deterministas, las relaciones entre un conjunto
de objetos pueden ser representadas mediante un conjunto de reglas.
El conocimiento: Se almacena en la base de conocimiento y consiste en un
conjunto de objetos y un conjunto de reglas que gobierna las relaciones entre esos
objetos. La información almacenada en la base de conocimiento es permanente y
estática, es decir, no cambia de una aplicación a otra, a menos que se incorporen
al sistema experto elementos de aprendizaje.
Las reglas componen la base de conocimiento y las mismas pueden relacionarse
dando lugar a nuevos hechos y contienen los siguientes procesos.
36
Sistemas Expertos y Modelos de Redes Probabilísticas. Enrique Castillo, José Manuel Gutiérrez, y Ah S.
Hadi.
37
Castillo, Enrique. Gutiérrez, José Manuel Sistemas Expertos y Modelos de Redes Probabilísticas
38
Pignani Juan Manuel. (2000). Informática aplicada a la Ingeniería de Procesos 1. Universidad Tecnológica
Nacional, Facultad Regional Rosario. España.
2
a. El proceso lógico de carga: En esta fase se determinan las reglas y se
incorporan a la base de conocimientos.
Figura 3.1 Proceso lógico de carga de la Base de conocimiento.39
Si no existe al menos una regla que contenga ese hecho debemos determinarla ya
que de no ser así, ese hecho estaría de más en la base de hechos.
b. El proceso de inferencia Durante la inferencia puedo verificar o deducir
hechos. En la verificación de un hecho el proceso está dirigido por los
objetivos mientras que en la deducción está dirigido por los datos.
Figura 3.2. Proceso de inferencia de carga de la base de hechos40
39
Fuente: Dennis, Alonso.(2001) Sistemas Expertos. Documento en línea
URL(http://es.geocities.com/denisalonso2001/SISTEMAS_EXPERTOS.htm)
3
Por medio de cascadas de órdenes, se explica estos dos procesos.
VERIFICACIÓN DE UN HECHO
Una vez tomado un hecho, se produce el encadenamiento hacia atrás. Es decir,
se parte de la premisa para llegar a los datos.
DEDUCCIÓN DE UN HECHO
En este proceso, primero se requieren los datos para analizar la premisa. O sea,
partimos del:
IF < condición >
Para tomar luego la decisión de continuar o no con él:
THEN < conclusión >
La conclusión de una regla puede constituirse en condición de la premisa
necesaria para otra regla y seguir así sucesivamente. Hasta llegar al resultado
final de la inferencia.41
El siguiente ejemplo corresponde a un sistema experto basado en reglas IF-THEN,
que describen como es que cada posibilidad podría ser seleccionada. La regla
rompe el problema en sub-problemas. Por ejemplo, las siguientes reglas formarían
parte de un SE para identificar aves: 42
IF Familia es albatros AND Color es blanco
THEN Ave es albatros laysan.
IF Familia es albatros AND Color es negro
THEN Ave es albatros de pies negros.
El sistema puede usar otras reglas para resolver las sub-metas planteadas por las
reglas de alto nivel, por ejemplo:
IF Orden es tubonasales AND Tamaño es grande AND Alas es grandes anguladas
THEN Familia es albatros.
40
Fuente: Dennis, Alonso.(2001) Sistemas Expertos. Documento en línea
http://es.geocities.com/denisalonso2001/SISTEMAS_EXPERTOS.htm
41
BENCHIMOL, G y otros (1990) Los Sistemas Expertos en la Empresa. Ed. Macrobit, México
42
Guerra Hernández,
Alejandro. Metodología de Programación I Sistemas Expertos.
Departamento de Inteligencia Artificial. Universidad Veracruzana. México. 2006.
4
7.1.1. Base del conocimiento
Los datos están formados por la evidencia o los hechos conocidos en una
situación particular. Este elemento es dinámico, es decir, puede cambiar de una
aplicación a otra. Por esta razón, no es de naturaleza permanente y se almacena
en la memoria de trabajo. En situaciones deterministas, las relaciones entre un
conjunto de objetos pueden ser representadas mediante un conjunto de reglas. El
conocimiento se almacena en la base de conocimiento y consiste en un conjunto
de objetos y un conjunto de reglas que gobiernan las relaciones entre esos objetos.
La información almacenada en la base de conocimiento es de naturaleza
permanente y estática, es decir, no cambia de una aplicación a otra, a menos que
se incorporen al sistema experto elementos de aprendizaje. Para dar una idea
intuitiva de lo que es una regla, supóngase que se tiene un conjunto de objetos y,
por simplicidad, que cada objeto puede tener uno y sólo uno de un conjunto de
posibles valores. Ejemplos de objetos con sus posibles valores se dan en la Tabla
7.1
Tabla 7.1 Un ejemplo de objetos con sus posibles valores
Objeto
Conjunto de Valores Posibles
Nota
{0,1,...,10}
Calificación
{sobresaliente, notable, aprobado, suspenso}
Puesto
{0,1,...,100}
Admitir
{si, pendiente, no}
Notificar
{sí, no}
Ejemplos de reglas:
Regla 1: Si nota > 9, entonces calificación = sobresaliente.
Regla 2: Si puesto < 20 o nota > 7, entonces Admitir = si y Notificar =si.
Cada una de las reglas anteriores relaciona dos o más objetos y está formada por
las partes siguientes:
 La premisa de la regla, que es la expresión lógica entre las palabras clave si
y entonces. La premisa puede contener una o más afirmaciones
 objeto-valor conectadas con operadores lógicos y, o, o no. Por ejemplo, la
premisa de la Regla 1 consta de una única afirmación objeto-valor, mientras
que las premisas de la Regla 2 constan de dos afirmaciones objeto-valor
conectadas por un operador lógico.
 La conclusión de la regla, que es la expresión lógica tras la palabra clave
entonces.
Como ejemplo de problema determinista que puede ser formulado usando un
conjunto de reglas, considérese una situación en la que un usuario (por ejemplo,
5
un cliente) desea sacar dinero de su cuenta corriente mediante un cajero
automático (CA). En cuanto el usuario introduce la tarjeta en el CA, la máquina la
lee y la verifica. Si la tarjeta no es verificada con éxito (por ejemplo, porque no es
legible), el CA devuelve la tarjeta al usuario con el mensaje de error
correspondiente. En otro caso, el CA pide al usuario su número de identificación
personal (NIP). Si el número fuese incorrecto, se dan tres oportunidades de
corregirlo. Si el NIP es correcto, el CA pregunta al usuario cuánto dinero desea
sacar. Para que el pago se autorice, la cantidad solicitada no debe exceder de una
cierta cantidad límite diaria, además de haber suficiente dinero en su cuenta.
Tabla 7.2 Objetos y posibles valores para el ejemplo del cajero automático
Objeto
Conjunto de Valores Posibles
Tarjeta
{Verificada, no verificada}
Fecha
{Expirada, no expirada}
Clave
{Correcta, incorrecta}
Intentos
{Excedidos, no excedidos}
Fondos
{Suficiente, insuficiente}
Limite
{Excedido, no excedido}
Pago
{Autorizado, no autorizado}
La tabla anterior muestra siete reglas que gobiernan la estrategia que el CA debe
seguir cuando un usuario intenta sacar dinero de su cuenta. En la Regla 1, por
ejemplo, la premisa consiste en seis afirmaciones objeto-valor conectadas
mediante el operador lógico y, lo que indica que la premisa, es cierta si las seis
afirmaciones lo son. Por ello, la Regla 1 relaciona el objeto Pago (en la conclusión)
con los demás objetos. Según la Regla 1, la acción que debe iniciar el CA es dar
el dinero al usuario si la tarjeta se ha verificado correctamente, la fecha no ha
expirado, la clave es correcta, el número de intentos para dar la clave correcto no
se ha excedido y la cantidad solicitada no excede ni la cantidad disponible ni el
limite máximo diario.
Si (Tarjeta = verificada Y Fecha = no expirada Y Clave = correcta Y Intentos = no
se excedido Y Fondos = suficiente Y Limite = no excedido) Entonces Pago =
Autorizado.
La Tabla 7.3 muestras ejemplos de sustitución de reglas. Nótese que cada regla
de la primera columna puede ser sustituida por el correspondiente conjunto de
reglas de la segunda columna y que todas las reglas de ésta satisfacen las
condiciones anteriores. Por ejemplo, la primera regla compuesta es:



Regla 1: Si A o B, entonces C, puede ser reemplazada por las dos reglas
simples.
Regla 1a: Si A, entonces C.
Regla 1b: Si B, entonces C.
6
Como ejemplo adicional, muestra que
• Regla 2: Si A o B, entonces C, puede ser reemplazada por la regla
• Regla 2: Si A y B , entonces C, donde A significa no A.
Tabla 7.3 Una tabla de verdad mostrando que las expresiones lógicas AoB y A y
B son equivalentes. Los símbolos C y F se utilizan para cierto y falso,
respectivamente.
A B A
B AoB A y B
C
C
F
F
C
F
C
F
F
F
C
C
F
C
F
C
F
F
F
C
F
F
F
C
Tabla 7.4 Ejemplos de sustitución de reglas: Las reglas en la primera columna
Regla
Reglas Equivalentes
Si A o B, entonces C
Si A, entonces C
Si B, entonces C
Si AoB , entonces C
Si A y B , entonces C
Si AyB , entonces C
Si A , entonces C
Si B, entonces C
Si A y C, entonces D
Si B y C, entonces D
Si (A o B) y C, entonces D
Si AoB y C, entonces D
Si A y B y C, entonces D
Si AyB y C, entonces D
Si A y C, entonces D
Si B y C, entonces D
Si A, entonces B y C
Si A, entonces B
Si A, entonces C
Si A, entonces B o C
Si A y B , entonces C
Si A y C , entonces B
Si A, entonces ByC
Si A y B, entonces C
Si A y C, entonces B
Si A, entonces BoC
Si A, entonces B
Si A, entonces C
Son equivalentes a las reglas de la segunda columna. Nótese que en los seis
primeros ejemplos las sustituciones se aplican a la premisa y en los cuatro últimos,
a la conclusión.
7
7.1.2. Motor de inferencia
El motor de inferencia en un sistema experto, se encarga de realizar las
inferencias en la base del conocimiento de acuerdo con los parámetros definidos
en la heurística del sistema y que permitirá inferir la solución de un problema o
llevar a cabo la toma de decisiones la cual podría ser diagnosticar una posible
enfermedad a partir de la relación síntoma – enfermedad.
Existen dos tipos de elementos: los datos (hechos o evidencia) y el conocimiento
(el conjunto de reglas almacenado en la base de conocimiento). El motor de
inferencia usa ambos para obtener nuevas conclusiones o hechos. Por ejemplo, si
la premisa de una regla es cierta, entonces la conclusión de la regla debe ser
también cierta. Los datos iniciales se incrementan incorporando las nuevas
conclusiones. Por ello, tanto los hechos iniciales o datos de partida como las
conclusiones derivadas de ellos forman parte de los hechos o datos de que se
dispone en un instante dado. Las conclusiones pueden clasificarse en dos tipos:
simples y compuestas.
Las conclusiones simples son las que resultan de una regla simple. Las
conclusiones compuestas son las que resultan de más de una regla. Para obtener
conclusiones, los expertos utilizan diferentes tipos de reglas y estrategias de
inferencia y control (Castillo y Álvarez (1991), Durkin (1994), Shapiro (1987),
Waterman (1985)).
Estrategias de control
• Modus Ponens,
• Modus Tollens,
• Resolución.
Estrategias de inferencia
• Encadenamiento de reglas,
• Encadenamiento de reglas orientado a un objetivo,
• Compilación de reglas, que son utilizadas por el motor de inferencia para obtener
conclusiones simples y compuestas.
Las dos primeras reglas de inferencia se usan para obtener conclusiones simples
y el resto de reglas y estrategias para obtener conclusiones compuestas.
Sin embargo, ninguna de las estrategias anteriores, implementadas por si solas,
conducen a todas las conclusiones posibles. Por ello, se debe implementar varias
reglas y estrategias en el sistema experto para que el motor de inferencia sea
capaz de obtener tantas conclusiones como sea posible.
8
7.1.2.1.
Modus Ponens y Modus Tollens
El Modus Ponens es quizás la regla de inferencia mas comúnmente utilizada. Se
utiliza para obtener conclusiones simples. En ella, se examina la premisa de la
regla, y si es cierta, la conclusión pasa 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.” Entonces, tal como muestra la Figura 3.3,
la regla Modus Ponens concluye que “B es cierto.” Esta regla de inferencia, que
parece trivial, debido a su familiaridad, es la base de un gran número de sistemas
expertos. 43
Modus Ponens
Regla
Si
A es cierto
Entonces
B es cierto
B es Cierto
Hecho:
A es Cierto
Figura: 3.3. Regla de inferencia de Modus Ponens
En forma más sencilla y matemática
A
A
B
B
y B
C
Entonces
A
C
La regla de inferencia 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 se tiene la regla,
“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,
tal como se muestra en la Figura 7.4, la regla Modus Tollens concluye que “A es
falso.” Aunque muy simple y con muchas aplicaciones útiles, la regla Modus
Tollens es menos utilizada que la Modus Ponens.
Por ello, la regla Modus Ponens se mueve hacia adelante, es decir, de la premisa
a la conclusión de una regla, mientras que la regla Modus Tollens se mueve hacia
atrás, es decir, de la conclusión a la premisa. Las dos reglas de inferencia no
deben ser vistas como alternativas sino como complementarias. La regla Modus
Ponens necesita información de los objetos de la premisa para concluir, mientras
que la regla Modus Tollens necesita información sobre los objetos de la conclusión.
43
Documento en linea: www.webelectronica.com.ar. Creación de una base del conocimiento determinística.
Consultado en Octubre 13 de 2008.
9
Modus Tollens
Regla
Si
A es cierto
Entonces
B es cierto
A es Falso
Hecho:
B es Falso
Figura 3.4. Regla de inferencia de Modus Tollens
Un motor de inferencia que solamente utiliza Modus Ponens, la incorporación de la
regla de inferencia Modus Tollens puede ser considerada como una expansión de
la base de conocimiento mediante la adición de reglas, tal como ilustra el ejemplo
que sigue.
7.1.2.2.
Encadenamiento de Reglas
Esta estrategia puede utilizarse cuando las premisas de ciertas reglas coinciden
con las conclusiones de otras. Cuando se encadenan las reglas, los hechos
pueden utilizarse para dar lugar a nuevos hechos. Esto se repite sucesivamente
hasta que no pueden obtenerse más conclusiones. El tiempo que consume este
proceso hasta su terminación depende, por una parte, de los hechos conocidos, y,
por otra, de las reglas que se activan.
Este algoritmo puede ser implementado de muchas formas. Una de ellas
comienza con las reglas cuyas premisas tienen valores conocidos. Estas reglas
deben concluir y sus conclusiones dan lugar a nuevos hechos. Estos nuevos
hechos se añaden al conjunto de hechos conocidos, y el proceso continúa hasta
que no pueden obtenerse nuevos hechos.
La Figura 3.5 muestra un ejemplo de seis reglas que relacionan 13 objetos, del A
al M. Las relaciones entre estos objetos implicadas por las seis reglas pueden
representarse gráficamente, tal como se muestra en la Figura 3.6, donde cada
objeto se representa por un nodo. Las aristas representan la conexión entre los
objetos de la premisa de la regla y el objeto de su conclusión. Nótese que las
premisas de algunas reglas coinciden con las conclusiones de otras reglas. Por
ejemplo, las conclusiones de las Reglas 1 y 2 (objetos C y G) son las premisas de
la Regla 4.
10
Figura 3.5 Un ejemplo de un conjunto de seis reglas relacionando 13 objetos.
Supóngase que se dan los hechos H = cierto, I = cierto, K = cierto y M = falso.
Supóngase, en primer lugar, que el motor de inferencia usa las dos reglas de
inferencia Modus Ponens y Modus Tollens. En este caso, se obtiene
1. La Regla 3 concluye que J = cierto (Modus Ponens).
2. La Regla 6 concluye (Modus Tollens) que K = falso o L = falso, pero, puesto que
K = cierto, debería ser L = falso.
3. La Regla 5 concluye (Modus Tollens) que G = falso o J = falso, pero, puesto que
J = cierto, debería ser G = falso.
En consecuencia, se obtiene la conclusión G = falso. Sin embargo, si el motor de
inferencia sólo utiliza la regla de inferencia Modus Ponens, el algoritmo se
detendría en la Etapa 1, y no se concluiría nada para el objeto G. Este es otro
ejemplo que ilustra la utilidad de la regla de inferencia Modus Tollens.
Figura 3.6 Una representación gráfica de las relaciones entre las seis reglas de la Figura 3.5
11
7.1.2.3.
Encadenamiento de Reglas orientado a un objetivo
El algoritmo de encadenamiento de reglas orientado a un objetivo requiere del
usuario seleccionar, en primer lugar, una variable o nodo objetivo; entonces el
algoritmo navega a través de las reglas en búsqueda de una conclusión para el
nodo objetivo. Si no se obtiene ninguna conclusión con la información existente,
entonces el algoritmo fuerza a preguntar al usuario en busca de nueva información
sobre los elementos que son relevantes para obtener información sobre el objetivo.
Considérense las seis reglas de las Figuras 3.5 y 3.6. Supóngase que se
selecciona el nodo M como nodo objetivo y que se sabe que los objetos D; E; F y
L son ciertos. Estos nodos están sombreados en la Figura 3.7. Las etapas del
algoritmo de encadenamiento de reglas orientado a un objetivo se ilustran en la
Figura 3.7, donde el número en el interior de un nodo indica el orden en el que se
visita cada nodo. Estas etapas son:
El algoritmo de encadenamiento de reglas orientado al objetivo marcado
procedería de la forma siguiente:
a. Se asigna el valor cierto a los objetos D; E; F y L y se marcan. Puesto que el
nodo objetivo M no está marcado, entonces
 Se designa el objeto M como objeto en curso.
 Se marca el objeto M. Por tanto, se tiene ObjetosMarcados = {D; E; F; L; M}.
 ObjetivosPrevios =  .
 Las seis reglas están activas. Por tanto, se tiene ReglasActivas = {1; 2; 3; 4;
5; 6}
b. Se busca una regla que incluya el objetivo en curso M.
c. La Regla 6 no puede concluir puesto que el valor del objeto K es desconocido.
d. El objeto K no está marcado. Entonces
 ObjetivosPrevios = {M}.
 Se elige el objeto K como objetivo en curso.
 El objeto K está marcado. Por tanto se tiene, ObjetosMarcados = {D;E; F;
 L;M;K}
12
Figura 3.7 Un ejemplo que ilustra el algoritmo de encadenamiento de reglas orientado a un objetivo.
Los nodos cuyo valor es conocido se han sombreado, el nodo objetivo se ha rodeado por una
circunferencia, y el número en el interior de un nodo indica el orden en el que se visita cada nodo.44
7.1.3. Control de Coherencia
En situaciones complejas, incluso verdaderos expertos pueden dar información
inconsistente (por ejemplo, reglas inconsistentes y/o combinaciones de hechos no
factibles).
Por ello, es muy importante controlar la coherencia del conocimiento tanto durante
la construcción de la base de conocimiento como durante los procesos de
adquisición de datos y razonamiento. Si la base de conocimiento contiene
información inconsistente (por ejemplo, reglas y/o hechos), es muy probable que el
sistema experto se comporte de forma poco satisfactoria y obtenga conclusiones
absurdas. El objetivo del control de la coherencia consiste en
1. Ayudar al usuario a no dar hechos inconsistentes, por ejemplo, dándole al
usuario las restricciones que debe satisfacer la información demandada.
2. Evitar que entre en la base de conocimiento cualquier tipo de conocimiento
inconsistente o contradictorio.
El control de la coherencia debe hacerse controlando la coherencia de las reglas y
la de los hechos.
44 Las figuras 2.10, 2.11, 2.12, fueron tomadas del documentos Sistemas Expertos Basados en Reglas. Autor: Prof. José Manuel Gutiérrez. Dpto. de Matemática
Aplicada. Universidad de Cantabria. España. 2006
13
7.1.3.1. Coherencia de Reglas
Un conjunto de reglas se denomina coherente si existe, al menos, un conjunto de
valores de todos los objetos que producen conclusiones no contradictorias.
En consecuencia, un conjunto coherente de reglas no tiene por qué producir
conclusiones contradictorias para todos los posibles conjuntos de valores de los
objetos.
Tabla 7.5 Una tabla de verdad que muestra que las Reglas 1 y 2 son coherentes
Objetos
Conclusiones
Conclusiones
Contradictorias
A
B
Regla 1
Regla 2
C
C
B=C
B=F
Si
C
F
B=C
B=F
Si
F
C
No
F
F
No
Por ejemplo Supóngase que se tienen los cuatro objetos: A Î {0, 1}, B Î {0, 1}, C Î
{0, 1, 2} y D Î {0, 1}. Considérense las cuatro reglas:
. Regla 1: Si A = 0 y B = 0, entonces C = 0.
. Regla 2: Si A = 0 y D = 0, entonces C = 1.
. Regla 3: Si A = 0 y B = 0, entonces C = 1.
. Regla 4: Si A = 0, entonces B = 0.
. Regla 5: Si B = 0, entonces A = 1.
Supóngase ahora que se desea añadir las tres últimas reglas a una base de
conocimiento que contiene las dos primeras reglas. Entonces, las Reglas 1 y 3 son
inconsistentes, puesto que tienen la misma premisa pero diferentes conclusiones.
Por lo que, la Regla 3 debe ser rechazada y el experto humano informado de la
razón del rechazo. El experto humano corregirá la regla en cuestión y / o las reglas
existentes si fueran incorrectas. La Regla 4 entrará en la base de conocimiento,
puesto que es consistente con las Reglas 1 y 2. La Regla 5 es inconsistente con la
Regla 4. Por ello, la consistencia de ambas reglas debe ser comprobada antes de
pasar a formar parte de la base de conocimiento
7.1.3.2. Incoherencia de Reglas
Considérense las cuatro reglas siguientes, que relacionan dos objetos A y B
binarios {C, F}:
. Regla 1: Si A = C, entonces B = C.
. Regla 2: Si A = C, entonces B = F.
. Regla 3: Si A = F, entonces B = C.
. Regla 4: Si A = F, entonces B = F.
Entonces, pueden obtenerse las siguientes conclusiones (Tabla 7.6):
14
1. Las Reglas 1 - 2 son coherentes puesto que, para A = F, no producen
conclusiones.
2. Las Reglas 1 - 3 son coherentes puesto que para A = F y B = C, producen una
conclusión (B = C)
3. Las Reglas 1 - 4 son incoherentes porque producen conclusiones
contradictorias para todos los posibles valores de A y B
Un conjunto de reglas puede ser coherente, aunque algunos conjuntos de valores
puedan producir conclusiones inconsistentes. Estos conjuntos de valores se
llaman valores no factibles. Por ejemplo, las Reglas 1 - 2 son coherentes, aunque
producen conclusiones inconsistentes en todos los casos en que A = C. En
consecuencia, el subsistema de control de coherencia eliminará automáticamente
el valor C de la lista de posibles valores del objeto A, permitiendo de esta forma al
usuario seleccionar sólo valores factibles de los objetos.
Tabla 7.6 Una tabla de verdad que muestra que las Reglas 1 y 2 son coherentes
Objetos
Conclusiones
Conclusiones
Contradictorias
A
B
Regla 1 Regla 2 Regla 3 Regla 4
C
C
B=C
B=F
Si
C
F
B=C
B=F
Si
F
C
B=C
B=F
Si
F
F
B=C
B=F
Si
Es decir, es suficiente que exista un conjunto de valores que conduzcan a
conclusiones no contradictorias. Considérense las cuatro reglas siguientes, que
relacionan dos objetos A y B binarios {C; F}:




Regla 1: Si A = C, entonces B = C.
Regla 2: Si A = C, entonces B = F.
Regla 3: Si A = F, entonces B = C.
Regla 4: Si A = F, entonces B = F.
Las Reglas 1 y 2 son coherentes puesto que, tal como se muestra en la Tabla II.5,
para A = F, no producen conclusiones. Sin embargo, las Reglas 1 y 4 son
incoherentes porque producen conclusiones contradictorias para todos los
posibles valores de A y B.
Nótese que un conjunto de reglas puede ser coherente, aunque algunos conjuntos
de valores puedan producir conclusiones inconsistentes. Estos conjuntos de
valores se llaman valores no factibles. Por ejemplo, las Reglas 1 y 2 son
coherentes, aunque producen conclusiones inconsistentes en todos los casos en
que A = C. En consecuencia, el subsistema de control de coherencia eliminaría
automáticamente el valor C de la lista de posibles valores del objeto A,
15
permitiendo de esta forma al usuario seleccionar sólo valores factibles de los
objetos.
Se dice que un valor a para el objeto A no es factible si las conclusiones obtenidas
al hacer A = a contradicen cualquier combinación de valores del resto de los
objetos. Por ello, cualquier valor no factible debe ser eliminado de la lista de
valores posibles de su correspondiente objeto para eliminar la posibilidad de que
el motor de inferencia pueda obtener conclusiones inconsistentes.
7.1.3.3.
Coherencia de Hechos
Los datos o evidencias suministrados por los usuarios deben ser también
consistentes en sí y con el conjunto de reglas de la base de datos. Por ello, el
sistema no debe aceptar hechos que contradigan el conjunto de reglas y/o el
conjunto de hechos existente en cada instante del proceso.
El sistema debe también comprobar si existe o no, una solución factible e informar
al usuario en consecuencia. Si en el ejemplo anterior se trata de dar la información
A = 0; B = 0 y D = 0, el sistema debe detectar que no existe ningún valor de C que
sea consistente con la base de conocimiento. Nótese que antes de conocer los
valores de los objetos, existe una solución factible. Por ejemplo, A = 0; B = 0;
C = 0 y D=1 (estos hechos no contradicen la base de conocimiento). Por ello, la
inconsistencia surge que los hechos y las reglas sean inconsistentes.
La coherencia de los hechos puede lograrse mediante las estrategias siguientes:
1. Eliminar todos los valores no factibles (los que contradicen el conjunto de reglas
y / o hechos) de los objetos una vez detectados. Cuando se pregunte al usuario
por información sobre los valores de un conjunto de objetos, el sistema experto
debería aceptar sólo los valores de cada objeto que sean consistentes con las
reglas y con el conocimiento previo.
2. El motor de inferencia debe comprobar que los hechos conocidos no
contradicen el conjunto de reglas. Si el sistema no elimina los valores no factibles,
entonces el usuario podrá dar evidencias contradictorias tales como Pago =
autorizado y NIP = incorrecto en el ejemplo del cajero automático (CA). Por ello,
tan pronto como se de la primera evidencia, Pago = autorizado, el sistema debe
seleccionar sólo los valores del NIP que no conduzcan a conclusiones
contradictorias.
3. Suministrar al usuario una lista de objetos a los que no se ha asignado valores
previamente.
4. Para cada uno de los objetos, mostrar y aceptar sólo sus valores factibles.
5. Actualizar continuamente la base de conocimiento, es decir, tan pronto como se
dé un hecho o se obtenga una conclusión, y eliminar los valores no factibles. El
motor de inferencia obtiene todas las conclusiones posibles examinando, y
posiblemente concluyendo, las reglas tan pronto como una simple unidad de
información llegan al sistema
16
7.1.4. Ejemplo45
Los sistemas de control de tráfico actuales son necesariamente complejos. El
siguiente ejemplo ilustra cómo puede diseñarse un sistema experto basado en
reglas para resolver un problema de control de tráfico muy simple. La Figura 3.8
muestra un trazado de ferrocarril en el que varios trenes pueden circular en las
dos direcciones. Hay cinco vías, S1, . . . , S5, y 14 señales de tráfico, ocho en la
parte superior del diagrama, U1, . . . , U8, y seis en la parte inferior, L1, . . . , L6.
Figura 3.8 Trazado de ferrocarril con cinco vías.
Tabla 7.7 Objetos y sus correspondientes valores para el ejemplo del control de
tráfico ferroviario.
Objeto
Valor
U1 a U8
{verde, rojo}
L1 a L6
{verde, rojo}
S1 a S5
{libre, ocupada}
El objetivo de este sistema es diseñar un conjunto de reglas que eviten la colisión
de los trenes. Estas reglas pueden obtenerse como sigue:
1. Si la señal de tráfico U1 está verde, entonces puede permitirse la salida de
un tren que esté en la vía S1 y no debe permitirse la salida de los trenes de
la vía S2, por lo que L1 tiene que estar en rojo. Lo mismo es cierto para las
vías S4 y S5. Nótese que si el motor de inferencia utiliza la regla de
inferencia Modus Tollens, estas reglas garantizan también que cuando las
señales de la parte baja de las vías estén en verde, las señales de sus
correspondientes partes superiores estén en rojo. Es decir, las dos primeras
reglas implican las dos reglas siguientes:
• Regla 1a: Si L1 = verde, entonces U1 = rojo.
• Regla 2a: Si L6 = verde, entonces U6 = rojo.
45 Ejemplo tomado del texto: Sistemas experto y Modelos de Redes Probabilísticas. Castillo, Enrique y Otros. España 2005.
17
2. Si la vía S1 está ocupada, entonces la señal U2 debe estar en rojo para
evitar que un tren entre en la vía ocupada. Similarmente, para las demás
vías. Esto da lugar a las seis reglas adicionales (Reglas 3−8)
3. Si ambas señales U3 y L3 están en rojo, entonces ningún tren puede salir de
la vía S1. La misma condición vale para las señales U5 y L5. Por ello, se
tiene la regla
• Regla 9: Si (U3 = rojo y L3 = rojo) o (U5 = rojo o L5 = rojo), entonces
U1 = rojo.
Las cinco reglas asociadas a las otras cinco vías pueden ser obtenidas
de forma análoga.
4. Para evitar la colisión de los trenes procedentes de las vías S1 −S2 y S4 −
S5, son necesarias las reglas siguientes:
• Regla 15: Si U3 = verde, entonces U4 = rojo
• Regla 16: Si L3 = verde, entonces L4 = rojo.
5. Para evitar que las señales de la parte alta y sus correspondientes señales
de la parte baja estén simultáneamente en verde, es necesario incluir las
Reglas 17−20 de la Tabla 7.8.
6. Finalmente, para evitar la colisión de un tren de la vía S3 con un tren de las
otras cuatro vías, se imponen las dos últimas reglas de la Tabla 7.8.
Tabla 7.8 Reglas para el ejemplo del control de tráfico ferroviario.
Regla
Premisa
Conclusión
Regla 1
Regla 2
U1 = verde
U6 = verde
L1 = rojo
L6 = rojo
Regla 3
Regla 4
Regla 5
Regla 6
Regla 7
Regla 8
S1 = ocupada
S2 = ocupada
S3 = ocupada
S4 = ocupada
S5 = ocupada
S6 = ocupada
U2 = rojo
L2 = rojo
U3 = rojo
U4 = rojo
U5 = rojo
L5 = rojo
Regla 9
Regla 10
Regla 11
Regla 12
Regla 13
Regla 14
(U3 = rojo y L3 = rojo) o (U5 = rojo y L5 = rojo)
(U3 = rojo y L3 = rojo) o (U5 = rojo y L5 = rojo)
(U2 = rojo y L2 = rojo) o (U4 = rojo y L4 = rojo)
(U2 = rojo y L2 = rojo) o (U4 = rojo y L4 = rojo)
U2 = rojo y L2= rojo
U5 = rojo y L5 = rojo
U1 = rojo
L1 = rojo
U6 = rojo
L6= rojo
U7 = rojo
U8 = rojo
Regla 15
Regla 16
U3= verde
L3 = verde
U4 = rojo
L4= rojo
Regla 17
Regla 18
Regla 19
Regla 20
U2= verde
U3= verde
U4= verde
U5= verde
L2 = rojo
L3 = rojo
L4= rojo
L5= rojo
Regla 21
Regla 22
U1 = verde o L1 = verde
U6 = verde o L6 = verde
U7 = rojo
U8 = rojo
7.1.5. Conclusiones
Normalmente, los usuarios esperan que el sistema les dé algún tipo de explicación
que indique el por qué de las conclusiones. Durante el proceso realizado por el
motor de inferencia, las reglas activas (las que han concluido) forman la base del
mecanismo de explicación, que es regulado por el subsistema de explicación.
18
En los sistemas expertos basados en reglas, es fácil dar explicaciones de las
conclusiones obtenidas. El motor de inferencia obtiene conclusiones bastándose
en un conjunto de reglas y, por tanto, conoce de qué regla procede cada
conclusión. Por ello, el sistema puede dar al usuario la lista de hechos concluidos
junto con las reglas que se han utilizado para obtenerlos.
Lección 32
7.2 Sistemas Expertos Probabilísticos
7.2.1. La incertidumbre
Es muy común que los seres humanos tomen decisiones en condiciones de
incertidumbre, es más la incertidumbre hace parte de nuestro diario vivir, un
ejemplo tan cotidiano como el de ir tarde al trabajo y preguntarse si tomar bus o
taxi, la persona decide con incertidumbre, por que no sabe si el bus se demore o
no, o si estará lleno, por otro lado el taxi le costará mas, pero debe tomar una
decisión que lo lleve a su trabajo. Este tipo de decisiones se presenta a menudo
tanto en la vida cotidiana, como en el ámbito científico o en el empresarial; aunque
la incertidumbre este presente en todos esos campos, el ser humano ha
desarrollado técnicas y teorías, como la probabilidad y estadística, para enfrentar
este tipo de decisiones, pero además de estos métodos, el rápido desarrollo de los
sistemas ha permitido fusionar todo el conocimiento, en aplicaciones que permiten
dar soluciones que aunque no son perfectas tienen un soporte teórico que le da
mayor probabilidad de éxito, que a una decisión tomada al azar.
Para medir la incertidumbre se parte de un conjunto S (El espacio muestral), en el
que se incluyen todos los posibles resultados de un cierto experimento, una vez
definido este conjunto, el objetivo consiste en asignar a todo subconjunto S un
número real que mida el grado de incertidumbre sobre su realización.
Para obtener medidas con significado claro y práctico, se imponen ciertas
propiedades intuitivas adicionales que definen una clase de medidas que se
conocen como medidas de probabilidad.
7.2.2. Tipos de variables aleatorias
Variable aleatoria: Aquella que toma valores, que a priori, no conocemos con
certeza.
Por ej: cogemos 2 personas al azar. Su edad y sexo, serán 2 variables aleatorias.
Existen dos tipos de variables aleatorias, entre ellas:


Discretas: el número de valores es finito.
o Ejemplos:
 Número de puerto TCP origen.
 Dirección IP origen.
Continuas: puede asumir todos los valores posibles en cierto intervalo a-b.
19
o Ejemplos:
 Temperatura ambiente.
 Tiempo de fallo de un dispositivo.
 Distancia del robot a la pared.
7.2.3. Definición de Sistemas Expertos Basados en Probabilidad
Los sistemas expertos comunes, basados en reglas no tienen en cuenta la
incertidumbre, ya que la forma de tratar los objetos y las reglas, es de tipo
determinista, pero como se aprecio anteriormente, es frecuente la toma de
decisiones en condiciones de incertidumbre, ya sea en áreas de la ingeniería, los
negocios o inclusive la salud.
El ejemplo que se presenta a continuación es el de un paciente que asiste al
médico, con ciertos síntomas para que este le determine en base a estos, que tipo
de enfermedad de las posibles padece. Se dice que el sistema no es determinista,
ya que la relación entre las enfermedades y los síntomas que tiene un paciente no
son deterministas, por que los mismos síntomas pueden estar presentes en
distintas enfermedades.
En el diagnóstico médico la pregunta típica es:
Dado que el paciente presenta un conjunto de síntomas, ¿cuál de las
enfermedades posibles es la que tiene el paciente?
Esto crea la necesidad, de herramientas que tengan la capacidad para funcionar,
en estos ambientes, una buena opción son los sistemas de tipo probabilístico.
Estos como los otros, cuentan con una base de conocimiento, pero esta se forma
por el espacio probabilístico, que describe el problema. El motor de inferencias es
basado en probabilidades condicionales y este se encarga de actualizar dichas
probabilidades con base en los hechos que observa del ambiente en que se
desempeña.
7.2.3.1.
Medidas de Probabilidad.
Una función p que proyecta los sub-conjuntos de S  A en el intervalo [0, 1] se
llama medida de la probabilidad si satisface los siguientes axiomas:
Axioma 1 (Normalización):
La probabilidad total de todo el espacio muestral es igual a 1
p(S) = 1.
Axioma 2 (Aditividad):
Para cualquier sucesión infinita A1, A2 , ... de subconjuntos disjuntos de S, se
cumple la igualdad
20
p(  Ai) =  S p(Ai)
Lo que determina que la probabilidad de la unión de todos los subconjuntos es
igual a la suma total de todas las probabilidades de cada subconjunto.
Ejemplo probabilidades: Lanzamiento de un dado no trucado
S = {1, 2, 3, 4, 5, 6}
p(S) = 1=1/6+1/6+1/6+1/6+1/6+1/6
p({1})= 1/6
p({1, 3}) = p({1})+ p({3}) = 1/3.
7.2.3.2.
Propiedades
Propiedad 1 (Normalización): p(  ) = 0
Evidencia asociada a una ausencia completa de información es cero
Propiedad 2 (Monotonicidad): Si S  B  A, entonces p(A)  p(B)
La evidencia de la pertenencia de un elemento a un conjunto dado A no debe
decrecer con la adición de elementos a A.
Propiedad 3 (Continuidad-Consistencia): Para toda sucesión creciente ...  A2
 A1 , o decreciente A1  A2  ... de subconjuntos de S se tiene: lim p(Ai) = p(lim
Ai)
Si se eligen dos sucesiones de conjuntos que convergen al mismo subconjunto de
S, se debe obtener la misma evidencia o incertidumbre.
Propiedad 4 (Inclusión-Exclusión): Dado cualquier par de subconjuntos A y B de
S se cumple siempre la igualdad: p(A  B) = p(A) + p(B) - p (A  B)
7.2.3.3.
Distribución de probabilidad
Sea {X1, ... Xn} un conjunto de variables aleatorias discretas y {x1, ... xn} el
conjunto de sus posibles realizaciones.
Por ejemplo, si Xi es una variable binaria xi puede ser 0 o 1. Se denomina función
de probabilidad conjunta a:
p(x1, ... xn) = p( X1= x1 , ... Xn= xn)
Se denomina función de probabilidad marginal de la i-ésima variable median-te la
fórmula:
p(xi) = p( Xi = xi ) =
p(x1, ... xn)

x1, ..., xi -1 , xi 1 ,..., xn
21
El conocimiento de la ocurrencia de un suceso puede modificar las probabilidades
de otros sucesos.
Por ejemplo, la probabilidad de que un paciente tenga una enfermedad dada
puede cambiar tras el conocimiento de los resultados de un análisis de sangre.
7.2.3.4.
Probabilidad Condicional
A la probabilidad de que un evento B se de cuando se sabe que un evento a se ha
presentado se llama probabilidad condicional y se escribe P(B / A) . Esta
expresión, por lo general se lee “la probabilidad de que B ocurra dado que ya
ocurrió A “, o simplemente “la probabilidad de B dado A”
Sean X e Y dos conjuntos disjuntos de variables tales que p(y) > 0 . Entonces, la
probabilidad condicional (función de probabilidad condicionada) de X dado Y=y
viene dada por
p(X=x | Y=y) = p(x|y) = p(x,y)/p(y)
Esta definición implica que la función de probabilidad conjunta de X e Y puede
escribirse como
p(x,y) = p(y)p(x|y).
Se obtiene un caso particular cuando X es una única variable e Y es un
subconjunto de variables:
p(xi |x1, ..., xk) = p(xi , x1 , ..., xk)/p(x1 , ..., xk ) =
P( X j , X 1 , X 2 ,... X K )
 P( X
j
, X 1 , X 2 ,... X K )
Xj
7.2.3.5.
Dependencia e Independencia
Independencia de dos variables. Sean X e Y dos subconjuntos disjuntos del
conjunto de variables aleatorias {X1, ... Xn} . Entonces se dice que X es
independiente de Y si y solamente si
p(x|y) = p(x),
Para todos los valores posibles de x e y de X e Y; en otro caso, X se dice
dependiente de Y.
Nótese que al si x e y son valores posibles de X e Y, entonces p(x) > 0 y p(y) > 0.
Si X es independiente de Y, entonces el conocimiento de Y no afecta el
conocimiento sobre X, es decir, Y no tienen información sobre X.
Si X es independiente de Y entonces p(x,y) = p(x) p(y).
Una propiedad importante de la relación de independencia es su simetría:
22
p(y|x) = p(x,y) / p(x) = p(x) p(y) / p(x) = p(y)
7.2.3.6.
Teorema de Bayes
B
1, B
2,...,
m constituyen una división del espacio muestral S,
Si los eventos B
,2
,3
,...,
m, entonces para cualquier evento A en S
donde P(Bi )  0 , para i 1
es tal que P( A)  0 .
P
(
B

A
) P
(
A
/
B
)
*
P
(
B
)
i
i
i
P
(
B
/
A
)


i
m
m
P
(
B

A
)
P
(
A
/
B
)
*
P
(
B
)


i
i
i
i

1
i

1
.
B
,
B
,...,
B
m, forman una partición del espacio
En el modelo general los eventos 1 2
muestral S, donde P(Bi )  0 , para i 1,2,3,...,m, entonces para cualquier evento
A de S, en particular
entonces se tiene que:
A  Aj
iJ
P(Bi / Ai ) =
,2
,3
,...,
n tal que P(Aj )  0 ,
, para j 1
P(Bi  A j )
=
m
 P(B  A
i
i=1
j
)
P(A j / Bi )  P(Bi )
m
 P(A
j
/ Bi )  P(Bi )
i=1
Esto se puede representar mediante diagramas de Ven como lo muestra la figura
3.9.
Figura 3.9. Diagrama de Ven de la regla de Bayes en forma General.46
7.2.3.7.
Reglas generalizadas
Una forma de introducir la incertidumbre en los sistemas basados en reglas
consiste en utilizar reglas generalizadas.
46
J.A. Bañares Bañares. 1999. Resolución de Problemas en LBR. Departamento de Informática e Ingeniería
de Sistemas C.P.S. Universidad de Zaragoza
23
Por ejemplo, dada la regla determinista
Regla 1: Si A es cierta, entonces B es cierta
se puede introducir incertidumbre asociando una probabilidad a esta afirmación
Reglas 2: Si A es cierta, entonces la probabilidad de que B sea cierta es p(b),
donde 0<= p(b) <=1 es una medida de la incertidumbre de B.
El uso de las reglas generalizadas requiere utilizar medidas de incertidumbre para
ambos, objetos y reglas, junto con formulas de agregación para combinar la
incertidumbre de los objetos en las premisas con la de las reglas.
MYCIN y PROSPECTOR son los primeros S.E. que utilizan reglas generalizadas.
Problema: No cumplen los axiomas de la probabilidad.
Por contra, a los S.E. que describen las relaciones entre los objetos (variables)
mediante una función de probabilidad conjunta se les denomina SE de tipo
probabilístico.
7.2.4. Introducción de los sistemas expertos basados en probabilidad
1. Los S.E. Probabilísticos pueden memorizar información.
Ejemplo de base de datos con diez pacientes para el diagnóstico con cinco
enfermedades y tres síntomas binarios.
Tabla 7.9 Tabla de diez pacientes y el diagnostico binario de 5 enfermedades.
Enfermedad
Sintomas
Paciente
(E)
S1
S2
S3
1
2
3
4
5
6
7
8
9
10
E5
E2
E3
E5
E3
E1
E1
E3
E1
E5
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
2. Los S.E. probabilísticos pueden contar o calcular las frecuencias absolutas y
relativas de cualquier subconjunto de variables a partir de la base de datos. Estas
frecuencias pueden utilizarse para calcular las probabilidades condicionales
24
3. Los S.E. probabilísticos pueden aprender de la experiencia.
Tan pronto como un nuevo paciente es examinado y diagnosticado, se añade
nueva información a la base de datos y se cambian las frecuencias como
corresponda.
4. Los S.E. probabilísticos pueden tomar (o ayudar a los expertos humanos a
tomar) decisiones tales como:
¿Se tiene suficiente información como para diagnosticar la enfermedad?
¿Se necesitan nuevas pruebas clínicas? y si la respuesta es positiva, ¿Qué
prueba o pruebas suministran la máxima información sobre la enfermedad que se
sospecha tiene el paciente?
7.2.5. La Base del Conocimiento
La base de conocimiento de un sistema experto probabilístico consiste en un
conjunto de variables, {X1, . . . , Xn}, y una función de probabilidad conjunta
definida sobre ellas, p(x1, . . . , xn). Por ello, para construir la base de conocimiento
de un sistema experto probabilístico, se necesita definir la función de probabilidad
conjunta de las variables.
El modelo más general posible se basa en especificar directamente la función de
probabilidad conjunta, es decir, asignar un valor numérico (parámetro) a cada una
de las posibles combinaciones de valores de las variables. Pero, la especificación
directa de la función de probabilidad conjunta implica un gran número de
parámetros por lo que, no hay ordenador en el mundo capaz de almacenarlo
incluso para un valor de n tan pequeño como 50. Esta fue una de las primeras
críticas al uso de la probabilidad en los sistemas expertos.
Ejemplo:
Considérese las siguientes características de las personas de una población
Sexo = {hombre, mujer}
Fumador = {si (f), no (~f)}
Estado civil = {casado (c), no casado (~c)}
Embarazo = {si (e), no (~e)}
Función de probabilidad conjunta
25
Tabla 7.10 Tabla con datos de funciones de probabilidad. Probabilidad conjunta
H
M
F
~F
F
~F
C
~C
E
~E
E
~E
0.00
0.02
0.00
0.07
0.00
0.18
0.00
0.23
0.01
0.04
0.01
0.10
0.05
0.10
0.01
0.18
Por ejemplo, el 50% de las personas son mujeres, y el
0.01+0.04+0.01+0.01/ (0.01+0.04+0.01+0.01)+ (0.00+0.02+0.00+0.07) = 64% de
los fumadores son mujeres
Sea A una persona elegida al azar de la población.
Sin conocer si la persona es fumadora, la probabilidad de que se trate de
una mujer es p(A=mujer) = 0.50
Si se sabe que las persona es fumadora, esta probabilidad cambia de 0.50
a p(A=mujer | A = f) = 0.64.
Por lo tanto, se tiene que p(A=mujer | A = f) ° p (A = mujer) ; por lo que las
variables Sexo y Fumador son dependientes.
Supóngase ahora que se sabe que la persona está embarazada Entonces,
p(A=mujer | A = e) = 1 ° p (A = mujer) = 0.50. Por lo que Sexo y Embarazo
son dependientes.
Fumador y Embarazo contienen información relevante sobre el Sexo. Pero
el suceso “la persona está embarazada” contiene mucha más información
sobre el Sexo que el suceso “la persona es fumadora” .
p(A=mujer | A =e) / p(A = mujer | A = f) = 1/0.64 >1
¿Estado Civil contiene información relevante sobre el Sexo?
Sin embargo, en la mayor parte de las situaciones prácticas, muchos subconjuntos
de variables pueden ser independientes o condicionalmente independientes.
Ejemplos de simplificaciones son:
El Modelo de Síntomas Dependientes (MSD)
El Modelo de Síntomas Independientes (MSI)
El Modelo de Síntomas Relevantes Independientes (MSRI)
El Modelo de Síntomas Relevantes Dependientes (MSRD)
7.2.5.1. Modelo de Síntomas Dependientes
Para un modelo de una supuesta enfermedad, en este modelo se supone que los
síntomas son dependientes pero que las enfermedades son independientes entre
sí, dados los síntomas.
26
Figura 3.10. Modelo de Síntomas dependientes 47
7.2.5.2. Modelo de Síntomas Independientes
Una simplificación consiste en suponer que, para una enfermedad dada, los
síntomas son condicionalmente independientes entre sí:
Figura 3.11. Modelo de Síntomas independientes 48
Puesto que lo síntomas se suponen condicionalmente independientes
47
J.A. Bañares Bañares. 1999. Resolución de Problemas en LBR. Departamento de Informática e Ingeniería
de Sistemas C.P.S. Universidad de Zaragoza
48
Ibd 49
27
7.2.5.3. Modelo de Síntomas Relevantes Independientes
Se puede conseguir una reducción aún mayor del número de parámetros
suponiendo que cada enfermedad tiene un número reducido de síntomas
relevantes:
Para cada valor ei de la enfermedad E se seleccionan algunos síntomas
relevantes S1 , ..., Sr y los restantes síntomas se suponen independientes para
ese valor de E.
Figura 3.12. Modelo de Síntomas relevantes independientes49
Supóngase que S1 , ..., Sri son relevantes para la enfermedad ei y que los
restantes síntomas Sri +1 , ..., Sn son irrelevantes. Según el MSRI, p(sj| ei) se
supone idéntica para todos los síntomas que son irrelevantes para la enfermedad
Sea cual sea el modelo elegido, la base de conocimiento debe contener el
conjunto de variables de interés y el mínimo de parámetros (probabilidades o
frecuencias) necesarios para especificar la función de probabilidad conjunta de las
variables.
7.2.5.4. Modelo de Síntomas Relevantes Dependientes
Aunque el MSRI reduce el número de parámetros considerablemente, es poco
realista:



49
Los síntomas asociados a ciertas enfermedades suelen producirse en
grupos o síndromes.
EL modelo de síntomas relevantes dependientes evita este inconveniente:
Es el mismo que el MSRI pero sin obligar a los síntomas relevantes a ser
independientes, dada la correspondiente enfermedad.
Se puede pensar en el MSRD como una solución de compromiso entre el
MSD y el MSRI.
Ibd 50
28
Figura 3.13. Modelo de Síntomas Relevantes dependientes
7.2.6. Motor de Inferencia
Hay dos tipos de conocimiento en los S.E. probabilísticos:
 El conocimiento, que está formado por el conjunto de variables y el conjunto
de probabilidades asociadas necesarias para construir su función de
probabilidad conjunta. (Se almacena en la base de conocimiento)
 Los datos, que consiste en un conjunto de valores de algunas variables (por
ejemplo, síntomas) conocidas por el usuario. A esta información se la
conoce con el nombre de evidencia, y se almacena en la memoria de
trabajo.
El motor de inferencia utiliza ambos para responder a preguntas como:
Pregunta 1: Antes de ser examinado por el doctor, ¿cuál es la enfermedad más
probable para el paciente?
No hay evidencia disponible. El problemas consiste en calcular la probabilidad
marginal inicial de E p(E = ei).
Pregunta 2: Dado que el paciente presenta un subconjunto de síntomas
S1=s1 ..., Sk=sk , ¿qué enfermedad tiene el paciente con mayor probabilidad?
El conjunto evidencial consiste en los valores s1 ... sk. El problema consiste en
calcular la función de probabilidad conjunta para cada enfermedad ei dada la
evidencia s1 ... sk: p(E= ei | s1 ... sk), i = 1 ...m.
El motor de inferencia es responsable de actualizar las probabilidades
condicionales cuando se conocen nuevos síntomas:
p(ei | s1 ... sk)= p(ei ,s1 ... sk)/ p(s1 ... sk); i = 1 ...m.



El papel del término p(s1 ... sk) consiste en actuar como constan-te de
normalización.
Una decisión basada en el máximo de p(ei | s1 ... sk) coincide con la
basada en el máximo de p(ei ,s1 ... sk).
Los cocientes siguientes suministran información sobre la importancia
relativa de las diferentes enfermedades.
29
Uno de los problemas más serios de los S.E. es la presencia de incoherencias en
su base de conocimiento y/o en su memoria de trabajo:
 Los expertos humanos pueden suministrar conocimiento incoherente
 EL usuario puede suministrar datos incoherentes
 El motor de inferencia no actualiza la base de conocimiento tan pronto se
de un hecho.
 No hay un subsistema para controlar la coherencia.
Lección 33
7.3 Redes Bayesianas
Una red bayesiana está compuesta por:
1. Un grafo dirigido acíclico (GDA) donde cada nodo representa una variable
aleatoria y los arcos representan dependencias probabilísticas entre variables. A
esta parte de la red se la denomina estructura o modelo.
2. Una distribución de probabilidades condicionadas de la forma P(x | πx) para
cada nodo x dado su conjunto de padres πx. Estos son los llamados parámetros de
la red bayesiana.
En una red bayesiana se considera que cada nodo es independiente de todos los
nodos no descendientes dados sus padres. Así, a partir del producto de
probabilidades condicionadas se puede obtener la distribución conjunta de
probabilidades:
P(x1, ..., xi, ..., xn)=Πi=1n P(xi | πxi)
Hallazgo: determinación del valor de una variable, a partir de un dato (una
observación, una medida...).
Evidencia: conjunto de todos los hallazgos disponibles en un determinado
momento.
Probabilidad a priori: es la probabilidad de una variable o subconjunto de
variables cuando no hay ningún hallazgo. Coincide con la probabilidad marginal
P(x).
Probabilidad a posteriori: es la probabilidad de una variable o subconjunto de
variables dada la evidencia e. Se trata de la probabilidad condicional P(x|e).
7.3.1. Aprendizaje Automático de la Red Bayesiana50
Si la base de conocimiento de un sistema experto la constituye una red bayesiana,
ésta debe cambiar conforme aumentan los datos concretos o casos. Así, en sus
primeros estados, la red bayesiana puede ser construida según la opinión de los
expertos o bien según la información de la que se parta o teniendo en cuenta
ambas cosas. Conforme se añade información (conocimiento concreto) a la
50
Disponible en: URL (http://lsi.ugr.es/~rosana/investigacion/papers/abad-efsi02.pdf)
30
misma, se va modificando tanto su estructura como los parámetros mediante un
proceso de aprendizaje.
En este trabajo consideraremos la construcción de la base de conocimiento
teniendo en cuenta exclusivamente los datos concretos, con el objeto de poder
comparar los métodos de aprendizaje de la red bayesiana con otros métodos, ya
sean estadísticos o pertenecientes también al propio campo de la inteligencia
artificial.
7.3.2. Clasificadores Bayesianos
Un clasificador es una función que asigna un valor de un atributo discreto, llamado
clase, a instancias o ejemplos descritos mediante un conjunto de atributos, que
pueden ser tanto continuos como discretos. Un sistema experto puede ser
utilizado como clasificador. Así por ejemplo, un sistema experto en un hospital
determina que para un conjunto de síntomas presentados por un individuo, no es
probable que exista cáncer. O bien, el sistema experto para ayuda a la decisión en
una entidad financiera, aconsejar no otorgar un préstamo a un cliente porque la
probabilidad de no pago sea muy elevada, a partir de una serie de atributos,
fundamentalmente financieros, del mismo.
En el caso de que la base de conocimientos sea una red bayesiana, la función de
clasificación estará definida a partir de probabilidades condicionadas. Otros
modelos que suelen ser utilizados son los árboles de decisión 51 , las redes
neuronales 52 o las más recientes máquinas de soporte vectorial.
Una de las redes bayesianas más eficientes en la clasificación es el llamado
clasificador simple (del inglés Naïve Bayes classifier). La estructura de esta red
bayesiana se basa en una fuerte restricción: todos los atributos que describen los
casos son independientes entre sí dado el valor de la clase (Figura. 3.14).
Figura 3.14. Gráfico correspondiente al clasificador simple bayesiano con 6 atributos de entrada
Han sido propuestos otros modelos más sofisticados. Entre ellos, las redes
bayesianas simples aumentadas (del inglés Augmented Naïve Bayesian networks
Quinlan, J. R. (1996). “Improved use of continuous attributes in C4.5”, Journal of Artificial Intelligence
Research, 4, 77-90.
52
Leigh, W; Purvis, R; Ragusa, J. (2002). “Forecasting the nyse composite index with technical analysis,
pattern recognition, neural network, and genetic algorithm: a case study in romantic decision support”,
Decision Support Systems, 32, 361- 377.
51
31
(AN)), permiten arcos entre los atributos de entrada, de manera que se reduce la
fuerte restricción propia de las redes simples.
Para decidir la estructura concreta de una red AN han sido propuestos diversos
algoritmos en las publicaciones sobre Inteligencia Artificial de la última década
Ezawa K. J.; Schuermann T. (1995), Sahami, M. (1996). Entre ellos cabe destacar el
algoritmo de aprendizaje de red bayesiana Simple Aumentada en árbol (del inglés
Tree Augmented Naïve Bayesian network (TAN)) (Friedman, N.; Geiger, D;
Goldszmidt, M. (1997). y el de red bayesiana Simple Aumentada Estructurada
(Abad, M. 2001) (del inglés Structured Augmented Naïve Bayesian network (SAN)).
El algoritmo TAN construye una red bayesiana con una estructura TAN (Figura
3.15), es decir, una estructura en la que la variable clase no tiene padres y los
atributos de entrada tienen como padres la clase y como máximo otro atributo más
de entrada.
Figura 3.15. Un ejemplo de estructura TAN
Para seleccionar el atributo padre z de un atributo x se utiliza como medida la
llamada información mutua condicionada de x y z dada la clase y: Se trata de una
medida del grado de independencia condicional de x y z dada la clase y: I (x, z | y).
Por otra parte, el algoritmo SAN es aun más flexible que TAN, en el sentido de que
permite la construcción de estructuras AN menos restrictivas. Estas estructuras,
llamadas también SAN (Figura 3.16) se caracterizan porque la clase no tiene
padres y los atributos de entrada pueden tener como padres además de la clase,
cualquier número de atributos de entrada, siempre que no haya ciclos dirigidos,
pues la estructura de una red bayesiana es siempre un GDA.
Figura 3.16. Un ejemplo de estructura SAN
32
Sin embargo, cuanto más compleja es una estructura, es decir, cuantos más arcos
existan en una estructura SAN, mayor es el riesgo de sobreajuste, es decir, mayor
es el riesgo de que la estructura aprendida clasifique bien los casos usados para
el aprendizaje pero tenga una baja eficiencia para casos nuevos. Así, su
capacidad de generalización será baja y por tanto el aprendizaje no se puede
considerar aceptable.
Para evitar el problema del sobreajuste en estructuras complejas el algoritmo de
aprendizaje SAN utiliza un principio inductivo que favorece la creación de
estructuras simples. Así, si el número de casos del que se dispone es pequeño, la
estructura elegida ser más sencilla que si el número de casos es mayor. Dicho
principio es el llamado Minimización del Riesgo Estructural (del inglés Structural
Risk Minimization). Así, este principio define un equilibrio entre la calidad de un
modelo dado un conjunto de datos y la complejidad del mismo.
Todos los algoritmos de aprendizaje que generan una estructura AN pertenecen al
llamado paradigma de la muestra. Los algoritmos pertenecientes a este paradigma
adolecen de los siguientes inconvenientes:
1. No son robustos frente a atributos superfluos.
2. Tienen una escasa capacidad de generalización cuando las muestras son
pequeñas o el número de atributos de cada ejemplo muy elevado.
7.3.2.1. Ejemplo: Adenocarcinoma gástrico
Un centro médico tienen una base de datos consistente en las historias
clínicas de N= 1000 pacientes
Figura 3.17. Diagrama de Ven del Adenocarcinoma gástrico53
Existen 700 pacientes (región no sombreada) que tienen la enfermedad
adenocarcinoma gástrico (G), y 300 (región sombreada) no la tienen.
53
Ibd
33
Tres síntomas: Dolor (D), pérdida de peso (P) y vómitos (V) están ligados a la
enfermedad.
Cuando un paciente nuevo llega a la consulta, hay una probabilidad
700/1000 = 70% de que el paciente tenga G.
Pueden hacerse las siguientes afirmaciones:
440
= 0.44
1000
Verosimilitud: El 50% de los pacientes que tienen la enfermedad vomitan.
p(v|g) = card(v,g)/card(g)=350/750=0.5
Probabilidad a priori: 440 de 1000 pacientes vomitan => p(v) =
Mientras que sólo el 30% de los pacientes que no tienen la enfermedad vomitan
p(v| ¬ g)=card(v, ¬ g)/card(¬ g)= 90/300=0.3
Verosimilitud: El 45% de los pacientes que tienen la enfermedad vomitan y pierden
peso,
p(v,p|g) = card(v,p,g)/card(g)=315/750=0.45
Mientras que sólo el 12% de los que no tienen la enfermedad vomitan y pierden
peso
p(v,p| ¬ g) = card(v,p, ¬ g)/card(¬ g)=35/300=0.12
Puesto que la probabilidad inicial de que el paciente tenga adenocarcinoma
gástrico, p(g)=0.7, no es suficientemente alta para hacer un diagnóstico (tomar
una decisión ahora implica una probabilidad 0.3 de equivocarse), el doctor decide
examinara al paciente para obtener más información:
Supóngase que los resultados muestran que el paciente tiene los síntomas
vómitos (V=v) y pérdida de peso (P=p).
¿Cuál es ahora la probabilidad de que el paciente tenga la enfermedad?
Tras observar que V=v la probabilidad a posteriori es:
Tras observar que V=v y P = p la probabilidad a posteriori es
34
Nótese que cuando se aplica el teorema de Bayes sucesivamente, la
probabilidad “a posteriori” calculada en una etapa dada es la misma que la
probabilidad “a priori” en la siguiente.
Por ejemplo, la probabilidad “a posteriori” que se ha calculado en el primer paso
anterior, puede ser utilizada como probabilidad “a priori” en la siguiente:
7.4 Comparación entre los SE basado en Reglas y los SE basados en
Probabilidades
Tabla 7.11 Comparación entre los sistemas expertos basados en reglas y los
sistemas expertos basados en probabilidades.
BASADOS EN REGLAS
PROBABILISTICOS
Objetos y conjunto de reglas.
Espacio de probabilidad, que incluye
Fácil de implementar, pues sólo
las variables, sus posibles valores, y
es necesario utilizar elementos
su función de probabilidad conjunta.
Base de
simples, tales como objetos,
Inconveniente: el alto numero de
Conocimiento conjuntos de valores, premisas,
parámetros que manejan, lo que hace
conclusiones y reglas.
que sea difícil su especificación y
El conocimiento que puede ser
definición.
almacenado es limitado.
Se basa en la evaluación de las
Las conclusiones se obtienen de probabilidades
condicionales
los
hechos
aplicando
las utilizando uno o vario métodos
diferentes
estrategias
de propuestos por los diferentes tipos de
Motor de inferencia, tales como Modus sistemas expertos probabilisticos. El
Inferencia Ponens,
Modus
Tollens
y grado de dificultar depende del
encadenamiento de reglas; por lo modelo seleccionado y varia desde
que es rápido y fácil de baja,
para
los
modelos
de
implementar.
independencia, a alta, para los
modelos de dependencia generales.
La explicación es fácil, ya que se
Se basa en los valores relativos de
sabe que reglas han sido
las probabilidades condicionadas que
utilizadas para concluir en cada
miden los grados de dependencia.
Subsistema momento. El motor de inferencia
Una
comparación
de
las
de
sabe que reglas se han utilizado
probabilidades condicionales para
Explicación en el encadenamiento y han
diferentes conjuntos de evidencia
contribuido
a
obtener
permite analizar sus efectos en las
conclusiones y que reglas se han
conclusiones.
utilizado sin éxito.
35
Consiste en incorporar nuevos
objetos, nuevos conjuntos de Consiste en incorporar o modificar la
Subsistema valores factibles para los objetos, estructura
del
espacio
de
de
nuevas reglas o modificaciones probabilidad: variables, conjunto de
Aprendizaje de los objetos existentes, de los posibles valores, o los parámetros
conjuntos de valores posibles o (valores de las probabilidades).
de las reglas.
Lección 34
7.5 Sistemas Basados en Casos
También conocido como Razonamiento basado en casos (CBR) es el proceso de
solucionar nuevos problemas basándose en las soluciones de problemas
anteriores, aprender a partir de experiencias precedentes o casos, adaptando
soluciones antiguas para resolver problemas nuevos. Se usa razonamiento
basado en casos cuando un mecánico de automóviles repara un motor por que
recordó que otro auto presentaba los mismos síntomas o cuando un abogado que
apela a precedentes legales para defender alguna causa, también un ingeniero
cuando copia elementos de la naturaleza, está tratando a esta como una “base de
datos de soluciones”.
El Razonamiento basado en casos es una manera razonar haciendo analogías. Se
ha argumentado que el razonamiento basado en casos es más que un método
poderoso para el razonamiento de computadoras, sino que es usado por las
personas para solucionar problemas cotidianos. Más radicalmente se ha sostenido
que todo razonamiento es basado en casos por que está basado en la experiencia
previa.
La siguiente es la definición dada por Kolodner en 1993:
“A case is a contextualized piece of knowledge representing an experience that
teaches a lesson fundamental to achieving the goals of the reasoner”, [Kolodner,
1993]
7.5.1. Historia
Razonamiento basado en casos tiene sus raíces en el trabajo de Roger Schank y
sus estudiantes en la universidad de Yale a principio de la década de los 80. El
modelo de memoria dinámica de Schank54 fue la base de los tempranos sistemas
CBR: Janet Kolodner's en 1983 ayudo a la construcción de CYRUS55 and Michael
54
Roger Schank, Dynamic Memory: A Theory of Learning in Computers and People (New York: Cambridge
University Press, 1982).
55
Janet Kolodner, "Reconstructive Memory: A Computer Model," Cognitive Science 7 (1983): 4.
36
Lebowitz's a la de IPP.56 Otra escuela de Razonamiento basado en casos también
emergió en la década del 80, investigando los asuntos tales como Razonamiento
basado en casos en el razonamiento legal, el razonamiento basado en la memoria
(una manera de razonar con ejemplos en las máquinas masivamente paralelas, y
combinaciones de razonamiento basado en casos con otros métodos de
razonamiento. En los años 90, el interés en razonamiento basado en casos creció
en la comunidad internacional, según lo evidenciado por el establecimiento de una
conferencia internacional sobre el razonamiento basado en casos en 1995, así
como europeo, alemán, británicos, el italiano, y otros talleres de Razonamiento
basado en casos. La tecnología Razonamiento basado en casos produjo
numerosos casos de éxito. El primero fue en un sistema llamado Lockheed's
CLAVIER57 utilizado para presentar a las piezas compuestas que se cocerán en
un horno industrial de convección, de igual forma se está utilizando en
aplicaciones de ayuda de escritorio como Compaq SMART system.58 Y otras.
7.5.2. El ciclo del razonamiento basado en casos
En el proceso de dividir el razonamiento basado en casos en diferentes
subprocesos nos encontramos el ciclo que lo conforman puede ser dividido en 4
procesos claramente diferenciados59:

RECORDAR o RECUPERAR los casos similares al que analizamos. (un
nuevo problema se aparea con casos similares guardados en la base de
casos)

REUTILIZAR la información y el conocimiento que tenemos en este caso
para resolver el problema.

REVISAR la solución propuesta. (en caso de ser necesario)

RETENER o ALMACENAR las partes de esta experiencia que nos puedan
ser útiles para la resolución de futuros problemas.
Cuando nos encontramos delante de un nuevo problema para el cual tenemos que
dar una solución lo que primer que tenemos que hacer es dado ese determinado
problema recordar los casos relevantes que pueden solucionarlo. Estos casos
relevantes tendrán que ser una selección de aquellos casos de los que
disponemos en la base de conocimiento del sistema experto.
56
Michael Lebowitz, "Memory-Based Parsing," Artificial Intelligence 21 (1983), 363-404.
Bill Mark, "Case-Based Reasoning for Autoclave Management," Proceedings of the Case-Based Reasoning
Workshop (1989).
58
Trung Nguyen, Mary Czerwinski, and Dan Lee, "COMPAQ QuickSource: Providing the Consumer with
the Power of Artificial Intelligence," in Proceedings of the Fifth Annual Conference on Innovative
Applications of Artificial Intelligence (Washington, DC: AAAI Press, 1993), 142-151.
59
Documento en línea: URL (http://es.wikipedia.org/wiki/Case-based_reasoning)
57
37
Una vez tenemos este conjunto de casos que guardan una serie de similitudes con
el caso para el cual se propone una solución lo que se tiene que hacer es adaptar
la solución de todos esos problemas, en su globalidad o solamente en alguna de
sus partes que nos interese para transformar el contexto de esos problemas en el
problema que tenemos actualmente.
Este es un proceso circular en el que reutiliza diversos casos de la base de
conocimiento, se revisa la solución y si no es factible se vuelve a modificar con la
inclusión o la eliminación de los casos que fuesen incorrectos o añadiendo
aquellos que faltasen para perfeccionar la solución.
Finalmente el último paso es la retención. Después de que la solución haya sido
adaptada satisfactoriamente para solucionar el problema dado, almacenaríamos la
experiencia resultante como un nuevo caso en la memoria.
Lección 35
7.6 Redes Neuronales Artificiales
Una red neuronal consiste en simular las propiedades observadas en los sistemas
neuronales biológicos a través de modelos matemáticos recreados mediante
mecanismos artificiales (como un circuito integrado, un ordenador o un conjunto
de válvulas). El objetivo es conseguir que las máquinas den respuestas similares a
las que es capaz de dar el cerebro que se caracterizan por su generalización y su
robustez60.
Figura 3.18. Perceptrón con 2 entradas
Una red neuronal se compone de unidades llamadas neuronas. Cada neurona
recibe una serie de entradas a través de interconexiones y emite una salida. Esta
salida viene dada por tres funciones:
Una función de propagación (también conocida como función de excitación), que
por lo general consiste en una sumatoria de cada entrada multiplicada por el peso
de su interconexión (valor neto). Si el peso es positivo, la conexión se denomina
excitatoria; si es negativo, se denomina inhibitoria.
Una función de activación, que modifica a la anterior. Puede no existir, siendo en
este caso la salida la misma función de propagación.
60
Tomado de: http://es.wikipedia.org/wiki/Red_neuronal_artificial
38
Una función de transferencia, que se aplica al valor devuelto por la función de
activación. Se utiliza para acotar la salida de la neurona y generalmente viene
dada por la interpretación que queramos darle a dichas salidas. Algunas de las
más utilizadas son la función sigmoidea (para obtener valores en el intervalo [0,1])
y la tangente hiperbólica (para obtener valores en el intervalo [-1,1]).
7.6.1. Ventajas
Las redes neuronales artificiales (RNA) tienen varias ventajas debido a que se
basan en la estructura del sistema nervioso, principalmente el cerebro.





Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa
que se llama etapa de aprendizaje. Esta consiste en proporcionar a la RNA
datos como entrada a su vez que se le indica cuál es la salida (respuesta)
esperada.
Auto organización: Una RNA crea su propia representación de la
información en su interior, descargando al usuario de esto.
Tolerancia a fallos: Debido a que una RNA almacena la información de
forma redundante, ésta puede seguir respondiendo de manera aceptable
aun si se daña parcialmente.
Flexibilidad: Una RNA puede manejar cambios no importantes en la
información de entrada, como señales con ruido u otros cambios en la
entrada (ej. si la información de entrada es la imagen de un objeto, la
respuesta correspondiente no sufre cambios si la imagen cambia un poco
su brillo o el objeto cambia ligeramente)
Tiempo real: La estructura de una RNA es paralela, por lo cuál si esto es
implementado con computadoras o en dispositivos electrónicos especiales,
se pueden obtener respuestas en tiempo real.
39
CAPITULO 8. LENGUAJES UTILIZADOS
Lección 36
8.1 Lenguajes utilizados en la construcción de SE
8.1.1. LISP
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.61
LISP 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;
a. Primero, es altamente flexible, es decir, es posible escribir un programa LISP
para producir cualquier comportamiento deseable de la computadora.
b. 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 y hacer que ese programa
forme parte de su LISP personal.
LISP utiliza un ciclo llamado leer – evaluar – imprimir. Cuando el programador
teclea algo en LISP, el lenguaje toma lo que se ha tecleado, intenta responder de
cualquier forma y después despliega dicha respuesta en la pantalla.



Leer en LISP, es el termino usado para ver lo que se ha tecleado.
Evaluar, es el término usado para tratar de responder de cualquier forma
Imprimir, es el término usado para .desplegar la respuesta en la pantalla.
Si hubiera una persona en vez de una máquina en frente del programador,
diríamos que dicha persona estaría escuchando, comprendiendo y respondiendo
al programador.
LISP utiliza los siguientes conceptos característicos:


61
Listas y Átomos. La estructura más importante es la lista. Los átomos
pueden subordinarse a cualidades.
La Función. Cada función LISP y cada programa LISP tiene estructura
de lista. Los programas no pueden distinguirse sintácticamente de los
datos. LISP ofrece sus propias funciones básicas.
HASEMER, Tony y John Domingue. Common LISP Programming for Artificial Inteligence.
1


Forma de Trabajo. LISP es un lenguaje funcional. Ofrece la posibilidad
de realizar definiciones recursivas de funciones. La unión de
procedimientos se realiza de forma dinámica, es decir en plena
ejecución, no como en otros lenguajes de programación. El sistema
realiza automáticamente una gestión dinámica de memoria.
Los átomos son números, cadenas de caracteres o símbolos. Un
símbolo puede tener varios valores, al igual que una variable en otros
lenguajes de programación, como por ejemplo un número, o también
puede ser el nombre de una función, o incluso ambos. Además a un
símbolo se le pueden subordinar cualidades, que además del valor del
símbolo, contienen información adicional. Estas cualidades también
reciben el nombre de atributos.
Un componente importante de un sistema LISP es la gestión dinámica de la
memoria. El sistema administrará el espacio en la memoria para las listas en
constante modificación, sin que el usuario lo deba solicitar. Libera los espacios de
memoria que ya no son necesarios y los pone a disposición de usos posteriores.
La necesidad de este proceso se deriva de la estructura básica de LISP, las listas,
que se modifican de forma dinámica e ilimitada.
Además un sistema LISP abarca bastante más que el solo intérprete del lenguaje
LISP. Consta de algunos cómodos módulos que ofrecen ayuda en el desarrollo y
control del progreso en programas, como son el Editor, el File-System y el Trace.
Por supuesto estos módulos sólo están en versiones de LISP que contengan la
conocida interfaz gráfica IDE (entorno de desarrollo integrado) típica de los
modernos lenguajes visuales.
8.1.2. CLIPS
CLIPS es otra herramienta para el desarrollo de S. 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.62
8.1.3. 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
62
BAÑARES, José Ángel. Herramientas para las asignaturas del IAIC.
URL(http://diana.cps.unizar.es/IA/noticias.html)
2
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”.
Prolog nació en Europa, y fue implementado primeramente para dar soporte al
Procesamiento del Lenguaje Natural (PLN). Prolog trabajaba (y sigue haciéndolo
hasta nuestros días) esencialmente con la lógica matemática. Bratko completa el
comentario afirmando que Prolog nació de una idea de programación lógica que
emergió a principios de 1970, para usar la lógica como un lenguaje de
programación.
Prolog tiene cierto vigor híbrido en el sentido de que contiene características
declarativas de la lógica computacional matemática y algunos aspectos
procedurales de la programación convencional. En vez de escribir un
procedimiento con una secuencia de pasos, un programador Prolog escribe un
conjunto declarativo de reglas y hechos con sus respectivas relaciones. Debido a
esto, los diagramas de flujos y las técnicas convencionales de programación no
aplican en Prolog.
Walker afirma que niños de 10 años de edad encuentran a Prolog como un
lenguaje sencillo de aprender. Pero los programadores profesionales con muchos
años de experiencia a menudo lo encuentran revuelto y confuso. Lo revuelto de
Prolog es su simplicidad y que no tiene las características más comunes de los
lenguajes procedimentales.
Entre tales características con las que no cuenta Prolog se encuentran:




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.
3
8.1.4. Smalltalk
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 tiempo63.
8.1.5. 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.
No hay una sola técnica de IA que no pueda ser desarrollada en un lenguaje
procedimental como lo es C. De hecho, el desarrollo de ciertas rutinas es en
verdad más claro en C que un lenguaje de IA.
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 IA64.
Lección 37
8.2 Herramientas y SHELLS utilizados en la construcción de SE
Inicialmente cada SE que se creaba, se construía a partir de un lenguaje de IA tal
como LISP. Pero después de que muchos sistemas expertos 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.
63
64
TELLO, Ernest. Op. cit.
SCHILDT Herbert. Op. cit.
4
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. 65
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,
se describen a continuación.
8.2.1. 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.
8.2.2. ART
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.66
8.2.3. 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:
65
66
RICH Elaine y Kevin Knight. Op. cit.
TELLO Ernest. Op. cit.
5
El paradigma orientado a objetos, el paradigma basado en reglas, el paradigma
orientado a accesos y el paradigma procedural normal. Como cualquier otro.
8.2.4. 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.
8.2.5. 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.
8.2.6. 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.67
67
VALDIVIA Rosas, David. Sistemas Expertos.
URL(http://www.fortunecity.com/skycraper/romrow/207/se/Portada.html)
6
Lección 38
8.3 Representación del conocimiento
El conocimiento es la comprensión adquirida, implica aprendizaje, conciencia y
familiaridad con una o más materias; el conocimiento se compone de ideas,
conceptos, hechos y figuras, teorías, procedimientos y relaciones entre ellos, y
formas de aplicar los procedimientos a la resolución práctica de problemas.
El conocimiento que ha de funcionar en un SE es el conocimiento heurístico; el
conocimiento heurístico es aquel conocimiento que ayuda a las personas u
ordenadores a aprender, es el uso de los conocimientos empíricos. Las reglas de
pensamiento, los trucos, los procedimientos o cualquier tipo de información que
nos ayuda en la resolución de problemas.
La representación del conocimiento es un esquema o dispositivo utilizado para
capturar los elementos esenciales del dominio de un problema. Una
representación manipulable es aquella que facilita la computación. En
representaciones manipulables, la información es accesible a otras entidades que
usan la representación como parte de un cómputo.
Debido a la variedad de formas que el conocimiento puede asumir, los problemas
involucrados en el desarrollo de una representación del conocimiento son
complejos, interrelacionados y dependientes del objetivo. En términos generales,
el conocimiento debe estar representado de tal forma que:





Capture generalizaciones.
Pueda ser comprendido por todas las personas que vayan a proporcionarlo
y procesarlo.
Pueda ser fácilmente modificado.
Pueda ser utilizado en diversas situaciones aún cuando no sea totalmente
exacto o completo.
Pueda ser utilizado para reducir el rango de posibilidades que usualmente
debería considerarse para buscar soluciones.
El conocimiento declarativo puede ser representado con modelos relacionales y
esquemas basados en lógica. Los modelos relacionales pueden representar el
conocimiento en forma de árboles, grafos o redes semánticas. Los esquemas de
representación lógica incluyen el uso de lógica proposicional y lógica de
predicados.
Los modelos procedimentales y sus esquemas de representación almacenan
conocimiento en la forma de cómo hacer las cosas. Pueden estar caracterizados
7
por gramáticas formales, usualmente implantadas por sistemas o lenguajes
procedimentales y sistemas basados en reglas (sistemas de producción). 68
En forma natural, el ser humano representa el conocimiento simbólicamente:
imágenes, lenguaje hablado y lenguaje escrito. Adicionalmente, ha desarrollado
otros sistemas de representación del conocimiento: literal, numérico, estadístico,
estocástico, lógico.
La ingeniería cognoscitiva ha adaptado diversos sistemas de representación del
conocimiento que, implantados en un computador, se aproximan mucho a los
modelos elaborados por la psicología cognoscitiva para el cerebro humano.
Tradicionalmente la representación del conocimiento conlleva el uso de marcos
(frames), redes semánticas, cálculo de predicados o sistemas de producción69. Sin
embargo, existen otros sistemas para la representación del conocimiento. Entre
los principales sistemas se tienen:
Lógica Simbólica Formal:
 Lógica proposicional
 Lógica de predicados.
 Reglas de producción.
Formas Estructuradas:
 Redes asociativas.
 Estructuras frame.
 Representación orientada a objetos.
8.4 Lógica Proposicional
La lógica proposicional es la más antigua y simple de las formas de lógica.
Utilizando una representación primitiva del lenguaje, permite representar y
manipular aserciones sobre el mundo que nos rodea. La lógica proposicional
permite el razonamiento a través de un mecanismo que primero evalúa sentencias
simples y luego sentencias complejas, formadas mediante el uso de conectivos
proposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determina la
veracidad de una sentencia compleja, analizando los valores de veracidad
asignados a las sentencias simples que la conforman.
La lógica proposicional permite la asignación de un valor verdadero o falso para la
sentencia completa, pero no tiene la facilidad de analizar las palabras individuales
que componen la sentencia.
68
ARTEAGA, René y Juan Carlos Armijos. Tutorial de programación Heurística. URL(www.uc3m.es/cgibin/nph-count)
69
DE ALBORNOZ Bueno, Álvaro. Laboratorio de procesamiento de imágenes.
URL(http://www.cic.ipn.mx/organizacion/lab_de_int_art.htm)
8
La principal debilidad de la lógica proposicional es su limitada habilidad para
expresar conocimiento.
8.5 Lógica de Predicados
Existen varias sentencias complejas que pierden mucho de su significado cuando
se les representa en lógica proposicional. Por esto se desarrolló una forma lógica
más general, capaz de representar todos los detalles expresados en las
sentencias, esta es la lógica de predicados.
La lógica de predicados está basada en la idea de que las sentencias realmente
expresan relaciones entre objetos, así como también cualidades y atributos de
tales objetos. Los objetos pueden ser personas, objetos físicos, o conceptos. Tales
cualidades, relaciones o atributos, se denominan predicados. Los objetos se
conocen como argumentos o términos del predicado.
Al igual que las proposiciones, los predicados tienen un valor de veracidad, pero a
diferencia de las proposiciones, su valor de veracidad, depende de sus términos.
Es decir, un predicado puede ser verdadero para un conjunto de términos, pero
falso para otro.
8.5.1. Ventajas y desventajas de la lógica de predicados
A continuación se presentan algunos aspectos característicos de la lógica de
predicados y su implementación computacional, el lenguaje de programación
PROLOG:



Manejo de incertidumbre. Una de las mayores desventajas de la lógica de
predicados es que sólo dispone de dos niveles de veracidad: verdadero y
falso. Esto se debe a que la deducción siempre garantiza que la inferencia
es absolutamente verdadera. Sin embargo, en la vida real no todo es
blanco y negro. En cierta forma el PROLOG ha logrado mitigar esta
desventaja, permitiendo la inclusión de factores de certeza.
Razonamiento monotónico. La lógica de predicados al ser un formalismo
de razonamiento monótono, no resulta muy adecuada para ciertos dominios
del mundo real, en los cuales las verdades pueden cambiar con el paso del
tiempo. PROLOG compensa esta deficiencia proporcionando un
mecanismo para remover los hechos de la base de datos. Por ejemplo, en
TURBO PROLOG se tiene la cláusula RETRACTALL.
Programación declarativa. La lógica de predicados, tal como está
diseñada en PROLOG, es un lenguaje de programación declarativo, en
donde el programador sólo necesita preocuparse del conocimiento
expresado en términos del operador de implicación y los axiomas. El
mecanismo deductivo de la lógica de predicados llega a una respuesta (si
esto es factible), utilizando un proceso exhaustivo de unificación y
búsqueda. A pesar de que la búsqueda exhaustiva puede ser apropiada en
9
muchos problemas, también puede introducir ineficiencias durante la
ejecución. Para lograr un cierto control en el proceso de búsqueda,
PROLOG ofrece la operación de corte, CUT. Cuando no se utiliza el CUT,
PROLOG se convierte en un lenguaje puramente declarativo.
Lección 39
8.6 Reglas de Producción
La Representación del conocimiento en forma de reglas de producción fue
propuesta por Post en 1943. La regla es la forma más común de representar el
conocimiento, debido a su gran sencillez y a que es la formulación más inmediata
del principio de causalidad. Una regla consta de un conjunto de acciones o efectos
(una o más) que son ciertas cuando se cumplen un conjunto de condiciones o
causas. La potencia de una regla está en función de la lógica que admita en las
expresiones de las condiciones y de las conclusiones.
La conclusión se suele referir a la creación de un nuevo hecho válido, o la
incorporación de una nueva característica a un hecho, mientras que la acción
suele referirse a la transformación de un hecho.
8.6.1. Ventajas y desventajas de las reglas de producción
Las ventajas que representan las reglas de producción son su carácter declarativo,
su sencillez, su uniformidad - que permite la representación de conocimiento como
de meta-conocimiento -, su independencia - que permite la supresión o inclusión
sin que se vea afectado el resto de la base de conocimientos - y su modularidad al
ser fácilmente agrupables.
La principal desventaja que presentan las reglas de producción, es la dificultad de
establecer relaciones, para lo cual hay que recurrir al uso de meta reglas, lo que
produce el crecimiento muy rápido del número de reglas, lo que hace lento el
proceso de inferencia y conduce a la introducción repeticiones y lo que es peor,
contradicciones.70
8.7 Redes Asociativas
Las redes semánticas o redes asociativas, fueron originalmente desarrolladas para
representar el significado o semántica de oraciones en inglés, en términos de
objetos y relaciones. Actualmente, el término redes asociativas ya no sólo se usa
para representar relaciones semánticas, sino también para representar
asociaciones físicas o causales entre varios conceptos u objetos.
Las redes asociativas se caracterizan por representar el conocimiento en forma
gráfica. Agrupan una porción de conocimiento en dos partes: objetos y relaciones
70
BRATKO Ivan. Prolog programming for Articial Intelligence.
10
entre objetos. Los objetos se denominan también nodos (elementos del
conocimiento) y las relaciones entre nodos se denominan enlaces o arcos. Cada
nodo y cada enlace en una red semántica, deben estar asociados con objetos
descriptivos.
Estas redes son muy apropiadas para representar conocimiento de naturaleza
jerárquica. Su concepción se basa en la asociación de conocimientos que realiza
la memoria humana. Las principales aplicaciones son: comprensión de lenguaje
natural, bases de datos deductivas, visión por computadora y sistemas de
aprendizaje.71
8.7.1. Ventajas y desventajas de las Redes Asociativas
Las redes asociativas tienen dos ventajas sobre los sistemas basados en reglas y
sobre los sistemas basados en lógica:


Permiten la declaración de importantes asociaciones, en forma explícita.
Debido a que los nodos relacionados están directamente conectados, y no
se expresan las relaciones en una gran base de datos, el tiempo que toma
el proceso de búsqueda por hechos particulares puede ser
significativamente reducido.
Entre las desventajas de las redes asociativas, se pueden mencionar:



No existe una interpretación normalizada para el conocimiento expresado
por la red. La interpretación de la red depende exclusivamente de los
programas que manipulan la misma.
La dificultad de interpretación a menudo puede derivar en inferencias
inválidas del conocimiento contenido en la red.
La exploración de una red asociativa puede derivar en una explosión
combinatoria del número de relaciones que deben ser examinadas para
comprobar una relación.72
Lección 40
8.8 Estructuras frame
Una plantilla (frame) es una estructura de datos apropiada para representar una
situación estereotípica. Las plantillas organizan el conocimiento en objetos y
eventos que resultan apropiados para situaciones específicas. La evidencia
psicológica sugiere que la gente utiliza grandes plantillas para codificar el
conocimiento de experiencias pasadas, o conocimiento acerca de cosas que se
encuentran comúnmente, para analizar y explicar una situación nueva en su
cotidiana actividad cognoscitiva.
71
72
ANGULO Usategui, José María y Anselmo del Moral Bueno. Guía fácil de la inteligencia artificial.
ARTEAGA, René y Juan Carlos Armijos. Op. cit.
11
Una plantilla representa un objeto o situación describiendo la colección de
atributos que posee. Cada plantilla está formada por un nombre y por una serie de
campos de información o ranuras (slots). Cada ranura puede contener uno o más
enlaces (facets). Cada enlace tiene un valor asociado. Varios enlaces pueden ser
definidos para cada ranura, por ejemplo:



Rango. El conjunto de posibles valores para la ranura.
Valor. El valor de la ranura.
Default. El valor a ser asumido si no se especifica alguno.
Además los enlaces pueden ser procedimientos que residen en la base de datos y
están aguardando para ser utilizados cuando se les necesite. Entre los más
comunes se pueden mencionar:



Si-Necesitado. Procedimiento(s) para determinar el valor actual de una
ranura.
Si-Agregado. Procedimiento(s) a ejecutarse cuando un valor es
especificado para una ranura.
Si-Modificado. Procedimiento(s) a ejecutarse si el valor de una ranura es
cambiado.
A estos procedimientos también se los denomina demons y representan un
concepto poderoso en las plantillas, esto es, la habilidad de combinar
conocimiento procedimental dentro de la estructura de conocimiento declarativo de
la plantilla. Esto sugiere que una plantilla puede ser un medio poderoso de
representación del conocimiento, especialmente si se la incorpora en una red de
plantillas.73
8.8.1. Ventajas y desventajas de los frames
Las ventajas que se pueden establecer para los sistemas basados en plantillas
son las siguientes:



73
Facilidad de proceso guiado por las expectativas. Un sistema basado en
plantillas, mediante los demons es capaz de especificar acciones que
deben tener lugar cuando ciertas condiciones se han cumplido durante el
procesamiento de la información.
El conocimiento que posee un sistema basado en plantillas es
significativamente más estructurado y organizado que el conocimiento
dentro de una red asociativa.
Las plantillas pueden ser estructuradas de tal forma que sean capaces de
determinar su propia aplicabilidad en determinadas situaciones. En el caso
BENCHIMOL, Guy, Pierre Levine y Jean Charles Promerol. Los sistemas expertos en la empresa.
12

de que una plantilla en particular no sea aplicable, puede sugerir otras
plantillas que pueden ser apropiadas para la situación.
Se puede fácilmente almacenar en las ranuras valores dinámicos de
variables, durante la ejecución de un sistema basado en conocimiento. Esto
puede ser particularmente útil para aplicaciones de simulación,
planeamiento, diagnóstico de problemas o interfaces para bases de datos.
Las principales desventajas que se pueden establecer para la representación del
conocimiento mediante plantillas, son:



Dificultad de representar objetos que se alejen considerablemente de
estereotipos.
No tiene la posibilidad de acomodarse a situaciones u objetos nuevos.
Dificultad para describir conocimiento heurístico que es mucho más
fácilmente representado mediante reglas.
8.9 Representación orientada a objetos
Los objetos, son similares a las plantillas. Ambos sirven para agrupar
conocimiento asociado, soportan herencia, abstracción y el concepto de
procedimientos agregados. La diferencia radica en lo siguiente:
1. En las plantillas, a los programas y a los datos se los trata como dos
entidades relacionadas separadas. En cambio en los objetos se crea una
fuerte unidad entre los procedimientos (métodos) y los datos.
2. Los demons de las plantillas sirven sólo para computar valores para las
diversas ranuras o para mantener la integridad de la base de conocimientos
cada vez que una acción de alguna plantilla, afecta a otra. En cambio, los
métodos utilizados por los objetos son más universales ya que
proporcionan cualquier tipo general de computación requerida y además
soportan encapsulamiento y polimorfismo.
Un objeto es definido como una colección de información que representa una
entidad del mundo real y una descripción de cómo debe ser manipulada esta
información, esto es, los métodos. Es decir, un objeto tiene un nombre, una
caracterización de clase, varios atributos distintivos y un conjunto de operaciones.
La relación entre los objetos viene definida por los mensajes. Cuando un objeto
recibe un mensaje válido, responde con una acción apropiada, retornando un
resultado.
8.9.1. Ventajas y desventajas de la representación orientada a objetos
Los objetos, como forma de representación del conocimiento ofrecen las
siguientes ventajas:

Poder de abstracción.
13





Encapsulamiento o capacidad de esconder información.
Herencia, es decir pueden recibir características de sus ancestros.
Polimorfismo, que permite crear una interfaz común para todos los diversos
objetos utilizados dentro del dominio.
Posibilidad de reutilización del código.
Mayor facilidad para poder trabajar eficientemente con sistemas grandes.
Las desventajas son similares a las que se indicaron para las plantillas:


8.10
Dificultades para manejar objetos que se alejan demasiado de la norma.
Dificultades para manejar situaciones que han sido encontradas
previamente.
ACTIVIDADES COMPLEMENTARIAS
1. Realice un cuadro comparativo de los diferentes lenguajes
programación utilizados en la construcción de SE.
2. En que consiste la lógica proposicional y la lógica de predicados,¿Cual
su uso en las SE?
3. Realice un cuadro comparativo destacando las ventajas y desventajas
la lógica de predicados y la lógica proposicional.
4. ¿Que es una regla de producción y como son aplicadas en los SE?
5. ¿Que es un Frame? y que ventajas y desventajas traen al ser utilizados
la construcción de SE
de
es
de
en
14
CAPITULO 9. INTRODUCCIÓN A PROLOG
Lección 41
9.1 Conceptos Básicos
PROLOG es un lenguaje de programación para la creación de sistemas
inteligentes y trabaja mediante reglas o programación lógica relacional, fue creado
para representar y utilizar el conocimiento que se tiene sobre un determinado
dominio, donde el dominio es un conjunto de objetos y el conocimiento se
representa por un conjunto de relaciones que describen las propiedades de los
objetos y sus interrelaciones; la extensión de los archivos en prolog es .pl74
9.1.1 Hechos
Expresan relaciones entre objetos. Suponga que se quiere expresar el hecho de
que "un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y
"ruedas", y de una relación llamada "tiene". La forma de representarlo en
PROLOG es:
tiene(coche,ruedas).
// en esta relación se denota una existencia de tenencia //entre coche y ruedas,
prolog en este punto no conoce quien es el coche, somos nosotros quienes le
damos esa interpretación, prolog solamente se encarga de //crear una relación en
su base del conocimiento.



Los nombres de objetos y relaciones deben comenzar con una letra
minúscula.
Primero se escribe la relación, y luego los objetos separados por comas y
encerrados entre paréntesis.
Al final de un hecho debe ir un punto (el carácter ".").
El orden de los objetos dentro de la relación es arbitrario, pero hay que ser
coherentes a lo largo de la base de hechos.
9.1.2 Variables
Representan objetos que el mismo PROLOG determina. Las variables son
cadenas de letras, dígitos y el signo '_'. Estas empiezan con una letra mayúscula o
el símbolo '_': Una variable puede estar instanciada o no instanciada. Esta
instanciada cuando existe un objeto determinado representado por la variable. De
este modo, cuando preguntamos "Un coche tiene X ?", PROLOG busca en los
hechos cosas que tiene un coche y respondería:
X = ruedas.
74
Tomado de: http://fcqi.tij.uabc.mx/docentes/ardiaz/conceptos.html
15
instanciando la variable X con el objeto ruedas.

Los nombres de variables comienzan siempre por una letra mayúscula.
Un caso particular es la variable anónima, representada por el carácter subrayado
("_"). Es una especie de comodín que utilizaremos en aquellos lugares que
debería aparecer una variable, pero no nos interesa darle un nombre concreto ya
que no vamos a utilizarla posteriormente.
La regla: para toda X, X tiene un hijo si X es el padre de alguna Y.
hijo(X) :- padre (X,Y).
Si se está definiendo la propiedad hijo el cual, no depende del nombre del hijo.
Entonces, aquí hay un lugar en donde se puede usar una variable anónima.
hijo(X) :- padre(X,_).
9.1.3 Reglas
Las reglas se utilizan en PROLOG para significar que un hecho depende de uno o
más hechos. Son la representación de las implicaciones lógicas del tipo p → q (p
implica q).




Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-".
La cabeza esta formada por un único hecho.
El cuerpo puede ser uno o más hechos (conjunción de hechos), separados
por una coma (","), que actúa como el "y" lógico.
Las reglas finalizan con un punto (".").
La cabeza en una regla PROLOG corresponde al consecuente de una implicación
lógica, y el cuerpo al antecedente. Este hecho puede conducir a errores de
representación. Supongamos el siguiente razonamiento lógico:
tiempo(lluvioso) → suelo(mojado)
suelo(mojado)
Que el suelo esta mojado, es una condición suficiente de que el tiempo sea
lluvioso, pero no necesaria. Por lo tanto, a partir de ese hecho, no podemos
deducir mediante la implicación, que esta‚ lloviendo (pueden haber regado las
calles). La representación “correcta” en PROLOG, sería:
suelo(mojado) :- tiempo(lluvioso).
suelo(mojado).
16
Cabe señalar que la regla esta "al revés". Esto es así por el mecanismo de
deducción hacia atrás que emplea PROLOG. Si cometiéramos el “error” de
representarla como:
tiempo(lluvioso) :- suelo(mojado).
suelo(mojado).
PROLOG, partiendo del hecho de que el suelo esta mojado, deduciría
incorrectamente que el tiempo es lluvioso.
Para generalizar una relación entre objetos mediante una regla, utilizaremos
variables. Por ejemplo:
Representación lógica | Representación PROLOG
Es un coche(X) → | tiene(X,ruedas) :
tiene(X,ruedas) | es un coche(X).
Con esta regla generalizamos el hecho de que cualquier objeto que sea un coche,
tendrá ruedas. Al igual que antes, el hecho de que un objeto tenga ruedas, no es
una condición suficiente de que sea un coche. Por lo tanto la representación
inversa sería incorrecta.
9.1.4 Comentarios
Cuando se quiere hacer un comentario que cuenta con más de una línea, se hace
de la siguiente manera:
/* Comentario x Comentario y */
Si el comentario es de una solo línea simplemente se antecede el signo de % al
comentario. Es importante saber que los comentarios no tienen efecto en la
ejecución del programa.
% Comentario
9.1.5 El ámbito de las variables.
Cuando en una regla aparece una variable, el ámbito de esa variable es
Únicamente esa regla. Supongamos las siguientes reglas:
(1) hermana_de(X,Y) :- hembra(X), padres(X,M,P), padres(Y,M,P).
(2) puede_robar(X,P) :- ladron(X), le_gusta_a(X,P), valioso(P).
Aunque en ambas aparece la variable X (y la variable P), no tiene nada que ver la
X de la regla (1) con la de la regla (2), y por lo tanto, la instanciación de la X en (1)
no implica la instanciación en (2). Sin embargo todas las X de *una misma regla* si
que se instanciaran con el mismo valor.
17
Lección 42
9.1.6 Operadores
Son predicados predefinidos en PROLOG para las operaciones matemáticas
básicas. Su sintaxis depende de la posición que ocupen, pudiendo ser infijos o
prefijos. Por ejemplo el operador suma ("+"), podemos encontrarlo en forma prefija
'+(2,5)' o bien infija, '2 + 5'.
9.1.6.1 Aritméticos
Todas las versiones de Prolog soportan los siguientes operadores aritméticos,
listados en el orden de prioridad de ejecución.
 +  SUMA
 -  RESTA
 *  MULTIPLICACIÓN
 /  DIVISIÓN
 //  DIVISION ENTERA
 MOD  RESIDUO
 ^  POTENCIA
Los paréntesis se pueden utilizar para dar preferencia de ejecución en una
expresión compuesta. Prolog utiliza la precedencia de operadores con la regla de
la mano izquierda.
A continuación se muestran algunas operaciones más complejas que PROLOG
provee:
Tabla 9.1 Otros operadores que soporta prolog
Operación
9.1.6.2
Descripción
Sqrt(X)
Calcula la raíz cuadrada de la variable
log(X)
Calcula el logaritmo de X
ln(X)
Calcula el logaritmo natural de X
abs(B)
Regresa el valor absoluto de B
sin(T)
Seno de T
cos(A)
Coseno de A
tan(C)
Tangente de C
Relacionales
También dispone de predicados de igualdad y desigualdad.
18








=  IGUAL QUE (X = Y igual)
>  MAYOR QUE (X < Y menor) (X > Y mayor)
>=  MAYOR O IGUAL QUE (X <= Y)
>=  MENOR O IGUAL QUE (X >= Y)
<>  DESIGUAL QUE
=/=  DIFERENTE QUE (X \= Y distinto)
is  EVALUADOR DE EXPRESIÓN
seed  GENERADOR DE NÚMEROS ALEATORIOS
Al igual que en otros lenguajes de programación es necesario tener en cuenta la
precedencia y la asociatividad de los operadores antes de trabajar con ellos.
En cuanto a precedencia, es la típica. Por ejemplo, 3+2*6 se evalúa como 3+(2*6).
En lo referente a la asociatividad, PROLOG es asociativo por la izquierda. Así,
8/4/4 se interpreta como (8/4)/4. De igual forma, 5+8/2/2 significa 5+((8/2)/2).
El operador 'is'.
Es un operador infijo, que en su parte derecha lleva un término que se interpreta
como una expresión aritmética, contrastándose con el término de su izquierda.
Por ejemplo, la expresión '6 is 4+3.' es falsa. Por otra parte, si la expresión es 'X is
4+3.', el resultado será la instanciación de X:
X=7
Una regla PROLOG puede ser esta:
densidad(X,Y) :- población(X,P), área(X,A), Y is P/A.
Algunos comandos básicos
* consult.
El predicado _consult_ esta pensado para leer y compilar un programa PROLOG o
bien para las situaciones en las que se precise añadir las cláusulas existentes en
un determinado fichero a las que ya están almacenadas y compiladas en la base
de datos. Su sintaxis puede ser una de las siguientes:
consult(fichero).
consult('fichero.ext').
consult('c:\ia\prolog\fichero').
* recon.
19
El predicado recon es muy parecido a consult, con la salvedad de que las
cláusulas existentes en el fichero consultado, reemplazan a las existentes en la
base de hechos. Puede ser útil para sustituir una única cláusula sin consultar
todas las demás, situando esa cláusula en un fichero. Su sintaxis es la misma que
la de consult.
*forget.
Tiene como fin eliminar de la base de datos actual aquellos hechos consultados de
un fichero determinado. Su sintaxis es:
forget(fichero).
* exitsys.
Este predicado nos devuelve al sistema operativo.
9.1.7 Predicados
Un predicado es la relación directa con una expresión. Cada predicado usado en
una cláusula de Prolog debe ser declarado, basado en la declaración de los tipos
de dominios para cada uno de los nombres de los objetos.
paciente(nombre, edad, peso, presion_sanguínea).
mercado(encargado, vendedor).
9.1.8 Estructuras
Los objetos estructurados (o simplemente estructuras) son objetos que tienen
varios componentes. Los componentes pueden ser a su vez estructuras. Por
ejemplo, la fecha, puede ser vista como una estructura con 3 componentes: día,
mes y año. Las estructuras son tratadas en el programa como objetos simples,
aunque estén formadas por muchos componentes. El orden en que se combinan
los componentes dentro de un objeto simple, es la forma en que escogemos una
functor. Un functor conveniente para nuestro ejemplo es fecha. Entonces la fecha
1o. de Enero 1975 puede escribirse:
fecha(1, enero, 1975)
Todos los componentes en este ejemplo son constantes (2 enteros y un átomo).
En la siguiente figura vemos como se representa en forma de árbol, y a su vez
cómo está escrito en Prolog:
Ahora bien, cualquier día de enero de 1975 puede representarse mediante la
estructura:
fecha(Día, enero, 1975)
Donde Día es una variable que puede ser instanciada por cualquier objeto en
cualquier momento de la ejecución del programa. Sintácticamente, todos los
objetos de datos en Prolog son términos. Por ejemplo, enero y date(1,enero,1975)
son términos.
20
9.1.9 Consultas
Para plantear una consulta en Prolog, el usuario simplemente prueba ésta, para
ver si ésta es verdadera. Si la prueba es positiva, Prolog contesta: YES, de lo
contrario responde NO, o también se usa TRUE o FALSE, dependiendo del
programa que se use para la programación.
lenguaje. paciente ("ana", femenino). yes
9.1.10 Cláusulas y Relaciónes
La programación lógica está basada en la noción de relación. Debido a que en la
relación es un concepto más general de una aplicación. La programación lógica es
potencialmente de alto nivel. Considerar 2 conjuntos de valor S y T, R es la
Relación entre S y T, para toda X que pertenece a S y Y que pertenece a T y
R(X,Y) es verdadero o falso. Dado a, determinar el valor m(a). En la programación
Lógica se implementa las relaciones. Sea R una relación:
Dado a y b, determinar cuando R(a,b) es verdadero.
Dado a, encontrar todos los Y/R(a,y) es verdadero.
Dado b, encontrar todos los X/R(x,b) es verdadero.
Encontrar X y Y/R(x,y) es verdadero.
9.1.10.1 Tipos de Relaciones
Si R(x) entonces relación unitaria.
Si R(x ,y) entonces relación binaria.
Si R(x, y, z) entonces relación ternaria.
Un programa en PROLOG define una colección de relaciones. Cada relación es
definida por una o más cláusulas.
9.1.10.2 Interpretación de una Cláusula en Prolog
A:- A1,...,An.
:-  Es equivalente "Si" o "si".
,  Es equivalente "AND".
;  Es equivalente a "OR"
Lección 43
9.2 Construcción de reglas de producción en Prolog
La estructura de una regla en PROLOG es la siguiente:
consecuente :- condicion1, condicion2, ..., condicionN.
La cual se lee: El Consecuente es verdadero si y solo si las n condiciones
especificadas a la izquierda del símbolo :- son todas verdaderas, pues la coma
representa la conjunción lógica. Así el consecuente representa la consecuencia de
la veracidad de las condiciones mencionadas.
21
Según esta estructura las reglas se pueden dividir en tres partes:
 Cabeza: El consecuente
 Cuello: El símbolo : Cuerpo: la conjunción de las n condiciones
Existen dos tipos de reglas fundamentales:
 Hechos o Axiomas, reglas que representan un elemento cuya veracidad se
admite sin necesidad de verificar ninguna condición, dentro del universo de
trabajo elegido. Por lo tanto no poseen cuerpo.
 Reglas de Producción o reglas normales que sí necesitan de cierta
verificación para asegurar su veracidad.
Por ejemplo el conjunto de cláusulas para decir que “si X es catedrático entonces
X es doctor” y “si (X es jefe_dpto) entonces (x es catedrático)” se codifica en
PROLOG.
(1) catedratico(X) :-jefe(X).
(2) doctor(X) :- catedratico(X).
(3) catedratico("Ivan Gonzalez").
(4) catedratico("Diana Cardona").
(5) jefe("Angel Cruz").
La regla (1) y (2) son reglas de producción y el resto son axiomas o hechos
saludo:nl,
write('Ingrese su nombre, por favor'),
tab(3),
read(Name),
nl,nl,
write('Hola '),
write(Name).
Otro de los ejemplos de los cuales abordamos en el modulo fue el un estudio
electrofisiológico así: El tiempo de latencia distal del nervio mediano mide el
tiempo que tarda en llegar un impulso eléctrico desde su origen hasta el sitio en
que está localizado el electrodo de registro.
If Latencia Distal >= 4 Then Latencia Distal Normal
If Latencia Distal < 4 Then Latencia Distal Anormal
En Prolog las reglas de producción serian
latenciadistal(X):-X>=4,write('Normal').
latenciadistal (X):-X<4,write('Anormal').
22
y la pregunta para saber si tiene latencia distal normal o anormal seria:
latenciadistal (5).
Si (el termómetro marca 39º) Y (el termómetro funciona correctamente) Entonces
el paciente tiene fiebre
En Prolog las reglas de producción serian
temperatura(X):-X>37,termometro(Y),write('Paciente tiene fiebre').
termometro(Y):-write('El termometro funciona? (si.,no.) '), read(si).
Y la pregunta para saber si tiene fiebre temperatura(39).
Al tener por ejemplo dentro de nuestra base del conocimiento, los siguientes
hechos75:
sucesor(1,2).
sucesor(2,3).
sucesor(3,4).
sucesor(4,5).
sucesor(5,6).
sucesor(6,7).
Podemos realizar consultas como las siguientes:
sucesor(X,6).
sucesor(2,Y).
sucesor(X,Y).
Nótese como los átomos de información que se desean consultar han sido
reemplazados por variables (letra inicial en mayúscula); en este punto Prolog
busca dentro de su base del conocimiento un hecho que haga emparejamiento
con la información suministrada en la consulta. Primero, busca una predicado
(nombre de la relación) llamado sucesor, luego hace una comparación entre la
información que se tiene (6), para llenar la variable X con la información
almacenada en el hecho, así, prolog responde X=5. De la misma forma ocurre con
la segunda consulta; en la tercera no existe información para hacer
emparejamiento en la base del conocimiento, por lo tanto el responderá con el
primer hecho que tenga ese predicado.
Responderá:
X=1
Y = 2;
En este punto tenemos dos opciones: quedar satisfechos con la respuesta que
prolog nos ha suministrado oprimiendo enter o solicitarle consultas sobre otros
posibles emparejamientos, para la cual debemos oprimir punto y coma (;).
75
Tomado de: http://dis.unal.edu.co/~fgonza/courses/2005-I/AI/taller3-PROLOG.html
23
Es también posible construir en prolog consultas complejas con los operadores
AND(,), OR(;) y NOT(not) de la siguiente forma:
legusta(pepe,pesca).
legusta(maria,bailar).
legusta(ana,pesca).
legusta(pepe,musica).
legusta(maria,musica).
legusta(ana,bailar).
Se pueden realizar las siguientes preguntas sobre la base de información:
- ¿Le gusta la música a Pepe y a Maria?:
?-legusta(pepe,musica),legusta(maria,musica).
- ¿Le gusta bailar a Pepe o a Maria le gusta la música?:
?-legusta(pepe,musica);legusta(maria,musica).
- ¿Le gusta bailar a Pepe y a Maria no le gusta la música?:
?-legusta(pepe,musica),not(legusta(maria,musica)).
Para que estas consultas funcionen de forma adecuada es necesario no dejar
espacios entre los operadores.
sucesor(1,2).
sucesor(2,3).
sucesor(3,4).
sucesor(4,5).
sucesor(5,6).
sucesor(6,7).
suma(1,X,R):-sucesor(X,R).
suma(N,X,R):-sucesor(M,N),suma(M,X,R1),sucesor(R1,R).
Aquí podemos apreciar como suma es una regla que depende en gran medida de
la condición sucesor. En la segunda regla de suma se observa que existe mas de
una condición, por tanto estas van separadas por coma; podemos observar
también que se realiza una operación recursiva. Esta misma sentencia traducida
en un lenguaje de programación como Java quedaría:
int suma(int N, int X, int R)
{
if ( N == 1 )
{
sucesor(X,R);
}
else
{
sucesor(M,N);
suma(M,X,R1);
sucesor(R1,R2);
24
}
}
Obsérvese que en la segunda línea del bloque else se realiza un llamado
recursivo al método suma, de forma tal, que se realiza la operación disminuyendo
el valor de N hasta que este se hace 1, en el cual termina la recursividad y se
origina la respuesta.
Lección 44
9.3 Estructura de un programa PROLOG
Un programa Prolog está formado por una secuencia de enunciados: hechos, reglas y
comentarios.
Una relación puede estar especificada por hechos, simplemente estableciendo objetos
que satisfacen la relación o por reglas establecidas acerca de la relación.
Cada regla está formada por un primer miembro (o la cabeza de la regla), un segundo
miembro (o cola de la regla) ligados por " :- " y termina con el carácter " . ".
código del programa
** Comentarios **
% ejemplo de la estructura que
% debe llevar un programa prolog
** Hechos **
mujer(maria).
hombre(pedro).
hombre(manuel).
hombre(arturo).
** Relaciones **
padre(pedro,manuel).
padre(pedro,arturo).
padre(pedro,maria).
** Reglas **
nino(X,Y):- padre(Y,X)
hijo(X,Y):-nino(X,Y),hombre(X).
hija(X,Y):-nino(X,Y),mujer(X).
hermano_o_hermana(X,Y):-padre(Z,X),padre(Z,Y).
hermano(X,Y):-hermano_o_hermana(X,Y),hombre(X).
hermana(X,Y):-hermano_o_hermana(X,Y),mujer(X).
25
Lección 45
9.4 Ejemplo de un programa en PROLOG
Una vez tengas instalado SWI-Prolog en tu equipo y lo ejecutes te aparecerá la
consola que permite hacer consultas.
En Windows
Al iniciar Prolog, aparece la consola en la cual se hacen las consultas:
Figura 3.19. Consola de Prolog
En el menú de File/New se abre un nueva ventana para escribir código fuente.
Figura 3.20. Archivo de Prolog
1. Tener el programa de Prolog abierto.
26
2. En el código fuente se compila, haciendo clic en el menú compile.
3. En la consola se hace la consulta.
Una vez hayas compilado y guardado el archivo, vas al menú File/Consult y
cargas el archivo del cual vas a hacer la consulta y luego ejecutas las consultas
necesarias.
Likes.pl, es un ejemplo que viene con SWI-Prolog, pueden copiarlo y luego realizar
las consultas pertinentes, la cual puede ser:
likes(sam,pizza)., la respuesta a esta consulta es “yes” de acuerdo a lo que está
escrito en el programa .
%%
Demo
coming
from
http://clwww.essex.ac.uk/course/LG519/2facts/index_18.html
%% Please load this file into SWI-Prolog
%% Sam's likes and dislikes in food
%%
%% Considering the following will give some practice
%% in thinking about backtracking.
%% ?- likes(sam,dahl).
%% ?- likes(sam,chop_suey).
%% ?- likes(sam,pizza).
%% ?- likes(sam,chips).
%% ?- likes(sam,curry).
likes(sam,Food) :- indian(Food), mild(Food).
likes(sam,Food) :- chinese(Food).
likes(sam,Food) :- italian(Food).
likes(sam,chips).
indian(curry).
indian(dahl).
indian(tandoori).
indian(kurma).
mild(dahl).
mild(tandoori).
mild(kurma).
chinese(chow_mein).
chinese(chop_suey).
chinese(sweet_and_sour).
italian(pizza).
italian(spaghetti).
27
10. BIBLIOGRAFIA

PROLOG / Francois Giannesini,
Henry Kanoui, Robert Paseroy Michael Van
Canaghen .-- s.c: Editorial Iberoamericana.

Patrick Henry Winston , Inteligencia Artificial , Editorial Iberoamericana

Castillo, E., Gutierrez, J.M. y Hadi, H (1997), Expert Systems and Probabilistic
Network Models. Springer, New York. Versión Española editada por la Academia
Española de Ingeniería.

Durkin, J. (1994), Expert Systems: Design and Development. Maxwell Macmillan, New
York.

Russell Stuart y Norving Meter, (2.004), Inteligencia Artificial, Pearson Education

Giarratano Joseph y Riley Gary,
Programación, Thomson Editores.

Ezawa K. J.; Schuermann T. (1995). “Fraud/uncollectable debt detection using a
Bayesian network based learning system: A rare binary outcome with mixed data
structures”, Proceedings of the Eleventh Conference on Uncertainty in Artificial
Intelligence, 157-166.

Sahami, M. (1996). “Learning limited dependence Bayesian classifiers”, Proceedings
of the Second International Conference on Knowledge Discovery and Data Mining”,
335, 338, Menlo Park, CA.

Friedman, N.; Geiger, D; Goldszmidt, M. (1997). “Bayesian network classifier”,
Machine Learning, 29, 131-163, 1997.

Abad, M. (2001). “Aplicación del principio inductivo de MEVR en la construcción de
clasificadores”, tesis doctoral. Departamento de Ingeniería de la Información y las
Comunicaciones, Universidad de Murcia, España.
(2.001),
Sistemas
Expertos
Principios
y
SITIOS WEB









www.Qdl.vcag.mx/66/ola.htm/
www.lafacu.com/apuntes/informatica/sist_expe/
http://home.worldonline.es/jmariocr/
www.ingenieroseninformatica.org/recursos/tutoriales/sist_exp/index.php
www.go.to/inteligencia_artificial
www.el-mundo.es/entradasecreta/inteligencia.html
www.cs.us.es/
www.aircenter.net/
www.laopinion.com/vidayestilo/
28









www.laguia.com.ar/aaia.htm
http://es.wikipedia.org/wiki/Case-based_reasoning
http://www.ingenieria.uady.mx/weblioteca/sistemasinteligentes/Tema05/CB
R1.htm
http://www.inf.udec.cl/~revista/ediciones/edicion9/psalcedo.pdf
Esta es la última versión de SWI-Prolog para Windows.
http://www.swi.psy.uva.nl/cgi-bin/nph-download/SWI-Prolog/w32pl5213.exe
En este vínculo se encuentran una serie de transparencias que ilustran los
conceptos básicos de Prolog. http://webepcc.unex.es/agomez/prolog.htm
Otro vínculo con información sobre conceptos básicos, (se recomiendan los
archivos pdf Tema0,I,II,III,IV). http://polaris.lcc.uma.es/~pacog/apuntes/pd/
Pdf
con
un
buen
tutorial
y
ejemplos
de
programas
http://euitio.trisquelmedia.net/apuntes/viejo/primero/logica/Programacion%2
0practica%20en%20prolog.zip
Programas de ejemplo: http://www.lsi.upc.es/~bejar/docencia/ia.html
29
Descargar