Professional Documents
Culture Documents
SISTEMAS EXPERTOS
GUSTAVO CASTRO
Acreditador
ACACIAS
Julio de 2009
INDICE DE CONTENIDO
GLOSARIO DE TERMINOS
UNIDAD 1. VISION GENERAL DE LA INTELIGENCIA ARTIFICIAL Y LOS
SISTEMAS EXPERTOS
CAPITULO 1. INTRODUCCIN A LOS CONCEPTOS BSICOS DE LA IA
Leccin 16 Generalidades
o Introduccin
Leccin 17 Arquitectura de un SE
Leccin 18 Elementos de un Sistema Experto (I)
o Componente Humana
o Base de Conocimiento
Leccin 19 Elementos de un Sistema Experto (II)
o Componente de adquisicin
o Control de Coherencia
o Motor de Inferencia
Leccin 20 Elementos de un Sistema Experto (III)
o Componente de ejecucin
o El componente explicativo
o La interfase del usuario
de
Probabilidad Condicional
Dependencia e Independencia
Teorema de Bayes
Reglas generalizadas
o Introduccin de los sistemas expertos basados en probabilidad
o La Base del Conocimiento
Modelo de Sntomas Dependientes
Modelo de Sntomas Independientes
Modelo de Sntomas Relevantes Dependientes
o Motor de Inferencia
Leccin 33 Redes Bayesianas
o Aprendizaje Automtico de la Red Bayesiana
o Clasificadores Bayesianos
Ejemplo: Adenocarcinoma gstrico
o Comparacin entre los SE basado en Reglas y los SE basados en
Probabilidades
Leccin 34 Sistemas Basados en Casos
o Historia
o El ciclo del razonamiento basado en casos
Leccin 35 Redes Neuronales Artificiales
o Ventajas
Leccin 41
Leccin 42
Leccin 43
Leccin 44
Leccin 45
BIBLIOGRAFIA
Conceptos bsicos
Tipos de operadores de Prolog
Construccin de reglas de produccin en Prolog
Estructura de un programa en Prolog
Ejemplo programa en Prolog
LISTADO DE TABLAS
Tabla 2.1 Comparacin entre un sistema tradicional y un Sistema Experto.
Tabla 2.2 Diferencias entre un experto y un no experto humano.
Tabla 2.3 Diferencias entre un Sistema Experto y un Programa Tradicional.
Tabla 2.4 Diferencias entre un Sistema Experto y un Experto Humano.
Tabla 2.5 Comparativa entre un Sistema Clsico y un Sistema Experto
Tabla 3.1 Tareas comunes de los sistemas expertos
Tabla 6.1 Acciones que debe realizar el monitor
Tabla 7.1 Un ejemplo de objetos con sus posibles valores
Tabla 7.2 Objetos y posibles valores para el ejemplo del cajero automtico
Tabla 7.3 Una tabla de verdad mostrando que las expresiones lgicas AoB y A y
B son equivalentes. Los smbolos C y F se utilizan para cierto y falso,
respectivamente.
Tabla 7.4 Ejemplos de sustitucin de reglas: Las reglas en la primera columna
Tabla 7.5 Una tabla de verdad que muestra que las Reglas 1 y 2 son coherentes
Tabla 7.6 Una tabla de verdad que muestra que las Reglas 1 y 2 son coherentes
Tabla 7.7 Objetos y sus correspondientes valores para el ejemplo del control de
trfico ferroviario.
Tabla 7.8 Reglas para el ejemplo del control de trfico ferroviario.
Tabla 7.9 Tabla de diez pacientes y el diagnostico binario de 5 enfermedades
Tabla 7.10 Tabla con datos de funciones de probabilidad. Probabilidad conjunta
Tabla 7.11 Comparacin entre los sistemas expertos basados en reglas y los
sistemas expertos basados en probabilidades
Tabla 9.1 Otros operadores que soporta prolog
LISTADO DE FIGURAS
Figura 1.1 Visualizacin Inteligencia Artificial
Figura 1.2 Visualizacin del mundo real por el Cerebro humano - Sistema Artificial
Figura 1.3 Anlisis de oraciones
Figura 1.4 Rama de la Inteligencia Artificial
Figura 1.5. Diferencia entre un programa tradicional y un sistema experto
Figura 1.6 Funcionamiento de un SE usado en mantenimiento predictivo
Figura 1.7 Ejemplo sencillo de sistema experto usando el mtodo Determinstico.
Figura 1.8. Principales tcticas de ataque
Figura 2.1 Arquitectura de un Sistema Experto
Figura 2.2. Componentes tpicos de un sistema experto. Las flechas representan
el flujo de la informacin.
Figura 2.3 Relacin entre los elementos de un sistema experto
Figura 2.4 Equipo de desarrollo de un SE
Figura 2.5. Desarrollo de un Sistema Experto
Figura 2.6 Mtodo de encadenamiento hacia adelante
Figura 2.7. Encadenamiento hacia atrs
Figura 2.8. Sistema Basado en conocimiento
Figura 2.9. La base de conocimientos es vista como un objeto contenedor de otros
objetos usando la Metodologa Orientada a Objetos
Figura 2.10. Representacin de dispositivos para el problema en la planta de
procesamiento
Figura 2.11. Representacin de dispositivos para el problema en la planta de
procesamiento
Figura 3.1 Proceso lgico de carga de la Base de conocimiento.
Figura 3.2. Proceso de inferencia de carga de la base de hechos
Figura: 3.3. Regla de inferencia de Modus Ponens
Figura 3.4. Regla de inferencia de Modus Tollens
Figura 3.5 Un ejemplo de un conjunto de seis reglas relacionando 13 objetos.
Figura 3.6 Una representacin grfica de las relaciones entre las seis reglas de la
Figura 3.5
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 nmero en el interior de
un nodo indica el orden en el que se visita cada nodo
Figura 3.8 Trazado de ferrocarril con cinco vas.
Figura 3.9. Diagrama de Ven de la regla de Bayes en forma Genera
Figura 3.10. Modelo de Sntomas dependientes
Figura 3.11. Modelo de Sntomas independientes
Figura 3.12. Modelo de Sntomas relevantes independientes
Figura 3.13. Modelo de Sntomas Relevantes dependientes
GLOSARIO DE TERMINOS
Agenda: Una lista con prioridades asignadas a las reglas, creada por el
mecanismo de inferencia, cuyos patrones satisfacen los hechos u objetos de la
memoria activa.
Base de conocimientos: Es la parte del sistema experto que contiene el
conocimiento sobre el dominio, el conocimiento se obtiene del experto por el
ingeniero del conocimiento el cual es codificado en la base de conocimientos.
Base de hechos (Memoria de trabajo): Contiene los hechos sobre un problema
que se han descubierto durante una consulta. Durante una consulta con el sistema
experto, el usuario introduce la informacin del problema actual en la base de
hechos. El sistema empareja esta informacin con el conocimiento disponible en la
base de conocimientos para deducir nuevos hechos.
Dominio: rea de conocimientos que atiende el sistema experto.
Experto en Dominio: Persona o grupo cuya experiencia o conocimientos se
capturan para usarse en un sistema experto.
Lgica Difusa: rea de investigacin especializada en la ciencia de la
computacin que permite matices de gris y que no requiere que todo sea un
extremo blanco o negro, si/no, o cierto/ falso.
Motor de inferencia: El sistema experto modela el proceso de razonamiento
humano con un mdulo conocido como el motor de inferencia. Dicho motor de
inferencia trabaja con la informacin contenida en la base de conocimientos y la
base de hechos para deducir nuevos hechos. Contrasta los hechos particulares de
la base de hechos con el conocimiento contenido en la base de conocimientos
para obtener conclusiones acerca del problema.
Interfaz de usuario: La interaccin entre un sistema experto y un usuario se
realiza en lenguaje natural. Tambin es altamente interactiva y sigue el patrn de
la conversacin entre seres humanos.
Regla: Instruccin condicional enlaza determinada condiciones con acciones o
resultados.
Shell: Herramienta con propsitos especiales, diseada para cierto tipo de
aplicaciones en las que el usuario solo debe proporcionar la base del
conocimiento.
Intencionalidades
Formativas
Denominacin de
captulos
INTRODUCCIN
1.2.
1.3.
1.4.
Es en los aos 50 cuando se logra realizar un sistema que tuvo cierto xito, se
llam el Perceptrn 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 energas se diluyeron enseguida.
Fue en los aos 60 cuando Alan Newell y Herbert Simon, que trabajando la
demostracin 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 defina un entorno en funcin de una serie de
objetos y los operadores que se podan aplicar sobre ellos. Este programa era
capaz de trabajar con las torres de Hanoi, as como con criptoaritmtica y otros
problemas similares, operando, claro est, con microcosmos formalizados que
representaban los parmetros dentro de los cuales se podan resolver problemas.
Lo que no poda hacer el GPS era resolver problemas ni del mundo real, ni
mdicos ni tomar decisiones importantes. El GPS manejaba reglas heursticas
(aprender a partir de sus propios descubrimientos) que la conducan hasta el
destino deseado mediante el mtodo del ensayo y el error.
En los aos 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 ms concretos. As es como naci el
sistema experto.
El primer sistema experto fue el denominado Dendral, un intrprete de
espectrograma de masa construido en 1967, pero el ms influyente resultara ser
el Mycin de 1974. El Mycin era capaz de diagnosticar trastornos en la sangre y
recetar la correspondiente medicacin, todo un logro en aquella poca que incluso
fueron utilizados en hospitales (como el Puff, variante de Mycin de uso comn en
el Pacific Medical Center de San Francisco, EEUU).
Ya en los aos 80, se desarrollaron lenguajes especiales para utilizar con la
Inteligencia Artificial, tales como el LISP o el PROLOG. Es en esta poca cuando
se desarrollan sistemas expertos ms refinados, como por el ejemplo el
EURISKO, este programa perfecciona su propio cuerpo de reglas heursticas
automticamente, por induccin.
1.6.
Figura 1.2 Visualizacin 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 ms completo.
La observacin de una imagen muestra la diferencia fundamental entre el modo de
procesar los datos del cerebro humano y el de la mquina. El cerebro humano no
acta teniendo en cuenta un programa prefijado, sino ms bien uno de naturaleza
1.7.
Diferentes teoras:
1. Construir rplicas de la compleja red neuronal del cerebro humano (bottomup).
2. Intentar imitar el comportamiento del cerebro humano con un computador
(top-down).
1.7.1. Smbolos vs. Mtodos Numricos
El primer perodo de la Inteligencia Artificial, llamado sub-simblico, data de
aproximadamente 1950 a 1965. Este perodo utiliz representaciones numricas
(o sub-simblicas) del conocimiento. Aunque la mayor parte de los libros de
Inteligencia Artificial enfatizan el trabajo realizado por Rosenblatt y Widrow con
redes neuronales durante este perodo, la realidad es que otra importante escuela
sub-simblica data tambin de la misma poca y estos son los algoritmos
evolutivos.
La escuela clsica dentro de la Inteligencia Artificial, utiliza representaciones
simblicas basadas en un nmero finito de primitivas y de reglas para la
manipulacin de smbolos. El perodo simblico se considera aproximadamente
comprendido entre 1962 y 1975, seguido por un perodo dominado por los
sistemas basados en el conocimiento de 1976 a 1988. Sin embargo, en este
segundo perodo las representaciones simblicas (por ejemplo, redes semnticas,
lgica de predicados, etc.) siguieron siendo parte central de dichos sistemas.
La Programacin Lgica tiene sus orgenes ms cercanos en los trabajos de J. A.
Robinson que propone en 1965 una regla de inferencia a la que llama resolucin,
mediante la cual la demostracin de un teorema puede ser llevada a cabo de
manera automtica.
La resolucin es una regla que se aplica sobre cierto tipo de frmulas del Clculo
de Predicados de Primer Orden, llamadas clusulas y la demostracin de
teoremas bajo esta regla de inferencia se lleva a cabo por reduccin al absurdo.
recetar(X,aspirina)<=tiene(X,fiebre),
Esta ltima establece una regla que dice que, si X tiene fiebre y cefalea (dolor de
cabeza), X debe tomar una aspirina.
El Lenguaje de Primer Orden posee un amplio poder de expresin, los trminos
permiten nombrar los objetos del universo, mientras que las frmulas permiten
afirmar o negar propiedades de stos o bien establecen las relaciones entre los
objetos del universo.
Puede decirse que la Programacin Lgica utiliza la Lgica de Primer Orden como
lenguaje de programacin. Un ejemplo de lenguaje basado en la Lgica de Primer
Orden es PROLOG y aunque toma su nombre de este trmino ("PROgramming in
LOGic"), no abarca toda la riqueza de la Lgica de Primer Orden para resolver
problemas, pues est restringido al uso de cierta clase de frmulas denominadas
clusulas definidas o clusulas de Horn.
Un programa lgico est formado por un conjunto finito de clusulas de programa
que son hechos o reglas. Por ejemplo:
1. padre(luis,miguel). Hecho
2. padre(miguel,jose). Hecho
3. padre(jose,juan). Hecho
4. abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla
Este programa est formado por cuatro clusulas de programa, las tres primeras
son del tipo hecho y definen la relacin padre/2 y la cuarta una regla que define la
relacin abuelo/2. Ntese el uso de las variables X,Y y Z en esta clusula, las
cuales permiten definir de manera general en Prolog la relacin "ser abuelo de",
pues la lectura declarativa de dicha clusula 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
intrprete de Prolog utilizando su mecanismo de inferencia interno, el cual
determina si la meta a demostrar es una consecuencia lgica del programa,
aplicando reglas de deduccin para obtener la respuesta.
Por ejemplo, del programa anterior, utilizando la clusula de tipo meta
?abuelo(X,juan), para preguntar quin es el abuelo de Juan? o bien quines
son los abuelos de Juan?, es posible deducir que Luis es abuelo de Juan, aunque
implcitamente no existe en el programa ningn hecho que as lo afirme.
1.8.
Recuperacin de la informacin
Extraccin de la informacin
problemas de ingeniera complejos, en los que los investigadores del rea han
mostrado resultados exitosos.
Abstracciones de los AIS:
Seleccin Negativa
Seleccin Clonal
Redes Inmunes Artificiales
1.8.8. Extraccin de conocimiento
La minera de datos (DM, Data Mining) consiste en la extraccin no trivial de
informacin que reside de manera implcita en los datos. Dicha informacin era
previamente desconocida y podr resultar til para algn proceso. En otras
palabras, la minera de datos prepara, sondea y explora los datos para sacar la
informacin oculta en ellos.
Bajo el nombre de minera de datos se engloba todo un conjunto de tcnicas
encaminadas a la extraccin de conocimiento procesable, implcito en las bases
de datos. Est fuertemente ligado con la supervisin de procesos industriales ya
que resulta muy til para aprovechar los datos almacenados en las bases de
datos.
Las bases de la minera de datos se encuentran en la inteligencia artificial y en el
anlisis estadstico. Mediante los modelos extrados utilizando tcnicas de minera
de datos se aborda la solucin a problemas de prediccin, clasificacin y
segmentacin3.
1.9.
ACTIVIDADES COMPLEMENTARIAS
2.1.
Introduccin
1956: John McCarthy propone el uso del termino Inteligencia Artificial para
denominar el estudio del tema, en una conferencia en Dartmouth (USA).
Organizada adems por Marvin Minsky, Mathaniel Rochester y Claude
Shannon con fondos de la Fundacin Rockefeller, donde reuni a
profesionales que haban trabajado en el campo de la Inteligencia Artificial.
Entre los participantes, adems de los cuatro organizadores estaban Arthur
Samuel, Trenchard llore, Oliver Selfridge, Alien Newell, Ray Solomonoff y
Herbert Simn. Logic Theorist (LT), desarrollado por Newell, Shaw y Simn
fue discutido en esta conferencia. LT, considerado como el primer programa
que utiliz tcnicas de Inteligencia Artificial, emplea la bsqueda heurstica
para resolver alguno de los problemas contenidos en el libro "Principia
Mathematica" de Whitehead y Russell.
1959: Arthur Samuel disea un programa para jugar a las damas, capaz de
ganar a los mejores jugadores del momento. Su documento fue publicado
por IBM Journal and Development. Frank Rosenblatt describi su mquina,
Perception, para reconocimiento de formas en "Proceedings of a
Symposium on the Mechanization of Thought Processes". Despus de un
perodo de abandono de las ideas propugnadas por Rosenblatt, hoy con la
aparicin de las mquinas conexion istas, Boltzmann y neuromimticas,
dichas ideas vuelven a tener vigencia.
1966: Joseph Weizenbaum crea ELIZA para ilustrar que las tcnicas de
lenguaje natural pueden hacer que un ordenador parezca inteligente. Se
inicia el desarrollo del robot mvil, SHAKEY, construido por SRI
International, cuyo modelo decisorio para planificacin de tareas, utilizar
tcnicas de Inteligencia Artificial.
2.3.
Se puede decir que los Sistemas Expertos son el primer resultado operacional de
la Inteligencia artificial, pues logran resolver problemas a travs 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
resolucin de un problema en un programa de computadora viene del
conocimiento de dominio especifico, no solo de tcnicas de programacin y
formalismo que contiene.
Un Sistema Experto (SE), es bsicamente un programa de computador basado en
conocimientos y raciocinio que lleva a cabo tareas que generalmente slo realiza
un experto humano4; es decir, es un programa que imita el comportamiento
4
PARSAYE, Kamran, Mark Chignell, Setrag Khoshafian y Harry Wong. Intelligent Databases.
Se debe tener en cuenta que la principal caracterstica 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, mdicos, economistas. Todos ellos comparten una caracterstica en
comn; 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)
5
La siguiente tabla muestra algunas diferencias que existen entre los sistemas
clsicos y los expertos:
Tabla 2.1 Comparacin entre un sistema tradicional y un Sistema Experto.
SISTEMA CLASICO
SISTEMA EXPERTO
No contiene errores
Puede contener errores
No da explicaciones, los datos solo El Sistema Experto cuenta con el
se usan o escriben
modulo de explicacin
Los cambios son tediosos
Los cambios en las reglas son fciles
2.4.
Por otro lado, los sistemas expertos presentan grandes carencias frente a los
seres humanos:
2.5.
2.8.
2.10.
3.1.
3.1.1 Medicina
Los SE enfrentan tareas tales como la resolucin de problemas, razonamiento
automtico y aprendizaje automtico. Es tpico el estudio de estos sistemas
inteligentes en dominios especficos del conocimiento, como la medicina.7
Los programas en esta rea se pueden clasificar en:
Anlisis de mercados.
Anlisis de riesgos y tasacin de seguros.
Aplicaciones de impuestos y tasas.
Asesora jurdica y fiscal.
Ayuda a la correcta realizacin de operaciones bancarias.
Concesin de crditos y prstamos.
Evaluacin de riesgos de gestin de cartera.
Gestin del personal.
Planes de inversin de capitales.
Planes de pensiones.
Previsin de los tipos de inters.
Previsin en las fluctuaciones en el mercado de divisas.
Supervisin de los estados financieros.
Valoracin de la situacin financiera de una empresa o cliente.
Verificacin de firmas.
3.1.4 Industria
Los SE en la industria se aplican principalmente en:
Ibid.
3.1.6 Militar
Las aplicaciones se centran en:
3.1.7 Contabilidad
Las actividades administrativas, financieras y contables son campos en los que se
pueden aplicar los Sistemas Expertos, pues cumplen la mayora de los requisitos
que son necesarios para poder desarrollar este tipo de sistemas (por ejemplo las
tareas requieren conocimiento especializado, existen autnticos expertos en la
materia, los expertos son escasos, la pericia necesita ser localizada en distintos
lugares, la mayora de las tareas requieren soluciones heursticas, ...).
Los sistemas expertos se dejan para las tareas que estn poco o no
estructurados, pues en este tipo de tareas se requiere mucho del juicio de un
experto y se utilizan reglas heursticas para llegar rpidamente a una solucin,
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 clasificacin muy grande y adems poco prctica, se puede
clasifican las aplicaciones potenciales de los Sistemas Expertos en contabilidad en
las siguientes reas de aplicacin10:
10
3.1.8 Robtica
Aun cuando los robots no son como se les muestra en las pelculas, realmente
pueden llegar a realizar actividades sorprendentes, sobre todo si son utilizados en
la fabricacin 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, atmsfera sin la cantidad
adecuada de oxgeno y en general bajo cualquier situacin donde se pueda
deteriorar la salud11.
La mayora de los robots tienen un brazo con varias uniones mviles y partes
prensiles, donde todos sus elementos son controlados por un sistema de control
programado para realizar varias tareas bajo una secuencia de pasos
preestablecidos. Los investigadores de IA pretenden adicionar al robot mtodos y
tcnicas que le permitan actuar como si tuviera un pequeo grado de inteligencia,
lo cual pretenden lograr con la conjuncin de todas las reas de la IA.
3.1.9 Reconocimiento de patrones
Trata con la necesidad identificar objetos o imgenes y utilizar esta informacin en
la resolucin de problemas. Debido a que aqu se usa una tcnica exhaustiva de
bsqueda y comparacin de patrones, un sistema con esta caracterstica, puede
llegar a detectar detalles que normalmente se escapan a la observacin humana.
Comnmente se requiere de una gran cantidad de recursos computacionales para
realizar este tipo de investigaciones por lo que los avances en son lentos.
3.1.10 Otros campos de aplicacin
Aeronutica
11
Agricultura
Arqueologa
Derecho
Educacin
Geologa
Meteorologa
Qumica
Transportes
Ventas
3.2.
3.2.4 Control
Un sistema de control participa en la realizacin de las tareas de interpretacin,
diagnstico y reparacin de forma secuencial. Con ello se consigue conducir o
guiar un proceso o sistema.
Los sistemas de control son complejos debido al nmero de funciones que deben
manejar y el gran nmero de factores que deben considerar; esta complejidad
creciente es otra de las razones que apuntan al uso del conocimiento, y por tanto
de los sistemas expertos.
Cabe aclarar que los sistemas de control pueden ser en lazo abierto, si en el
mismo la realimentacin o el paso de un proceso a otro lo realiza el operador, o en
lazo cerrado si no tiene que intervenir el operador en ninguna parte del mismo.
3.2.5 Reparacin, correccin o terapia
La reparacin, correccin, terapia o tratamiento consiste en la proposicin de las
acciones correctoras necesarias para la resolucin de un problema.
Los sistemas expertos en reparacin tienen que cumplir diversos objetivos, como
son:
14
Planeacin
3.3.
16
ANSWERS,
CHARIS,
FINEX,
3.3.6 En Medicina
Para realizar un diagnstico se requiere informacin sobre los sntomas del
paciente, condicin general, historial clnico 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 travs 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 nmero de enfermedades posibles planteando una hiptesis, y al final se
realizan preguntas para soportar el diagnstico.
Una de las formas comunes de llegar a un diagnstico es mediante el
interrogatorio al paciente, en este sentido, los sistemas expertos son los ms
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 electrnicos, nunca se deteriorar, por el contrario, con el
mdulo de aprendizaje se logran ingresar nuevas reglas para tratar nuevas
enfermedades, lo que asegura tambin que al realizar la prueba en pacientes con
los mismos sntomas se diagnostique de la misma forma. A pesar de la precisin
de los sistemas expertos, una parte que hace falta para poder respaldar los
resultados o para poder llegar a ellas ms rpido es la exploracin fsica.
Las formas de razonamiento diagnstico tienen similitud con los razonamientos de
los sistemas expertos:
Probabilsticas. Se basan en la frecuencia de ocurrencia de las enfermedades y
consideran variables como sexo, edad, peso, frecuencia y la probabilidad asociada
entre sntomas-enfermedad.
Causales. Encuentran relaciones fisiopatolgicas y las relacionan con los efectos
que causan, que pueden ser datos clnicos o antecedentes, as como el humor del
paciente, por citar algunos.
Arqueologa, Derecho,
telecomunicaciones.
Geologa
Industria
electrnica,
informtica
3.3.7.1
Palomo Manuel & Martn, Mateos Francisco Jess.2002. Grupo Mejora del Proceso Software y
Mtodos Formales. Departamento de Lenguajes y Sistemas Informticos. Universidad de Cdiz.
Escuela Superior de Ingeniera. C/ Chile, s/n. Departamento de Ciencias de la Computacin e
Inteligencia Artificial, Universidad de Sevilla
que choque est quieto mientras se produce el contacto, pues en otro caso se le
sealar falta personal. Los pasos para realizar un bloqueo son los siguientes:
Preparacin: un primer atacante se queda quieto mientras otro compaero
se acerca a l.
Realizacin: el segundo atacante hace un movimiento rpido y pasa
rozando al compaero (de modo que este moleste lo mximo posible a su
defensor).
Accin del atacante: una vez ha pasado el atacante tiene un amplio abanico
de posibilidades. Si tiene el baln puede tirar a canasta, acercarse a ella,
pasar a un compaero, etc. En caso de que no lo tenga suele prepararse
para recibir un posible pase.
Reaccin del defensor: la reaccin 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 decisin
netamente mejor que otra para cada uno de los participantes en un
bloqueo. Segn sus posiciones concretas, el entorno y las caractersticas
de cada jugador, cada uno debe tomar la decisin que considere oportuna.
Principales tcticas de ataque
El nmero de tcticas de ataque de un entrenador son inimaginables. Cualquier
secuencia de movimientos, bloqueos, pases, quiebros, etc. que faciliten un tiro
cmodo es vlida. Sin embargo, por lo general, casi todas las tcticas suelen
basarse en dos situaciones iniciales, que son jugar al poste alto y jugar al poste
bajo (figura 1.8).
Cuando se juega al poste bajo los dos jugadores ms altos del equipo ocupan
posiciones a sendos lados de la canasta. Los otros tres se distribuyen a lo largo de
la lnea 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 baln cerca de la canasta. Adems, 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 cmodo o libertad
para moverse. La principal desventaja es que los jugadores altos del equipo
defensor sean mejores que los del equipo atacante.
G2 CLASSIC
3.4.
ACTIVIDADES COMPLEMENTARIAS
cuales acciones incluir o eliminar del fondo mutualista. esta es una buena
opcin 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 ayudara u obstaculizara al
ingeniero del conocimiento en su propsito 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 asesora 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 das soleados, con nieve, lluvia, calor, agradables fros, etc. Las
entradas clave para el sistema incluyen el pronstico del clima para la
noche anterior. La observacin que haga usted de la temperatura y la
nubosidad durante la maana y el clima del da anterior. Por medio del
programa de procesamiento de texto desarrolle siete o ms reglas que se
podran usar en este tipo de sistema experto. Crear cinco casos y usar las
reglas que se desarrollaron para determinar el mejor curso de accin.
10. Realice una investigacin de las compaas especializadas en el diseo de
sistemas expertos y en que reas del conocimiento han desarrollado sus
productos.
Intencionalidades
Formativas
Denominacin de
captulos
4.1.
Introduccin
Se puede decir que los sistemas expertos son el primer resultado operacional de
la Inteligencia artificial, pues logran resolver problemas a travs del conocimiento y
raciocinio de igual forma que lo hace el experto humano.
Un Sistema Experto (SE), es bsicamente un programa de computadora basado
en conocimientos y raciocinio que lleva a cabo tareas que generalmente slo
realiza un experto humano24; es decir, es un programa que imita el
comportamiento humano en el sentido de que utiliza la informacin que le es
proporcionada para poder dar una opinin sobre un tema en especial y resolver
problemas especficos.
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
especficos de se rea de manera inteligente y satisfactoria.25 La tarea principal
de un SE es tratar de aconsejar al usuario26.
Los usuarios que introducen la informacin al SE son en realidad los expertos
humanos, y tratan a su vez de estructurar los conocimientos que poseen para
ponerlos entonces a disposicin del sistema. Los SE son tiles para resolver
problemas que se basan en conocimiento27.
Las caractersticas principales de este tipo de problemas, segn algunos autores,
son:
Utilizan normas o estructuras que contengan conocimientos y experiencias
de expertos especializados.
Se obtienen conclusiones a travs de deducciones lgicas.
Contienen datos ambiguos.
24
PARSAYE, Kamran, Mark Chignell, Setrag Khoshafian y Harry Wong. Intelligent Databases.
DE MIGUEL Gonzlez, Luis Javier. Tcnicas de mantenimiento predictivo industrial basadas en Sistemas
Expertos.
26
SCHILDT Herbert, Utilizacin de C en Inteligencia Artificial.
27
CRIADO Briz, Jos Mario. Sistemas Expertos. URL (http://home.worldonline.es/jmariocr/index.htm)
25
4.2.
28
28
Figura tomada de la tesis doctoral Metodologa Para El Desarrollo De Sistemas Expertos diseada por el
doctor Jos Domingo Carrillo Verdun
4.3.
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 especfico, donde el
conocimiento se codifica segn una notacin especfica que incluye reglas,
predicados, redes semnticas 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:
Figura 2.2. Componentes tpicos de un sistema experto. Las flechas representan el flujo de la
29
informacin.
29
Fuente: Castillo, Enrique. Gutirrez, Jos Manuel Sistemas Expertos y Modelos de Redes
Probabilsticas
Las personas que componen un grupo como en todos los mbitos deben cumplir
ciertas caractersticas y cada uno de ellos dentro del equipo desarrolla un papel
distinto. A continuacin se detalla cada componente del equipo dentro del
desarrollo y cul es la funcin de cada uno:
ACTIVIDADES COMPLEMENTARIAS
5.1.
Introduccin
5.2.
Ejemplo:
If Latencia Distal >= 3.8 Then Latencia Distal Normal
If Latencia Distal < 3.8 Then Latencia Distal Anormal
Si (el termmetro marca 39) Y (el termmetro funciona correctamente) Entonces
el paciente tiene fiebre
Una caracterstica 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 fcil aadir 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 jerrquica lgica, 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 tambin 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 aplicacin de la regla de
produccin.
Existen reglas de produccin que no pertenecen al dominio del problema. Estas
reglas se llaman meta-reglas (reglas sobre otras reglas) y su funcin es indicar
bajo qu condiciones deben considerarse unas reglas en vez de otras. Un ejemplo
de meta-regla es:
SI hay reglas que usan materias baratas
Y hay reglas que usan materias caras
ENTONCES usar antes las primeras que las segundas
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 resolucin de un
problema. Contiene conocimiento sobre el caso concreto en que se trabaja.
Tambin se registrarn 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 tambin su porcentaje en forma de probabilidad.
5.2.1.1. Cinco pasos en la construccin de una Base de Conocimientos (BC)
Defina acerca de que va a hablar. Que su conocimiento del dominio sea
suficiente para poder definir de que objeto y hechos es necesario hablar, y
cuales habr que ignorar.
Escoja un vocabulario para predicado, funciones y constantes. Traduzca los
conceptos importantes del nivel de dominio a nombres del nivel de lgica. El
resultado es un vocabulario que se conoce como ontologa del dominio. (Es
una teora particular de la naturaleza del ser o de la existencia )
Codifique todo el conocimiento en general relativo al dominio. La ontologa es
una lista informal de los conceptos de un dominio. Al elaborar oraciones lgicas
o axiomas sobre los trminos de la ontologa se logran dos metas: Primero, se
precisan los trminos con el fin de que los humanos estn de acuerdo de su
correspondiente interpretacin; segundo, estamos ofreciendo condiciones que
permitirn la ejecucin de procedimientos e inferencia para deducir
automticamente 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 depuracin. La principal diferencia entre la
depuracin de una BC y la de un programa consiste en que es ms fcil revisar
una sola oracin lgica y determinar si es correcta. Las aseveraciones tienden
a depender bastante del contexto.
Codifique una descripcin de un caso especfico del problema. Si la ontologa
se eligi adecuadamente este paso es muy sencillo, consiste en la obtencin
de oraciones atmicas.
Haga consultas al procedimiento de inferencia y obtenga la respuesta: ser el
procedimiento de inferencia el que opere en los axiomas y los hechos
concretos del problema para deducir as los hechos que nos interesa conocer.
5.2.1.2. Proceso Lgico de Carga de la Base de Conocimiento
La base de conocimientos aloja la totalidad de las informaciones especficas
relativas al campo del saber deseado, est escrita en un lenguaje especfico de
representacin de los conocimientos que contiene y en el cual el experto puede
definir su propio vocabulario tcnico. A la inversa de lo que sucede en los
programas clsicos, 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 informacin se representa, por regla general, mediante reglas de
Atributo
Atributo
Atributo
Atributo
Objeto
Figura 2.6 Mtodo de encadenamiento hacia adelante
Atributo cumplido
Atributo no cumplido
Atributo cumplido
Atributo no cumplido
Atributo cumplido
Atributo cumplido
Objeto encontrado
Una vez que las reglas han sido reconocidas deben ser elegidas, dependiendo de
la estrategia de control, que es la seleccin y una vez estas han sido elegidas
deben de ejecutarse.
5.2.3.1. Identificacin de patrones
Esta operacin determina cules son las reglas potencialmente aplicables en un
estado dado de la base de datos.
Hay ciertos mtodos tpicos para resolver problemas mediante Inteligencia
Artificial como: descomposicin de problemas, inferencia deductiva, deduccin
lgica, etc.
No es necesario que la bsqueda se aplique a todas las reglas, el sistema de
control puede decidir cules no son necesarias a ese nivel.
El filtrado significa tener el conocimiento para encontrar las reglas cuya
precondicin se satisfaga. Se debe comparar por tanto la precondicin con la base
de datos. Si es una regla deductiva "si premisa entonces conclusin", la parte a
ser probada de la regla, se llama disparador o activador (tigger) es siempre una
frmula bien formada ya sea de lgica proposicional o de lgica de primer orden.
Puede aplicarse a cualquier hecho.
El nico lenguaje que est totalmente basado en el clculo de predicados es el
PROLOG.
Los procesos de identificacin de patrones pueden mejorarse examinando, dentro
del activador de cada regla, primero los predicados con ms restricciones, es
decir, los que tienen el menor nmero 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. Despus de
cada ciclo del motor de inferencia, esta memoria se actualiza y se denomina
filtrado por propagacin.
5.2.3.2. Ejecucin de las reglas
Despus 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 eleccin la realiza la estrategia de control.
La conclusin de la regla tiene por objeto modificar la base de conocimiento,
creando, modificando o suprimiendo un hecho.
CAPTULO
6.
CONOCIMIENTO
SISTEMAS
EXPERTOS
BASADOS
EN
6.1.
6.3.
Principales Problemas
6.4.
6.5.
Objeto
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Objeto
Atributo
Atributo
Atributo
Atributo
Atributo
Atributo
Figura 2.9. La base de conocimientos es vista como un objeto contenedor de otros objetos usando
la Metodologa Orientada a Objetos
Esta metodologa tiene diversas ventajas, entre las cuales destaca el hecho que
cualquier modificacin o mantenimiento que se le quiera realizar a un determinado
componente no afectar al otro y viceversa. Tello propone crear especializaciones
o jerarquas de clases (usando herencia) que incluyan mtodos que permitan a los
objetos modificarse a s mismos, logrando con esto que un sistema experto
aprenda por s mismo, modificando su base de conocimiento sin modificar los
dems componentes. Otra ventaja de la POO es que mediante la herencia, las
clases hijas heredarn el comportamiento de las clases padres, evitando con esto,
tener que incluir cdigo redundante en las especializaciones.
6.6.
No
Es una serpiente
Nodo respuesta
Nodo respuesta
Es un perro
Es un animal de
No
Nodo decisin
Si
El animal
Nodo decisin
Es un gato
Si
Nodo respuesta
J.A. Baares Baares. 1999. Resolucin de Problemas en LBR. Departamento de Informtica e Ingeniera
de Sistemas C.P.S. Universidad de Zaragoza
31
Ibd 73
Accin
PARADA dispositivo
Da ALARMA o PARADA
dispositivo
Ninguna
Da ALARMA o PARADA
dispositivo
PARADA dispositivo
Sensor S1
Sensor S2
Dispositivo D1
Sensor S3
Dispositivo D2
Sensor S4
Sensor S5
Dispositivo D3
Sensor S6
Dispositivo D4
6.7.
32
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 funcin 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?
Cul es la diferencia entre ellos?
6. Realice un cuadro comparativo entre los mtodos bsicos 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 metodologas para la construccin
de SE.
10. Realice un mapa conceptual que resuma la unidad.
32
J.A. Baares Baares. 1999. Resolucin de Problemas en LBR. Departamento de Informtica e Ingeniera
de Sistemas C.P.S. Universidad de Zaragoza
Intencionalidades
Formativas
Denominacin de
captulos
7.1.
33
El Concepto es tomado del documento: Inteligencia Artificial. 2003. Arrua Luciana. Meza Fernndez
Eduardo.
Sistemas Expertos y Modelos de Redes Probabilsticas. Enrique Castillo, Jos Manuel Gutirrez,
y Ah S. Hadi.
35
Castillo, Enrique. Gutirrez, Jos Manuel Sistemas Expertos y Modelos de Redes Probabilsticas
36
Pignani Juan Manuel. (2000). Informtica aplicada a la Ingeniera de Procesos 1. Universidad
Tecnolgica Nacional, Facultad Regional Rosario. Espaa.
37
Si no existe al menos una regla que contenga ese hecho debemos determinarla ya
que de no ser as, ese hecho estara de ms en la base de hechos.
b. El proceso de inferencia Durante la inferencia puedo verificar o deducir
hechos. En la verificacin de un hecho el proceso est dirigido por los
objetivos mientras que en la deduccin est dirigido por los datos.
37
38
38
Guerra Hernndez,
Alejandro. Metodologa de Programacin I Sistemas Expertos.
Departamento de Inteligencia Artificial. Universidad Veracruzana. Mxico. 2006.
C
F
C
F
F
F
C
C
F
C
F
C
F
F
F
C
F
F
F
C
Si A y B , entonces C
Si AyB , entonces C
Si A , entonces C
Si B, entonces C
Si A y C, entonces D
Si B y C, entonces D
Si (A o B) y C, entonces D
Si AoB y C, entonces D
Si A y B y C, entonces D
Si AyB y C, entonces D
Si A y C, entonces D
Si B y C, entonces D
Si A, entonces B y C
Si A, entonces B
Si A, entonces C
Si A, entonces B o C
Si A y B , entonces C
Si A y C , entonces B
Si A, entonces ByC
Si A y B, entonces C
Si A y C, entonces B
Si A, entonces BoC
Si A, entonces B
Si A, entonces C
Son equivalentes a las reglas de la segunda columna. Ntese que en los seis
primeros ejemplos las sustituciones se aplican a la premisa y en los cuatro ltimos,
a la conclusin.
7.1.2. Motor de inferencia
El motor de inferencia en un sistema experto, se encarga de realizar las
inferencias en la base del conocimiento de acuerdo con los parmetros definidos
en la heurstica del sistema y que permitir inferir la solucin de un problema o
llevar a cabo la toma de decisiones la cual podra ser diagnosticar una posible
enfermedad a partir de la relacin sntoma 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 conclusin de la regla debe ser
tambin 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 ms 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,
Resolucin.
Estrategias de inferencia
Encadenamiento de reglas,
Encadenamiento de reglas orientado a un objetivo,
Compilacin 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.
7.1.2.1. Modus Ponens y Modus Tollens
El Modus Ponens es quizs la regla de inferencia mas comnmente utilizada. Se
utiliza para obtener conclusiones simples. En ella, se examina la premisa de la
regla, y si es cierta, la conclusin pasa a formar parte del conocimiento. Como
ilustracin, supngase que se tiene la regla, Si A es cierto, entonces B es cierto y
que se sabe adems 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 nmero de sistemas
expertos. 41
Modus Ponens
Si
Regla
B es Cierto
A es cierto
A es Cierto
Hecho:
Figura: 3.3. Regla de inferencia de Modus Ponens
B
B
y B
Entonces
premisa tambin es falsa. Por ejemplo, supngase 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 conclusin, pero,
tal como se muestra en la Figura 3.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 conclusin de una regla, mientras que la regla Modus Tollens se mueve hacia
atrs, es decir, de la conclusin a la premisa. Las dos reglas de inferencia no
deben ser vistas como alternativas sino como complementarias. La regla Modus
Ponens necesita informacin de los objetos de la premisa para concluir, mientras
que la regla Modus Tollens necesita informacin sobre los objetos de la
conclusin.
Modus Tollens
Si
Regla
A es cierto
A es Falso
B es Falso
Hecho:
Figura 3.4. Regla de inferencia de Modus Tollens
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 grficamente, tal como se muestra en la Figura 3.6, donde cada
objeto se representa por un nodo. Las aristas representan la conexin entre los
objetos de la premisa de la regla y el objeto de su conclusin. Ntese 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.6 Una representacin grfica de las relaciones entre las seis reglas de la Figura 3.5
Las seis reglas estn 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}
Regla 1: Si A = C, entonces B = C.
Regla 2: Si A = C, entonces B = F.
Regla 3: Si A = F, entonces B = C.
Regla 4: Si A = F, entonces B = F.
Las Reglas 1 y 2 son coherentes puesto que, tal como se muestra en la Tabla II.5,
para A = F, no producen conclusiones. Sin embargo, las Reglas 1 y 4 son
incoherentes porque producen conclusiones contradictorias para todos los
posibles valores de A y B.
Ntese 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 eliminara
automticamente el valor C de la lista de posibles valores del objeto A,
permitiendo de esta forma al usuario seleccionar slo 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 combinacin de valores del resto de los
objetos. Por ello, cualquier valor no factible debe ser eliminado de la lista de
valores posibles de su correspondiente objeto para eliminar la posibilidad de que
el motor de inferencia pueda obtener conclusiones inconsistentes.
7.1.3.3. Coherencia de Hechos
Los datos o evidencias suministrados por los usuarios deben ser tambin
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 tambin comprobar si existe o no, una solucin factible e informar
al usuario en consecuencia. Si en el ejemplo anterior se trata de dar la informacin
A = 0; B = 0 y D = 0, el sistema debe detectar que no existe ningn valor de C que
sea consistente con la base de conocimiento. Ntese que antes de conocer los
valores de los objetos, existe una solucin 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 informacin sobre los valores de un conjunto de objetos, el sistema experto
debera aceptar slo los valores de cada objeto que sean consistentes con las
reglas y con el conocimiento previo.
Tabla 7.7 Objetos y sus correspondientes valores para el ejemplo del control de
trfico ferroviario.
Objeto
Valor
U1 a U8
{verde, rojo}
L1 a L6
{verde, rojo}
S1 a S5
{libre, ocupada}
43 Ejemplo tomado del texto: Sistemas experto y Modelos de Redes Probabilsticas. Castillo, Enrique y Otros. Espaa 2005.
U6 = rojo
L6= rojo
U7 = rojo
U8 = rojo
U4 = rojo
L4= rojo
L2 = rojo
L3 = rojo
L4= rojo
L5= rojo
U7 = rojo
U8 = rojo
7.1.5. Conclusiones
Normalmente, los usuarios esperan que el sistema les d algn tipo de explicacin
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 explicacin, que es regulado por el subsistema de explicacin.
En los sistemas expertos basados en reglas, es fcil dar explicaciones de las
conclusiones obtenidas. El motor de inferencia obtiene conclusiones bastndose
en un conjunto de reglas y, por tanto, conoce de qu regla procede cada
conclusin. Por ello, el sistema puede dar al usuario la lista de hechos concluidos
junto con las reglas que se han utilizado para obtenerlos.
7.2.
7.2.1. La incertidumbre
Es muy comn que los seres humanos tomen decisiones en condiciones de
incertidumbre, es ms 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
decisin que lo lleve a su trabajo. Este tipo de decisiones se presenta a menudo
tanto en la vida cotidiana, como en el mbito cientfico o en el empresarial; aunque
la incertidumbre este presente en todos esos campos, el ser humano ha
desarrollado tcnicas y teoras, como la probabilidad y estadstica, para enfrentar
este tipo de decisiones, pero adems de estos mtodos, el rpido desarrollo de los
sistemas ha permitido fusionar todo el conocimiento, en aplicaciones que permiten
dar soluciones que aunque no son perfectas tienen un soporte terico que le da
mayor probabilidad de xito, que a una decisin tomada al azar.
Para medir la incertidumbre se parte de un conjunto S (El espacio muestral), en el
que se incluyen todos los posibles resultados de un cierto experimento, una vez
definido este conjunto, el objetivo consiste en asignar a todo subconjunto S un
nmero real que mida el grado de incertidumbre sobre su realizacin.
Para obtener medidas con significado claro y prctico, se imponen ciertas
propiedades intuitivas adicionales que definen una clase de medidas que se
conocen como medidas de probabilidad.
7.2.2. Tipos de variables aleatorias
Variable aleatoria: Aquella que toma valores, que a priori, no conocemos con
certeza.
Por ej: cogemos 2 personas al azar. Su edad y sexo, sern 2 variables aleatorias.
Existen dos tipos de variables aleatorias, entre ellas:
7.2.3.2. Propiedades
Propiedad 1 (Normalizacin): p( ) = 0
Evidencia asociada a una ausencia completa de informacin es cero
Propiedad 2 (Monotonicidad): Si S B A, entonces p(A) p(B)
La evidencia de la pertenencia de un elemento a un conjunto dado A no debe
decrecer con la adicin de elementos a A.
P( X j , X 1 , X 2 ,... X K )
P( X
, X 1 , X 2 ,... X K )
Xj
Teorema de Bayes
P ( Bi / A) =
P ( Bi A)
P ( A / Bi ) * P ( Bi )
m
P( B A) P( A / B ) * P( B )
i
i =1
i =1
En el modelo general los eventos B1 , B2 ,..., Bm , forman una particin del espacio
muestral S, donde P ( B i ) 0 , para i = 1, 2,3,..., m , entonces para cualquier evento
A =
A de S, en particular
entonces se tiene que:
Aj
i J
P(Bi / Ai ) =
, para
P(Bi A j )
m
P(B
i=1
Aj )
j = 1 , 2 , 3 ,..., n
tal que
P(Aj) 0
P(A j / Bi ) P(Bi )
m
P(A
/ Bi ) P(Bi )
i=1
44
44
J.A. Baares Baares. 1999. Resolucin de Problemas en LBR. Departamento de Informtica e Ingeniera
de Sistemas C.P.S. Universidad de Zaragoza
45
45
J.A. Baares Baares. 1999. Resolucin de Problemas en LBR. Departamento de Informtica e Ingeniera
de Sistemas C.P.S. Universidad de Zaragoza
Supngase que S1 , ..., Sri son relevantes para la enfermedad ei y que los
restantes sntomas Sri +1 , ..., Sn son irrelevantes. Segn el MSRI, p(sj| ei) se
supone idntica para todos los sntomas que son irrelevantes para la enfermedad
Sea cual sea el modelo elegido, la base de conocimiento debe contener el
conjunto de variables de inters y el mnimo de parmetros (probabilidades o
El papel del trmino p(s1 ... sk) consiste en actuar como constan-te de
normalizacin.
Una decisin basada en el mximo de p(ei | s1 ... sk) coincide con la
basada en el mximo de p(ei ,s1 ... sk).
Los cocientes siguientes suministran informacin sobre la importancia
relativa de las diferentes enfermedades.
7.3.
Redes Bayesianas
46
bayesiana se basa en una fuerte restriccin: todos los atributos que describen los
casos son independientes entre s dado el valor de la clase (Figura. 3.14).
Figura 3.14. Grfico correspondiente al clasificador simple bayesiano con 6 atributos de entrada
Han sido propuestos otros modelos ms sofisticados. Entre ellos, las redes
bayesianas simples aumentadas (del ingls Augmented Nave Bayesian networks
(AN)), permiten arcos entre los atributos de entrada, de manera que se reduce la
fuerte restriccin propia de las redes simples.
Para decidir la estructura concreta de una red AN han sido propuestos diversos
algoritmos en las publicaciones sobre Inteligencia Artificial de la ltima dcada
Ezawa K. J.; Schuermann T. (1995), Sahami, M. (1996). Entre ellos cabe destacar
el algoritmo de aprendizaje de red bayesiana Simple Aumentada en rbol (del
ingls Tree Augmented Nave Bayesian network (TAN)) (Friedman, N.; Geiger, D;
Goldszmidt, M. (1997). y el de red bayesiana Simple Aumentada Estructurada
(Abad, M. 2001) (del ingls Structured Augmented Nave Bayesian network
(SAN)).
El algoritmo TAN construye una red bayesiana con una estructura TAN (Figura
3.15), es decir, una estructura en la que la variable clase no tiene padres y los
atributos de entrada tienen como padres la clase y como mximo otro atributo ms
de entrada.
Por otra parte, el algoritmo SAN es aun ms flexible que TAN, en el sentido de que
permite la construccin de estructuras AN menos restrictivas. Estas estructuras,
llamadas tambin SAN (Figura 3.16) se caracterizan porque la clase no tiene
padres y los atributos de entrada pueden tener como padres adems de la clase,
cualquier nmero de atributos de entrada, siempre que no haya ciclos dirigidos,
pues la estructura de una red bayesiana es siempre un GDA.
Mientras que slo 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 slo 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
gstrico, p(g)=0.7, no es suficientemente alta para hacer un diagnstico (tomar
una decisin ahora implica una probabilidad 0.3 de equivocarse), el doctor decide
examinara al paciente para obtener ms informacin:
Supngase que los resultados muestran que el paciente tiene los sntomas
vmitos (V=v) y prdida de peso (P=p).
Cul es ahora la probabilidad de que el paciente tenga la enfermedad?
Tras observar que V=v la probabilidad a posteriori es:
7.4.
Tabla 7.11 Comparacin entre los sistemas expertos basados en reglas y los
sistemas expertos basados en probabilidades.
BASADOS EN REGLAS
PROBABILISTICOS
7.5.
49
Roger Schank, Dynamic Memory: A Theory of Learning in Computers and People (New York: Cambridge
University Press, 1982).
50
Janet Kolodner, "Reconstructive Memory: A Computer Model," Cognitive Science 7 (1983): 4.
51
Michael Lebowitz, "Memory-Based Parsing," Artificial Intelligence 21 (1983), 363-404.
52
Bill Mark, "Case-Based Reasoning for Autoclave Management," Proceedings of the Case-Based Reasoning
Workshop (1989).
Cuando nos encontramos delante de un nuevo problema para el cual tenemos que
dar una solucin lo que primer que tenemos que hacer es dado ese determinado
problema recordar los casos relevantes que pueden solucionarlo. Estos casos
relevantes tendrn que ser una seleccin 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 solucin lo que se tiene que hacer es adaptar
la solucin 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 solucin y si no es factible se vuelve a modificar con la
inclusin o la eliminacin de los casos que fuesen incorrectos o aadiendo
aquellos que faltasen para perfeccionar la solucin.
Finalmente el ltimo paso es la retencin. Despus de que la solucin haya sido
adaptada satisfactoriamente para solucionar el problema dado, almacenaramos la
experiencia resultante como un nuevo caso en la memoria.
53
Trung Nguyen, Mary Czerwinski, and Dan Lee, "COMPAQ QuickSource: Providing the Consumer with
the Power of Artificial Intelligence," in Proceedings of the Fifth Annual Conference on Innovative
Applications of Artificial Intelligence (Washington, DC: AAAI Press, 1993), 142-151.
54
Documento en lnea: URL (http://es.wikipedia.org/wiki/Case-based_reasoning)
7.6.
Una red neuronal consiste en simular las propiedades observadas en los sistemas
neuronales biolgicos a travs de modelos matemticos recreados mediante
mecanismos artificiales (como un circuito integrado, un ordenador o un conjunto
de vlvulas). El objetivo es conseguir que las mquinas den respuestas similares a
las que es capaz de dar el cerebro que se caracterizan por su generalizacin y su
robustez55.
55
8.1.
8.1.1. LISP
LISP, acrnimo 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
matemticos, reflejando el rigor de las propias matemticas56
LISP actualmente est diseado para manejar smbolos matemticos (variables),
por lo que es utilizado perfectamente para la investigacin en inteligencia artificial,
donde un smbolo puede representar cualquier cosa. LISP tiene dos
caractersticas principales que lo hacen sobresalir de entre los dems lenguajes
para inteligencia artificial.
a. Primero, es altamente flexible, es decir, es posible escribir un programa LISP
para producir cualquier comportamiento deseable de la computadora.
b. Segundo, es indefinidamente extensible, lo que significa que si como
programador siente que a LISP le falta alguna caracterstica, puede escribir
un programa LISP que provea dicha caracterstica y hacer que ese programa
forme parte de su LISP personal.
LISP utiliza un ciclo llamado leer evaluar imprimir. Cuando el programador
teclea algo en LISP, el lenguaje toma lo que se ha tecleado, intenta responder de
cualquier forma y despus despliega dicha respuesta en la pantalla.
56
HASEMER, Tony y John Domingue. Common LISP Programming for Artificial Inteligence.
BAARES, Jos ngel. Herramientas para las asignaturas del IAIC. URL
http://diana.cps.unizar.es/IA/noticias.html
Sentencias de asignacin.
Sentencias goto.
Sentencias if then else.
Ciclos do, ciclos for y ciclos while.
Sin embargo, Prolog compensa tales caractersticas con las siguientes, las cuales
lo hacen un lenguaje poderoso para la representacin del conocimiento:
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 aritmtica, entrada y salida
y servicios de sistemas.
8.1.4. Smalltalk
Smalltalk fue el primer lenguaje de programacin que fue diseado 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
diseo del lenguaje. Este lenguaje se ha convertido en una opcin muy popular en
diversos campos como los videojuegos y la Inteligencia Artificial.
Virtualmente todo lo que existe en un sistema Smalltalk es una instancia de una
clase particular de objeto y generalmente puede haber tantas instancias como se
deseen. Esto significa que se pueden tener cualquier nmero de instancias de
cualquier caracterstica del sistema activas al mismo tiempo58.
8.1.5. C y C++
C es uno de los lenguajes de programacin ms populares en uso. Proporciona un
esqueleto estructurado sin lmites para la creatividad del programador; una de las
ventajas de C sobre otros lenguajes usados para investigacin en IA es que es un
lenguaje estructurado y adems, si su aplicacin no requiere usar la tcnica
Backtracking ni los recursos de una base de datos, estos no se convierten en un
peso extra que debe soportar la aplicacin.
No hay una sola tcnica de IA que no pueda ser desarrollada en un lenguaje
procedimental como lo es C. De hecho, el desarrollo de ciertas rutinas es en
verdad ms claro en C que un lenguaje de IA.
En cuanto a C++ se puede decir que es una extensin orientada a objetos de C, la
cual permite utilizar la metodologa orientada a objetos para la creacin de
diversos sistemas y programas, incluso los de IA59.
8.2.
62
8.3.
Capture generalizaciones.
Pueda ser comprendido por todas las personas que vayan a proporcionarlo
y procesarlo.
Pueda ser fcilmente modificado.
Pueda ser utilizado en diversas situaciones an cuando no sea totalmente
exacto o completo.
Pueda ser utilizado para reducir el rango de posibilidades que usualmente
debera considerarse para buscar soluciones.
Lgica Proposicional
8.5.
Lgica de Predicados
8.6.
Reglas de Produccin
8.7.
Redes Asociativas
65
representar
8.8.
66
67
Estructuras frame
ANGULO Usategui, Jos Mara y Anselmo del Moral Bueno. Gua fcil de la inteligencia artificial.
ARTEAGA, Ren y Juan Carlos Armijos. Op. cit.
Una plantilla (frame) es una estructura de datos apropiada para representar una
situacin estereotpica. Las plantillas organizan el conocimiento en objetos y
eventos que resultan apropiados para situaciones especficas. La evidencia
psicolgica sugiere que la gente utiliza grandes plantillas para codificar el
conocimiento de experiencias pasadas, o conocimiento acerca de cosas que se
encuentran comnmente, para analizar y explicar una situacin nueva en su
cotidiana actividad cognoscitiva.
Una plantilla representa un objeto o situacin describiendo la coleccin de
atributos que posee. Cada plantilla est formada por un nombre y por una serie de
campos de informacin o ranuras (slots). Cada ranura puede contener uno o ms
enlaces (facets). Cada enlace tiene un valor asociado. Varios enlaces pueden ser
definidos para cada ranura, por ejemplo:
Adems los enlaces pueden ser procedimientos que residen en la base de datos y
estn aguardando para ser utilizados cuando se les necesite. Entre los ms
comunes se pueden mencionar:
68
BENCHIMOL, Guy, Pierre Levine y Jean Charles Promerol. Los sistemas expertos en la empresa.
8.9.
Los objetos, son similares a las plantillas. Ambos sirven para agrupar
conocimiento asociado, soportan herencia, abstraccin 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 (mtodos) y los datos.
2. Los demons de las plantillas sirven slo para computar valores para las
diversas ranuras o para mantener la integridad de la base de conocimientos
cada vez que una accin de alguna plantilla, afecta a otra. En cambio, los
mtodos utilizados por los objetos son ms universales ya que
proporcionan cualquier tipo general de computacin requerida y adems
soportan encapsulamiento y polimorfismo.
Un objeto es definido como una coleccin de informacin que representa una
entidad del mundo real y una descripcin de cmo debe ser manipulada esta
informacin, esto es, los mtodos. Es decir, un objeto tiene un nombre, una
caracterizacin de clase, varios atributos distintivos y un conjunto de operaciones.
La relacin entre los objetos viene definida por los mensajes. Cuando un objeto
recibe un mensaje vlido, responde con una accin apropiada, retornando un
resultado.
Poder de abstraccin.
Encapsulamiento o capacidad de esconder informacin.
Herencia, es decir pueden recibir caractersticas de sus ancestros.
Polimorfismo, que permite crear una interfaz comn para todos los diversos
objetos utilizados dentro del dominio.
Posibilidad de reutilizacin del cdigo.
Mayor facilidad para poder trabajar eficientemente con sistemas grandes.
Las desventajas son similares a las que se indicaron para las plantillas:
9.1.
Conceptos Bsicos
El orden de los objetos dentro de la relacin es arbitrario, pero hay que ser
coherentes a lo largo de la base de hechos.
9.1.2 Variables
Representan objetos que el mismo PROLOG determina. Las variables son
cadenas de letras, dgitos y el signo '_'. Estas empiezan con una letra mayscula o
el smbolo '_': Una variable puede estar instanciada o no instanciada. Esta
instanciada cuando existe un objeto determinado representado por la variable. De
69
este modo, cuando preguntamos "Un coche tiene X ?", PROLOG busca en los
hechos cosas que tiene un coche y respondera:
X = ruedas.
instanciando la variable X con el objeto ruedas.
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 ms hechos (conjuncin de hechos), separados
por una coma (","), que acta como el "y" lgico.
Las reglas finalizan con un punto (".").
Cabe sealar que la regla esta "al revs". Esto es as por el mecanismo de
deduccin hacia atrs que emplea PROLOG. Si cometiramos el error de
representarla como:
tiempo(lluvioso) :- suelo(mojado).
suelo(mojado).
PROLOG, partiendo del hecho de que el suelo esta mojado, deducira
incorrectamente que el tiempo es lluvioso.
Para generalizar una relacin entre objetos mediante una regla, utilizaremos
variables. Por ejemplo:
Representacin lgica | Representacin 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 condicin suficiente de que sea un coche. Por lo tanto la representacin
inversa sera incorrecta.
9.1.4 Comentarios
Cuando se quiere hacer un comentario que cuenta con ms de una lnea, se hace
de la siguiente manera:
/* Comentario x Comentario y */
Si el comentario es de una solo lnea simplemente se antecede el signo de % al
comentario. Es importante saber que los comentarios no tienen efecto en la
ejecucin del programa.
% Comentario
9.1.5 El mbito de las variables.
Cuando en una regla aparece una variable, el mbito de esa variable es
nicamente esa regla. Supongamos las siguientes reglas:
(1) hermana_de(X,Y) :- hembra(X), padres(X,M,P), padres(Y,M,P).
(2) puede_robar(X,P) :- ladron(X), le_gusta_a(X,P), valioso(P).
Aunque en ambas aparece la variable X (y la variable P), no tiene nada que ver la
X de la regla (1) con la de la regla (2), y por lo tanto, la instanciacin de la X en (1)
no implica la instanciacin en (2). Sin embargo todas las X de *una misma regla* si
que se instanciaran con el mismo valor.
9.1.6 Operadores
Son predicados predefinidos en PROLOG para las operaciones matemticas
bsicas. Su sintaxis depende de la posicin que ocupen, pudiendo ser infijos o
prefijos. Por ejemplo el operador suma ("+"), podemos encontrarlo en forma prefija
'+(2,5)' o bien infija, '2 + 5'.
9.1.6.1 Aritmticos
Todas las versiones de Prolog soportan los siguientes operadores aritmticos,
listados en el orden de prioridad de ejecucin.
+ SUMA
- RESTA
* MULTIPLICACIN
/ DIVISIN
// DIVISION ENTERA
MOD RESIDUO
^ POTENCIA
Los parntesis se pueden utilizar para dar preferencia de ejecucin en una
expresin compuesta. Prolog utiliza la precedencia de operadores con la regla de
la mano izquierda.
A continuacin se muestran algunas operaciones ms complejas que PROLOG
provee:
Tabla 9.1 Otros operadores que soporta prolog
Operacin
Descripcin
Sqrt(X)
log(X)
Calcula el logaritmo de X
ln(X)
abs(B)
sin(T)
Seno de T
cos(A)
Coseno de A
tan(C)
Tangente de C
9.1.6.2 Relacionales
Tambin dispone de predicados de igualdad y desigualdad.
9.2.
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).
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 tambin 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 informacin:
- Le gusta la msica a Pepe y a Maria?:
?-legusta(pepe,musica),legusta(maria,musica).
- Le gusta bailar a Pepe o a Maria le gusta la msica?:
?-legusta(pepe,musica);legusta(maria,musica).
- Le gusta bailar a Pepe y a Maria no le gusta la msica?:
?-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 condicin sucesor. En la segunda regla de suma se observa que existe mas de
una condicin, por tanto estas van separadas por coma; podemos observar
tambin que se realiza una operacin recursiva. Esta misma sentencia traducida
en un lenguaje de programacin como Java quedara:
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);
}
}
Obsrvese que en la segunda lnea del bloque else se realiza un llamado
recursivo al mtodo suma, de forma tal, que se realiza la operacin disminuyendo
el valor de N hasta que este se hace 1, en el cual termina la recursividad y se
origina la respuesta.
9.3.
** 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).
9.4.
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).
Castillo, E., Gutierrez, J.M. y Hadi, H (1997), Expert Systems and Probabilistic
Network Models. Springer, New York. Versin Espaola editada por la
Academia Espaola de Ingeniera.
SITIOS WEB
www.Qdl.vcag.mx/66/ola.htm/
www.lafacu.com/apuntes/informatica/sist_expe/
http://home.worldonline.es/jmariocr/
www.ingenieroseninformatica.org/recursos/tutoriales/sist_exp/index.php
www.go.to/inteligencia_artificial
www.el-mundo.es/entradasecreta/inteligencia.html
www.cs.us.es/
www.aircenter.net/
www.laopinion.com/vidayestilo/
www.laguia.com.ar/aaia.htm
http://es.wikipedia.org/wiki/Case-based_reasoning
http://www.ingenieria.uady.mx/weblioteca/sistemasinteligentes/Tema05/CB
R1.htm
http://www.inf.udec.cl/~revista/ediciones/edicion9/psalcedo.pdf
Esta es la ltima versin de SWI-Prolog para Windows.
http://www.swi.psy.uva.nl/cgi-bin/nph-download/SWI-Prolog/w32pl5213.exe
En este vnculo se encuentran una serie de transparencias que ilustran los
conceptos bsicos de Prolog. http://webepcc.unex.es/agomez/prolog.htm
Otro vnculo con informacin sobre conceptos bsicos, (se recomiendan los
archivos pdf Tema0,I,II,III,IV). http://polaris.lcc.uma.es/~pacog/apuntes/pd/
Pdf
con
un
buen
tutorial
y
ejemplos
de
programas
http://euitio.trisquelmedia.net/apuntes/viejo/primero/logica/Programacion%2
0practica%20en%20prolog.zip
Programas de ejemplo: http://www.lsi.upc.es/~bejar/docencia/ia.html