You are on page 1of 161

SISTEMAS EXPERTOS

DIANA MARCELA CARDONA ROMAN
Ver 2.0
UNIVERSIDAD NACIONAL ABIERTA Y A
DISTANCIA – UNAD
2.009
ii
SISTEMAS EXPERTOS
DIANA MARCELA CARDONA ROMAN
2
Ingeniera de Si!e"a
#
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLO$IA E
IN$ENIERIA
PRO$RAMA DE IN$ENIERIA DE SISTEMAS
2.009
2
La primera versión fue realizada por el Ing. Especialista John Alejandro Figueredo Luna
3
Estudiante de aestr!a de Ing. "e sistemas # computación de la $niversidad %acional de &olom'ia
iii
CONTENIDO TEM%TICO
$LOSARIO DE TERMINOS
UNIDAD &. VISION $ENERAL DE LA INTELI$ENCIA ARTI'ICIAL Y LOS
SISTEMAS EXPERTOS
CAPITULO &. INTRODUCCI(N A LOS CONCEPTOS B%SICOS DE LA IA
• Le))i*n & Visión General de la Ìnteligencia Artificial
o Ìntroducción
o La base de la inteligencia artificial (ÌA)
o ¿Pueden pensar las máquinas?
• Le))i*n 2
o Los fines de la Ìnteligencia Artificial
o Historia y Evolución de la Ìnteligencia Artificial
• Le))i*n # Características de la Ìnteligencia Artificial
o Programa fijo y programa modificado por el procesamiento
• Le))i*n + Funcionamiento Básico de la Ìnteligencia Artificial
o Símbolos vs. Métodos Numéricos
o Alfabeto del Lenguaje de la Lógica de Primer Orden
• Le))i*n , Principales Ramas de la Ìnteligencia 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 Ìnmunes Artificiales
o Extracción de Conocimiento (Minería de Datos)
CAPITULO 2. VISION $ENERAL DE LOS SISTEMAS EXPERTOS
• Le))i*n - Visión General de los Sistemas Expertos
o Ìntroducción
o Historia de los Sistemas Expertos (SE)
• Le))i*n . ¿Que es un Sistema Experto?
o Características de un Sistema Experto
• Le))i*n / Ventajas de los Sistemas Expertos
o ¿Cuáles son las ventajas de un sistema experto?
iv
• Le))i*n 9 Comparación del Sistema Experto
o Los Expertos Humanos
o Diferencias entre un Experto y un no experto humano
o Diferencias entre un Sistema Experto y un Programa Tradicional
o Diferencias entre un Sistema Experto y un Experto Humano
o Ventajas de los sistemas expertos
• Le))i*n &0 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 #. CAMPOS DE APLICACI(N0 TAREAS 1UE REALI2AN Y E3EMPLOS DE
SISTEMAS EXPERTOS
• Le))i*n && Campos de Aplicación
o Medicina
o Análisis de estados financieros
o Planificación Financiera
o Contabilidad
o Ìndustria
• Le))i*n &2 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
• Le))i*n &# Tareas que realizan los sistemas expertos
o Ìnterpretació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 Ìnstrucción
o Recuperación de Ìnformación
• Le))i*n &+ Ejemplos de Sistemas Expertos en Empresas
o En la Ìndustria
o En Contabilidad
o En Análisis de Estados Financieros
o En Planificación Financiera
o En la Aviación
o En Medicina
• Le))i*n &, Aplicaciones actuales
v
o Simulación del Baloncesto
o GENSYM: Operaciones Expertas
o G2 CLASSÌC
UNIDAD 2. DESARROLLO DE UN SISTEMA EXPERTO
CAPTULO +. AR1UITECTURA Y ELEMENTOS DE LOS SISTEMAS EXPERTOS
• Le))i*n &- Generalidades
o Ìntroducción
• Le))i*n &. Arquitectura de un SE
• Le))i*n &/ Elementos de un Sistema Experto (Ì)
o Componente Humana
o Base de Conocimiento
• Le))i*n &9 Elementos de un Sistema Experto (ÌÌ)
o Componente de adquisición
o Control de Coherencia
o Motor de Ìnferencia
• Le))i*n 20 Elementos de un Sistema Experto (ÌÌÌ)
o Componente de ejecución
o El componente explicativo
o La interfase del usuario
CAPITULO ,. PROCESO DE DESARROLLO DE UN SISTEMA EXPERTO
• Le))i*n 2&
o Ìntroducció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
• Le))i*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
• Le))i*n 2#
o Construcción del Mecanismo de Ìnferencia
o Ìdentificación de patrones.
o Ejecución de las reglas.
vi
• Le))i*n 2+
o La fase de restricción.
o La fase de selección.
• Le))i*n 2,
o Ejemplo de Funcionamiento del Motor de Ìnferencia
CAPITULO -. SISTEMAS EXPERTOS BASADOS EN CONOCIMIENTO
• Le))i*n 2-
o Definición de sistemas basados en conocimiento
o Características de los sistemas basados en conocimiento
o Principales problemas
• Le))i*n 2.
o Estructura de los Sistemas Basados en Conocimiento.
• Le))i*n 2/
 Fases en la adquisición del conocimiento
 Tecnología de los Sistemas Basados en Conocimiento
• Le))i*n 29
o Metodologías para la construcción de SE
 Metodología de Prototipos
 Metodología Orientada a Objetos
• Le))i*n #0 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 #. APRENDI2A3E DE LOS SISTEMAS EXPERTOS
CAPITULO .. TIPOS DE SISTEMAS EXPERTOS
• Le))i*n #& 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
 Ìncoherencia de Reglas
 Coherencia de Hechos
vii
o Ejemplo
o Conclusiones
• Le))i*n #2 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
 Probabilidad Condicional
 Dependencia e Ìndependencia
 Teorema de Bayes
 Reglas generalizadas
o Ìntroducción de los sistemas expertos basados en probabilidad
o La Base del Conocimiento
 Modelo de Síntomas Dependientes
 Modelo de Síntomas Ìndependientes
 Modelo de Síntomas Relevantes Dependientes
o Motor de Ìnferencia
• Le))i*n ## 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
• Le))i*n #+ Sistemas Basados en Casos
o Historia
o El ciclo del razonamiento basado en casos
• Le))i*n #, Redes Neuronales Artificiales
o Ventajas
CAPITULO /. LEN$UA3ES UTILI2ADOS
• Le))i*n #- Lenguajes utilizados en la construcción de SE
o LÌSP
o CLÌPS
o Prolog
o Smalltalk
o C y C++
• Le))i*n #. Herramientas y SHELLS utilizados en la construcción de SE
o Gold Works ÌÌ
o ART
viii
o LOOPS
o KEE
o Humble
o EMYCÌN
• Le))i*n #/
o Representación del conocimiento
o Lógica Proposicional
o Lógica de Predicados
o Ventajas y desventajas de la lógica de predicados
• Le))i*n #9
o Reglas de Producción
o Ventajas y desventajas de las reglas de producción
o Redes Asociativas
o Ventajas y desventajas de las Redes Asociativas
• Le))i*n +0 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 PROLO$
• Le))i*n +& Conceptos básicos
• Le))i*n +2 Tipos de operadores de Prolog
• Le))i*n +# Construcción de reglas de producción en Prolog
• Le))i*n ++ Estructura de un programa en Prolog
• Le))i*n +, Ejemplo programa en Prolog
BIBLIO$RA'IA
i(
$LOSARIO DE TERMINOS
Agenda4 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.
Bae de )5n5)i"ien!54 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.
Bae de 6e)65 7Me"5ria de !ra8a95): 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.
D5"ini54 Área de conocimientos que atiende el sistema experto.
E:;er!5 en D5"ini5: Persona o grupo cuya experiencia o conocimientos se
capturan para usarse en un sistema experto.
L*gi)a Di<=a4 Á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.
M5!5r de in<eren)ia: 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.
In!er<a> de ==ari5: 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.
Reg?a4 Ìnstrucción condicional enlaza determinada condiciones con acciones o
resultados.
S6e??4 Herramienta con propósitos especiales, diseñada para cierto tipo de
aplicaciones en las que el usuario solo debe proporcionar la base del
conocimiento.
S=8i!e"a de e:;?i)a)i*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
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.
(i
UNIDAD &. VISION $ENERAL DE LA INTELI$ENCIA
ARTI'ICIAL Y LOS SISTEMAS EXPERTOS
CAPITULO &. INTRODUCCI(N A LOS CONCEPTOS B%SICOS DE LA IA
Le))i*n &
&.&. 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 AÌ (Artificial Ìntelligence) 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:
• Los que piensan como humanos.
• Los que actúan como humanos.
• Los que piensan racionalmente.
• Los que actúan racionalmente.
&.2. La 8ae de ?a in!e?igen)ia ar!i<i)ia?
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.
(ii
&.#. @P=eden ;enar ?a "AB=inaC
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.
Ìnvestigaciones 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.
Le))i*n 2
&.+ L5 <ine de ?a In!e?igen)ia Ar!i<i)ia?
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.
Ìnvestigaciones acerca de la percepción han sido aplicadas a los robots y se han
(iii
diseñado algunos capaces de "ver". La meta final consiste en crear un sistema
capaz de reproducir todas las facetas de la inteligencia humana.
&., Di!5ria E EF5?=)i*n de ?a In!e?igen)ia Ar!i<i)ia?
La Ìnteligencia 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
Ìnteligencia Artificial.

Figura 1.1 Visualización Ìnteligencia 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.
(iv
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
Ìnteligencia Artificial, tales como el LÌSP o el PROLOG. Es en esta época cuando
se desarrollan sistemas expertos más refinados, como por el ejemplo el
EURÌSKO, este programa perfecciona su propio cuerpo de reglas heurísticas
automáticamente, por inducción.
Le))i*n #
&.-. Cara)!erG!i)a de ?a In!e?igen)ia Ar!i<i)ia?
• Una característica fundamental que distingue a los métodos de Ìnteligencia
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 Ìnteligencia
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
(v
(programa declarativo). En contraste con los programas que no son de
Ìnteligencia 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 Ìnteligencia 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
Ìnteligencia 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 Ìnteligencia 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.
&.-.& Pr5gra"a <i95 E ;r5gra"a "5di<i)ad5 ;5r e? ;r5)ea"ien!5
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
(vi
le son presentados ya seleccionados. Los procesa mediante un programa fijo,
siempre elegido y construido por el hombre, es decir, desde el exterior.
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.
(vii
Le))i*n +
&.-. '=n)i5na"ien!5 BAi)5 de ?a In!e?igen)ia Ar!i<i)ia?
Diferentes teorías:
1. Construir réplicas de la compleja red neuronal del cerebro humano (bottom-
up).
2. Ìntentar imitar el comportamiento del cerebro humano con un computador
(top-down).
&.-.& SG"85?5 F. MH!5d5 N="Hri)5
El primer período de la Ìnteligencia 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
Ìnteligencia 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 Ìnteligencia 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.
(viii
La Lógica de Primer Orden, es uno de los formalismos más utilizados para
representar conocimiento en Ìnteligencia 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.
&.-.2 A?<a8e!5 de? Leng=a9e de ?a L*gi)a de Pri"er 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.
'. 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:
positio(!), not(igual(",doble(#))), recetar(X,aspirina)$%tiene(X,fiebre),
tiene(X,cefalea).
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.
(i(
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
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
#. padre(miguel,&ose). Hecho
!. padre(&ose,&uan). Hecho
". abuelo(X,Y)'(padre(X,)), padre(),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
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.
Le))i*n ,
&... Prin)i;a?e Ra"a de ?a In!e?igen)ia Ar!i<i)ia?
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 Ìnteligencia Artificial
4
)
"isponi'le en* http*++,,,.e-ghost.deusto.es+docs+2../+conferencias+0a#es./.pdf
((i
&...&. Si!e"a E:;er!5
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.
&...2. R58*!i)a
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.
&...#. Si!e"a de Vii*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.
((ii
• Seguimiento de un objeto en una secuencia de imágenes.
• 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.
&...+. Pr5)ea"ien!5 de Leng=a9e Na!=ra?
El Procesamiento de Lenguajes Naturales, (PLN, o NLP; Natural Language
Processing), es una subdisciplina de la Ìnteligencia 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
&...,. Si!e"a de A;rendi>a9e
El Aprendizaje Automático es una rama de la Ìnteligencia 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.
((iii
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
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.
&...-. Rede Ne=r5na?e
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.
&..... Si!e"a In"=ne Ar!i<i)ia?e
Los sistemas inmunes artificiales (AÌS) 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 AÌS:
• Selección Negativa
• Selección Clonal
• Redes Ìnmunes Artificiales
&.../. E:!ra))i*n de )5n5)i"ien!5
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
((iv
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.
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ón
5
.
&./ 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 Ìnteligencia Artificial
3. ¿Que es un agente inteligente? Proporcione tres ejemplos de uso de un agente
inteligente.
4. Ìdentificar 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.
/
1omado de* http*++es.,i2ipedia.org+,i2i+"ata3mining
((v
CAPITULO 2. VISION $ENERAL DE LOS SISTEMAS EXPERTOS
Le))i*n -
2.&. 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 Ìnteligencia 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. Di!5ria de ?5 Si!e"a E:;er!5
Comúnmente se piensa que la Ìnteligencia 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 "Ìnteligencia 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 Ìnteligencia Artificial,
"Computing Machinery and Ìnteligence". 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: ÌPL-ÌÌ (Ìnformation Processing Language ÌÌ), primer lenguaje de
Ìnteligencia Artificial. Fue creado por Alien Newell, J.C. Shaw y Herbert
Simón. ÌPL es un lenguaje basado en proceso de listas y puede
((vi
considerarse como un antecesor del LÌSP, lenguaje más usado actualmente
en Ìnteligencia Artificial.
• 1956: John McCarthy propone el uso del termino Ìnteligencia 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 Ìnteligencia 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 Ìnteligencia 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 MÌT el lenguaje LÌSP (LÌSt
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 ÌBM 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: Ìnicio de las investigaciones en el MÌT, del proyecto de Ìnteligencia
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).
((vii
• 1966: Joseph Weizenbaum crea ELÌZA 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 SRÌ
Ìnternational, cuyo modelo decisorio para planificación de tareas, utilizará
técnicas de Ìnteligencia 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 Ìnteligencia Artificial del MÌT se convierte en el
Laboratorio de Ìnteligencia 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 Ìnvestigació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: SPEECHÌS, HWÌM, HEARSAY-Ì, HEARSAY-ÌÌ, DRAGÓN
Y HARPY, estos cuatro últimos desarrollados en la Carnegie-MelÌon
University.
• 1972: Se desarrolla MYCÌN 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-ÌÌ.
• 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 TEÌREÌSÌAS, 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 Ìnc., Lisp Machines Ìnc., Thinking Machines Corporation,
Cognitive Systems Ìnc.
((viii
• A partir de los 90 y con el desarrollo de la informática, se produce un amplio
desarrollo en el campo de la ÌA 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.
Le))i*n .
2.#. @1=e e =n Si!e"a E:;er!5C
Se puede decir que los Sistemas Expertos son el primer resultado operacional de
la Ìnteligencia 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
6
; 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 usuario
7
.
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:
4
5A67A8E9 :amran9 ar2 &hignell9 7etrag :hoshafian # ;arr# <ong. Intelligent "ata'ases.
=
7&;IL"1 ;er'ert9 $tilización de & en Inteligencia Artificial.
((i(
• 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.#.&. Cara)!erG!i)a de =n Si!e"a E:;er!5
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.
(((
• 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:
Ta8?a 2.& Comparación entre un sistema tradicional y un Sistema Experto.
SISTEMA CLASICO SISTEMA EXPERTO
No contiene errores Puede contener errores
No da explicaciones, los datos solo
se usan o escriben
El Sistema Experto cuenta con el
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
Le))i*n /
2.+. @C=A?e 5n ?a Fen!a9a de =n i!e"a e:;er!5C
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.
(((i
• 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.
(((ii
• Los SE son incapaces de reconocer un problema para el que su propio
conocimiento es inaplicable o insuficiente.
• Los motores de inferencia poseen algunos límites.
• Falta personal competente para investigar y desarrollar aplicaciones.
Le))i*n 9
2.,. L5 e:;er!5 D="an5
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.-. Di<eren)ia en!re =n e:;er!5 E =n n5 e:;er!5 6="an5
Ta8?a 2.2 Diferencias entre un experto y un no experto humano.
EXPERTO NO 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.
(((iii
2... Di<eren)ia en!re =n SE E =n ;r5gra"a !radi)i5na?
Ta8?a 2.# Diferencias entre un Sistema Experto y un Programa Tradicional.
SISTEMA EXPERTO PRO$RAMA 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 Ìndependiente. No secuencial Dependiente. Secuencial
Conocimientos Ìmprecisos Precisos
Modificaciones Frecuentes Raras
Explicaciones Sí No
Solución Satisfactoria Optima
Justificación Sí No
Resolución Área limitada Específico
Comunicación Ìndependiente En programa
2./. Di<eren)ia en!re =n i!e"a e:;er!5 E =n e:;er!5 6="an5
Ta8?a 2.+ Diferencias entre un Sistema Experto y un Experto Humano.
SISTEMA EXPERTO EXPERTO DUMANO
Conocimiento Adquirido Adquirido + Ìnnato
Adquisición del
conocimiento
Teórico Teórico + Práctico
Campo Único Múltiples
Explicación Siempre A veces
Limitación de capacidad Sí Sí, no valuable
Reproducible Sí, idéntico No
Vida Ìnfinita Finita
2.9. Ven!a9a de ?5 i!e"a e:;er!5
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).
(((iv
• Pueden situarse en el mismo lugar donde sean necesarios.
• Permiten tener decisiones homogéneas efectuadas según las directrices
que se les fijen.
• Son fáciles de reprogramar.
• Pueden perdurar y crecer en el tiempo de forma indefinida.
• Pueden ser consultados por personas o otros sistemas informáticos.
Le))i*n &0
2.&0. '5r"a en B=e ?5 ==ari5 in!era)!Ian )5n ?5 i!e"a e:;er!5
El usuario de un SE puede estar operando en cualquiera de los siguientes modos:
• VERI'ICADOR. 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.&&. Si!e"a e:;er!5 VS. Si!e"a )?Ai)5
La siguiente tabla compara las características de ambos tipos de sistemas
Ta8?a 2., Comparativa entre un Sistema Clásico y un Sistema Experto
Si!e"a C?Ai)5 Si!e"a E:;er!5
Conocimiento y procesamiento
combinados en un programa
Base de conocimiento separada del
mecanismo de procesamiento
No contiene errores Puede contener errores
No da explicaciones, los datos sólo se
usan o escriben
Una parte del sistema experto consiste
en el módulo de explicación
Los cambios son tediosos Los cambios en las reglas son fáciles
El sistema sólo opera completo
El sistema puede funcionar con pocas
reglas
Se ejecuta paso a paso La ejecución usa heurísticas y lógica
Necesita información completa paraPuede operar con información
(((v
operar incompleta
Representa y usa datos Representa y usa conocimiento
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 experto
8
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.&2. '=!=r5 de ?5 Si!e"a E:;er!5
• 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.
>
Fuente* "ennis9 Alonso.?2..@A 7istemas E(pertos. "ocumento en l!nea
http*++es.geocities.com+denisalonso2..@+7I71EA73EB5E61C7.htm
(((vi
2.&#. ACTIVIDADES COMPLEMETARIAS
1. ¿Que es un sistema Experto?
2. ¿Explique los componentes de un sistema Experto?
3. ¿Cuáles son las ventajas de los sistemas expertos?
4. 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, Ìnvestigue
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.
(((vii
CAPTULO #. CAMPOS DE APLICACI(N0 TAREAS 1UE REALI2AN Y
E3EMPLOS DE SISTEMAS EXPERTOS
Le))i*n &&
#.& Ca";5 de A;?i)a)i*n de ?5 i!e"a E:;er!5
#.&.& Medi)ina
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.
9

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.
#.&.2 AnA?ii de e!ad5 <inan)ier5
Es un equivalente a los estados de salud en la medicina. El análisis de estados
financieros se divide en tres fases
10
.
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.
#.&.# P?ani<i)a)i*n 'inan)iera
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.
11
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.
D
&6$E9 6o'erto. Frea de 0ases de "atos e Inteligencia Artificial.
$6L?http*++dcc.ing.puc.cl+investigacion+areas+'ases3dat.htmlA
@.
0C%7G%9 EnriHue. 1ecnolog!as Inteligentes para la Iestión Empresarial.
@@
Ibid.
(((viii
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.
#.&.+ Ind=!ria
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.
Le))i*n &2
#.&., E?e)!r*ni)a0 in<5r"A!i)a E !e?e)5"=ni)a)i5ne
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.
(((i(
#.&.- Mi?i!ar
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.
• Ìnterpretación de señales provenientes de sensores.
• Optimización de carga.
#.&.. C5n!a8i?idad
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ón
12
:
• A=di!5rGa4 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.
• C5n!a8i?idad de )5!e E de ge!i*n4 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.
• C5n!a8i?idad <inan)iera4 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.
@2
SÁNCHEZ Tomás, Antonio. A;?i)a)i*n de ?5 Si!e"a E:;er!5 en C5n!a8i?idad.
URL(http://ciberconta.unizar.es/Biblioteca/0002/Sanchez95.html#CONTABÌLÌDAD)
(l
• AnA?ii de e!ad5 <inan)ier54 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.
• P?ani<i)a)i*n <inan)iera e ind=!ria de ?5 erFi)i5 <inan)ier54
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.

#.&./ R58*!i)a
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 salud
13
.
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 ÌA 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 ÌA.
#.&.9 Re)5n5)i"ien!5 de ;a!r5ne
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.
#.&.&0 O!r5 )a";5 de a;?i)a)i*n
• Aeronáutica
• Agricultura
• Arqueología
• Derecho
• Educación
• Geología
• Meteorología
• Química
@3
CONTRERAS, Carlos. In!r5d=))i*n a ?a In!e?igen)ia Ar!i<i)ia?.
URL(http://www.gdl.uag.mx/66/0ia.htm)
(li
• Transportes
• Ventas
Le))i*n &#
#.2 Tarea B=e Rea?i>an ?5 i!e"a E:;er!5
#.2.& In!er;re!a)i*n0 Diagn*!i)5 E M5ni!5re5
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:
• AnA?ii4 La interpretación de datos se obtiene mediante la separación o
distinción de las partes que forman los datos.
• SGn!ei4 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:
• Mani<e!a)i5ne N=eFa. Es decir, síntomas que no se habían observado
con anterioridad.
• Ca=a N=eFa.
• Mani<e!a)i5ne de8ida a Faria )a=a.
• Da!5 Ina))ei8?e0 )ar5 5 de 58!en)i*n ;e?igr5a.
• Re?a)i5ne n5 8iEe)!iFa en!re ?5 da!5 E ?a )a=a.
• 'a??5 5 aFerGa de a;ari)i*n in!er"i!en!e.
• E:i!en)ia de Fari5 <a??5 i"=?!Ane5 5 en )adena.
La monitori+aci*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
(lii
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
#.2.2 DieJ5 E Se?e))i*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.
14
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.
@)
;C5ICC"9 Adrian. :no,ledge J 0ased 7#stems for Engineers and 7cientists.
(liii
Existen programas que diseñan dispositivos simples y después buscan
oportunidades de reducción de costos o de reducción de componentes.
#.2.# P?ani<i)a)i*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.
#.2.+ C5n!r5?
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.
#.2., Re;ara)i*n0 )5rre))i*n 5 !era;ia
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.
(liv
#.2.- Si"=?a)i*n0 ;r5n*!i)5 5 ;redi))i*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.
15

#.2.. Si"=?a)i*n0 ;r5n*!i)5 5 ;redi))i*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.
16
#.2./ Re)=;era)i*n de In<5r"a)i*n
@/
A61K%EE "e I'arreta León9 Francisco Javier. 7istemas E(pertos* Freas de aplicación.
$6L?http*++,,,.geocities.com+7iliconLalle#+<a#+==>>+7I7EB5.;1A
@4
Ibid
(lv
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.
17
#.2.9 Re="en
A continuación se presenta un resumen de las tareas que realizan los sistemas
expertos.
Ta8?a #.& Tareas comunes de los sistemas expertos
@>
Tarea de ?5 SE E9e";?5
Ìnterpretaciones Análisis de grandes volúmenes de datos estadísticos, con
la finalidad de obtener características económicas,
étnicas, religiosas, etcétera.
Predicciones
Puede tomar un conjunto de datos y poder anticiparse
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
Diseño de circuitos electrónicos para optimizar y 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
y su reparación
Ìdentificación de fallas en sistemas, y apoyo para su
solución.
Control de sistemas Automatización de maquinarias para tener un control
propio.
@=
16A$LLA7 # :ronos9 JesMs. 6ecuperación de Información # 7istemas E(pertos.
$6L?http*++,,,.tramullas.com+nautica+documatica+3->.htmlA
@>
5Nrez JimNnez9 iguel Fngel. ?2..>A 7istemas e(pertos para la asistencia mNdica. $niversidad Autónoma
de N(ico. "ocumento en l!nea* http*++,,,.unam.m(+artic+2..>+septiem're+art@.html
(lvi
Le))i*n &+
#.# E9e";?5 de Si!e"a E:;er!5 en E";rea
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.
#.#.& En ?a Ind=!ria
• 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 Ìnc., Carnegie Group, Symbolics, Lisp Machines Ìnc., Thinking
Machines Corporation, Cognitive Systems Ìnc. Fueron creadas en solicitud
de una creciente demanda de SE formando una inversión total de 300
millones de dólares. Las "máquinas LÌSP¨ eran su producto principal,
(ordenadores que ejecutaban programas LÌSP con la misma rapidez que en
un ordenador central) y el otro producto fueron las "herramientas de
desarrollo de Sistemas Expertos¨.
• SÌGCE
19
, Sistema de Ìnformació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.
#.#.2 En C5n!a8i?idad
• 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.
• Proyecto SÌCA 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.
@D
7istemas E(pertos Limitada. edell!n &olom'ia. "ocumento en l!nea http*++,,,.sistemas-e(pertos.com+
(lvii
#.#.# En AnA?ii de E!ad5 'inan)ier5
• AFÌN. Realiza un análisis de estados financieros en la empresa basándose
en el Plan General de Contabilidad Español de 1990.
• AÌDE. 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.
• ANALYSÌS. Clasifica funcionalmente el balance y la cuenta de pérdidas y
ganancias.
• ANÌBAL. Evalúa la gestión comercial y financiera de la empresa.
Se pueden mencionar también ANSWERS, CHARÌS, FÌNEX,
FÌNEXPERT/FÌNEPRO, FSA, entre otros.
#.#.+ En P?ani<i)a)i*n 'inan)iera
• AAFÌNPLAN. Proporciona orientación financiera a los empleados
• Capital Ìnvestment System. Ayuda a los directores de Texas Ìnstruments 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 ADVÌSOR, Objective
Financial System, Personal Financial Analysis, PFPS, PLANMAN, PLANPOWER,
entre muchos otros más.
#.#., En ?a AFia)i*n
Del tipo que incluyen agendas
2.
• ARMAC, GADS, RAMP, SALTO, RMAS, AAMPS, ACAMS, MOCA, ARÌES,
EXPÌCS, Duty Roster System, Aeroplan. Ìncluyen su uso en empresas
como United Airlines, Air Canada, entre otras.
Del tipo de planeo de vuelos y configuraciones.
• AALP y MD-11 Ìnterior Design Config System
Del tipo de mercadotecnia y reservaciones.
• AA Advantage System, BAMBÌ, DOCS, ÌQ Manager, Passenger Rev
Accounting System
#.#.- En Medi)ina
2.
;A6C%9 5aul # &urtis ;all. Intelligent 7oft,are 7#stems.
(lviii
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:
Pr58a8i?G!i)a. 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.
Ca=a?e. 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.
De!er"inG!i)5. 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. Ìdentifica
varios factores que determinan los diagnósticos que emite como la edad,
las condiciones actuales del paciente, su historial médico, entre otros
factores
21
.
• SPACEMED. Este es un Sistema Experto para asistencia en emergencias
médicas que sucedan durante un vuelo espacial o aborde de una estación
2@
:A%"EL9 A'raham. Fuzz# E(pert 7#stems.
(li(
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 envenenamiento
22
.
• DÌAVAL. 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
23
. 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
24
. DÌAVAL 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.
E9e";?5 ;rA)!i)5 de a;?i)a)i*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.
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.
22
1ELLC9 Ernest. Op. cit.
23
"KEE Legas Francisco Javier. 7istema E(perto 0a#esiano para Ecocardiograf!a.
$6L?http*++ia.uned.es+Ofdiez+tesis+tesis.htmlA
2)
7&A6A0I%C9 Juan &arlos. 7istemas E(pertos* Aspectos 1Ncnicos.
$6L?http*++ci'erconta.unizar.es+LE&&IC%+siste(pat+I%I&IC.;1LA
l
Figura 1.7 Ejemplo sencillo de sistema experto usando el método Deterministico.
Le))i*n &,
#.#.. A;?i)a)i5ne a)!=a?e
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 Ìndustria 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:
• MYCÌN: 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 MYCÌN trabaja igual de bien que un médico.
• TROPÌCAÌD: 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.
• ADÌCORP: 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 Ìnc. (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.
• LABEÌN (Laboratorio de Ensayos e Ìnvestigaciones Ìndustriales, 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,
li
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.
• GUÌDON: Utilizado por las Facultades de Medicina para formar a los
médicos en la realización de consultas. GUÌDON viene a ser una
reorganización de MYCÌN con intenciones educativas, por esto, tiene la
ventaja adicional de disponer de toda la base de conocimientos de MYCÌN
además de la experiencia acumulada.
• PUFF: Estudia la función pulmonar.
• HERSAY: Ìntenta identificar la palabra hablada.
• CASHVALUE: Evalúa proyectos de inversión.
• VATÌA, que asesora acerca del impuesto sobre el valor añadido o Ì.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.
!.!.,.1 -istema e.perto para la simulaci*n de sistemas t/cticos de baloncesto
con soft0are libre
25
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
2/
5alomo anuel P art!n9 ateos Francisco JesMs.2..2. Irupo ejora del 5roceso 7oft,are # Ntodos
Formales. "epartamento de Lenguajes # 7istemas InformQticos. $niversidad de &Qdiz. Escuela 7uperior de
Ingenier!a. &+ &hile9 s+n. "epartamento de &iencias de la &omputación e Inteligencia Artificial9 $niversidad
de 7evilla
lii
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.
• 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.
1rincipales 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).
liii
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.
!.!.,.# $ENSYM4 O;era)i5ne E:;er!a
24
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
complejos. Este software se utiliza extensamente en las industrias de fabricación,
de producción, del espacio aéreo y del transporte.
Di;5ni8i?idad )5n!in=a de? a)!iF5
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.
'=n)i5na"ien!5 de? ;r5)e5
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.
Re=?!ad5
Disponibilidad creciente del activo, calidad del producto más alta, producción
creciente, seguridad mejorada, mínimas consecuencias para el medio ambiente y
24
Juan Manuel, Pignani. Ìnformática aplicada a la Ìngeniería de Procesos. Universidad Tecnológica
Nacional, Facultad Regional Rosario
liv
beneficios más altos. Los operadores consiguen el pleno apoyo que necesitan
para manejar las operaciones de fabricación
!.!.,.! 2# 345--63
$2 C?ai) 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,
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.
#.+ ACTIVIDADES COMPLEMENTARIAS
@. Explique las diferentes tareas que realizan los sistemas
expertos
2. Ìnvestigue 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.
lv
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?
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.
lvi
UNIDAD 2. DESARROLLO DE LOS SISTEMAS
EXPERTOS
CAPTULO +. AR1UITECTURA Y ELEMENTOS DE LOS SISTEMAS EXPERTOS
Le))i*n &-
+.&In!r5d=))i*n
Se puede decir que los sistemas expertos son el primer resultado operacional de
la Ìnteligencia 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
27
; 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.
28
La tarea principal
de un SE es tratar de aconsejar al usuario
29
.
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 conocimiento
30
.
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.
2=
5A67A8E9 :amran9 ar2 &hignell9 7etrag :hoshafian # ;arr# <ong. Intelligent "ata'ases.
2>
"E II$EL IonzQlez9 Luis Javier. 1Ncnicas de mantenimiento predictivo industrial 'asadas en 7istemas
E(pertos.
2D
7&;IL"1 ;er'ert9 $tilización de & en Inteligencia Artificial.
3.
&6IA"C 0riz9 JosN ario. 7istemas E(pertos. $6L ?http*++home.,orldonline.es+jmariocr+inde(.htmA
lvii
Con base en lo anterior, algunos investigadores de ÌA 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.
Le))i*n &.
+.2ArB=i!e)!=ra de =n Si!e"a E:;er!5
Un Sistema Experto aplica las técnicas de resolución de problemas y
razonamiento de la Ìnteligencia 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 Ìnformá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
Ìngenieros 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
lviii
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 Experto
31
Le))i*n &/
3@
Figura tomada de la tesis doctoral etodolog!a 5ara El "esarrollo "e 7istemas E(pertos diseRada por el
doctor JosN "omingo &arrillo Lerdun
li(
+.#E?e"en!5 de =n Si!e"a E:;er!5
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:
• S=8i!e"a de )5n!r5? de )56eren)ia. 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.
• S=8i!e"a de adB=ii)i*n de )5n5)i"ien!5. 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.
• M5!5r de in<eren)ia. 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.
• S=8i!e"a de de"anda de in<5r"a)i*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).
• S=8i!e"a de in)er!id="8re. Se encarga de almacenar la información
de tipo incierto y propaga la incertidumbre asociada a esta información.
• S=8i!e"a de e9e)=)i*n de !area. Permite realizar acciones al Sistema
Experto basadas en el motor de inferencia.
• S=8i!e"a de e:;?i)a)i*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.
l(
Figura 2.2. Componentes típicos de un sistema experto. Las flechas representan el flujo de la
información.
32
Figura 2.3 Relación entre los elementos de un sistema experto
32
Fuente* &astillo9 EnriHue. IutiNrrez9 JosN anuel 7istemas E(pertos # odelos de 6edes 5ro'a'il!sticas
l(i
+.#.&. La C5";5nen!e D="ana
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) E? e:;er!5. La función del experto es la de poner sus
conocimientos especializados a disposición del Sistema Experto.
b) E? ingenier5 de? )5n5)i"ien!5. Es el ingeniero que plantea las
preguntas al experto, estructura sus conocimientos y los
implementa en la base de conocimientos.
c) E? ==ari5. 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
l(ii
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.
+.#.2. Bae de C5n5)i"ien!5
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.
l(iii
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.
Le))i*n &9
+.#.#. E? )5";5nen!e de adB=ii)i*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 caracter7sticas 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.
+.#.+. C5n!r5? de C56eren)ia
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
l(iv
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.
+.#.,. M5!5r de In<eren)ia
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.
l(v
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 SÌ. 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)
l(vi
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.
Le))i*n 20
+.#.-. C5";5nen!e de e9e)=)i*n de !area
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.
+.#... C5";5nen!e e:;?i)a!iF5
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 encontrar la
l(vii
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 avor, p!ngase en contacto con su banco en "oras de oicina.
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.
+.#./. La in!er<a> de? ==ari5
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.
l(viii
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 Ìnferencia 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. E? a;rendi>a9e de? "ane95 de8e er rA;id5. 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. De8e eFi!are en ?5 ;5i8?e ?a en!rada de da!5 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". Ìmagí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. L5 re=?!ad5 de8en ;reen!are en =na <5r"a )?ara ;ara e? ==ari5.
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á
l(i(
ineficiente por completo. Por eso se insiste en que los resultados debe ser
claros y concisos.
4. La ;reg=n!a E e:;?i)a)i5ne de8en er )5";reni8?e. 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.
+.+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. Ìdentificar los elementos básicos de un sistema experto y describir el papel de
cada uno de ellos.
l((
CAPITULO ,. PROCESO DE DESARROLLO DE UN SISTEMA EXPERTO
Le))i*n 2&
,.& 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¨.
,.2 Dearr5??5 de =n i!e"a e:;er!5
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.
Figura 2.5. Desarrollo de un Sistema Experto
,.2.&. La 8ae de )5n5)i"ien!5
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.
 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 <si(
entonces> 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*n8 Entonces $acci*n8 * If $premisa8 Then $conclusi*n8
Ejemplo:
If 4atencia 9istal 8% !.: Then 4atencia 9istal ;ormal
If 4atencia 9istal $ !.: Then 4atencia 9istal 5normal
Si (el term*metro marca !<=) 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 >ay reglas que usan materias baratas
Y >ay reglas que usan materias caras
ENTONCES usar antes las primeras que las segundas
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.
?.#.1.1. 3inco 1asos en la 3onstrucci*n de una @ase de 3onocimientos (@3)
 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.
?.#.1.#. 1roceso 4*gico de 3arga de la @ase de 3onocimiento
La base de conocimientos aloja la totalidad de las informaciones específicas
relativas al campo del saber deseado, está escrita en un lenguaje específico de
representación de los conocimientos que contiene y en el cual el experto puede
definir su propio vocabulario técnico. A la inversa de lo que sucede en los
programas clásicos, en la base de conocimientos las informaciones entran tal
como llegan, ya que el orden no influye en los resultados obtenidos. Sucede así
porque cada elemento de conocimiento es comprensible por sí mismo tomado de
forma aislada y, por lo tanto, no es necesario referirse al contexto en el cual está
inserto. La información se representa, por regla general, mediante reglas de
producción o redes semánticas. Las reglas de producción constituyen el método
más utilizado para construir bases de conocimientos en los sistemas expertos.
Llamadas también implicaciones lógicas, su estructura es la siguiente: para unas
ciertas causas, unos efectos; o, para determinadas condiciones, ciertas
consecuencias. Junto a cada regla, se almacena también su porcentaje en forma
de probabilidad. Éste indica, mediante un tanto por ciento, el grado de certeza de
las consecuencias que se obtienen como resultado de la aplicación de la regla de
producción. En cuanto a las redes semánticas, se trata de un método de
construcción de bases de conocimientos en el cual los conocimientos se muestran
mediante un grafo en el que los vértices representan los conceptos u objetos y las
aristas indican las relaciones entre ellos.
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.
Le))i*n 22
,.2.2. E? "5!5r de in<eren)ia
Para construir un motor de inferencia, existen tres métodos básicos:
encadenamiento hacia adelante, encadenamiento hacia atrás y reglas de
producción.
?.#.#.1. ABtodo de encadenamiento >acia 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.

Atributo Atributo Atributo Atributo
Objeto
Figura 2.6 Método de encadenamiento hacia adelante
?.#.#.#. ABtodo de encadenamiento >acia 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.
Ìntenta objeto

Atributo cumplido

Atributo no cumplido

Atributo cumplido

Atributo cumplido

Atributo no cumplido

Atributo cumplido

Objeto encontrado

Figura 2.7. Encadenamiento hacia atrás
?.#.#.!. ABtodo 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
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.
Le))i*n 2#
,.2.#. C5n!r=))i*n de? Me)ani"5 de In<eren)ia
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: Ìnferencias / 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.
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.
?.#.!.1. 6dentificaci*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 Ìnteligencia 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.
?.#.!.#. E&ecuci*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.
Le))i*n 2+
?.#.!.!. 4a 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. Ìndica 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.
?.#.!.". 4a 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 MYCÌN.
 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.
Muchos sistemas efectúan marcha atrás, si no hay regla aplicable, pero si el
sistema está bajo un control irrevocable se detendrá.
E9e";?5
E9e";?5 N5. &
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ÁTÌCO representa la relación "SER CATEDRÁTÌCO" 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:
SÌ (x ES CATEDRÁTÌCO) ENTONCES (x ES DOCTOR)
En este caso CATEDRÁTÌCO y DOCTOR representan de nuevo relaciones que
deben estar representadas sobre el sistema.
E9e";?5 N5. 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.
Le))i*n 2,
,.2.+. E9e";?5 de '=n)i5na"ien!5 de? M5!5r de In<eren)ia
Para ilustrar cómo trabajan los procedimientos de inferencia, se supondrá un
sistema que contiene las siguientes reglas en la base de conocimiento:
R1' -6 abrigo E;CD;3E- bingo
R#' -6 c>aqueta E;CD;3E- dentista
R!' -6 bingo E;CD;3E- esposa
• En<5B=e g=iad5 ;5r da!5 75 en)adena"ien!5 6a)ia ade?an!eK4
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:
@.9. % Eabrigo, c>aquetaF
El sistema identifica las reglas aplicables:
R % ER1, R#F
Selecciona R1 y la aplica. Esto genera bingo que se añade a la base de datos:
@.9. % Eabrigo, c>aqueta, bingoF
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 % ER#, R!F
Selecciona y aplica R2 quedando:
@.9. % Eabrigo, c>aqueta, bingo, dentistaF
El problema todavía no se ha solucionado, luego el sistema selecciona otro
conjunto de reglas aplicables:
R % ER!F
Seleccionando y aplicando R3, la base de datos queda:
@.9. % Eabrigo, c>aqueta, bingo, dentista, esposaF
Como esposa se encuentra en ella, se ha llegado a la solución del problema.
• En<5B=e g=iad5 ;5r 589e!iF5 75 en)adena"ien!5 6a)ia a!rAK4
Se quiere determinar si se cumple esposa teniendo en la base de datos abrigo y
chaqueta:
@.9. % Eabrigo, c>aquetaF.
El conjunto de reglas aplicables en este caso será:
R % ER!F (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.
Ìdentifica las reglas aplicables:
R % ER1F.
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 Ìnteligencia 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
Ìnteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo
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
Ìngeniería Cognoscitiva, como una rama de la Ìnteligencia Artificial, que estudia los
sistemas basados en el conocimiento.
CAPITULO -. SISTEMAS EXPERTOS BASADOS EN CONOCIMIENTO
Le))i*n 2-
-.&De<ini)i*n de i!e"a 8aad5 en )5n5)i"ien!5
La definición de un sistema basado en conocimiento (SBC) puede ser la siguiente:
Es un sistema computari+ado capa+ de resoler problemas en el dominio en el
cual posee conocimiento espec7fico.
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.
In!e?igen)ia Ar!i<i)ia? dH8i?.
 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.
-.2Cara)!erG!i)a ;rin)i;a?e de i!e"a 8aad5 en )5n5)i"ien!5
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
-.#Prin)i;a?e Pr58?e"a
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.
 Difícil extraer todo el conocimiento que maneja un experto.
E:;erien)ia0 Da8i?idade E C5n5)i"ien!5.
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
)5n5)i"ien!5 a5)ia!iF5. 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 e:;erien)ia "5!5ra 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 e:;erien)ia !e*ri)a 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.
Le))i*n 2.
-.+E!r=)!=ra de ?5 i!e"a 8aad5 en )5n5)i"ien!5
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.
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 Ìnferencia). 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 LÌSP 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 ;r5gra"a)i*n de)?ara!iFa es un tipo de programación implantada en los
sistemas expertos y por ciertos lenguajes. La principal diferencia es que en la
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 ;r5gra"a)i*n
;r5)ed=ra? 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.
Le))i*n 2/
-.+.&. 'ae en ?a adB=ii)i*n de? )5n5)i"ien!5
 Ìdentificación del problema.
 Estructuración del conocimiento.
 La arquitectura del sistema y la maqueta.
 El prototipo y terminación del sistema.
-.+.2. Te)n5?5gGa de ?5 Si!e"a Baad5 en C5n5)i"ien!5
Desde el punto de vista tecnológico, los sistemas basados en conocimiento
pueden presentar varias formas de aplicación:
 Ai?ada: un Sistema Basado en Conocimiento único se relaciona con el
entorno.
 In!egrada: 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.
 E"8e8ida: un Sistema Basado en Conocimiento está integrado con otros
sistemas y no se lo distingue.
Le))i*n 29
-.,Me!5d5?5gGa ;ara ?a )5n!r=))i*n de SE
-.,.&. Me!5d5?5gGa de Pr5!5!i;5
En el desarrollo de sistemas expertos se nos plantean dos importantes riesgos:
• 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.
-.,.2. Me!5d5?5gGa Orien!ada a O89e!5
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:
• A8!ra))i*n. Permite enfocarse en la solución general del problema, sin
preocuparse de los detalles.
• En)a;=?a)i*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¨.
• P5?i"5r<i"5. Significa que un objeto se puede comportar de diversas
maneras, dependiendo del contexto en el que se encuentre.
• Deren)ia. 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
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

Atributo
Atributo
Atributo
Objeto

Atributo
Atributo
Atributo
Objeto

Atributo
Atributo
Atributo
Objeto

Atributo
Atributo
Atributo
Objeto

Atributo
Atributo
Atributo
Objeto

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.
Le))i*n #0
-.-E9e";?5 de C5n!r=))i*n de Un SE0 Pr58?e"a de M5ni!5ri>a)i*n
33
-.-.&. %r85?e de de)ii*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úsqueda
34
Figura 2.10. Representación de dispositivos para el problema en la planta de procesamiento
-.-.2. %r85?e de de)ii*n B=e a;renden
Algoritmo Resuelve-Árol-!-A"ren#e
Establece como nodo actual en el /rbol el nodo ra7+G
$ientr%s&ue el nodo actual es de decisi*n >acer
1reguntar la pregunta del nodo actualG
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
fsiG
fm'(
1reguntar si la respuesta en el nodo actual es correctaG
Si la respuesta es correcta
entonces 9etermina respuesta correcta
sino 1ide la respuesta correctaG
1ide quB pregunta cuando se responda HsiI distinguir/ la respuesta del
nodo actual de la repuesta correctaG Reempla+a el nodo respuesta por un
nodo decisi*n que tiene como rama no el nodo respuesta actual y como
33
J.A. 0aRares 0aRares. @DDD. 6esolución de 5ro'lemas en L06. "epartamento de InformQtica e Ingenier!a
de 7istemas &.5.7. $niversidad de Earagoza
3)
I'd =3
¿Es un
animal de
sangre
caliente?
Si
Nodo decisión
Nodo respuesta
Nodo decisión
Es una
serpiente
¿El animal
ronronea?
Es un
gato
Es un
perro
No
Si
No
Nodo respuesta
Nodo respuesta
rama si la respuesta correcta. 4a pregunta del nodo de decisi*n es la que
distingue los dos nodos respuesta.
fsi(
)in.
N5d5 de Ar85? de de)ii*n
(deftemplate nodo
(slot nombre)
(slot tipo)
(slot pregunta)
(slot nodo(si)
(slot nodo(no)
(slot respuesta))
%r85? ini)ia?
(nodo (nombre ra7+) (tipo decisi*n)
(pregunta "Es un animal de sangre calienteJ")
(nodo(si nodo1) (nodo(no nodo#))
(nodo (nombre nodo1) (tipo decisi*n)
(pregunta "El animal ronroneaJ")
(nodo(si nodo!) (nodo(no nodo"))
(nodo (nombre nodo#) (tipo respuesta)
(respuesta serpiente))
(nodo (nombre nodo!) (tipo respuesta) (respuesta gato))
(nodo (nombre nodo") (tipo respuesta) (respuesta perro))
Reg?a ;ara ini)ia?i>ar Ar85?
(defrule iniciali+a
(not (nodo (nombre rai+)))
%8
(load(facts "5;6A54.95C")
(assert (nodo(actual rai+)))
Reg?a B=e ;reg=n!an )=e!i*n a5)iada a n5d5 de)ii*n
(defrule pide(decision(nodo(pregunta
Jnodo $( (nodo(actual Jnombre)
(nodo (nombre Jnombre)
(tipo decision)
(pregunta Jpregunta))
(not (respuesta J))
%8
(printout t Jpregunta " (si o no) ")
(assert (respuesta (read))))
(defrule respuesta(incorrecta
Jrespuesta $( (respuesta KsiLKno)
%8
(retract Jrespuesta))
-.-.#. De<ini)i*n de? ;r58?e"a
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
Ta8?a -.& Acciones que debe realizar el monitor
Va?5r de? Sen5r A))i*n
valor <= línea roja baja PARADA dispositivo
línea roja baja < valor <= línea guarda baja Da ALARMA o PARADA
dispositivo
línea guarda baja > valor < línea guarda alta Ninguna
línea guarda alta >= valor < línea roja alta Da ALARMA o PARADA
dispositivo
valor >= línea guarda alta PARADA dispositivo
-.-.+. Pr5)e5 de? dearr5??5 de? ;r5gra"a
Pr5)e5 i!era!iF5
Se parte de la descripción general del problema y se van incorporando detalles
específicos.
TH)ni)a
Gracias a las técnicas de desarrollo iterativas que soportan los SE's, es posible
construir prototipos a partir de problemas con especificaciones pobres.
S Se realiza un prototipo
S Se apuntan los detalles que faltan en la especificación
S Se consulta con el experto los detalles y se elabora otro prototipo
De!a??e ne)eari5 ;ara e";e>ar
S Decisiones sobre la implementación:
S Reglas generales que permitan incorporar nuevos dispositivos y
sensores fácilmente, en lugar de reglas específicas.
S Detalles sobre el flujo de control
S 3 Fases por ciclo: Lectura sensores, Análisis valores, acciones
S Lectura sensores:
S Posibilidades:
-¿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?
D=ran!e e? dearr5??5 e de8e "an!ener
S Una lista de asunciones
S Lista de preguntas
S Posibles inconsistencias relacionadas con la especificación
S Lista inicial de asunciones del problema de monitorización
S Los datos de los sensores siempre están disponibles y son fiables
S Los valores de los sensores se podrán leer directamente de éstos.
Se debería soportar el uso de valores de sensores simulados.
S Los valores de sensores de dispositivos parados no se
monitorizarán.
S El programa de monitorización realiza las acciones especificadas:
ALARMA o PARADA de dispositivos.
E? ;r58?e"a de diFide en !re <ae
- Lectura de los valores de los sensores
- Análisis de los valores
- Acciones
S También se debe mantener una lista de detalles sobre decisiones de
implementación
S Como representar la información, el control y la depuración del
programa
I";?e"en!a)i*n E Re;reen!a)i*n
7ensor 7@ 7ensor 72
"ispositivo "@
7ensor 7/ 7ensor 74
"ispositivo ")
7ensor 73
"ispositivo "2
7ensor 7)
"ispositivo "3
Figura 2.11. Representación de dispositivos para el problema en la planta de procesamiento
35
-..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.
3/
J.A. 0aRares 0aRares. @DDD. 6esolución de 5ro'lemas en L06. "epartamento de InformQtica e Ingenier!a
de 7istemas &.5.7. $niversidad de Earagoza
UNIDAD #. APRENDI2A3E DE LOS SISTEMAS EXPERTOS
CAPITULO .. TIPOS DE SISTEMAS EXPERTOS
Le))i*n #&
..&Si!e"a Baad5 en Reg?a
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.
36
Las reglas representan el conocimiento utilizando un formato
SÌ-ENTONCES (ÌF-THEN), es decir tienen 2 partes:
La parte SÌ (ÌF), 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
34
El &oncepto es tomado del documento* Inteligencia Artificial. 2..3. Arrua Luciana. eza FernQndez
Eduardo.
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.
37

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.
38
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 SÌ, y otra parte
ENTONCES (también llamada como una condición y una acción). Las listas de
partes SÌ 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 SÌ de la regla está satisfecha; por lo
tanto, la parte ENTONCES puede ser concluida, o su acción de solucionar el
problema, ser tomada.
39
En los sistemas basados en reglas intervienen dos elementos importantes:
L5 da!5: 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.
E? )5n5)i"ien!5: 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.
3=
7istemas E(pertos # odelos de 6edes 5ro'a'il!sticas. EnriHue &astillo9 JosN anuel IutiNrrez9 # Ah 7.
;adi.
3>
&astillo9 EnriHue. IutiNrrez9 JosN anuel 7istemas E(pertos # odelos de 6edes 5ro'a'il!sticas
3D
5ignani Juan anuel. ?2...A. InformQtica aplicada a la Ingenier!a de 5rocesos @. $niversidad 1ecnológica
%acional9 Facultad 6egional 6osario. EspaRa.
a. E? ;r5)e5 ?*gi)5 de )arga4 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.
+0
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. E? ;r5)e5 de in<eren)ia 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 hechos
41
).
Fuente* "ennis9 Alonso.?2..@A 7istemas E(pertos. "ocumento en l!nea
$6L?http*++es.geocities.com+denisalonso2..@+7I71EA73EB5E61C7.htmA
)@
Fuente: Dennis, Alonso.(2001) Sistemas Expertos. Documento en línea
http://es.geocities.com/denisalonso2001/SÌSTEMAS_EXPERTOS.htm
Por medio de cascadas de órdenes, se explica estos dos procesos.
VERÌFÌCACÌÓ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.
DEDUCCÌÓN DE UN HECHO
En este proceso, primero se requieren los datos para analizar la premisa. O sea,
partimos del:
ÌF < 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.
42
El siguiente ejemplo corresponde a un sistema experto basado en reglas ÌF-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:
43
6M Mamilia es albatros 5;9 3olor es blanco
CNE; 5e es albatros laysan.
6M Mamilia es albatros 5;9 3olor es negro
CNE; 5e 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:
6M Drden es tubonasales 5;9 CamaOo es grande 5;9 5las es grandes anguladas
CNE; Mamilia es albatros.
..&.&. Bae de? )5n5)i"ien!5
)2
BENCHÌMOL, G y otros (1990) Los Sistemas Expertos en la Empresa. Ed. Macrobit, México
)3
Guerra Hernández, Alejandro. Metodología de Programación Ì Sistemas Expertos.
Departamento de Ìnteligencia Artificial. Universidad Veracruzana. México. 2006.
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
Ta8?a ..& Un ejemplo de objetos con sus posibles valores
O89e!5 C5n9=n!5 de Va?5re P5i8?e
Nota {0,1,...,10}
Calificación {sobresaliente, notable, aprobado, suspenso}
Puesto {0,1,...,100}
Admitir {si, pendiente, no}
Notificar {sí, no}
E9e";?5 de reg?a4
Reg?a &: Si nota 8 <, entonces calificaci*n % sobresaliente.
Reg?a 2: Si puesto $ #0 o nota 8 ,, entonces 5dmitir % si y ;otificar %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,
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 (NÌP). Si el número fuese incorrecto, se dan tres oportunidades de
corregirlo. Si el NÌP 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.
Ta8?a ..2 Objetos y posibles valores para el ejemplo del cajero automático
O89e!5 C5n9=n!5 de Va?5re P5i8?e
Tarjeta {Verificada, no verificada}
Fecha {Expirada, no expirada}
Clave {Correcta, incorrecta}
Ìntentos {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 Ìntentos = no
se excedido Y Fondos = suficiente Y Limite = no excedido) En!5n)e 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.
Como ejemplo adicional, muestra que
· Regla 2: Si A o B, entonces C, puede ser reemplazada por la regla
· Regla 2: Si # y $ , entonces C, donde # significa no A.
Ta8?a ..# Una tabla de verdad mostrando que las expresiones lógicas #o$ y
#
y
$
son equivalentes. Los símbolos C y F se utilizan para cierto y falso,
respectivamente.
A B A B #o$ #
y
$
C C F F F F
C F F C F F
F C C F F F
F F C C C C
Ta8?a ..+ Ejemplos de sustitución de reglas: Las reglas en la primera columna
Reg?a Reg?a EB=iFa?en!e
Si A o B, entonces C Si A, entonces C
Si B, entonces C
Si #o$ , entonces C
Si
#
y
$
, entonces C
Si
#%$
, entonces C
Si
#
, entonces C
Si B, entonces C
Si (A o B) y C, entonces D Si A y C, entonces D
Si B y C, entonces D
Si #o$ y C, entonces D
Si
#
y
$
y C, entonces D
Si
#%$
y C, entonces D
Si
#
y C, entonces D
Si
$
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 $ , entonces C
Si A y & , entonces B
Si A, entonces
$%&
Si A y B, entonces &
Si A y C, entonces B
Si A, entonces $o& Si A, entonces $
Si A, entonces &
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.
..&.2. M5!5r de in<eren)ia
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.
,.1.#.1. Aodus 1onens y Aodus Collens
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.
44
Figura: 3.3. Regla de inferencia de Modus Ponens
En forma más sencilla y matemática
A B
A 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.
))
"ocumento en linea* ,,,.,e'electronica.com.ar. &reación de una 'ase del conocimiento determin!stica.
&onsultado en Cctu're @3 de 2..>.
Modus Ponens
Regla
Hecho:
Modus Tollens
Regla
Hecho:
Si
A es cierto
En!5n)e
B es cierto
A es Cierto
B es Cierto
Si
A es cierto
En!5n)e
B es cierto
B es Falso
A 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.
,.1.#.#. 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.
Figura 3.5 Un ejemplo de un conjunto de seis reglas relacionando 13 objetos.
Supóngase que se dan los hechos H = cierto, Ì = 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
,.1.#.!. Encadenamiento de Reglas orientado a un ob&etio
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}
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.
45
..&.#. C5n!r5? de C56eren)ia
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.
)/ Las figuras 2.@.9 2.@@9 2.@29 fueron tomadas del documentos 7istemas E(pertos 0asados en 6eglas. Autor* 5rof. JosN anuel IutiNrrez. "pto. de atemQtica Aplicada. $niversidad de
&anta'ria. EspaRa. 2..4
,.1.!.1. 3o>erencia 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.
Ta8?a .., Una tabla de verdad que muestra que las Reglas 1 y 2 son coherentes
O89e!5 C5n)?=i5ne C5n)?=i5ne
C5n!radi)!5ria
A B Reg?a & Reg?a 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
,.1.!.#. 6nco>erencia 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):
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.
Ta8?a ..- Una tabla de verdad que muestra que las Reglas 1 y 2 son coherentes
O89e!5 C5n)?=i5ne C5n)?=i5ne
C5n!radi)!5ria
A B Reg?a & Reg?a 2 Reg?a # Reg?a +
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 ÌÌ.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, 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.
,.1.!.!. 3o>erencia de Nec>os
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 NÌP = 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 NÌP 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
..&.+. E9e";?5
+-
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.
Ta8?a ... Objetos y sus correspondientes valores para el ejemplo del control de
tráfico ferroviario.
O89e!5 Va?5r
U
1
a U
8
{verde, rojo}
L
1
a L
6
{verde, rojo}
S
1
a S
5
{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 U
1
está verde, entonces puede permitirse la salida de
un tren que esté en la vía S
1
y no debe permitirse la salida de los trenes de
la vía S
2
, por lo que L
1
tiene que estar en rojo. Lo mismo es cierto para las
vías S
4
y S
5
. 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 L
1
= verde, entonces U
1
= rojo.
· Regla 2a: Si L
6
= verde, entonces U
6
= rojo.
)4 Ejemplo tomado del texto: Sistemas experto y Modelos de Redes Probabilísticas. Castillo, Enrique y Otros. España 2005.
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 U
3
y L
3
están en rojo, entonces ningún tren puede salir de
la vía S
1
. La misma condición vale para las señales U
5
y L
5
. Por ello, se
tiene la regla
· Regla 9: Si (U
3
= rojo y L
3
= rojo) o (U
5
= rojo o L
5
= rojo), entonces U
1
= 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.
Ta8?a ../ Reglas para el ejemplo del control de tráfico ferroviario.
Reg?a Pre"ia C5n)?=i*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
..&.,. C5n)?=i5ne
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.
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.
Le))i*n #2
..2Si!e"a E:;er!5 Pr58a8i?G!i)5
..2.&. La in)er!id="8re
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 - (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 - 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.
..2.2. Ti;5 de Faria8?e a?ea!5ria
Varia8?e a?ea!5ria4 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:
• Di)re!a: el número de valores es finito.
o Ejemplos:
 Número de puerto TCP origen.
 Dirección ÌP origen.
• C5n!in=a4 puede asumir todos los valores posibles en cierto intervalo a-b.
o Ejemplos:
 Temperatura ambiente.
 Tiempo de fallo de un dispositivo.
 Distancia del robot a la pared.
..2.#. De<ini)i*n de Si!e"a E:;er!5 Baad5 en Pr58a8i?idad
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:
9ado que el paciente presenta un con&unto de s7ntomas, Pcu/l de las
enfermedades posibles es la que tiene el pacienteJ
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.
,.#.!.1. Aedidas de 1robabilidad.
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'
A:i5"a & 7N5r"a?i>a)i*nK:
La probabilidad total de todo el espacio muestral es igual a 1
p(-) % 1.
A:i5"a 2 7Adi!iFidadK:
Para cualquier sucesión infinita A1, A2 , ... de subconjuntos disjuntos de S, se
cumple la igualdad
p( ∪A
i
) =∑ 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.
,.#.!.#. 1ropiedades
Pr5;iedad & 7N5r"a?i>a)i*nK4 p(
φ
) % 0
Evidencia asociada a una ausencia completa de información es cero
Pr5;iedad 2 7M5n5!5ni)idadK4 Si -

@

5, entonces p(5) ≤ p(@)
La evidencia de la pertenencia de un elemento a un conjunto dado A no debe
decrecer con la adición de elementos a A.
Pr5;iedad # 7C5n!in=idadLC5ni!en)iaK4 Para toda sucesión creciente ...

5
#

5
1
, o decreciente 5
1


5
#


... de subconjuntos de S se tiene: lim p(5
i
) % p(lim
5
i
)
Si se eligen dos sucesiones de conjuntos que convergen al mismo subconjunto de
S, se debe obtener la misma evidencia o incertidumbre.
Pr5;iedad + 7In)?=i*nLE:)?=i*nK4 9ado cualquier par de subcon&untos 5 y @ de
- se cumple siempre la igualdad' p(A ∪B) = p(A) + p(B) - p (A ∩ B)
,.#.!.!. 9istribuci*n de probabilidad
Sea {X
1
, ... X
n
} un conjunto de variables aleatorias discretas y {x
1
, ... x
n
} 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 ) =

+ (n 9...9 @ (i 9 @ - (i ...9 (@9
p(x1, ... xn)
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.
,.#.!.". 1robabilidad 3ondicional
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
A + ? # $ P
. 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 ) =

j
'
( j
( j
' ' ' ' P
' ' ' ' P
A 9... 9 9 ?
A 9... 9 9 ?
2 @
2 @
,.#.!.?. 9ependencia e 6ndependencia
Ìndependencia 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:
p(y|x) = p(x,y) / p(x) = p(x) p(y) / p(x) = p(y)
7.2.3.6. Ceorema de @ayes
Si los eventos
m
$ $ $ 9...9 9
2 @
constituyen una división del espacio muestral S,
donde
. A ? ≠
i
$ P
, para
m i 9...9 3 9 2 9 @ =
, entonces para cualquier evento A en S es tal
que
. A ? ≠ # P
.
∑ ∑
= =
=


=
m
i
i i
i i
m
i
i
i
i
$ P $ # P
$ P $ # P
# $ P
# $ P
# $ P
@ @
A ? T A + ?
A ? T A + ?
A ?
A ?
A + ?
.
En el modelo general los eventos
@ 2
9 9...9
m
$ $ $
, forman una partición del espacio
muestral S, donde
. A ? ≠
i
$ P
, para
@9 29 39...9 i m =
, entonces para cualquier evento
A de S, en particular

) i
j
# #

=
, para
n j 9...9 3 9 2 9 @ =
tal que
. A ? ≠
j
# P
, entonces se
tiene que:
∑ ∑




m
* i
i i j
i i j
m
* i
j i
j i
i i
+ P,$ + $ P,#
+ P,$ + $ P,#
*
+ # P,$
+ # P,$
* + # P,$
@ @
+
+
+
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.
47
,.#.!.,. Reglas generali+adas
Una forma de introducir la incertidumbre en los sistemas basados en reglas
consiste en utilizar reglas generalizadas.
Por ejemplo, dada la regla determinista
)=
J.A. 0aRares 0aRares. @DDD. 6esolución de 5ro'lemas en L06. "epartamento de InformQtica e Ingenier!a
de 7istemas &.5.7. $niversidad de Earagoza
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.
MYCÌN 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.
..2.+. In!r5d=))i*n de ?5 i!e"a e:;er!5 8aad5 en ;r58a8i?idad
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.
Ta8?a ..9 Tabla de diez pacientes y el diagnostico binario de 5 enfermedades.
Pa)ien!e
En<er"edad Sin!5"a
7EK S
&
S
2
S
#
1 E5 1 1 1
2 E2 1 0 1
3 E3 1 1 0
4 E5 0 0 1
5 E3 0 1 0
6 E1 1 1 0
7 E1 1 1 1
8 E3 1 0 0
9 E1 1 1 1
10 E5 1 0 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
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?
..2.,. La Bae de? C5n5)i"ien!5
La base de conocimiento de un sistema experto probabilístico consiste en un
conjunto de variables, {X
1
, . . . , X
n
}, y una función de probabilidad conjunta
definida sobre ellas, p(x
1
, . . . , x
n
). 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
Ta8?a ..&0 Tabla con datos de funciones de probabilidad. Probabilidad conjunta
D M
' M' ' M'
C E 0.00 0.00 0.01 0.05
~E 0.02 0.18 0.04 0.10
~C E 0.00 0.00 0.01 0.01
~E 0.07 0.23 0.10 0.18
Por ejemplo, el 50% de las personas son mujeres, y el
0.01+0.04+0.01+0.01N (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 -e.o y Mumador 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 -e.o y Embara+o
son dependientes.
Mumador y Embara+o contienen información relevante sobre el Sexo. Pero
el suceso "la persona está embarazada¨ contiene mucha más información
sobre el -e.o que el suceso "la persona es fumadora¨ .
p(A=mujer | A =e) / p(A = mujer | A = f) = 1/0.64 >1
¿Estado 3iil contiene información relevante sobre el -e.oJ
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 Ìndependientes (MSÌ)
El Modelo de Síntomas Relevantes Ìndependientes (MSRÌ)
El Modelo de Síntomas Relevantes Dependientes (MSRD)
,.#.?.1. Aodelo de -7ntomas 9ependientes
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.
Figura 3.10. Modelo de Síntomas dependientes
48
,.#.?.#. Aodel
o de
-7ntomas 6ndependientes
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
49
Puesto que lo síntomas se suponen condicionalmente independientes
)>
J.A. 0aRares 0aRares. @DDD. 6esolución de 5ro'lemas en L06. "epartamento de InformQtica e Ingenier!a
de 7istemas &.5.7. $niversidad de Earagoza
)D
I'd )D
,.#.?.!. Aodelo de -7ntomas Releantes 6ndependientes
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 independientes
50
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 MSRÌ, 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. Aodelo de -7ntomas Releantes 9ependientes
Aunque el MSRÌ reduce el número de parámetros considerablemente, es poco
realista:
• 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 MSRÌ 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 MSRÌ.
/.
I'd /.
Figura 3.13. Modelo de Síntomas Relevantes dependientes
..2.-. M5!5r de In<eren)ia
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:
1regunta 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).
1regunta #' 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.
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.
Le))i*n ##
..#Rede BaEeiana
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 1(. Q -
.
) para
cada nodo x dado su conjunto de padres U
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)=H
i=1
n
P(x
i
| ¬
xi
)
Da??a>g5: determinación del valor de una variable, a partir de un dato (una
observación, una medida...).
EFiden)ia: conjunto de todos los hallazgos disponibles en un determinado
momento.
Pr58a8i?idad a ;ri5ri: es la probabilidad de una variable o subconjunto de
variables cuando no hay ningún hallazgo. Coincide con la probabilidad marginal
P(x).
Pr58a8i?idad a ;5!eri5ri4 es la probabilidad de una variable o subconjunto de
variables dada la evidencia e. Se trata de la probabilidad condicional P(x|e).
..#.&. A;rendi>a9e A=!5"A!i)5 de ?a Red BaEeiana
,&
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
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.
..#.2. C?ai<i)ad5re BaEeian5
/@
"isponi'le en* $6L ?http*++lsi.ugr.es+Orosana+investigacion+papers+a'ad-efsi.2.pdfA
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
52
, las redes
neuronales
53
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 ;aRe @ayes 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 5ugmented ;aRe @ayesian net0orSs
(5;)), 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 Ìnteligencia 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 -imple 5umentada en /rbol (del inglés
Cree 5ugmented ;aRe @ayesian net0orS (C5;)) (Friedman, N.; Geiger, D;
Goldszmidt, M. (1997). y el de red bayesiana -imple 5umentada Estructurada
(Abad, M. 2001) (del inglés -tructured 5ugmented ;aRe @ayesian net0orS (-5;)).
/2
Vuinlan9 J. 6. ?@DD4A. WImproved use of continuous attri'utes in &)./X9 )ournal o #rtiicial Intelligence
Researc"9 )9 ==-D..
/3
Leigh9 <Y 5urvis9 6Y 6agusa9 J. ?2..2A. WForecasting the n#se composite inde( ,ith technical anal#sis9
pattern recognition9 neural net,or29 and genetic algorithm* a case stud# in romantic decision supportX9
.ecision /upport /%stems9 329 34@- 3==.
El algoritmo TAN construye una red bayesiana con una estructura C5; (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 + de un atributo . se utiliza como medida la
llamada informaci*n mutua condicionada de . y + dada la clase y: Se trata de una
medida del grado de independencia condicional de . y + dada la clase y: 6 (., + Q
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 -5; (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
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 sobrea&uste, 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 -tructural
RisS Ainimi+ation). 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.
,.!.#.1. E&emplo' 5denocarcinoma 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ástrico
54
Existen 700 pacientes (región no sombreada) que tienen la enfermedad
adenocarcinoma gástrico (G), y 300 (región sombreada) no la tienen.
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:
Probabilidad a priori: 440 de 1000 pacientes vomitan => p(v) =
@...
)).
= 0.44
/)
I'd
Verosimilitud: El 50% de los pacientes que tienen la enfermedad vomitan.
p(v|g) = card(v,g)/card(g)=350/750=0.5
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
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:
..+ C5";ara)i*n en!re ?5 SE 8aad5 en Reg?a E ?5 SE 8aad5 en
Pr58a8i?idade
Ta8?a ..&& Comparación entre los sistemas expertos basados en reglas y los
sistemas expertos basados en probabilidades.
BASADOS EN RE$LAS PROBABILISTICOS
Base de
Conocimiento
Objetos y conjunto de reglas. Fácil
de implementar, pues sólo es
necesario utilizar elementos
simples, tales como objetos,
conjuntos de valores, premisas,
conclusiones y reglas.
El conocimiento que puede ser
almacenado es limitado.
Espacio de probabilidad, que incluye
las variables, sus posibles valores, y
su función de probabilidad conjunta.
Ìnconveniente: el alto numero de
parámetros que manejan, lo que hace
que sea difícil su especificación y
definición.
Motor de
Ìnferencia
Las conclusiones se obtienen de
los hechos aplicando las
diferentes estrategias de
inferencia, tales como Modus
Ponens, Modus Tollens y
encadenamiento de reglas; por lo
que es rápido y fácil de
implementar.
Se basa en la evaluación de las
probabilidades condicionales utilizando
uno o vario métodos propuestos por
los diferentes tipos de sistemas
expertos probabilisticos. El grado de
dificultar depende del modelo
seleccionado y varia desde baja, para
los modelos de independencia, a alta,
para los modelos de dependencia
generales.
Subsistema
de Explicación
La explicación es fácil, ya que se
sabe que reglas han sido
utilizadas para concluir en cada
momento. El motor de inferencia
sabe que reglas se han utilizado
en el encadenamiento y han
contribuido a obtener conclusiones
y que reglas se han utilizado sin
éxito.
Se basa en los valores relativos de las
probabilidades condicionadas que
miden los grados de dependencia.
Una comparación de las
probabilidades condicionales para
diferentes conjuntos de evidencia
permite analizar sus efectos en las
conclusiones.
Subsistema
de
Aprendizaje
Consiste en incorporar nuevos
objetos, nuevos conjuntos de
valores factibles para los objetos,
nuevas reglas o modificaciones de
los objetos existentes, de los
conjuntos de valores posibles o de
las reglas.
Consiste en incorporar o modificar la
estructura del espacio de probabilidad:
variables, conjunto de posibles
valores, o los parámetros (valores de
las probabilidades).
Le))i*n #+
..,Si!e"a Baad5 en Ca5
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]
..,.&. Di!5ria
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 Schank
55
fue la base de los tempranos sistemas
CBR: Janet Kolodner's en 1983 ayudo a la construcción de CYRUS
56
and Michael
Lebowitz's a la de ÌPP.
57
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í
//
6oger 7chan29 "#namic emor#* A 1heor# of Learning in &omputers and 5eople ?%e, 8or2* &am'ridge
$niversit# 5ress9 @D>2A.
/4
Janet :olodner9 Z6econstructive emor#* A &omputer odel9Z &ognitive 7cience = ?@D>3A* ).
/=
ichael Le'o,itz9 Zemor#-0ased 5arsing9Z Artificial Intelligence 2@ ?@D>3A9 343-).).
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
CLAVÌER
58
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.
59
Y otras.
..,.2. E? )i)?5 de? ra>5na"ien!5 8aad5 en )a5
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 diferenciados
60
:
• RECORDAR 5 RECUPERAR los casos similares al que analizamos. (un
nuevo problema se aparea con casos similares guardados en la base de
casos)
• REUTILI2AR 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 5 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.
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
/>
0ill ar29 Z&ase-0ased 6easoning for Autoclave anagement9Z 5roceedings of the &ase-0ased 6easoning
<or2shop ?@D>DA.
/D
1rung %gu#en9 ar# &zer,ins2i9 and "an Lee9 Z&C5AV Vuic27ource* 5roviding the &onsumer ,ith the
5o,er of Artificial Intelligence9Z in 5roceedings of the Fifth Annual &onference on Innovative Applications
of Artificial Intelligence ?<ashington9 "&* AAAI 5ress9 @DD3A9 @)2-@/@.
4.
"ocumento en l!nea* $6L ?http*++es.,i2ipedia.org+,i2i+&ase-'ased3reasoningA
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.
Le))i*n #,
..-Rede Ne=r5na?e Ar!i<i)ia?e
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
robustez
61
.
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 <=n)i*n de ;r5;aga)i*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 <=n)i*n de a)!iFa)i*n, que modifica a la anterior. Puede no existir, siendo en
este caso la salida la misma función de propagación.
Una <=n)i*n de !ran<eren)ia0 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]).
..-.&. Ven!a9a
4@
1omado de* http*++es.,i2ipedia.org+,i2i+6ed3neuronal3artificial
Las redes neuronales artificiales (RNA) tienen varias ventajas debido a que se
basan en la estructura del sistema nervioso, principalmente el cerebro.
• A;rendi>a9e: 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.
• A=!5 5rgani>a)i*n: Una RNA crea su propia representación de la
información en su interior, descargando al usuario de esto.
• T5?eran)ia a <a??5: 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.
• '?e:i8i?idad: 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)
• Tie";5 rea?: 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.
CAPITULO /. LEN$UA3ES UTILI2ADOS
Le))i*n #-
/.&Leng=a9e =!i?i>ad5 en ?a )5n!r=))i*n de SE
/.&.&. LISP
LÌSP, 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.
-2
LÌSP actualmente está diseñado para manejar símbolos matemáticos (variables),
por lo que es utilizado perfectamente para la investigación en ÌA, donde un
símbolo puede representar cualquier cosa. LÌSP tiene dos características
principales que lo hacen sobresalir de entre los demás lenguajes para ÌA;
a. Primero, es altamente flexible, es decir, es posible escribir un
programa LÌSP para producir cualquier comportamiento deseable de la
computadora.
b. Segundo, es indefinidamente extensible, lo que significa que si como
programador siente que a LÌSP le falta alguna característica, puede escribir
un programa LÌSP que provea dicha característica y hacer que ese programa
forme parte de su LÌSP personal.
LÌSP utiliza un ciclo llamado leer ÷ evaluar ÷ imprimir. Cuando el programador
teclea algo en LÌSP, el lenguaje toma lo que se ha tecleado, intenta
responder de cualquier forma y después despliega dicha respuesta en la
pantalla.
• Leer en LÌSP, es el termino usado para ver lo que se ha tecleado.
• Evaluar, es el término usado para tratar de responder de cualquier forma
• Ìmprimir, 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.
LÌSP utiliza los siguientes conceptos característicos:
• Li!a E %!5"5. La estructura más importante es la lista. Los átomos
pueden subordinarse a cualidades.
42
;A7EE69 1on# # John "omingue. &ommon LI75 5rogramming for Artificial Inteligence.
• La '=n)i*n. Cada función LÌSP y cada programa LÌSP tiene estructura
de lista. Los programas no pueden distinguirse sintácticamente de los
datos. LÌSP ofrece sus propias funciones básicas.
• '5r"a de Tra8a95. LÌSP 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.
• L5 A!5"5 5n nI"er50 )adena de )ara)!ere 5 G"85?5. 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 LÌSP 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 LÌSP, las listas,
que se modifican de forma dinámica e ilimitada.
Además un sistema LÌSP abarca bastante más que el solo intérprete del lenguaje
LÌSP. 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 LÌSP que contengan la
conocida interfaz gráfica ÌDE (entorno de desarrollo integrado) típica de los
modernos lenguajes visuales.
/.&.2. CLIPS
CLÌPS es otra herramienta para el desarrollo de S. que ofrece un entorno
completo para su construcción basado en reglas y objetos. CLÌPS está siendo
utilizado por numerosos usuarios como la NASA (que es su creadora), muchas
universidades y empresas. CLÌPS viene de (C Language Ìntegrated 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.
63
/.&.#. PROLO$
43
0A[A6E79 JosN Fngel. ;erramientas para las asignaturas del IAI&.
$6L?http*++diana.cps.unizar.es+IA+noticias.htmlA
Prolog es un lenguaje de programación que se centra alrededor de un conjunto
pequeño de mecanismos, incluyendo reconocimiento de patrones, estructuras de
datos basadas en árboles y bactraking (retroceso) automático. Este conjunto
pequeño constituye una estructura de programación sorprendentemente poderosa
y flexible. Prolog es ideal para resolver problemas que involucren objetos ÷ en
particular objetos estructurados ÷ y relaciones entre ellos. Por ejemplo, un ejercicio
muy sencillo en Prolog es expresar relaciones espaciales, de la forma: "la esfera
azul detrás de la verde¨.
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.
/.&.+. S"a??!a?O
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 Ìnteligencia Artificial.
Virtualmente todo lo que existe en un sistema Smalltalk es una instancia de una
clase particular de objeto y generalmente puede haber tantas instancias como se
deseen. Esto significa que se pueden tener cualquier número de instancias de
cualquier característica del sistema activas al mismo tiempo
4)
.
/.&.,. C E CPP
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 ÌA 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 ÌA 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 ÌA.
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 ÌA
4/
.

Le))i*n #.
/.2Derra"ien!a E SDELLS =!i?i>ad5 en ?a )5n!r=))i*n de SE
Ìnicialmente cada SE que se creaba, se construía a partir de un lenguaje de ÌA tal
como LÌSP. Pero después de que muchos sistemas expertos se construyeron así,
4)
1ELLC9 Ernest. Cp. cit.
4/
7&;IL"1 ;er'ert. Cp. cit.
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.
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.
66
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.
/.2.&. $5?d Q5rO II
Esta herramienta de programación creada por Gold Hill Computers Ìnc. Se ejecuta
bajo LÌSP y utiliza la metodología orientada a objetos. Este programa corre en
computadoras ÌBM 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.
/.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.
67
/.2.#. LOOPS
44
6I&; Elaine # :evin :night. Cp. cit.
4=
1ELLC Ernest. Cp. cit.
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 ÌA
que pueda soportar una estructura de múltiples paradigmas que permitan tantas
opciones de entre paradigmas de programación como sea posible. La versión
actual soporta cuatro paradigmas de programación principales:
El paradigma orientado a objetos, el paradigma basado en reglas, el paradigma
orientado a accesos y el paradigma procedural normal. Como cualquier otro.
/.2.+. REE
KEE, acrónimo de Ambiente de Ìngeniería del Conocimiento, de ÌntelliCorp 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 LÌSP, de manera que
todo el vocabulario del lenguaje LÌSP 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.
/.2.,. D="8?e
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 Ìngeniero de
conocimientos.
/.2.-. EMYCIN
EMYCÌN es acrónimo de Empty MYCÌN (MYCÌN vacío); este shell fue creado a
partir de MYCÌN, 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.
68
Le))i*n #/
/.#Re;reen!a)i*n de? )5n5)i"ien!5
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
4>
LAL"ILIA 6osas9 "avid. 7istemas E(pertos.
$6L?http*++,,,.fortunecit#.com+s2#craper+romro,+2.=+se+5ortada.htmlA
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
por gramáticas formales, usualmente implantadas por sistemas o lenguajes
procedimentales y sistemas basados en reglas (sistemas de producción).
69
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ón
70
. 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.
/.+L*gi)a Pr5;5i)i5na?
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.
4D
A61EAIA9 6enN # Juan &arlos Armijos. 1utorial de programación ;eur!stica. $6L?,,,.uc3m.es+cgi-
'in+nph-countA
=.
"E AL0C6%CE 0ueno9 Flvaro. La'oratorio de procesamiento de imQgenes.
$6L?http*++,,,.cic.ipn.m(+organizacion+la'3de3int3art.htmA
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.
La principal debilidad de la lógica proposicional es su limitada habilidad para
expresar conocimiento.
/.,L*gi)a de Predi)ad5
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.
/.,.&. Ven!a9a E deFen!a9a de ?a ?*gi)a de ;redi)ad5
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:
• Mane95 de in)er!id="8re. 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.
• Ra>5na"ien!5 "5n5!*ni)5. 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.
• Pr5gra"a)i*n de)?ara!iFa. 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
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.
Le))i*n #9
/.-Reg?a de Pr5d=))i*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.
/.-.&. Ven!a9a E deFen!a9a de ?a reg?a de ;r5d=))i*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.
.&

/..Rede A5)ia!iFa
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
=@
06A1:C Ivan. 5rolog programming for Articial Intelligence.
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
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.
.2

/...&. Ven!a9a E deFen!a9a de ?a Rede A5)ia!iFa
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.
.#
Le))i*n +0
/./E!r=)!=ra <ra"e
Una plantilla (frame) es una estructura de datos apropiada para representar una
situación estereotípica. Las plantillas organizan el conocimiento en objetos y
=2
A%I$LC $sategui9 JosN ar!a # Anselmo del oral 0ueno. Iu!a fQcil de la inteligencia artificial.
=3
A61EAIA9 6enN # Juan &arlos Armijos. Op. cit.
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.
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:
• Rang5. El conjunto de posibles valores para la ranura.
• Va?5r. El valor de la ranura.
• De<a=?!. 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:
• SiLNe)ei!ad5. Procedimiento(s) para determinar el valor actual de una
ranura.
• SiLAgregad5. Procedimiento(s) a ejecutarse cuando un valor es
especificado para una ranura.
• SiLM5di<i)ad5. 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.
.+
/./.&. Ven!a9a E deFen!a9a de ?5 <ra"e
Las ventajas que se pueden establecer para los sistemas basados en plantillas
son las siguientes:
• 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.
=)
0E%&;ICL9 Iu#9 5ierre Levine # Jean &harles 5romerol. Los sistemas e(pertos en la empresa.
• 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
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.

/.9Re;reen!a)i*n 5rien!ada a 589e!5
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.
/.9.&. Ven!a9a E deFen!a9a de ?a re;reen!a)i*n 5rien!ada a 589e!5

Los objetos, como forma de representación del conocimiento ofrecen las
siguientes ventajas:
• Poder de abstracción.
• 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:
• Dificultades para manejar objetos que se alejan demasiado de la norma.
• Dificultades para manejar situaciones que han sido encontradas
previamente.
/.&0 ACTIVIDADES COMPLEMENTARIAS
1. Realice un cuadro comparativo de los diferentes lenguajes de
programación utilizados en la construcción de SE.
2. En que consiste la lógica proposicional y la lógica de predicados,¿Cual es
su uso en las SE?
3. Realice un cuadro comparativo destacando las ventajas y desventajas de
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 en
la construcción de SE
CAPITULO 9. INTRODUCCI(N A PROLO$
Le))i*n +&
9.&C5n)e;!5 BAi)5
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 .pl
75
9.&.& De)65
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.&.2 Varia8?e
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
=/
1omado de* http*++fcHi.tij.ua'c.m(+docentes+ardiaz+conceptos.html
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.
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.&.# Reg?a
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).
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.&.+ C5"en!ari5
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.&., E? A"8i!5 de ?a Faria8?e.
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.
Le))i*n +2
9.&.- O;erad5re
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'.
<.1.T.1 5ritmBticos
Todas las versiones de Prolog soportan los siguientes operadores aritméticos,
listados en el orden de prioridad de ejecución.
• +  SUMA
• -  RESTA
• *  MULTÌPLÌCACÌÓN
• /  DÌVÌSÌÓN
• //  DÌVÌSÌON ENTERA
• MOD  RESÌDUO
• ^  POTENCÌA
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:
Ta8?a 9.& Otros operadores que soporta prolog
O;era)i*n De)ri;)i*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
<.1.T.# Relacionales
También dispone de predicados de igualdad y desigualdad.
• =  ÌGUAL QUE (X = Y igual)
• >  MAYOR QUE (X < Y menor) (X > Y mayor)
• >=  MAYOR O ÌGUAL QUE (X <= Y)
• >=  MENOR O ÌGUAL QUE (X >= Y)
• <>  DESÌGUAL QUE
• =/=  DÌFERENTE QUE (X \= Y distinto)
• is  EVALUADOR DE EXPRESÌÓN
• seed  GENERADOR DE NÚMEROS ALEATORÌOS
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.
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.&.. Predi)ad5
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.&./ E!r=)!=ra
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.
9.&.9 C5n=?!a
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.&.&0 C?A==?a E Re?a)i*ne
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.
<.1.10.1 Cipos 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.
<.1.10.# 6nterpretaci*n de una 3l/usula en 1rolog
A:- A1,...,An.
:-  Es equivalente "Si" o "si".
,  Es equivalente "AND".
;  Es equivalente a "OR"
Le))i*n +#
9.2C5n!r=))i*n de reg?a de ;r5d=))i*n en Pr5?5g
La estructura de una regla en PROLOG es la siguiente:
consecuente :- condicion
1
, condicion

, ..., condicion
N
.
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.
Según esta estructura las reglas se pueden dividir en tres partes:
• Cabeza: El consecuente
• Cuello: El símbolo 4L
• 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 "i X es catedrático en!5n)e
X es doctor¨ y "i (X es jefe_dpto) en!5n)e (x es catedrático)¨ se codifica en
PROLOG.
(1) catedratico(X) :-jefe(X).
(2) doctor(X) :- catedratico(X).
(3) catedratico("Ìvan 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('Ìngrese 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 4atencia 9istal 8% " Then 4atencia 9istal ;ormal
If 4atencia 9istal $ " Then 4atencia 9istal 5normal
En Prolog las reglas de producción serian
latenciadistal(X):-X>=4,write('Normal').
latenciadistal (X):-X<4,write('Anormal').
y la pregunta para saber si tiene latencia distal normal o anormal seria:
latenciadistal (5).
Si (el term*metro marca !<=) 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
hechos
76
:
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
=4
1omado de* http*++dis.unal.edu.co+Ofgonza+courses+2../-I+AI+taller3-56CLCI.html
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 (;).
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);
}
}
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.
Le))i*n ++
9.#E!r=)!=ra de =n ;r5gra"a PROLO$
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).
Le))i*n +,
9.+E9e";?5 de =n ;r5gra"a en PROLO$
Una vez tengas instalado SWÌ-Prolog en tu equipo y lo ejecutes te aparecerá la
consola que permite hacer consultas.
En Qind5S
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.
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 SWÌ-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/2-
facts/index_18.html
%% Please load this file into SWÌ-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).
&0. BIBLIO$RA'IA
• PROLOG / Francois Giannesini, Henry Kanoui, Robert Paseroy Michael Van
Canaghen .-- s.c: Editorial Ìberoamericana.
• Patrick Henry Winston , Ìnteligencia Artificial , Editorial Ìberoamericana
• 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 Ìngeniería.
• Durkin, J. (1994), Expert Systems: Design and Development. Maxwell Macmillan, New
York.
• Russell Stuart y Norving Meter, (2.004), Ìnteligencia Artificial, Pearson Education
• Giarratano Joseph y Riley Gary, (2.001), Sistemas Expertos Principios y
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¨, 1roceedings of t>e Eleent> 3onference on Uncertainty in 5rtificial
6ntelligence, 157-166.
• Sahami, M. (1996). "Learning limited dependence Bayesian classifiers¨, 1roceedings
of t>e -econd 6nternational 3onference on Vno0ledge 9iscoery and 9ata AiningI,
!!?, !!:, Aenlo 1arS, 35.
• Friedman, N.; Geiger, D; Goldszmidt, M. (1997). "Bayesian network classifier¨,
Aac>ine 4earning, 29, 131-163, 1997.
• Abad, M. (2001). "Aplicación del principio inductivo de MEVR en la construcción de
clasificadores¨, tesis doctoral. Departamento de Ìngeniería de la Ìnformación y las
Comunicaciones, Universidad de Murcia, España.
SITIOS QEB
• SSS.1d?.F)ag.":N--N5?a.6!"N
• SSS.?a<a)=.)5"Na;=n!eNin<5r"a!i)aNi!Te:;eN
• 6!!;4NN65"e.S5r?d5n?ine.eN9"ari5)rN
• SSS.ingenier5enin<5r"a!i)a.5rgNre)=r5N!=!5ria?eNi!Te:;Ninde:.;
6;
• SSS.g5.!5Nin!e?igen)iaTar!i<i)ia?
• SSS.e?L"=nd5.eNen!radae)re!aNin!e?igen)ia.6!"?
• SSS.).=.eN
• SSS.air)en!er.ne!N
• SSS.?a5;ini5n.)5"NFidaEe!i?5N
• SSS.?ag=ia.)5".arNaaia.6!"
• 6!!;4NNe.SiOi;edia.5rgNSiOiNCaeL8aedTrea5ning
• 6!!;4NNSSS.ingenieria.=adE.":NSe8?i5!e)aNi!e"ain!e?igen!eNTe"a0,
NCBR&.6!"
• 6!!;4NNSSS.in<.=de).)?NMreFi!aNedi)i5neNedi)i5n9N;a?)ed5.;d<
• Esta es la última versión de SWÌ-Prolog para Windows.
http://www.swi.psy.uva.nl/cgi-bin/nph-download/SWÌ-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,Ì,ÌÌ,ÌÌÌ,ÌV).
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
%20practica%20en%20prolog.zip
• Programas de ejemplo: http://www.lsi.upc.es/~bejar/docencia/ia.html