You are on page 1of 89

SISTEMAS EXPERTOS

JOHN ALERJANDRO FIGUEREDO LUNA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD 2.005

SISTEMAS EXPERTOS

JOHN ALEJANDRO FIGUEREDO LUNA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD FACULTAD DE CIENCIAS BASICAS E INGENIERIA PROGRAMA DE INGENIERIA DE SISTEMAS 2.005
iii

CONTENIDO UNIDAD 1. VISION GENERAL DE LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS CAPITULO 1. INTRODUCCIN A LOS CONCEPTOS BSICOS DE LA IA 1. INTRODUCCIN 1.1 La base de la inteligencia artificial 1.2 Pueden pensar las mquinas? 1.3 Los fines de la IA 1.4 Historia Y Evolucin De La Inteligencia Artificial 1.5. Caractersticas De La Inteligencia Artificial 1.5.1 Programa fijo y programa modificado por el procesamiento 1.6. Funcionamiento Bsico De La Inteligencia Artificial 1.6.1 Smbolos vs. Mtodos Numricos 1.6.2 Alfabeto del Lenguaje de la Lgica de Primer Orden 1.7 Principales Ramas De La Inteligencia Artificial 1.7.1 Sistemas Expertos 1.7.2 Robtica 1.7.3 Sistemas De Visin 1.7.4 Procesamiento De Lenguaje Natural 1.7.5 Sistemas De Aprendizaje 1.7.6 Redes Neuronales 1.8 ACTIVIDADES COMPLEMENTARIAS CAPITULO 2. VISION GENERAL DE LOS SISTEMAS EXPERTOS 2.1 Introduccin 2.2. Historia De Los Sistemas Expertos 2.3 Que Es Un Sistema Experto? 2.3.1 Caractersticas de un Sistema Experto 2.4 Cules son las ventajas de un sistema experto? 2.5 Los expertos Humanos 2.6 Diferencias entre un experto y un no experto humano 2.7 Diferencias entre un SE y un programa tradicional 2.8 Diferencias entre un sistema experto y un experto humano 2.9 Ventajas de los sistemas expertos 2.10 Forma en que los usuarios interactan con los SE 2.11 Sistema experto VS. Sistema clsico 2.12 Futuro de los Sistemas Expertos 2.13 ACTIVIDADES COMPLEMETARIAS 1 1 1 2 2 3 4 5 6 6 9 9 9 9 10 10 11 11 12 12 13 14 15 16 17 17 17 18 18 19 20 21

UNIDAD 2. DESARROLLO Y USO DE LOS SISTEMAS EXPERTOS CAPTULO 3. USO DE LOS SISTEMAS EXPERTOS iv

3.1 Introduccin 3.2 Uso de los sistemas Expertos 3. 2.1 Interpretacin, diagnstico y monitoreo 3.2.2 Diseo y seleccin 3.2.3 Planificacin 3.2.4 Control 3.2.5 Reparacin, correccin o terapia 3.2.6 Simulacin, pronstico o prediccin 3.2.7 Instruccin 3.2.8 Recuperacin de Informacin 3.3. Elementos de una Sistema Experto 3.3.1. Base de Conocimientos 3.3.2 El Mecanismo de Inferencia 3.3.3 El componente explicativo 3.3.4 La interfaz del usuario 3.3.5 El componente de adquisicin 3.3.6 ACTIVIDADES COMPLEMENTARIAS

21 22 22 23 24 24 25 25 26 26 26 29 29 31 32 34 35

CAPITULO 4. PROCESO DE DESARROLLO DE UN SISTEMA EXPERTO 4. Introduccin 36 4.1 Aspectos Generales 36 4.1.1 El Equipo de Desarrollo 36 4.1.2 Construccin de las principales partes de un SE 37 4.1.2.1 La base de conocimiento 38 4.1.2.2 Cinco Pasos en la Construccin de una Base de Conocimientos 39 4.1.2.3 Proceso Lgico de Carga de la Base de Conocimiento 40 4.1.3 El motor de inferencia 41 4.1.3.1 Mtodo de encadenamiento hacia delante 42 4.1.3.2. Mtodo de encadenamiento hacia atrs. 42 4.1.3.3 Mtodo de reglas de produccin 43 4.1.4 Construccin del Mecanismo de Inferencia 43 4.1.4.1 El mecanismo de inferencia 43 4.1.4.2 Motor de Inferencia. 43 4.1.4.3 Identificacin de patrones. 44 4.1.4.4. Ejecucin de las reglas. 45 4.1.4.5. La fase de restriccin. 45 4.1.4.6 La fase de seleccin. 46 4.1.4.7 Ejemplo de Funcionamiento del Motor de Inferencia 47 4.1.5 Estructura de los Sistemas Basados en Conocimiento. 50 4.1.5.1 Fases en la adquisicin del conocimiento 52 4.1.5.2 Tecnologa de los Sistemas Basados en Conocimiento 52 4.2 Metodologas para la construccin de SE 53 4.2.1 Metodologa de Prototipos 53 4.2.2 Metodologa Orientada a Objetos 53 4.3 Actividades Complementarias 55 UNIDAD 3. EJEMPLOS Y APLICACIONES DE LOS SISTEMAS EXPERTOS v

CAPITULO 5. EJEMPLOS DE SISTEMAS EXPERTOS 5.1 Lenguajes utilizados en la construccin de SE 5.1.1 LISP 5.1.2 CLIPS 5.1.3 Prolog 5.1.4 Smalltalk 5.1.5. C y C++ 5.2 Representacin del conocimiento 5.3. Lgica Proposicional 5.4 Lgica de Predicados 5.5. Ventajas y desventajas de la lgica de predicados 5.6. Reglas de Produccin 5.7. Ventajas y desventajas de las reglas de produccin 5.8. Redes Asociativas 5.8.1. Ventajas y desventajas de las Redes Asociativas 5.9 Estructuras frame 5.9.1. Ventajas y desventajas de los frames 5.9.2. Representacin orientada a objetos 5.9.3 Ventajas y desventajas de la representacin orientada a objetos 5.10 ACTIVIDADES COMPLEMETARIAS CAPITULO 6. TAREAS QUE REALIZAN LOS SISTEMAS EXPERTOS 6.1 Interpretacin, diagnstico y monitoreo 6.2 Diseo y seleccin 6.3 Planificacin 6.4 Control 6.5 Reparacin, correccin o terapia 6.6 Simulacin, pronstico o prediccin 6.7 Instruccin 6.8 Recuperacin de Informacin 6.9 ACTIVIDADES COMPLEMENTARIAS CAPITULO 7. CAMPOS DE APLICACIN DE LOS SISTEMAS EXPERTOS 7.1 Medicina 7.2 Anlisis de estados financieros 7.3 Planificacin Financiera 7.4 Industria 7.5 Electrnica, informtica y telecomunicaciones 7.6 Militar 7.7 Contabilidad 7.8 Robtica 7.9 Reconocimiento de patrones 7.10 Otros campos de aplicacin 7.11. Ejemplos De Sistemas Expertos En Empresas 7.11.1 En la Industria 7.11.2 En Contabilidad

56 56 56 57 57 58 59 59 61 61 61 62 62 63 63 64 64 65 66 66 67 68 69 69 69 70 71 71 71 72 72 72 73 73 74 74 75 75 75 76 76 76 vi

7.11.3 En Anlisis de Estados Financieros 7.11.4 En Planificacin Financiera 7.11.5 En la Aviacin 7.11.6 En Medicina 7.11.7 Aplicaciones actuales 7.12 ACTIVIDADES COMPLEMENTARIAS 8. GLOSARIO DE TERMINOS 9. BIBLIOGRAFIA

76 77 77 78 78 80 81 83

vii

UNIDAD 1. VISION GENERAL DE LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS CAPITULO 1. INTRODUCCIN A LOS CONCEPTOS BSICOS DE LA IA 1. INTRODUCCIN La finalidad de la inteligencia artificial consiste en crear teoras y modelos que muestren la organizacin y funcionamiento de la inteligencia. Actualmente, el mayor esfuerzo en la bsqueda 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, solucin de problemas y decisiones. A veces llamada inteligencia de mquina, la inteligencia artificial o AI (Artificial Intelligence) cubre una vasta gama de teoras y prcticas. La inteligencia artificial se define como aquella inteligencia exhibida por artefactos creados por humanos (es decir, artificial). A menudo se aplica hipotticamente a los computadores. El nombre tambin se usa para referirse al campo de la investigacin cientfica que intenta acercarse a la creacin de tales sistemas. Existen cuatro puntos de vista principales sobre estos sistemas:

Los que piensan como humanos. Los que actan como humanos. Los que piensan racionalmente. Los que actan racionalmente.

1.1 La base de la inteligencia artificial La inteligencia artificial se basa en dos reas de estudio: el cuerpo humano y el ordenador electrnico. Puesto que la meta es copiar la inteligencia humana, es necesario entenderla. Sin embargo, a pesar de todos los progresos en Neurologa y Psicologa, 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 Psicologa cognoscitiva, que aborda la forma de percibir y pensar de los seres humanos. Despus comprueban sus teoras programando los ordenadores para simular los procesos cognoscitivos en el modelo. Otros investigadores intentan obtener teoras generales de la inteligencia que sean aplicables a cualquier sistema de inteligencia y no solo al del ser humano. 1.2 Pueden pensar las mquinas? En 1950 el matemtico ingls Alan M. Turing public un ensayo que comenzaba as: "Quiero proponer una pregunta: Pueden pensar las mquinas?." Como la pregunta era demasiado vaga (Qu entendemos por "pensar"?), Turing desarroll un experimento basado en un juego de saln en el que una persona

formula a dos jugadores escondidos (un hombre y una mujer) preguntas que le servirn para descubrir cul de los dos es la mujer. Turing propuso sustituir uno de los dos jugadores escondidos por una mquina inteligente capaz de conversar. Si el examinador, que se serva de un teletipo para comunicarse, no podan distinguir cul de los dos jugadores era la mquina, ello evidenciara segn Turing que la mquina poda pensar. En la actualidad, este experimento de Turing podra ser superado, en situaciones limitadas, por muchos programas de ordenador estudiados para dialogar con el usuario. Investigaciones acerca de la inteligencia artificial realizadas en la Universidad de Yale (EE.UU.) han llevado al desarrollo de programas de ordenador mediante los cuales stos pueden aprender y razonar. Otros estudiosos de la inteligencia artificial estn poniendo a punto sistemas para dotar a los ordenadores de capacidad visual y auditiva. Una importante rea de investigacin es la del lenguaje normal, que permite a los ordenadores comunicarse mediante lenguaje humano en lugar de hacerlo en lenguaje de mquina. Es decir, la mayora de los ordenadores estn 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 documentacin de una compaa petrolfera pudiese entender la orden dactilografiada (traduccin de la anterior) "Encuntrame toda la documentacin 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 pas", muchas personas podran utilizarlo. 1.3 Los fines de la IA Las primeras investigaciones acerca de la inteligencia artificial estaban principalmente dirigidas al hallazgo de una tcnica universal para la solucin de problemas. Este intento a gran escala ha sido abandonado y las investigaciones actuales estn dirigidas al diseo de numerosos programas para ordenadores capaces de imitar los procesos de toma de decisiones de expertos, como mdicos, qumicos, basados en los conocimientos de especialistas en cada materia, son ahora utilizados para diagnosticar enfermedades, identificar molculas qumicas, localizar yacimientos de minerales e incluso disear sistemas de fabricacin. Investigaciones acerca de la percepcin han sido aplicadas a los robots y se han diseado algunos capaces de "ver". La meta final consiste en crear un sistema capaz de reproducir todas las facetas de la inteligencia humana. 1.4 Historia Y Evolucin De La Inteligencia Artificial La Inteligencia Artificial "naci" en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron una representacin simblica de la actividad cerebral.

Ms adelante, Norbert Wiener elabor estas ideas junto con otras, dentro del mismo campo, que se llam "ciberntica"; de aqu nacera, sobre los aos 50, la Inteligencia Artificial. Los primeros investigadores de esta innovadora ciencia, tomaron como base la neurona formalizada de McCulloch y postulaban que: "El cerebro es un solucionador inteligente de problemas, de modo que imitemos al cerebro". Pero si consideramos la enorme complejidad del mismo esto es ya prcticamente 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 coordinacin de tareas simples relacionadas entre s mediante smbolos. Se llegara a la realizacin de lo que ellos consideraban como los fundamentos de la solucin inteligente de problemas, pero lo difcil estaba todava sin empezar, unir entre s estas actividades simples. 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.5. Caractersticas De La Inteligencia Artificial Una caracterstica fundamental que distingue a los mtodos de Inteligencia Artificial de los mtodos numricos es el uso de smbolos no matemticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, tambin procesan smbolos y no se considera que usen tcnicas de Inteligencia Artificial. El comportamiento de los programas no es descrito explcitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cmo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explcitamente, cmo 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 propsito especfico, como los de contabilidad y clculos cientficos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dndole la capacidad de explicar discrepancias entre ellas. Aplicabilidad a datos y problemas mal estructurados, sin las tcnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolucin de conflictos en tareas orientadas a metas como en planificacin, o el diagnstico de tareas en un sistema del mundo real: con poca informacin, con una solucin cercana y no necesariamente exacta.

La Inteligencia Artificial incluye varios campos de desarrollo tales como: la robtica, usada principalmente en el campo industrial; comprensin de lenguajes y traduccin; visin en mquinas que distinguen formas y que se usan en lneas de ensamblaje; reconocimiento de palabras y aprendizaje de mquinas; 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 sismolgicos en exploracin geolgica y los que configuran complejos equipos de alta tecnologa. Tales tareas reducen costos, reducen riesgos en la manipulacin humana en reas peligrosas, mejoran el desempeo del personal inexperto, y mejoran el control de calidad sobre todo en el mbito comercial.

1.5.1 Programa fijo y programa modificado por el procesamiento Existen grandes diferencias entre el funcionamiento de las mquinas y el del cerebro: algunas son evidenciadas en el esquema bajo estas lneas. Las mquinas y el cerebro se diferencian en muchos aspectos: el primero es ligado a la arquitectura del sistema de memoria y a la elaboracin realizada por la inteligencia natural, que influye en los programas sucesivos al ser almacenada en la memoria que mantiene disponibles todos los hechos que se han ido acumulando a lo largo del tiempo. Abajo a la izquierda se muestra el esquema de funcionamiento de un sistema artificial: procesa datos que recibe del exterior y que le son presentados ya seleccionados. Los procesa mediante un programa fijo, siempre elegido y construido por el hombre, es decir, desde el exterior.

Figura 1.1 Visualizacin Sistema experto Cerebro humano 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 variable en el tiempo; las variaciones dependen de los resultados procedentes. De hecho, el cerebro tiene la propiedad de recordar imgenes similares; una vez vista la figura, extrae de su memoria imgenes similares previamente almacenadas y los resultados de los anlisis realizados sobre ellas. Estos resultados sirven para mejorar el programa segn el cual sacar conclusiones aplicadas al examen de la figura.

1.6. Funcionamiento Bsico De La Inteligencia Artificial 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.6.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. Otros trabajos importantes de esa poca que influyeron en la programacin lgica, fueron los de Loveland, Kowalski y Green, que disea un probador de teoremas que extrae de la prueba el valor de las variables para las cuales el teorema es vlido. 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. La Lgica de Primer Orden, es uno de los formalismos ms utilizados para representar conocimiento en Inteligencia Artificial. La Lgica cuenta con un lenguaje formal mediante el cual es posible representar frmulas llamadas axiomas, que permiten describir fragmentos del conocimiento y, adems consta de un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento. 1.6.2 Alfabeto del Lenguaje de la Lgica de Primer Orden

Contiene dos tipos de smbolos: a. Smbolos lgicos, entre los que se encuentran los smbolos de constantes proposicionales true y false; los smbolos de operadores proposicionales para la negacin, la conjuncin, la disyuncin y las implicaciones (=>, <=); los smbolos de operadores de cuantificacin como el cuantificador universal; el cuantificador existencial; y los smbolos auxiliares de escritura como corchetes [,], parntesis (,) y coma. b. Smbolos no lgicos, agrupados en el conjunto de smbolos constantes; el conjunto de smbolos de variables individuales; el conjunto de smbolos de funciones n-arias; y el conjunto de smbolos de relaciones n-arias. A partir de estos smbolos se construyen las expresiones vlidas en el Lenguaje de Primer Orden: los trminos y las frmulas. Un trmino es cualquiera de las tres expresiones siguientes: una constante, por ejemplo, el nmero "100", la palabra "alfredo" y la letra "c"; o una variable, por ejemplo, "X" o bien una expresin de la forma "f(t1,...,tn)" donde "f" es un smbolo de funcin n-aria y t1,...,tn son trminos. Ejemplos de funciones son: f(100,X), padre(Y) y sucesor(X). Las frmulas atmicas o elementales son expresiones de la forma R(t1,...,tn) donde R es un smbolo de relacin n-aria y t1,...,tn son trminos. Ejemplos de frmulas son: positivo(3), not(igual(4,doble(2))), 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 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. Prolog es un ejemplo de lenguaje basado en la Lgica de Primer Orden 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: padre(luis,miguel). Hecho padre(miguel,jose). Hecho padre(jose,juan). Hecho 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.

Figura 1.2 Anlisis de oraciones En este ejemplo de anlisis de oraciones, podemos observar de qu manera se analiza una oracin ingresada por el usuario y cmo el ordenador lo traduce en un lenguaje lgico de primer orden. En este caso la ejecucin del programa, para dicha meta, arrojara como resultado que X=luis. El mtodo de deduccin utilizado por Prolog, para dar respuesta a los objetivos planteados, se basa en el uso de una nica regla de inferencia: el Principio de Resolucin. Los primeros trabajos de prueba automtica de teoremas utilizaban la resolucin, aplicada a clusulas cualesquiera, pero el problema de las deducciones con clusulas generales es el gran nmero de combinaciones posibles para llevar a cabo las resoluciones. Por ello Prolog restringe el conjunto de clusulas, lo que le permite llevar a cabo una prueba dirigida y, en la mayora de los casos, con un universo de posibilidades explorable en tiempo de ejecucin. 8

1.7 Principales Ramas De La Inteligencia Artificial 1.7.1 Sistemas Expertos Los sistemas expertos son aquellos programas que se realizan haciendo explicito el conocimiento en ellos, que tienen informacin especfica de un dominio concreto y que realizan una tarea relativa a este dominio. Los sistemas expertos trabajan con inteligencia artificial simblica, es decir, a nivel de smbolos; como pueden ser ideas, imgenes, conceptos, etc. aunque debido a su naturaleza algortmica 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 informacin sobre el problema a tratar y su entorno, de forma que pueda generar y adaptar soluciones de forma ms precisa, al tener un conocimiento ms profundo sobre el tema, de forma similar a un experto especializado. El aprendizaje, inductivo o deductivo segn corresponda, proporcionar al sistema experto mayor autonoma a la hora de abordar problemas totalmente desconocidos; pudiendo generar nuevo conocimiento partiendo del extrado inicialmente del experto o expertos humanos. 1.7.2 Robtica La robtica es una ciencia o rama de la tecnologa, que estudia el diseo y construccin de mquinas capaces de desempear tareas realizadas por el ser humano o que requieren del uso de inteligencia. Las ciencias y tecnologas de las que deriva podran ser: el lgebra, los autmatas programables, las mquinas de estados, la mecnica o la informtica. RAE : 1. f. Tcnica que aplica la informtica al diseo y empleo de aparatos que, en sustitucin de personas, realizan operaciones o trabajos, por lo general en instalaciones industriales. 1.7.3 Sistemas De Visin La Visin artificial, tambin conocida como Visin por Computador (del ingls Computer Vision) o Visin tcnica, es un subcampo de la inteligencia artificial. El propsito de la visin artificial es programar un computador para que "entienda" una escena o las caractersticas de una imagen.

Los objetivos tpicos de la visin artificial incluyen: La deteccin, segmentacin, localizacin y reconocimiento de ciertos objetos en imgenes (por ejemplo, caras humanas). 9

La evaluacin de los resultados (ej.: segmentacin, registro). Registro de diferentes imgenes de una misma escena u objeto, i.e., hacer concordar un mismo objeto en diversas imgenes. Seguimiento de un objeto en una secuencia de imgenes. Mapeo de una escena para generar un modelo tridimensional de la escena; tal modelo podra ser usado por un robot para navegar por la escena. Estimacin de las posturas tridimensionales de humanos. Bsqueda de imgenes digitales por su contenido.

Estos objetivos se consiguen por medio de reconocimiento de patrones, aprendizaje estadstico, geometra de proyeccin, procesado de imgenes, teora de grafos y otros campos. La visin artificial cognitiva est muy relacionada con la psicologa cognitiva y la computacin biolgica. 1.7.4 Procesamiento De Lenguaje Natural El Procesamiento de Lenguajes Naturales, (PLN, o NLP; Natural Language Processing), es una subdisciplina de la Inteligencia Artificial y, tambin de la lingstica computacional. Estudia los problemas inherentes al procesamiento y manipulacin de lenguajes naturales, sin embargo no suele plantear el entendimiento de lenguajes naturales. Las principales tareas de trabajo en el PLN son:

Sntesis del discurso Anlisis del lenguaje Comprensin del lenguaje Reconocimiento del habla Generacin automtica del lenguaje. Traduccin automtica Respuesta a preguntas Recuperacin de la informacin Extraccin de la informacin

1.7.5 Sistemas De Aprendizaje El Aprendizaje Automtico es una rama de la Inteligencia Artificial cuyo objetivo es desarrollar tcnicas que permitan a las computadoras aprender. De forma ms concreta, se trata de crear programas capaces de generalizar comportamientos a partir de una informacin no estructurada suministrada en forma de ejemplos. Es por lo tanto, un proceso de induccin del conocimiento. En muchas ocasiones el campo de actuacin del Aprendizaje Automtico se solapa con el de la Estadstica, ya que las dos disciplinas se basan en el anlisis de datos. Sin embargo, el Aprendizaje Automtico se centra ms en el estudio de la Complejidad Computacional de los problemas. Muchos problemas son de clase NP-hard, por lo que gran parte de la investigacin realizada en Aprendizaje Automtico est enfocada al diseo de soluciones factibles a esos problemas. 10

El Aprendizaje Automtico tiene una amplia gama de aplicaciones, incluyendo motores de bsqueda, diagnsticos mdicos, deteccin de fraude en el uso de tarjetas de crdito, anlisis del mercado de valores, clasificacin de secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robtica. Los sistemas de aprendizaje son una combinacin de software y equipos que le permiten a la computadora cambiar su modo de funcionar o reaccionar a situaciones, basado en la retroalimentacin que recibe. Por ejemplo algunos juegos computarizados tienen capacidades de aprendizaje. Si la computadora no gana un juego en particular, recuerda no hacer los movimientos bajo las mismas condiciones. 1.7.6 Redes Neuronales Las redes de neuronas artificiales (RNA) son un paradigma de aprendizaje y procesamiento automtico inspirado en la forma en que funciona el sistema nervioso de los animales. 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 el cerebro que se caracterizan por su generalizacin y su robustez 1.8 ACTIVIDADES COMPLEMENTARIAS 1. Definir el termino inteligencia Artificial Cul el al diferencia entre la inteligencia natural y artificial? 2. Definir e identificar 6 subcampos de la Inteligencia Artificial 3. Que es un agente inteligente? Proporcione tres ejemplos de uso de un agente inteligente. 4. Identificar tres ejemplos de la utilizacin de la robtica. 5. Qu es una red neuronal? Describir dos aplicaciones de las redes neuronales. 6. Pueden pensar las computadoras? podran llegar a hacerlo? Explique su respuesta. 7. Cree usted que es posible construir una maquina tan o ms inteligente que un humano? Explique.

11

CAPITULO 2. VISION GENERAL DE LOS SISTEMAS EXPERTOS 2.1 INTRODUCCIN Desde la aparicin de las computadoras hasta nuestros das, la gente ha invertido grandes esfuerzos por tratar de dar una cierta capacidad de decisin a estas mquinas, incluso un cierto grado de inteligencia. Un Sistema Experto en s no tiene verdadera Inteligencia Artificial; ms bien, es un sistema basado en el conocimiento que, mediante el buen diseo de su base de informacin 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 gua 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 ms fcilmente. 2.2. Historia De Los Sistemas Expertos Comnmente se piensa que la Inteligencia Artificial, es un rea que se viene desarrollando hace aproximadamente 5 o mximo 10 aos atrs, pero esto no es cierto, este concepto viene desde los aos 50 cuando Alan Turing publico su libro llamado Inteligencia y funcionamiento de las maquinas. A continuacin se dar un breve resumen de la historia de los Sistemas Expertos agrupada por fechas: 1956: John McCarthy propone el uso del termino Inteligencia Artificial para denominar el estudio del tema, en una conferencia en Vermont (USA). 1957: Aparece la primera version de The General Problem Solver (GPS: Solucionador General de Problemas), el cual era capaz de solucionar problemas de sentido comun pero no de la vida real. 1958: John McCarthy desarrolla el lenguaje LISP (LISt Procesing). 1965: Aparece el primer Sistema Experto llamado DENDRAL, se utilizaba para identificar estructuras qumicas moleculares a partir de su anlisis espectrogrfico., su realizacin duro mas de 10 aos (1965-1975). 1972: Se desarrolla MYCIN en la Universidad de Stanford, un Sistema Experto para el diagnostico de enfermedades infecciosas. Tambin aparece el lenguaje PROLOG. 1974: Aparece PROSPECTOR, un Sistema Experto de prospeccin minera desarrollado en la Universidad de Stanford. 1979: Se desarrolla XCOM, un Sistema Experto que se encargaba de configurar todos los computadores que salan de la DEC (Digital Equipament Corporation).

12

Entre 1980 y 1985 se produce la revolucin de los Sistemas Expertos, en este intervalo de tiempo se crearon Sistemas como el DELTA, de General Electric Company, para la reparacin de locomotoras diesel y elctricas; se crearon multitud de empresas dedicadas a los Sistemas Expertos como Teknowledge Inc., Lisp Machines Inc., Thinking Machines Corporation, Cognitive Systems Inc. A partir de los 90 y con el desarrollo de la informtica, se produce un amplio desarrollo en el campo de la IA y por ende de los Sistemas Expertos, pudindose afirmar que estos se han convertido en una herramienta habitual en determinadas empresas en la actualidad.

2.3 Que Es Un Sistema Experto? Se puede decir que los Sistemas Expertos son el primer resultado operacional de la Inteligencia artificial, pues logran resolver problemas a travs del conocimiento y raciocinio de igual forma que lo hace el experto humano. 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 humano 1 ; 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. 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. La tarea principal de un SE es tratar de aconsejar al usuario2. 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. El Sistema Experto utilizar para ello el conocimiento que tenga almacenado y algunos mtodos de inferencia. Simultneamente, el usuario puede aprender observando el comportamiento del sistema, es decir, los sistemas expertos se pueden considerar al mismo tiempo como un medio de ejecucin y transmisin del conocimiento. De esta definicin se desprenden las dos habilidades fundamentales que poseen los Sistemas Expertos: La habilidad de aprendizaje, la cual requiere la interaccin de un experto en alguna rama especfica del saber y un ingeniero de conocimiento, que se
1 2

PARSAYE, Kamran, Mark Chignell, Setrag Khoshafian y Harry Wong. Intelligent Databases. SCHILDT Herbert, Utilizacin de C en Inteligencia Artificial.

13

encarga de traducir este conocimiento del experto a reglas heursticas 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 heursticas introducidas al sistema por un experto, a travs del proceso de aprendizaje durante la generacin de las bases del conocimiento. 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. 2.3.1 Caractersticas de un Sistema Experto Para que un sistema computacional acte como un verdadero experto, es deseable que rena, en lo posible, lo ms importante de las caractersticas 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 caracterstica 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). Adems cuenta con caractersticas adicionales las cuales sern nombradas a continuacin: 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 explicacin: Es aquella capaz de explicar cmo ha resuelto el problema, es decir, qu mtodo 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 dilogo: 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. Representacin explcita del conocimiento: Es necesaria para considerar que un sistema est basado en conocimiento.

14

La siguiente tabla muestra algunas diferencias que existen entre los sistemas clsicos y los expertos: 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 faciles El sistema solo opera completo El sistema puede funcionar con pocas reglas Se ejecuta paso a paso La ejecucin usa heurstica y logica Representa y usa datos Representa y usa conocimiento Tabla 2.1. Comparacin entre un sistema tradicional y un Sistema Experto 2.4 Cules son las ventajas de un sistema experto? Los valiosos conocimientos de un experto se guardan y se difunden, de forma que, no se pierden aunque desaparezca el especialista. En los Sistemas Expertos se guarda la esencia de los problemas que se intenta resolver y se programa cmo aplicar los conocimientos para su resolucin. Estos ayudan a entender cmo se aplican los conocimientos para resolver un problema. Esto es til porque normalmente el experto da por ciertos sus conocimientos y no analiza cmo los aplica. A continuacin 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. Duplicacin: El experto humano se encuentra en un nico lugar fsico y es irreproducible, mientras que una vez construido un Sistema Experto se pueden fabricar un nmero 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, tensin, 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 capacitacin y adiestramiento del personal sin experiencia. La separacin entre base de conocimiento y motor de inferencia proporciona una gran flexibilidad al SE. En manipulacin de smbolos, los SE abren el campo a nuevas aplicaciones, no automatizadas hasta la fecha.

15

Por otro lado, los Sistemas Expertos presentan grandes carencias frente a los seres humanos: Sentido comn: Para un ordenador no hay nada obvio. Lenguaje natural: Todava nos encontramos muy lejos de tener un sistema que pueda formular preguntas flexibles y mantener una conversacin informal con un usuario o con un paciente. Experiencia sensorial: Los Sistemas Expertos de la actualidad se limitan a recibir informacin. Perspectiva global: Un experto humano es capaz de detectar inmediatamente cules son las cuestiones principales y cules son secundarias (separando los datos relevantes de los detalles insignificantes).

Adems 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 informacin y el conocimiento presentados de forma poco ordenada. Funciones genuinamente humanas: por ejemplo, todo lo relacionado con el lenguaje natural, la formacin de conceptos, el conocimiento de sentido comn y la creacin queda fuera de los Sistemas Expertos, al menos en el estado actual del conocimiento. La extraccin del conocimiento es el problema ms complejo que se les plantea a los ingenieros de conocimientos. Los SE son incapaces de reconocer un problema para el que su propio conocimiento es inaplicable o insuficiente. Los motores de inferencia poseen algunos lmites. Falta personal competente para investigar y desarrollar aplicaciones.

2.5 Los expertos Humanos Un experto humano es una persona que es competente en un rea determinada del conocimiento o del saber. Un experto humano es alguien que sabe mucho sobre un tema determinado y que puede dar un consejo adecuado. Esta experiencia slo se adquiere tras un largo aprendizaje y a base de mucha experiencia. Los expertos humanos tienen las siguientes caractersticas generales: Son personas raras, tanto por su escaso nmero 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 nmero y por necesitar un largo periodo de aprendizaje.

16

No estn siempre disponibles, pues son humanos y cuando se jubilan o mueren se llevan con ellos todos sus conocimientos. Es por eso que tradicionalmente estn acompaados de un aprendiz. Hay expertos que tienen mal carcter, son informales o poco comunicativos, lo que a veces les hace antipticos.

La forma ms rpida de formar a un experto es mediante el aprendizaje formal o acadmico (conocimiento profundo) en un principio, y posteriormente un aprendizaje informal o prctico (conocimiento informal). 2.6 Diferencias entre un experto y un no experto humano Experto NO EXPERTO Tiempo de Resolucin Pequeo Grande Eficacia Resolutiva Alta Baja Organizacin Alta Baja Estrategias y Tcticas S No Bsqueda de Soluciones Heurstica No Heurstica Clculos Aproximados S No Tabla 2.2 Diferencias entre un experto y un no experto humano. El uso de heursticas contribuye grandemente a la potencia y flexibilidad de los SE y tiende a distinguirlos an mas del software tradicional. 2.7 Diferencias entre un SE y un programa tradicional SISTEMA EXPERTO PROGRAMA TRADICIONAL Conocimiento En programa e independiente En programa y circuitos Tipo de datos Simblicos Numricos Resolucin Heurstica Combinatoria Def. problema Declarativa Procedimental Control Independiente. No secuencial Dependiente. Secuencial Conocimientos Imprecisos Precisos Modificaciones Frecuentes Raras Explicaciones S No Solucin Satisfactoria Optima Justificacin S No Resolucin rea limitada Especfico Comunicacin Independiente En programa Tabla 2.3 Diferencias entre un Sistema Experto y un Programa Tradicional.

17

2.8 Diferencias entre un sistema experto y un experto humano SISTEMA EXPERTO Adquirido del Terico EXPERTO HUMANO Adquirido + Innato Terico + Prctico

Conocimiento Adquisicin conocimiento Campo nico Mltiples Explicacin Siempre A veces Limitacin de capacidad S S, no valuable Reproducible S, idntico No Vida Infinita Finita Tabla 2.4 Diferencias entre un Sistema Experto y un Experto Humano. 2.9 Ventajas de los sistemas expertos

Las ventajas que se presentan a continuacin son en comparacin con los expertos humanos: Estn siempre disponibles a cualquier hora del da y de la noche, y de forma interrumpida. Mantiene el humor. Pueden duplicarse (lo que permite tener tantos SE como se necesiten). Pueden situarse en el mismo lugar donde sean necesarios. Permiten tener decisiones homogneas efectuadas segn las directrices que se les fijen. Son fciles de reprogramar. Pueden perdurar y crecer en el tiempo de forma indefinida. Pueden ser consultados por personas o otros sistemas informticos.

2.10 Forma en que los usuarios interactan con los SE El usuario de un SE puede estar operando en cualquiera de los siguientes modos: VERIFICADOR. El usuario intenta comprobar la validez del desempeo del sistema. TUTOR. El usuario da informacin adicional al sistema o modifica el conocimiento que ya est presente en el sistema. ALUMNO. El usuario busca rpidamente desarrollar pericia personal relacionada con el rea especfica mediante la recuperacin de conocimientos organizados y condensados del sistema. CLIENTE. El usuario aplica la pericia del sistema a tareas especficas reales.

18

El reconocimiento de las caracterizaciones anteriores contrasta con la percepcin de un simple papel (el cliente) de los sistemas tradicionales de software. 2.11 Sistema experto VS. Sistema clsico La siguiente tabla compara las caractersticas de ambos tipos de sistemas Sistema Clsico Sistema Experto Conocimiento y procesamiento Base de conocimiento separada del combinados en un programa mecanismo de procesamiento No contiene errores Puede contener errores No da explicaciones, los datos slo se Una parte del sistema experto consiste usan o escriben en el mdulo de explicacin Los cambios son tediosos Los cambios en las reglas son fciles El sistema puede funcionar con pocas El sistema slo opera completo reglas Se ejecuta paso a paso La ejecucin usa heursticas y lgica Necesita informacin completa para Puede operar con informacin operar incompleta Representa y usa datos Representa y usa conocimiento Tabla 2.5 Comparativa entre un Sistema Clsico y un Sistema Experto 2.12 Futuro de los Sistemas Expertos Los Sistemas Expertos se utilizaran mucho ms en las organizaciones, debido a que la tecnologa tambin es cada vez ms accesible para una gran mayora de las empresas. Las interfaces de los Sistemas Expertos sern en leguaje natural, lo cual facilitar la comunicacin entre usuarios y el sistema. Se manejarn herramientas inteligentes para explotar la informacin que contengan las bases de datos, permitiendo con ello un mejor uso de la informacin. Los Sistemas Expertos se integrarn a otras tecnologas para dar un mayor soporte en todas las reas de la empresa. Los Sistemas Expertos tendrn una mayor difusin, su programacin y utilizacin sern ms fciles. Los SE estarn embebidos en diversas aplicaciones, especialmente en software de uso general y en sistemas de supervisin y control. En el futuro estos Sistemas Expertos sabrn ms sobre sus preferencias de las personas que ellas mismas.

19

2.13 ACTIVIDADES COMPLEMETARIAS 1. 2. 3. 4. Que es un sistema Experto? Explique los componentes de un sistema Experto? Cules son las ventajas de los sistemas expertos? Realice una comparacin 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 caractersticas 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 algn tipo de desarrollo de sistemas expertos en Colombia, Investigue en que campos y como ha sido su implementacin en su campo de accin. 8. Realice un anlisis 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 comparacin acerca del futuro de los sistemas expertos en Colombia y el desarrollo de estos a nivel mundial.

20

UNIDAD 2. DESARROLLO Y USO DE LOS SISTEMAS EXPERTOS CAPTULO 3. USO DE LOS SISTEMAS EXPERTOS 3.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 humano3; 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 especificos. 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.4 La tarea principal de un SE es tratar de aconsejar al usuario5. 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 conocimiento6. 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. Contienen datos afectados por factores de probabilidad.

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. 5 SCHILDT Herbert, Utilizacin de C en Inteligencia Artificial. 6 CRIADO Briz, Jos Mario. Sistemas Expertos. URL (http://home.worldonline.es/jmariocr/index.htm)
4

21

Con base en lo anterior, algunos investigadores de IA sealan que un SE debe cumplir con las siguientes caractersticas: Tener un amplio conocimiento especfico del rea de especializacin. Aplicar tcnicas de bsqueda. Tener soporte para Anlisis Heurstico. Poseer habilidad para inferir nuevos conocimientos ya existentes. Tener la capacidad de procesar smbolos. Tener la capacidad para explicar su propio razonamiento. 3.3 Uso de los sistemas Expertos 3. 2.1 Interpretacin, diagnstico y monitoreo La interpretacin 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, y que de todas formas llegue a una resolucin. Existen dos tipos de interpretacin: Anlisis: La interpretacin de datos se obtiene mediante la separacin o distincin de las partes que forman los datos. Sntesis: La interpretacin de los datos se obtiene mediante la combinacin de los mismos.

El diagnstico consiste en identificar las causas internas que provocan un problema, avera o disfuncin a partir de una serie de datos o sntomas que son consecuencia de la misma y que son observables. Los SE en diagnstico encuentran mltiples dificultades a la hora de realizar su tarea como son las siguientes: Manifestaciones Nuevas. Es decir, sntomas que no se haban observado con anterioridad. Causas Nuevas. Manifestaciones debidas a varias causas. Datos Inaccesibles, caros o de obtencin peligrosa. Relaciones no biyectivas entre los datos y las causas. Fallos o averas de aparicin intermitente. Existencia de varios fallos simultneos o en cadena.

La monitorizacin es un caso particular de la interpretacin, y consiste en la comparacin continua de los valores de las seales o datos de entrada y unos valores que actan como criterios de normalidad o estndares.

22

En el campo del mantenimiento predictivo los Sistemas Expertos se utilizan fundamentalmente como herramientas de diagnstico. Se trata de que el programa pueda determinar en cada momento el estado de funcionamiento de sistemas complejos, anticipndose a los posibles incidentes que pudieran acontecer. As, usando un modelo computacional del razonamiento de un experto humano, proporciona los mismos resultados que alcanzara dicho experto. La figura 3.1 muestra el funcionamiento de un SE de este tipo.

Figura 3.1 Funcionamiento de un SE usado en mantenimiento predictivo

3.2.2 Diseo y seleccin El diseo se puede concebir de distintas formas: El diseo en ingeniera es el uso de principios cientficos, informacin tcnica e imaginacin en la definicin de una estructura mecnica, mquina o sistema que ejecute funciones especficas con el mximo de economa y eficiencia. El diseo industrial busca rectificar las omisiones de la ingeniera, es un intento consiente de traer forma y orden visual a la ingeniera de hardware donde la tecnologa no provee estas caractersticas. Diseo es el proceso de especificar una descripcin de un artefacto que satisface varias caractersticas desde un nmero de fuentes de conocimiento.7 Los SE en diseo ven este proceso como un problema de bsqueda de una solucin ptima o adecuada. Las soluciones alternas pueden ser conocidas de antemano (problemas de derivacin) o se pueden generar automticamente (problemas de formulacin).
7

HOPGOOD, Adrian. Knowledge Based Systems for Engineers and Scientists.

23

Los SE prueban distintos diseos para verificar cules de ellos cumplen los requerimientos solicitados por el usuario, sta tcnica es llamada generacin y prueba, por lo tanto estos SE son llamados de seleccin. En reas de aplicacin, la prueba se termina cuando se encuentra la primer solucin; sin embargo, existen problemas ms complejos en los que el objetivo es encontrar la solucin ms ptima. La utilidad de los programas basados en conocimientos aplicados a la ciencia y a la ingeniera no se limita al anlisis sofisticado, muchos programas recientes han empezado a trabajar en la sntesis.8 Existen programas que disean dispositivos simples y despus buscan oportunidades de reduccin de costos o de reduccin de componentes. 3.2.3 Planificacin La planificacin es la realizacin de planes o secuencias de acciones y es un caso particular de la simulacin. Est compuesto por un simulador y un sistema de control. El efecto final es la ordenacin de un conjunto de acciones con el fin de conseguir un objetivo global (costo mnimo, tiempo mnimo, etc). Los problemas que presentan la planificacin 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 mayora de los datos con los que se trabaja son ms o menos probables pero no seguros. Es necesario hacer uso de fuentes diversas tales como bases de datos.

3.2.4 Control Un sistema de control participa en la 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 SE.

WINSTON, Patrick Henry. Artifical Intelligence.

24

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 SE en reparacin tienen que cumplir diversos objetivos, como son: Reparacin lo ms rpida y econmicamente posible. Orden de las reparaciones cuando hay que realizar varias. Evitar los efectos secundarios de la reparacin, es decir la aparicin de nuevas averas por la reparacin.

3.2.6 Simulacin, pronstico o prediccin La simulacin es una tcnica consistente en crear modelo basados en hechos, observaciones e interpretaciones, sobre la computadora, a fin de estudiar el comportamiento de los mismos mediante la observacin de las salidas para un conjunto de entradas. Las tcnicas tradicionales de simulacin requieren modelos matemticos y lgicos que describen el comportamiento del sistema bajo estudio. El empleo de los SE para la simulacin viene motivado por la principal caracterstica de los SE, que es su capacidad para la simulacin del comportamiento de un experto humano, que es un proceso complejo. En la aplicacin de los SE para simulacin hay que diferencia 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 simulacin puede contener como parte del mismo a un SE y por lo tanto el SE no tiene que ser necesariamente de simulacin. 3. Un SE puede controlar un proceso de simulacin, es decir que el modelo est en la base de conocimiento del SE y su evolucin es funcin de la base de hechos, la base de conocimientos y el motor de inferencia, y no de un conjunto de ecuaciones aritmtico lgicas. 4. Un SE puede utilizarse como consejero del usuario y del sistema de simulacin.

25

5. Un SE puede utilizarse como mscara o sistema frontal de un simulador con el fin de que el usuario reciba explicacin y justificacin de los procesos. Los sistemas de pronstico deducen consecuencias posibles a partir de una situacin. Su objetivo es determinar el curso del futuro en funcin de informacin sobre pasado y presente. Esto abarca diversos problemas, tales como predicciones meteorolgicas, predicciones demogrficas, o incluso previsiones de la evolucin burstil entre otros.9 3.2.7 Instruccin Un sistema de instruccin (Sistema Experto para formacin), 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 enseanza para facilitar el proceso de aprendizaje y la correccin de errores.10 3.2.8 Recuperacin de Informacin Los Sistemas Expertos, con su capacidad para combinar informacin y reglas de actuacin, han sido vistos como una de las posibles soluciones al tratamiento y recuperacin de informacin, no slo documental. La dcada de 1980 fue prolija en investigacin y publicaciones sobre experimentos de este orden, inters que continua en la actualidad. Lo que diferencia a estos sistemas de un sistema tradicional de recuperacin de informacin es que estos ltimos slo son capaces de recuperar lo que existe explcitamente, mientras que un Sistema Experto debe ser capaz de generar informacin no explcita razonando con los elementos que se le dan. Pero la capacidad de los SE en el mbito de la recuperacin de la informacin no se limita a la recuperacin. Pueden utilizarse para ayudar al usuario, en seleccin de recursos de informacin, en filtrado de respuestas, etc Un SE puede actuar como un intermediario inteligente que gua y apoya el trabajo del usuario final. Para desempear de forma adecuada esta tarea, los enfoques centrados en la creacin de modelos de las estructuras cognitivas del usuario son los ms prometedores. 3.3. Elementos de una Sistema Experto Los dos componentes principales de cualquier sistema experto son una base de conocimientos y un programa de inferencia, o tambin llamado motor de inferencias.
9

MARTNEZ De Ibarreta Len, Francisco Javier. Sistemas Expertos: reas de aplicacin. URL(http://www.geocities.com/javierml.geo/doc/SistemasExpertos.html) 10 Ibid

26

a. La base de conocimientos del Sistema Experto con respecto a un tema especfico para el que se disea el sistema. Este conocimiento se codifica segn una notacin especfica que incluye reglas, predicados, redes semnticas y objetos. b. El motor de inferencia, que es el que 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 un SE entre ellos: Subsistema de control de coherencia. Este componente previene la entrada de informacin incoherente en la base de conocimiento. Es un componente muy necesario, a pesar de ser un componente reciente. Subsistema de adquisicin de conocimiento. Se encarga de controlar si el flujo de nuevo conocimiento a la base de datos es redundante. Slo almacena la informacin que es nueva para la base de datos. Motor de inferencia. Este componente es bsico 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 conclusin, se utilizar el subsistema de demanda de informacin. Subsistema de demanda de informacin. Completa el conocimiento necesario y reanuda el proceso de inferencia hasta obtener alguna conclusin vlida. El usuario puede indicar la informacin necesaria en este proceso ayudado de una interfase de usuario (la cual facilita la comunicacin entre el Sistema Experto y el usuario). Subsistema de incertidumbre. Se encarga de almacenar la informacin de tipo incierto y propaga la incertidumbre asociada a esta informacin. Subsistema de ejecucin de tareas. Permite realizar acciones al Sistema Experto basadas en el motor de inferencia. Subsistema de explicacin. Este componente entra en ejecucin cuando el usuario solicita una explicacin de las conclusiones obtenidas por el SE. Esto se facilita mediante el uso de una interfase.

27

Figura 3.2. Elementos de un Sistema Experto

Figura 3.3 Elementos de un sistema experto

28

3.3.1. Base de Conocimientos Los especialistas son responsables de suministrar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad. Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la informacin relacionada con una aplicacin particular. Por ejemplo, en diagnostico mdico, los sntomas, las enfermedades y las relaciones entre ellos, forman parte del conocimiento, mientras los sntomas particulares de un paciente dado forman parte de los datos. Mientras el conocimiento es permanente, los datos son efmeros, es decir, no forman parte de la componente permanente de un sistema y son destruidos despus 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 carcter transitorio se almacenan tambin en la memoria de trabajo. La base de conocimientos contiene el conocimiento especializado extrado del experto en el dominio. Es decir, contiene conocimiento general sobre el dominio en el que se trabaja. El mtodo ms comn para representar el conocimiento es mediante reglas de produccin. El dominio de conocimiento representado se divide, pues, en pequeas fracciones de conocimiento o reglas. 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. 3.3.2 El Mecanismo de Inferencia El motor de inferencia es el corazn de todo sistema experto. El cometido principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnstico mdico, los sntomas de un paciente (datos) son analizados a la luz de los sntomas y las enfermedades y de sus relaciones (conocimiento). 29

Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilstico. Como puede esperarse, el tratamiento de situaciones de incertidumbre (probabilsticas) puede ser considerablemente ms difcil que el tratamiento de situaciones ciertas (deterministas). En muchos casos, algunos hechos (datos) no se conocen con absoluta certeza. Por ejemplo, pinsese en un paciente que no est seguro de sus sntomas. Puede darse el caso de tener que trabajar con conocimiento de tipo no determinista, es decir, de casos en los que se dispone slo de informacin aleatoria o difusa. El motor de inferencia es tambin responsable de la propagacin de este conocimiento incierto. De hecho, en los sistemas expertos basados en probabilidad, la propagacin 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 ms dbil de casi todos los sistemas expertos existentes. El mecanismo de inferencia de un sistema experto puede simular la estrategia de solucin de un experto. Es la unidad lgica con la que se extraen conclusiones de la base de conocimiento, segn un mtodo fijo de solucin de problemas que esta configurado, limitando el procedimiento humano de los expertos para solucionar problemas. Una conclusin se produce mediante aplicacin de las reglas sobre hechos presentes. Las funciones de mecanismo de inferencia son: 1. Determinacin de las acciones que tendr lugar, el orden en que lo harn y como lo harn entre las diferentes partes del sistema experto. 2. Determinar como y cuando se procesaran las reglas, y dado el caso tambin la eleccin de que reglas debern procesarse. El motor de inferencias es un programa que controla el proceso de razonamiento que seguir el Sistema Experto. Utilizando los datos que se le suministran, recorre la base de conocimientos para alcanzar una solucin. La estrategia de control puede ser de encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se comienza con los hechos disponibles en la base de datos, y se buscan reglas que satisfagan esos datos, es decir, reglas que verifiquen la parte SI. Normalmente, el sistema sigue los siguientes pasos: 1. Evaluar las condiciones de todas las reglas respecto a la base de datos, identificando el conjunto de reglas que se pueden aplicar (aquellas que satisfacen su parte condicin). 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 accin (esto ltimo genera nuevos hechos que se aaden a la base de datos). 3. Si se llega al objetivo, se ha resuelto el problema; en caso contrario, se vuelve al paso 1

30

A este enfoque se le llama tambin 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 mtodo, 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 accin de las reglas) y operar retrocediendo para ver cmo se deduce ese objetivo partiendo de los datos. Esto se produce directamente o a travs de conclusiones intermedias o subobjetivos. Lo que se intenta es probar una hiptesis a partir de los hechos contenidos en la base de datos y de los obtenidos en el proceso de inferencia. En la mayora 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 cuestin. El usuario comenzar declarando una expresin E y el objetivo del sistema ser establecer la verdad de esa expresin. Para ello se pueden seguir los siguientes pasos: 1. Obtener las reglas relevantes, buscando la expresin E en la parte accin (stas sern las que puedan establecer la verdad de E) 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 ms datos. 3. Si hay reglas para aplicar, se elige una y se verifica su parte condicin C con respecto a la base de datos. 4. Si C es verdadera en la base de datos, se establece la veracidad de la expresin 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 expresin E). Existen tambin enfoques mixtos en los que se combinan los mtodos guiados por datos con los guiados por objetivos. 3.3.3 El componente explicativo Las soluciones descubiertas por los expertos deber poder ser repetibles tanto por el ingeniero del conocimiento en la fase de comprobacin as como por el usuario. La exactitud de los resultados slo 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: 31

Qu preguntas se plantean y por qu? Cmo 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 difcil 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 grfica. Adems los componentes explicativos intentan justificar su funcin rastreando hacia atrs el camino de la solucin. Aunque encontrar la forma de representar finalmente en un texto lo suficientemente inteligible las relaciones encontradas depara las mayores dificultades. Los componentes explicativos pueden ser suficientes para el ingeniero del conocimiento, ya que est muy familiarizado con el entorno del procesamiento de datos, y a veces bastan tambin para el experto; pero para el usuario, que a menudo desconoce las sutilezas del procesamiento de datos, los componentes explicativos existentes son todava poco satisfactorios. Explica al usuario la estrategia de solucin encontrada y el porque de las decisiones tomas. Las soluciones descubiertas por los expertos deben poder ser repetibles, tanto por lo el ingeniero del conocimiento en la base de comprobacin, as como por usuario. La exactitud de los resultados, slo 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. 3.3.4 La interfaz del usuario Sirve para que ste pueda realizar una consulta en un lenguaje lo ms natural posible. Este componente es la forma en la que el sistema se presenta ante el usuario. Requisitos o caractersticas de la interface que se presenta al usuario al desarrollar el sistema. 1. El aprendizaje del manejo debe ser rpido. 2. Debe evitarse en lo posible la entrada de datos errneos. 3. Los resultados deben presentarse en una forma clara para el usuario. 4. Las preguntas y explicaciones deben ser comprensibles. La interfaz de usuario permite que el usuario pueda describir el problema al Sistema Experto. Interpreta sus preguntas, los comandos y la informacin ofrecida. A la inversa, formula la informacin 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. Tambin puede solicitar ms informacin al SE si le es necesaria. En algunos

32

sistemas se utilizan tcnicas de tratamiento del lenguaje natural para mejorar la comunicacin entre el usuario y el SE. La interfase 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 informacin de forma fcil y agradable. Un ejemplo de la informacin 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 explicacin de las acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de Inferencia no puede concluir debido, por ejemplo, a la ausencia de informacin, la interfase de usuario es un vehculo para obtener la informacin necesaria del usuario. Consecuentemente, una implementacin inadecuada de la interfase de usuario que no facilite este proceso minara notablemente la calidad de un sistema experto. Otra razn de la importancia de la interfase de usuario es que los usuarios evalan comnmente los sistemas expertos y otros sistemas por la calidad de dicha interfase ms que por la del sistema experto mismo, aunque no se debera juzgar la calidad de un libro por su portada. Los lectores que estn interesados en el diseo de una interfase de usuario pueden consultar los libros de Shneiderman (1987) y Brown y Cunningham (1989). En este componente como todos bien sabis es la forma en la que el sistema se nos presentar ante el usuario. Como en los anteriores nos surgen dudas y preguntas como por ejemplo:

Cmo debe responder el usuario a las preguntas planteadas? Cmo saldrn las respuestas del sistema a las preguntas que se le planteen? Qu informaciones se representarn de forma grfica?

Los requisitos o caractersticas de la interface que presentaremos al usuario voy a resumirlas en cuatro, que a mi opinin son las ms importantes y las ms a tener en cuenta al desarrollar el sistema: 1. El aprendizaje del manejo debe ser rpido. El usuario no debe dedicar mucho tiempo al manejo del sistema, debe ser intuitivo, fcil en su manejo. No debemos olvidar que nuestro sistema simula al comportamiento de un experto. Debe sernos cmodo y relativamente sencillo en cuanto al manejo. 2. Debe evitarse en lo posible la entrada de datos errnea. Ejemplo: Poneros en la situacin de que nuestro sistema a un mdico. Cuando nosotros acudimos a un mdico, le contamos y detallamos nuestros sntomas y el con sus preguntas junto con nuestras respuestas nos diagnostica nuestra "enfermedad".Imaginaros que acudimos a un medico y le decimos que nos duele una pierna en lugar de un brazo, el diagnostico ser intil. El ejemplo es muy exagerado pero demuestra la importancia en la correcta introduccin de los datos al sistema.

33

3. Los resultados deben presentarse en una forma clara para el usuario. Vuelvo al ejemplo del mdico. Si nuestro mdico 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 solucin a nuestro problema ser ineficiente por completo. Por eso se insiste en que los resultados debe ser claros y concisos. 4. Las preguntas y explicaciones deben ser comprensibles. 3.3.5 El componente de adquisicin Un buen componente de adquisicin ayudar considerablemente la labor del Ingeniero del Conocimiento. Este puede concentrarse principalmente en la estructuracin del conocimiento sin tener que dedicar tanto tiempo en la actividad de programacin. Requisitos o caractersticas del componente de adquisicin: 1. El conocimiento, es decir, las reglas, los hechos, las relaciones entre los hechos, etc.., debe poder introducirse de la forma ms sencilla posible. 2. Posibilidades de representacin clara de todas las informaciones contenidas en una base de conocimientos. 3. Comprobacin automtica de la sintaxis. 4. Posibilidad constante de acceso al lenguaje de programacin. Como se pone en prctica cada uno de los requisitos depender del lenguaje de programacin elegido y del hardware que tengamos. El experto deber estar algo familiarizado con el componente de adquisicin para poder realizar modificaciones por s slo. La mayora de los sistemas expertos contienen un mdulo de explicacin, diseado para aclarar al usuario la lnea de razonamiento seguida en el proceso de inferencia. Si el usuario pregunta al sistema cmo ha alcanzado una conclusin, ste le presentar la secuencia completa de reglas usada. Esta posibilidad de explicacin es especialmente valiosa cuando se tiene la necesidad de tomar decisiones importantes amparndose en el consejo del SE. Adems, 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 explicacin tambin puede usarse para depurar el SE durante su desarrollo. El mdulo de adquisicin del conocimiento permite que se puedan aadir, eliminar o modificar elementos de conocimiento (en la mayora de los casos reglas) en el SE. Si el entorno es dinmico, entonces este componente es muy necesario, puesto que el sistema funcionar correctamente slo si se mantiene actualizado su conocimiento. El mdulo de adquisicin permite efectuar ese mantenimiento, anotando en la base de conocimientos los cambios que se producen. 34

Ofrece ayuda a la estructuracin e implementacin del conocimiento en la base de conocimientos. Un buen componente de adquisicin ayudara considerablemente la labor del ingeniero del conocimiento. Este puede concentrarse principalmente en la estructuracin del conocimiento sin tener que dedicar tanto tiempo en la actividad de programacin. Daremos unas reglas o requisitos de nuestro componente de adquisicin. Requisitos o caractersticas de los componentes de adquisicin. 1. El conocimiento, es decir, las reglas, los hechos, las relaciones entre los hechos, debe poder introducirse de la forma ms sencilla posible. 2. Posibilidades de representacin clara en todas las informaciones contenida en una base de conocimientos. 3. Comprobacin automtica de la sintaxis. 4. Posibilidad constante de acceso al lenguaje de programacin. 3.3.6 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 caractersticas limitantes de los sistemas expertos. 5. Identificar los elementos bsicos de un sistema experto y describir el papel de cada uno de ellos.

35

CAPITULO 4. PROCESO DE DESARROLLO DE UN SISTEMA EXPERTO 4. Introduccin Para desarrollar el software primero conocemos el equipo de gente necesario, despus los mtodos 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. Mtodos auxiliares en el desarrollo: La eficiencia en la creacin de sistemas expertos puede aumentarse en gran medida con la aplicacin de shells. Un shell es un sistema experto que contiene una base de conocimientos vaca. Existe el mecanismo de inferencia, el componente explicativo y a veces tambin la interfaz del usuario. 3. construccin de prototipos La implantacin de un prototipo de sistema experto que le permite llevar a cabo las funciones ms importantes de ste, aunque con esfuerzo de desarrollo considerablemente inferior al de una implementacin convencional. Este proceder se define bajo el nombre de rapid prototyping. 4.1 Aspectos Generales 4.1.1 El Equipo de Desarrollo

Figura 4.1 Equipo de desarrollo de un SE

Para desarrollar un SE primero se debe conocer el equipo de gente necesario, despus los mtodos que utiliza ese equipo de gente y por ultimo cmo prueban y construyen prototipos de software para terminar en el sistema final. Las personas que componen un grupo o un equipo, 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:

36

a) El experto. La funcin del experto es la de poner sus conocimientos especializados a disposicin del Sistema Experto. b) El ingeniero del conocimiento. Es el ingeniero que plantea las preguntas al experto, estructura sus conocimientos y los implementa en la base de conocimientos. c) El usuario. El usuario aporta sus deseos y sus ideas, determinando especialmente el escenario en el que debe aplicarse el Sistema Experto. En el desarrollo de un Sistema Experto, El ingeniero del conocimiento y el experto trabajan muy unidos. El primer paso consiste en elaborar los problemas que deben ser resueltos por el sistema. Precisamente en la primera fase de un proyecto es de vital importancia determinar correctamente el mbito estrechamente delimitado de trabajo. Aqu se incluye ya el usuario posterior, o un representante del grupo de usuarios. Para la aceptacin, y en consecuencia para 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 ms conveniente. El ingeniero del conocimiento es responsable de una implementacin correcta, pero no de la exactitud del conocimiento. La responsabilidad de esta exactitud recae en el experto. De ser posible, el experto deber tener comprensin para los problemas que depara el procesamiento de datos. Ello facilitar mucho el trabajo. Adems, no debe ignorarse nunca al usuario durante el desarrollo, para que al final se disponga de un sistema que le sea de mxima utilidad. La estricta separacin entre usuario, experto e ingeniero del conocimiento no deber estar siempre presente. Pueden surgir situaciones en las que el experto puede ser tambin 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 separacin entre experto e ingeniero del conocimiento permanece, por regla general, inalterada. 4.1.2 Construccin de las principales partes de un SE Como ya se mencion, los principales componentes de un SE son la base de conocimiento y el motor de inferencia. La metodologa tradicional se enfoca principalmente a la construccin de dichos componentes.

37

4.1.2.1 La base de conocimiento La base de conocimiento es una base de datos que posee una informacin y unas reglas especficas sobre una materia o tema determinado. En la metodologa tradicional, la base de conocimiento se conforma de objetos y atributos. Un objeto es una conclusin que es definida por sus atributos relacionados; y un atributo es una caracterstica o cualidad especfica 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 ms 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 informacin sobre un tema especfico, generalmente introducido por un experto por dicho tema, sobre el cual se desarrolla la aplicacin Este conocimiento lo constituye la descripcin de: Objeto a tener en cuenta y sus relaciones. Casos particulares o excepciones o diferentes estrategias de resolucin con sus condiciones de aplicacin (meta-conocimiento, es decir conocimiento sobre el conocimiento.) Se representa de una manera sencilla, mediante reglas. La Base de Conocimientos contiene reglas. Una regla es una instruccin condicionada que enlaza determinadas condiciones con acciones o resultados. La regla se crea por medio de construcciones de si-entonces. S <premisa> Then <conclusin> Ejemplo: S Latencia Distal >= 3.8 Then Latencia Distal Normal S Latencia Distal < 3.8 Then Latencia Distal Anormal Las reglas componen la Base de Conocimiento y las mismas pueden relacionarse dando lugar a nuevos hechos. La base de conocimientos contiene el conocimiento especializado extrado del experto en el dominio. Es decir, contiene conocimiento general sobre el dominio en el que se trabaja. El mtodo ms comn para representar el conocimiento es mediante reglas de produccin. El dominio de conocimiento representado se divide, pues, en pequeas fracciones de conocimiento o reglas SI. . . ENTONCES . . . Cada regla constar de una parte denominada condicin y de una parte denominada accin, y tendr la forma: 38

SI condicin ENTONCES accin. Como ejemplo se puede considerar la siguiente regla mdica: 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 metarreglas (reglas sobre otras reglas) y su funcin es indicar bajo qu condiciones deben considerarse unas reglas en vez de otras. Un ejemplo de metaregla 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. 4.1.2.2 Cinco Pasos en la Construccin de una Base de Conocimientos 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 39

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 especifico 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. 4.1.2.3 Proceso Lgico de Carga de la Base de Conocimiento En esta fase se determinan las reglas y se incorporan a la base de conocimientos

Figura 4.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 40

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 produccin o redes semnticas. Las reglas de produccin constituyen el mtodo ms utilizado para construir bases de conocimientos en los sistemas expertos. Llamadas tambin implicaciones lgicas, su estructura es la siguiente: para unas ciertas causas, unos efectos; o, para determinadas condiciones, ciertas consecuencias. 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. En cuanto a las redes semnticas, se trata de un mtodo de construccin de bases de conocimientos en el cual los conocimientos se muestran mediante un grafo en el que los vrtices representan los conceptos u objetos y las aristas indican las relaciones entre ellos. Adems 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 desempear 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 sesin de trabajo o para llevar a cabo la descripcin del comportamiento del propio sistema experto. Al principio del perodo 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. 4.1.3 El motor de inferencia Para construir un motor de inferencia, existen tres mtodos bsicos: encadenamiento hacia adelante, encadenamiento hacia atrs y reglas de produccin. 4.1.3.1 Mtodo de encadenamiento hacia delante A este mtodo se le llama conducido por datos, porque el motor de inferencia utiliza la informacin que el usuario le proporciona para moverse a travs 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 ms informacin. Los atributos que definen al objeto crean un camino que conduce al mismo objeto: la nica forma de alcanzar 41

dicho objeto es satisfacer todas sus reglas. En resumen el sistema de encadenamiento hacia delante construye un rbol desde las hojas hasta la raz, como se puede ver en la figura 4.3.
Atributo Atributo Atributo Atributo

Figura 4.3 Mtodo de encadenamiento hacia adelante

4.1.3.2. Mtodo de encadenamiento hacia atrs. Este mtodo es el contrario al mtodo anterior. Un motor de inferencia de encadenamiento hacia atrs comienza con una hiptesis (objeto) y pide informacin para confirmarlo o negarlo. A este mtodo se le llama conducido por objetos porque el SE empieza con un objeto e intenta verificarlo. En resumen, el encadenamiento hacia atrs poda un rbol, lo cual es lo contrario al mtodo anterior, en el cual se construye un rbol, esto se muestra en la figura 4.4.
Intenta objeto

Atributo cumplido

Atributo no cumplido

Atributo cumplido

Atributo no cumplido

Atributo cumplido

Atributo cumplido

Objeto encontrado

Figura 4.4. Encadenamiento hacia atrs

42

4.1.3.3 Mtodo de reglas de produccin Este mtodo es una mejora al mtodo de encadenamiento hacia atrs. La teora operativa general es que el sistema pide como informacin aquella que elimine la mayor incertidumbre posible. El problema que existe con este mtodo est en su dificultad para llevarse a cabo, primeramente debido a que la base de conocimiento a menudo es tan grande que el nmero de combinaciones que el sistema puede soportar se rebasa fcilmente, por lo tanto, el sistema no puede determinar exactamente qu informacin eliminar una mayor incertidumbre. En segundo lugar, los sistemas de reglas de produccin requieren que la base de conocimientos contenga no slo la informacin objeto atributo, sino adems un valor cuantificador, lo que hace aun ms difcil la construccin de la base de conocimientos. 4.1.4 Construccin del Mecanismo de Inferencia 4.1.4.1 El mecanismo de inferencia El mecanismo de inferencia es la unidad lgica con la que se extraen conclusiones de la base de conocimientos, segn un mtodo fijo de solucin de problemas que esta configurado imitando el procedimiento humano de los expertos para solucionar problemas. Una conclusin se produce mediante aplicacin de las reglas sobre los hechos presentes. 4.1.4.2 Motor de Inferencia. Un motor de inferencia interpreta y evala los hechos en la base de conocimientos para proveer una respuesta. Este debe ser independiente del conocimiento y de los hechos. Se puede caracterizar por: El lenguaje en que ha sido escrito. La velocidad de trabajo: Inferencias / segundo. Las estrategias de bsqueda de soluciones: No Ordenada: aleatoria, heurstica. Ordenada: Encadenamiento hacia adelante (guiado por los datos, deductivo), encadenamiento hacia atrs (guiado por los objetivos, inductivo). La forma en que elige el conocimiento. La posibilidad de incorporar metaconocimiento. El tipo de lgica que emplea en el razonamiento: Booleana, trivalente, multivalente, difusa.
43

Monotnica o no monotnica. Atemporal o temporal. Lgica de orden 0, orden 0+, orden 1. El mtodo que utiliza para la evaluacin del conocimiento incompleto o incierto: Determinstico. Probabilstico. Aproximado. 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 identificacin de patrones, operacin especialmente larga, ya que muchos sistemas realizan una preseleccin de las reglas antes de que comience la identificacin propiamente tal. Es decir, se considera un subconjunto de reglas y entre stas, las aplicables. Esto, es lo que se llama restriccin. Adicionalmente puede existir una Base de Datos con informacin puntual sobre problemas especficos anteriormente resueltos por el sistema, y que se usa como informacin 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 seleccin. Una vez que las regla han sido elegida ha de ejecutarse. Al mdulo central del sistema experto que maneja estas tres operaciones se le denomina motor de inferencia o intrprete de reglas. Hay diversos tipos de motores de inferencia segn los mtodos con que se manejan las tres operaciones precedentes. 4.1.4.3 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

44

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. 4.1.4.4. 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. 4.1.4.5. La fase de restriccin. 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 restriccin tambin puede estar especificada explcitamente por el experto para utilizar reglas dentro de las reglas, es decir, meta reglas. Indica qu grupo de reglas debe ser retenido, por prioridad, o definir un orden en los subconjuntos de las reglas. El conocimiento puede organizarse en forma de red como en las redes semnticas utilizadas en el anlisis sintctico del lenguaje. Su posicin dentro de la red dirige las restricciones utilizando heursticas. Esta formulacin es particularmente eficiente si se establece vlidamente una organizacin jerrquica del conocimiento, en este caso existira una taxonoma 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.
45

4.1.4.6 La fase de seleccin. Como despus de las fases anteriores quedan varias reglas se debe seleccionar una y luego de procesada el programa debe saber dnde volver. Cuando hay una o ms reglas, se usan dos estrategias: La bsqueda en anchura, que elige una, generalmente la primera y se van ejecutando por turno antes de comprobar que se ha alcanzado la condicin final. Si no es as se inicia otro ciclo del motor de inferencia. Este tipo de bsqueda es exhaustiva y la usa el sistema experto MYCIN. Otra estrategia es la de elegir una regla entre las aplicables por medio de una heurstica, procesarla y modificar la base de datos. Si no se alcanza la condicin 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 efectan marcha atrs, si no hay regla aplicable, pero si el sistema est bajo un control irrevocable se detendr. Visto en la prctica, las reglas poseen la siguiente estructura: SI (CONJUNTO_DE_PREMISAS) ENTONCES CONSECUENCIA o bien: (CONJUNTO_DE_PREMISAS) CONSECUENCIA El CONJUNTO_DE_PREMISAS contiene las clusulas, o simplemente condiciones, que deben cumplirse para que la regla pueda ejecutarse, y la CONSECUENCIA representa el resultado de la ejecucin de dicha regla. Ejemplos Ejemplo No. 1 Un ejemplo sencillo que ilustra cmo representar conocimiento a travs de reglas: Afirmacin: Todos los catedrticos son doctores. Representacin Lgica - Matemtica: En esta representacin la variable x constituye el conjunto de todas las personas posibles, CATEDRTICO representa la relacin "SER CATEDRTICO" y DOCTOR la de "SER DOCTOR". De esta manera la regla anterior representa el hecho: Para toda persona x, Si x es catedrtico entonces x es doctor. Representacin en SE:
46

o bien: SI (x ES CATEDRTICO) ENTONCES (x ES DOCTOR) En este caso CATEDRTICO y DOCTOR representan de nuevo relaciones que deben estar representadas sobre el sistema. Ejemplo No. 2 Una Regla es: Si p y q entonces r p y q son justo aquellos hechos que se mencionan en la clusula "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 slo cuando est contenido en la base de conocimientos. Los hechos que constan en la clusula "si" se llaman premisas, y el contenido en la clusula "entonces" se llama conclusin. Cuando se aplica una regla sobre algunos hechos cualesquiera se dice que se dispara. El disparo de una regla provoca la insercin del nuevo hecho en la base de conocimientos. Las funciones del mecanismo de inferencia son: 1. Determinacin de las acciones que tendrn lugar, el orden en que lo harn y cmo lo harn entre las diferentes partes del Sistema Experto. 2. Determinar cmo y cundo se procesarn las reglas, y dado el caso tambin la eleccin de qu reglas debern procesarse. 3. Control del dilogo con el usuario. La decisin sobre los mecanismos de procesamiento de reglas, es decir, qu estrategias de bsqueda se implementarn, es de vital importancia para la efectividad del sistema en su conjunto. Ante problemas o clases de problemas distintos se estructuran, como es lgico, diferentes mecanismos de inferencia. El mecanismo de inferencia debe de estar "adaptado" al problema a solucionar. Una imposicin de dinero exige, bajo ciertas circunstancias, una estrategia distinta de procesamiento del conocimiento que un diagnstico de fallos de mquina. 4.1.4.7 Ejemplo de Funcionamiento del Motor de Inferencia Para ilustrar cmo trabajan los procedimientos de inferencia, se supondr un sistema que contiene las siguientes reglas en la base de conocimiento: R1: SI abrigo ENTONCES bingo R2: SI chaqueta ENTONCES dentista R3: SI bingo ENTONCES esposa -Enfoque guiado por datos (o encadenamiento hacia adelante): El problema es determinar si se da esposa sabiendo que se cumplen abrigo y chaqueta. Lo primero que se hace es introducir en la base de datos abrigo y chaqueta: B.D. = {abrigo, chaqueta} El sistema identifica las reglas aplicables: R = {R1, R2} Selecciona R1 y la aplica. Esto genera bingo que se aade a la base de datos:
47

B.D. = {abrigo, chaqueta, bingo} Como no se ha solucionado el problema, vuelve a identificar un conjunto de reglas aplicables (excepto la ya aplicada, que no cambiara el estado de la base de datos): R = {R2, R3} Selecciona y aplica R2 quedando: B.D. = {abrigo, chaqueta, bingo, dentista} El problema todava no se ha solucionado, luego el sistema selecciona otro conjunto de reglas aplicables: R = {R3} Seleccionando y aplicando R3, la base de datos queda: B.D. = {abrigo, chaqueta, bingo, dentista, esposa} Como esposa se encuentra en ella, se ha llegado a la solucin del problema. Enfoque guiado por objetivos (o encadenamiento hacia atrs): Se quiere determinar si se cumple esposa teniendo en la base de datos abrigo y chaqueta: B.D. = {abrigo, chaqueta}. El conjunto de reglas aplicables en este caso ser: R = {R3} (R3 es la nica que tiene esposa en su parte derecha). Se selecciona R3 y se genera bingo. Como no se encuentra en la base de datos ( no es verdadero ni falso) se le considera como subobjetivo. El sistema intentar ahora probar bingo. Identifica las reglas aplicables: R = {R1}. Aplica R1 y se obtiene abrigo que es verdadero en la base de datos. De esta forma, se prueba el subobjetivo, y al probar ste, se prueba esposa resolviendo el problema. El motor de inferencias, es un programa que, mediante el empleo de los conocimientos puede resolver el problema que est especificado. Lo resuelve gracias a los datos que contiene la base de hechos del sistema experto. Por regla general, el tipo de reglas que forman la base de conocimientos es tal que, si A es vlido, puede deducirse B como conclusin. 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 solucin 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 deduccin, ya que hay dos tipos diverso: los que emplean el razonamiento aproximativo (para el cual el resultado puede ser errneo) y aquellos que emplean un tipo de razonamiento capaz de obtener un resultado (si llegan a l), con toda seguridad, verdadero.
48

Los mtodos generales desarrollados para la resolucin de problemas y tcnicas de bsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difciles requerimientos de la investigacin. A este conjunto de mtodos, procedimientos y tcnicas, se lo conoce como Inteligencia Artificial Dbil. La principal conclusin que se deriv de este trabajo inicial fue que los problemas difciles slo podran ser resueltos con la ayuda del conocimiento especfico acerca del dominio del problema. La aplicacin de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniera Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento. La definicin de un sistema basado en conocimiento puede ser la siguiente: Es un sistema computarizado capaz de resolver problemas en el dominio en el cual posee conocimiento especfico. La solucin es esencialmente la misma que hubiera dado un ser humano confrontado con idntico problema, aunque no necesariamente el proceso seguido por ambos puede ser igual. El simple concepto dado, puede causar confusin ya que muchos sistemas basados en programas convencionales podran 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 algortmicos convencionales y de los programas generales basados en bsqueda: Inteligencia Artificial dbil. Primero, la separacin del conocimiento y el modo en que es usado. Segundo, la naturaleza del conocimiento empleado (heurstica antes que algortmica). Tercero, El uso de conocimiento especfico de un determinado dominio. Las caractersticas principales son: Amplia difusin del conocimiento Fcil modificacin Respuestas coherentes Disponibilidad casi completa Conservacin del conocimiento Capacidad de resolver problemas disponiendo de informacin incompleta
49

Capacidad de explicar los resultados y la forma de obtenerlos Los principales problemas asociados a este mtodo son: Las soluciones no siempre son las mejores o correctas Conocimiento limitado frente al dominio de un experto Carecen del sentido comn o criterio que puede tener un experto Difcil extraer todo el conocimiento que maneja un experto. Experiencia, Habilidades y Conocimiento. Los tipos de experiencia que son de inters en los sistemas basados en conocimiento, pueden ser clasificados en tres categoras: asociativa, motora y terica. Los sistemas basados en conocimiento son excelentes para representar conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurstica o el conocimiento que es adquirido mayoritariamente, a travs de la observacin. Puede ser que no se comprenda exactamente lo que ocurre al interior de un sistema (caja negra), pero se pueden asociar entradas o estmulos con salidas o respuestas, para resolver problemas que han sido previamente conocidos. La experiencia motora es ms fsica que cognitiva. La habilidad se adquiere fundamentalmente a travs del ejercicio y la prctica fsica constante. Los sistemas basados en conocimiento no pueden emular fcilmente este tipo de experiencia, principalmente por la limitada capacidad de la tecnologa robtica. La experiencia terica 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 terico y profundo se adquiere a travs de estudio y entrenamiento formal, as como por medio de la resolucin directa de problemas. Debido a su naturaleza terica, este conocimiento se puede olvidar fcilmente, 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. 4.1.5 Estructura de los Sistemas Basados en Conocimiento. La arquitectura de un sistema basado en conocimiento de alguna manera refleja la estructura cognitiva y los procesos humanos. La primera parte es la memoria de

50

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 4.5 Sistema Basado en conocimiento

La segunda parte es el sistema que realiza la funcin de razonamiento para resolver problemas (Motor de Inferencia). Finalmente, la tercera parte la conforman las unidades de entrada y salida que permiten la comunicacin entre el sistema y su entorno. La representacin del conocimiento determina el desarrollo de un sistema experto e influye en las estrategias de control. Es muy verstil, hay muchas formas de hacerlo y es complicada la eleccin. Generalmente la eleccin est basada en la intuicin o en las especiales circunstancias del problema. La primera fase es la adquisicin del conocimiento desde un experto y depende de la cantidad y de su adecuada representacin. Se deben conocer los lmites, pues slo llegan hasta donde son capaces de resolver un problema. Esto implica, que tiene que circunscribirse a un dominio homogneo. El lenguaje de programacin debe ser adecuado, se usan principalmente el LISP y PROLOG, que difieren de los lenguajes clsicos en que sus reglas (que tambin contienen hechos) entran masivamente, y que el programa, es decir, el motor de inferencia, encontrar el camino a travs de reglas.

51

Por otra parte, la programacin procedimental consiste en una cuidadosa descripcin de los algoritmos que marcan el camino de los diferentes procedimientos y funciones en los programas. Estos dos modos de programacin son tericamente iguales, pero en la prctica difieren. La programacin declarativa es un tipo de programacin 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 aplicacin. El modo en que se ejecutan las reglas corresponde al motor de inferencia y es independiente de las reglas en s mismas. En la programacin procedural, las reglas se implantan y ejecutan en un orden establecido. Las ventajas en los sistemas expertos es la modularidad, no hay un solo camino para responder a un problema y son fciles de leer, lo que simplifica comprobar su consistencia. La representacin del conocimiento es esencial en inteligencia artificial y es la base de la construccin de un sistema experto. 4.1.5.1 Fases en la adquisicin del conocimiento identificacin del problema. Estructuracin del conocimiento. La arquitectura del sistema y la maqueta. El prototipo y terminacin del sistema. 4.1.5.2 Tecnologa de los Sistemas Basados en Conocimiento. Desde el punto de vista tecnolgico, los Sistemas Basados en Conocimiento pueden presentar varias formas de aplicacin: Aislada: un Sistema Basado en Conocimiento nico se relaciona con el entorno. Integrada: varios Sistemas Basados en Conocimiento conectados a bases de conocimiento comunes. Tipo Front-End cuando todos los hechos y datos estn fsicamente en la base comn. Tipo Back-End cuando los hechos y datos necesarios que no estn en las bases comunes, pueden obtenerse de otros SBC. Embebida: un Sistema Basado en Conocimiento est integrado con otros sistemas y no se lo distingue.

52

4.2 Metodologas para la construccin de SE 4.2.1 Metodologa de Prototipos En el desarrollo de Sistemas Expertos se nos plantean dos importantes riesgos: No existen implementaciones similares que puedan servir de orientacin al encargado del desarrollo en casi la totalidad de los casos. En muchos puntos, los requisitos necesarios estn esbozados con muy poca precisin.

El diseo y la especificacin requieren una temprana determinacin 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 solucin definitiva y para hacerlas coincidir con las necesidades del usuario. Un mtodo efectivo es la implementacin de un prototipo de Sistema Experto que permita llevar a cabo las funciones ms importantes de ste, aunque con un esfuerzo de desarrollo considerablemente inferior al de una implementacin convencional. Este proceder se define bajo el nombre de Rapid Prototyping. Para Sistemas Expertos, el Rapid Prototyping es el procedimiento ms adecuado, pues posibilita una rpida reaccin a los deseos en constante cambio tanto por parte de los expertos como parte del usuario. 4.2.2 Metodologa Orientada a Objetos La programacin orientada a objetos (OOP en adelante) es un tipo de programacin 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 mdulos conforme se requieran. Cada rea de memoria a la que se refiere en el prrafo anterior es conocida como clase, mientras que las copias creadas a partir de la clase son llamadas objetos. La OOP tiene varias propiedades, entre los cuales destacan: Abstraccin. Permite enfocarse en la solucin general del problema, sin preocuparse de los detalles. Encapsulacin. Es el concepto de que un objeto debera tener separada su interfaz de su implementacin. Es decir, un objeto es visto como una caja negra. Polimorfismo. Significa que un objeto se puede comportar de diversas maneras, dependiendo del contexto en el que se encuentre.

53

Herencia. Significa que se pueden crear clases que hereden el comportamiento de una o ms clases padre; y que adems aadan su propio comportamiento.

El concepto de encapsulacin evita que se pueda modificar el estado interno de un objeto por el cdigo cliente que lo utiliza, es decir solamente el cdigo mismo del objeto puede modificar el estado interno del mismo. Esto se puede aprovechar en la construccin de SE creando clases que correspondan a los componentes de un SE. Por lo tanto si se utiliza la metodologa orientada a objetos a la construccin de SE, se debe crear una clase que contenga el cdigo 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 contendrn 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 4.6 La base de conocimientos es vista como un objeto contenedor de otros objetos usando la Metodologa Orientada a Objetos

54

Obviamente, la clase Base de Conocimiento deber tener todo el cdigo 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 lgica que hace que funcione el SE, es decir si se implementa usando encadenamiento hacia adelante, encadenamiento hacia atrs o reglas de produccin, dicha implementacin estar contenida dentro de la clase. 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 SE aprenda por s mismo, modificando su base de conocimiento sin modificar los dems componentes. Otra ventaja de la OOP 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. 4.3 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.

55

UNIDAD 3. EJEMPLOS Y APLICACIONES DE LOS SISTEMAS EXPERTOS CAPITULO 5. EJEMPLOS DE SISTEMAS EXPERTOS 5.1 Lenguajes utilizados en la construccin de SE 5.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 matemticas.11 LISP actualmente est diseado para manejar smbolos matemticos (variables), por lo que es utilizado perfectamente para la investigacin en IA, donde un smbolo puede representar cualquier cosa. LISP tiene dos caractersticas principales que lo hacen sobresalir de entre los dems lenguajes para IA; primero, es altamente flexible, es decir, es posible escribir un programa LISP para producir cualquier comportamiento deseable de la computadora; segundo, es indefinidamente extensible, lo que significa que si como programador siente que a LISP le falta alguna 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. El trmino en LISP usado para ver lo que se ha tecleado es leer; el trmino usado para tratar de responder de cualquier forma es evaluar; y el trmino usado para desplegar la respuesta en la pantalla es imprimir. Si hubiera una persona en vez de una mquina en frente del programador, diramos que dicha persona estara escuchando, comprendiendo y respondiendo al programador. LISP utiliza los siguientes conceptos caractersticos: Listas y tomos. La estructura ms importante es la lista. Los tomos pueden subordinarse a cualidades. La Funcin. Cada funcin LISP y cada programa LISP tiene estructura de lista. Los programas no pueden distinguirse sintcticamente de los datos. LISP ofrece sus propias funciones bsicas. Forma de Trabajo. LISP es un lenguaje funcional. Ofrece la posibilidad de realizar definiciones recursivas de funciones. La unin de procedimientos se realiza de forma dinmica, es decir en plena ejecucin, no como en otros lenguajes de programacin. El sistema realiza automticamente una gestin dinmica de memoria. Los tomos son nmeros, cadenas de caracteres o smbolos. Un smbolo puede tener varios valores, al igual que una variable en otros lenguajes de programacin, como por ejemplo un nmero, o tambin puede

11

HASEMER, Tony y John Domingue. Common LISP Programming for Artificial Inteligence.

56

ser el nombre de una funcin, o incluso ambos. Adems a un smbolo se le pueden subordinar cualidades, que adems del valor del smbolo, contienen informacin adicional. Estas cualidades tambin reciben el nombre de atributos. Un componente importante de un sistema LISP es la gestin dinmica de la memoria. El sistema administrar el espacio en la memoria para las listas en constante modificacin, sin que el usuario lo deba solicitar. Libera los espacios de memoria que ya no son necesarios y los pone a disposicin de usos posteriores. La necesidad de este proceso se deriva de la estructura bsica de LISP, las listas, que se modifican de forma dinmica e ilimitada. Adems un sistema LISP abarca bastante ms que el solo intrprete del lenguaje LISP. Consta de algunos cmodos mdulos 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 mdulos slo estn en versiones de LISP que contengan la conocida interfaz grfica IDE (entorno de desarrollo integrado) tpica de los modernos lenguajes visuales. 5.1.2 CLIPS CLIPS es otra herramienta para el desarrollo de S.E. que ofrece un entorno completo para su construccin basado en reglas y objetos. CLIPS est siendo utilizado por numerosos usuarios como la NASA (que es su creadora), muchas universidades y empresas. CLIPS viene de (C Language Integrated Production System) y como su nombre indica uno de los objetivos que buscaban sus creadores era la fcil integracin con programas en C. As, al darle una portabilidad con programas en lenguaje C, las universidades que lo usan pueden trasladar fcilmente sus aplicaciones al entorno del agente.12 5.1.3 Prolog Prolog es un lenguaje de programacin que se centra alrededor de un conjunto pequeo de mecanismos, incluyendo reconocimiento de patrones, estructuras de datos basadas en rboles y bactraking (retroceso) automtico. Este conjunto pequeo constituye una estructura de programacin 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 detrs de la verde. Prolog naci en Europa, y fue implementado primeramente para dar soporte al Procesamiento del Lenguaje Natural (PLN). Prolog trabajaba (y sigue hacindolo hasta nuestros das) esencialmente con la lgica matemtica. Bratko completa el
BAARES, Jos ngel. Herramientas para las asignaturas del IAIC. URL(http://diana.cps.unizar.es/IA/noticias.html)
12

57

comentario afirmando que Prolog naci de una idea de programacin lgica que emergi a principios de 1970, para usar la lgica como un lenguaje de programacin. Prolog tiene cierto vigor hbrido en el sentido de que contiene caractersticas declarativas de la lgica computacional matemtica y algunos aspectos procedurales de la programacin 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 tcnicas convencionales de programacin no aplican en Prolog. Walker afirma que nios de 10 aos de edad encuentran a Prolog como un lenguaje sencillo de aprender. Pero los programadores profesionales con muchos aos de experiencia a menudo lo encuentran revuelto y confuso. Lo revuelto de Prolog es su simplicidad y que no tiene las caractersticas ms comunes de los lenguajes procedimentales. Entre tales caractersticas con las que no cuenta Prolog se encuentran: 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: Predicados que expresan relaciones entre entidades. Un mtodo para definir predicados mediante reglas de asercin y hechos. Un mtodo para hacer preguntas para comenzar cmputos. Un procedimiento de bsqueda hacia atrs 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 aritmtica, entrada y salida y servicios de sistemas.

5.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.

58

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 tiempo. 5.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 IA. 5.2 Representacin del conocimiento El conocimiento es la comprensin adquirida, implica aprendizaje, concienciacin y familiaridad con una o ms materias; el conocimiento se compone de ideas, conceptos, hechos y figuras, teoras, procedimientos y relaciones entre ellos, y formas de aplicar los procedimientos a la resolucin prctica de problemas. El conocimiento que ha de funcionar en un SE es el conocimiento heurstico; el conocimiento heurstico es aquel conocimiento que ayuda a las personas u ordenadores a aprender, es el uso de los conocimientos empricos. Las reglas de pensamiento, los trucos, los procedimientos o cualquier tipo de informacin que nos ayuda en la resolucin de problemas. La representacin del conocimiento es un esquema o dispositivo utilizado para capturar los elementos esenciales del dominio de un problema. Una representacin manipulable es aquella que facilita la computacin. En representaciones manipulables, la informacin es accesible a otras entidades que usan la representacin como parte de un cmputo. Debido a la variedad de formas que el conocimiento puede asumir, los problemas involucrados en el desarrollo de una representacin del conocimiento son complejos, interrelacionados y dependientes del objetivo. En trminos generales, el conocimiento debe estar representado de tal forma que:

59

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.

El conocimiento declarativo puede ser representado con modelos relacionales y esquemas basados en lgica. Los modelos relacionales pueden representar el conocimiento en forma de rboles, grafos o redes semnticas. Los esquemas de representacin lgica incluyen el uso de lgica proposicional y lgica de predicados. Los modelos procedimentales y sus esquemas de representacin almacenan conocimiento en la forma de cmo hacer las cosas. Pueden estar caracterizados por gramticas formales, usualmente implantadas por sistemas o lenguajes procedimentales y sistemas basados en reglas (sistemas de produccin). 13 En forma natural, el ser humano representa el conocimiento simblicamente: imgenes, lenguaje hablado y lenguaje escrito. Adicionalmente, ha desarrollado otros sistemas de representacin del conocimiento: literal, numrico, estadstico, estocstico, lgico. La ingeniera cognoscitiva ha adaptado diversos sistemas de representacin del conocimiento que, implantados en un computador, se aproximan mucho a los modelos elaborados por la psicologa cognoscitiva para el cerebro humano. Tradicionalmente la representacin del conocimiento conlleva el uso de marcos (frames), redes semnticas, clculo de predicados o sistemas de produccin14. Sin embargo, existen otros sistemas para la representacin del conocimiento. Entre los principales sistemas se tienen: Lgica Simblica Formal: Lgica proposicional Lgica de predicados. Reglas de produccin. Formas Estructuradas: Redes asociativas. Estructuras frame. Representacin orientada a objetos.
ARTEAGA, Ren y Juan Carlos Armijos. Tutorial de programacin Heurstica. URL(www.uc3m.es/cgi-bin/nph-count) 14 DE ALBORNOZ Bueno, lvaro. Laboratorio de procesamiento de imgenes. URL(http://www.cic.ipn.mx/organizacion/lab_de_int_art.htm)
13

60

5.3. Lgica Proposicional La lgica proposicional es la ms antigua y simple de las formas de lgica. Utilizando una representacin primitiva del lenguaje, permite representar y manipular aserciones sobre el mundo que nos rodea. La lgica proposicional permite el razonamiento a travs de un mecanismo que primero evala sentencias simples y luego sentencias complejas, formadas mediante el uso de conectivos proposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determina la veracidad de una sentencia compleja, analizando los valores de veracidad asignados a las sentencias simples que la conforman. La lgica proposicional permite la asignacin 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 lgica proposicional es su limitada habilidad para expresar conocimiento. 5.4 Lgica de Predicados Existen varias sentencias complejas que pierden mucho de su significado cuando se les representa en lgica proposicional. Por esto se desarroll una forma lgica ms general, capaz de representar todos los detalles expresados en las sentencias, esta es la lgica de predicados. La lgica de predicados est basada en la idea de que las sentencias realmente expresan relaciones entre objetos, as como tambin cualidades y atributos de tales objetos. Los objetos pueden ser personas, objetos fsicos, o conceptos. Tales cualidades, relaciones o atributos, se denominan predicados. Los objetos se conocen como argumentos o trminos 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 trminos. Es decir, un predicado puede ser verdadero para un conjunto de trminos, pero falso para otro. 5.5. Ventajas y desventajas de la lgica de predicados A continuacin se presentan algunos aspectos caractersticos de la lgica de predicados y su implementacin computacional, el lenguaje de programacin PROLOG: Manejo de incertidumbre. Una de las mayores desventajas de la lgica de predicados es que slo dispone de dos niveles de veracidad: verdadero y falso. Esto se debe a que la deduccin siempre garantiza que la inferencia es absolutamente verdadera. Sin embargo, en la vida real no todo es

61

blanco y negro. En cierta forma el PROLOG ha logrado mitigar esta desventaja, permitiendo la inclusin de factores de certeza. Razonamiento monotnico. La lgica de predicados al ser un formalismo de razonamiento montono, 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 clusula RETRACTALL. Programacin declarativa.- La lgica de predicados, tal como est diseada en PROLOG, es un lenguaje de programacin declarativo, en donde el programador slo necesita preocuparse del conocimiento expresado en trminos del operador de implicacin y los axiomas. El mecanismo deductivo de la lgica de predicados llega a una respuesta (si esto es factible), utilizando un proceso exhaustivo de unificacin y bsqueda. A pesar de que la bsqueda exhaustiva puede ser apropiada en muchos problemas, tambin puede introducir ineficiencias durante la ejecucin. Para lograr un cierto control en el proceso de bsqueda, PROLOG ofrece la operacin de corte, CUT. Cuando no se utiliza el CUT, PROLOG se convierte en un lenguaje puramente declarativo.

5.6. Reglas de Produccin La Representacin del conocimiento en forma de reglas de produccin fue propuesta por Post en 1943. La regla es la forma ms comn de representar el conocimiento, debido a su gran sencillez y a que es la formulacin ms inmediata del principio de causalidad. Una regla consta de un conjunto de acciones o efectos (una o ms) que son ciertas cuando se cumplen un conjunto de condiciones o causas. La potencia de una regla est en funcin de la lgica que admita en las expresiones de las condiciones y de las conclusiones. La conclusin se suele referir a la creacin de un nuevo hecho vlido, o la incorporacin de una nueva caracterstica a un hecho, mientras que la accin suele referirse a la transformacin de un hecho. 5.7. Ventajas y desventajas de las reglas de produccin Las ventajas que representan las reglas de produccin son su carcter declarativo, su sencillez, su uniformidad - que permite la representacin de conocimiento como de meta-conocimiento -, su independencia - que permite la supresin o inclusin sin que se vea afectado el resto de la base de conocimientos - y su modularidad al ser fcilmente agrupables. La principal desventaja que presentan las reglas de produccin, es la dificultad de establecer relaciones, para lo cual hay que recurrir al uso de meta reglas, lo que produce el crecimiento muy rpido del nmero de reglas, lo que hace lento el

62

proceso de inferencia y conduce a la introduccin repeticiones y lo que es peor, contradicciones.15 5.8. Redes Asociativas Las redes semnticas o redes asociativas, fueron originalmente desarrolladas para representar el significado o semntica de oraciones en ingls, en trminos de objetos y relaciones. Actualmente, el trmino redes asociativas ya no slo se usa para representar relaciones semnticas, sino tambin para representar asociaciones fsicas o causales entre varios conceptos u objetos. Las redes asociativas se caracterizan por representar el conocimiento en forma grfica. Agrupan una porcin de conocimiento en dos partes: objetos y relaciones entre objetos. Los objetos se denominan tambin nodos (elementos del conocimiento) y las relaciones entre nodos se denominan enlaces o arcos. Cada nodo y cada enlace en una red semntica, deben estar asociados con objetos descriptivos. Estas redes son muy apropiadas para representar conocimiento de naturaleza jerrquica. Su concepcin se basa en la asociacin de conocimientos que realiza la memoria humana. Las principales aplicaciones son: comprensin de lenguaje natural, bases de datos deductivas, visin por computadora y sistemas de aprendizaje.16 5.8.1. Ventajas y desventajas de las Redes Asociativas Las redes asociativas tienen dos ventajas sobre los sistemas basados en reglas y sobre los sistemas basados en lgica: Permiten la declaracin de importantes asociaciones, en forma explcita. Debido a que los nodos relacionados estn directamente conectados, y no se expresan las relaciones en una gran base de datos, el tiempo que toma el proceso de bsqueda por hechos particulares puede ser significativamente reducido. Entre las desventajas de las redes asociativas, se pueden mencionar: No existe una interpretacin normalizada para el conocimiento expresado por la red. La interpretacin de la red depende exclusivamente de los programas que manipulan la misma. La dificultad de interpretacin a menudo puede derivar en inferencias invlidas del conocimiento contenido en la red.

15 16

BRATKO Ivan. Prolog programming for Articial Intelligence. ANGULO Usategui, Jos Mara y Anselmo del Moral Bueno. Gua fcil de la inteligencia artificial.

63

La exploracin de una red asociativa puede derivar en una explosin combinatoria del nmero de relaciones que deben ser examinadas para comprobar una relacin.17

5.9 Estructuras frame 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: Rango. El conjunto de posibles valores para la ranura. Valor. El valor de la ranura. Default. El valor a ser asumido si no se especifica alguno.

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: Si-Necesitado. Procedimiento(s) para determinar el valor actual de una ranura. Si-Agregado. Procedimiento(s) a ejecutarse cuando un valor es especificado para una ranura. Si-Modificado. Procedimiento(s) a ejecutarse si el valor de una ranura es cambiado.

A estos procedimientos tambin 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 representacin del conocimiento, especialmente si se la incorpora en una red de plantillas.18 5.9.1. Ventajas y desventajas de los frames
17 18

ARTEAGA, Ren y Juan Carlos Armijos. Op. cit. BENCHIMOL, Guy, Pierre Levine y Jean Charles Promerol. Los sistemas expertos en la empresa.

64

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 informacin. El conocimiento que posee un sistema basado en plantillas es significativamente ms 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 situacin. Se puede fcilmente almacenar en las ranuras valores dinmicos de variables, durante la ejecucin de un sistema basado en conocimiento. Esto puede ser particularmente til para aplicaciones de simulacin, planeamiento, diagnstico de problemas o interfaces para bases de datos.

Las principales desventajas que se pueden establecer para la representacin 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 heurstico que es mucho ms fcilmente representado mediante reglas.

5.9.2. Representacin orientada a objetos 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.

65

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. 5.9.3 Ventajas y desventajas de la representacin orientada a objetos Los objetos, como forma de representacin del conocimiento ofrecen las siguientes ventajas: 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: Dificultades para manejar objetos que se alejan demasiado de la norma. Dificultades para manejar situaciones que han sido encontradas previamente.

5.10 ACTIVIDADES COMPLEMENTARIAS 1. Realice un cuadro comparativo de los diferentes lenguajes programacin utilizados en la construccin de SE. 2. En que consiste la lgica proposicional y la lgica de predicados,Cual su uso en las SE? 3. Realice un cuadro comparativo destacando las ventajas y desventajas la lgica de predicados y la lgica proposicional. 4. Que es una regla de produccin y como son aplicadas en los SE? 5. Que es un Frame?y que ventajas y desventajas traen al ser utilizados la construccin de SE de es de en

66

CAPITULO 6. TAREAS QUE REALIZAN LOS SISTEMAS EXPERTOS 6.1 Interpretacin, Diagnstico Y Monitoreo La interpretacin 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, y que de todas formas llegue a una resolucin. Existen dos tipos de interpretacin: Anlisis: La interpretacin de datos se obtiene mediante la separacin o distincin de las partes que forman los datos. Sntesis: La interpretacin de los datos se obtiene mediante la combinacin de los mismos.

El diagnstico consiste en identificar las causas internas que provocan un problema, avera o disfuncin a partir de una serie de datos o sntomas que son consecuencia de la misma y que son observables. Los SE en diagnstico encuentran mltiples dificultades a la hora de realizar su tarea como son las siguientes: Manifestaciones Nuevas. Es decir, sntomas que no se haban observado con anterioridad. Causas Nuevas. Manifestaciones debidas a varias causas. Datos Inaccesibles, caros o de obtencin peligrosa. Relaciones no biyectivas entre los datos y las causas. Fallos o averas de aparicin intermitente. Existencia de varios fallos simultneos o en cadena.

La monitorizacin es un caso particular de la interpretacin, y consiste en la comparacin continua de los valores de las seales o datos de entrada y unos valores que actan como criterios de normalidad o estndares. En el campo del mantenimiento predictivo los Sistemas Expertos se utilizan fundamentalmente como herramientas de diagnstico. Se trata de que el programa pueda determinar en cada momento el estado de funcionamiento de sistemas complejos, anticipndose a los posibles incidentes que pudieran acontecer. As, usando un modelo computacional del razonamiento de un experto humano, proporciona los mismos resultados que alcanzara dicho experto. La figura 6.1 muestra el funcionamiento de un SE de este tipo.

67

Figura 6.1 Funcionamiento de un SE usado en mantenimiento predictivo 6.2 Diseo y seleccin El diseo se puede concebir de distintas formas: El diseo en ingeniera es el uso de principios cientficos, informacin tcnica e imaginacin en la definicin de una estructura mecnica, mquina o sistema que ejecute funciones especficas con el mximo de economa y eficiencia. El diseo industrial busca rectificar las omisiones de la ingeniera, es un intento consiente de traer forma y orden visual a la ingeniera de hardware donde la tecnologa no provee estas caractersticas.Diseo es el proceso de especificar una descripcin de un artefacto que satisface varias caractersticas desde un nmero de fuentes de conocimiento.19 Los SE en diseo ven este proceso como un problema de bsqueda de una solucin ptima o adecuada. Las soluciones alternas pueden ser conocidas de antemano (problemas de derivacin) o se pueden generar automticamente (problemas de formulacin). Los SE prueban distintos diseos para verificar cules de ellos cumplen los requerimientos solicitados por el usuario, sta tcnica es llamada generacin y prueba, por lo tanto estos SE son llamados de seleccin. En reas de aplicacin, la prueba se termina cuando se encuentra la primer solucin; sin embargo, existen problemas ms complejos en los que el objetivo es encontrar la solucin ms ptima.
19

HOPGOOD, Adrian. Knowledge Based Systems for Engineers and Scientists.

68

La utilidad de los programas basados en conocimientos aplicados a la ciencia y a la ingeniera no se limita al anlisis sofisticado, muchos programas recientes han empezado a trabajar en la sntesis. Existen programas que disean dispositivos simples y despus buscan oportunidades de reduccin de costos o de reduccin de componentes. 6.3 Planificacin La planificacin es la realizacin de planes o secuencias de acciones y es un caso particular de la simulacin. Est compuesto por un simulador y un sistema de control. El efecto final es la ordenacin de un conjunto de acciones con el fin de conseguir un objetivo global (costo mnimo, tiempo mnimo, etc). Los problemas que presentan la planificacin 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 mayora de los datos con los que se trabaja son ms o menos probables pero no seguros. Es necesario hacer uso de fuentes diversas tales como bases de datos.

6.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 SE. 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. 6.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.

69

Los SE en reparacin tienen que cumplir diversos objetivos, como son: Reparacin lo ms rpida y econmicamente posible. Orden de las reparaciones cuando hay que realizar varias. Evitar los efectos secundarios de la reparacin, es decir la aparicin de nuevas averas por la reparacin.

6.6 Simulacin, pronstico o prediccin La simulacin es una tcnica consistente en crear modelos basados en hechos, observaciones e interpretaciones, sobre la computadora, a fin de estudiar el comportamiento de los mismos mediante la observacin de las salidas para un conjunto de entradas. Las tcnicas tradicionales de simulacin requieren modelos matemticos y lgicos que describen el comportamiento del sistema bajo estudio. El empleo de los SE para la simulacin viene motivado por la principal caracterstica de los SE, que es su capacidad para la simulacin del comportamiento de un experto humano, que es un proceso complejo. En la aplicacin de los SE para simulacin hay que diferencia 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 simulacin puede contener como parte del mismo a un SE y por lo tanto el SE no tiene que ser necesariamente de simulacin. 3. Un SE puede controlar un proceso de simulacin, es decir que el modelo est en la base de conocimiento del SE y su evolucin es funcin de la base de hechos, la base de conocimientos y el motor de inferencia, y no de un conjunto de ecuaciones aritmtico lgicas. 4. Un SE puede utilizarse como consejero del usuario y del sistema de simulacin. 5. Un SE puede utilizarse como mscara o sistema frontal de un simulador con el fin de que el usuario reciba explicacin y justificacin de los procesos. Los sistemas de pronstico deducen consecuencias posibles a partir de una situacin. Su objetivo es determinar el curso del futuro en funcin de informacin sobre pasado y presente. Esto abarca diversos problemas, tales como predicciones meteorolgicas, predicciones demogrficas, o incluso previsiones de la evolucin burstil entre otros.20

20

MARTNEZ De Ibarreta Len, Francisco Javier. Sistemas Expertos: reas de aplicacin. URL(http://www.geocities.com/SiliconValley/Way/7788/SISEXP.HTM)

70

6.7 Instruccin Un sistema de instruccin (Sistema Experto para formacin), 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 enseanza para facilitar el proceso de aprendizaje y la correccin de errores.21 6.8 Recuperacin de Informacin Los Sistemas Expertos, con su capacidad para combinar informacin y reglas de actuacin, han sido vistos como una de las posibles soluciones al tratamiento y recuperacin de informacin, no slo documental. La dcada de 1980 fue prolija en investigacin y publicaciones sobre experimentos de este orden, inters que continua en la actualidad. Lo que diferencia a estos sistemas de un sistema tradicional de recuperacin de informacin es que estos ltimos slo son capaces de recuperar lo que existe explcitamente, mientras que un Sistema Experto debe ser capaz de generar informacin no explcita razonando con los elementos que se le dan. Pero la capacidad de los SE en el mbito de la recuperacin de la informacin no se limita a la recuperacin. Pueden utilizarse para ayudar al usuario, en seleccin de recursos de informacin, en filtrado de respuestas, etc Un SE puede actuar como un intermediario inteligente que gua y apoya el trabajo del usuario final. Para desempear de forma adecuada esta tarea, los enfoques centrados en la creacin de modelos de las estructuras cognitivas del usuario son los ms prometedores.22 6.9 ACTIVIDADES COMPLEMENTARIAS 1. Explique las diferentes tares que realizan los sistemas expertos 2. Investigue cuales de estas tareas son aplicadas en colombia y con que tipo de sistemas expertos. 3. Realice un cuadro comparativo entre las diferentes actividades que puede realizar un SE. 4. Cuales son las ventajas y desventajas que se obtienen a implementar sistemas expertos para el desarrollo de tares como la simulacin, pronostico y prediccin. 5. Nombre algunos ejemplos en donde seria til utilizar SE y explique el porque.

Ibid TRAMULLAS y Kronos, Jess. Recuperacin de Informacin y Sistemas Expertos. URL(http://www.tramullas.com/nautica/documatica/3-8.html)


22

21

71

CAPITULO 7. CAMPOS DE APLICACIN DE LOS SISTEMAS EXPERTOS 7.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.23 Los programas en esta rea se pueden clasificar en: Mtodos de contestacin prefijada, formados por algoritmos aritmticos lgicos, en los cuales el control y el conocimiento estn juntos y estn escritos en lenguajes procedimentales. Mtodos estadsticos que se clasificaban en Bayesianos, de anlisis discriminantes y anlisis secuencial.

7.2 Anlisis de estados financieros Es un equivalente a los estados de salud en la medicina. El anlisis de estados financieros se divide en tres fases24. 1. Examen o revisin. Se revisan documentos contables como balance, cuenta de prdidas y ganancias, etc. utilizando para ello una serie de tcnicas o procedimientos especficos (comparaciones de masas patrimoniales, porcentajes, ...). 2. Se analiza e interpreta la informacin antes recopilada y se obtiene un panorama de la situacin actual de la empresa. 3. Por ltimo se predicen soluciones para ayudar a mejorar la situacin futura de la empresa. 7.3 Planificacin Financiera La disciplina conocida como Gestin Financiera implica un gran nmero de subramas (anlisis de inversiones, presupuesto de capital, anlisis financiero, etc.) incluyendo la planificacin financiera. La mayora de los sistemas expertos se centran en resolver problemas de esta disciplina.25 Esta rama de la gestin de financiera intenta identificar el resultado de la aplicacin de planes futuros en la empresa, tratando de identificar los recursos que sta necesita para conseguirlos.

CRUZ, Roberto. rea de Bases de Datos e Inteligencia Artificial. URL(http://dcc.ing.puc.cl/investigacion/areas/bases_dat.html) 24 BONSN, Enrique. Tecnologas Inteligentes para la Gestin Empresarial. 25 Ibid.

23

72

Los SE enfocados a la planificacin financiera tienen sus principales aplicaciones 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.

7.4 Industria Los SE en la industria se aplican principalmente en: Diagnstico de control de calidad. Deteccin y actuacin en caso de alarmas y emergencias. Configuracin de equipos y sistemas bajo demanda. Generacin de especificaciones y manuales de utilizacin, mantenimiento y reparacin de sistemas fabricados bajo demanda. Control de procesos industriales. Gestin optima de los recursos.

7.5 Electrnica, informtica y telecomunicaciones Las aplicaciones principales de los SE son: Diseo de circuitos de alto grado de integracin. Sistemas inteligentes de autodiagnstico contenidos. Configuracin de equipos y sistemas. Control de redes de comunicacin. Programacin automtica. Ajuste de equipos y sistemas. Optimizacin de programas de computadoras.

73

7.6 Militar Las aplicaciones se centran en: Eleccin inteligente de contramedidas electrnicas con el fin de obtener la mxima efectividad con unos recursos limitados. Guiado de vehculos y proyectiles de forma semiautomtica. Planificacin estratgica. Reconocimiento automtico de blancos y valoracin de los mismos. Reconocimiento de planes del enemigo. Interpretacin de seales provenientes de sensores. Optimizacin de carga.

7.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 muy poco o nada estructuradas, 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 aplicacin26: Auditora: Anlisis de la materialidad y del riesgo, evaluacin del control interno, planificacin de la auditora, evaluacin de la evidencia, anlisis de cuentas concretas, formacin de opinin, emisin del informe, auditora interna, auditora informtica y dems situaciones en las cuales, como se mencion antes, requieren de la decisin de un experto. Contabilidad de costes y de gestin: Clculo y asignacin de costos, asignacin de recursos escasos, control y anlisis de desviaciones, planificacin y control de gestin, diseo de sistemas de gestin de informacin, etc.

26

SNCHEZ Toms, Antonio. Aplicacin de los Sistemas Expertos en Contabilidad. URL(http://ciberconta.unizar.es/Biblioteca/0002/Sanchez95.html#CONTABILIDAD)

74

Contabilidad financiera: regulacin legal, normas y principios contables, recuperacin y revisin analtica de registros contables, diseo de sistemas contables, imputacin contable, consolidacin de estados contables, etc. Anlisis de estados financieros: Anlisis patrimonial, financiero y econmico de los estados contables, salud financiera de la empresa, clculo e interpretacin de ratios, clculo y anlisis de tendencias, etc. Planificacin financiera e industria de los servicios financieros: Planificacin financiera corporativa, planificacin financiera personal, anlisis de inversiones, gestin de tesorera, mercado de valores, seguros, banca, concesiones de crdito, etc.

7.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 salud27. 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. 7.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. 7.10 Otros campos de aplicacin
27

Aeronutica Agricultura Arqueologa

CONTRERAS, Carlos. Introduccin a la Inteligencia Artificial. URL(http://www.gdl.uag.mx/66/0ia.htm)

75

Derecho Educacin Geologa Meteorologa Qumica Transportes Ventas

7.11. EJEMPLOS DE SISTEMAS EXPERTOS EN EMPRESAS Particularizando las aplicaciones en ramas especficas del conocimiento, se han desarrollado un gran nmero de Sistemas Expertos que actan en empresas, algunos simplemente en diseo terico; otros, con aplicacin real en el campo productivo de la organizacin. 7.11.1 En la Industria DELTA, de General Electric Company, para reparacin de locomotoras diesel y elctricas. Aldo en Disco que repara calderas hidrostticas giratorias para la eliminacin de bacterias. Teknowledge Inc., Carnegie Group, Symbolics, Lisp Machines Inc., Thinking Machines Corporation, Cognitive Systems Inc.... Fueron creadas en solicitud de una creciente demanda de SE formando una inversin total de 300 millones de dlares. Las mquinas Lisp eran su producto principal, (ordenadores que ejecutaban programas LISP con la misma rapidez que en un ordenador central) y el otro producto fueron las herramientas de desarrollo de Sistemas Expertos.

7.11.2 En Contabilidad El Sistema Kiwi de Clark. Creado en 1975, intentaba interpretar frases ordinarias descriptivas de operaciones econmicas 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 SICA de Page, Laurani y Oudet. Desarrollado en 1989 con PROLOG. Renuncia a interpretar el lenguaje escrito, centrndose en el anlisis de los datos que genera cada operacin econmica. 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 Anlisis Circulatorio.

7.11.3 En Anlisis de Estados Financieros AFIN. Realiza un anlisis de estados financieros en la empresa basndose en el Plan General de Contabilidad Espaol de 1990.

76

AIDE. Ayuda en el diagnstico de empresas de la Central de Balances del Banco de Francia. ALFEX. Proyecto referente a la creacin de SE capaces de asesorar sobre la salud financiera de una empresa, as como desarrollar bases de conocimiento y herramientas adecuadas para manejarlas. ANALYSIS. Clasifica funcionalmente el balance y la cuenta de prdidas y ganancias. ANIBAL. Evala la gestin comercial y financiera de la empresa. ANSWERS, CHARIS, FINEX,

Se pueden mencionar tambin FINEXPERT/FINEPRO, FSA, entre otros. 7.11.4 En Planificacin Financiera

AAFINPLAN. Proporciona orientacin financiera a los empleados Capital Investment System. Ayuda a los directores de Texas Instruments a la toma de decisiones en la compra de equipos, indicando factores como exigencias legales, impacto medioambiental, entre otros. CASHVALUE. Evala proyectos de inversin.

Tambin Client Profiling System, FAME, MANAGEMENT ADVISOR, Objective Financial System, Personal Financial Analysis, PFPS, PLANMAN, PLANPOWER, entre muchos otros ms. 7.11.5 En la Aviacin Del tipo de los SE en calendarizacin ARMAC, GADS, RAMP, SALTO, RMAS, AAMPS, ACAMS, MOCA, ARIES, EXPICS, Duty Roster System, Aeroplan. Incluyen su uso en empresas como United Airlines, Air Canada, entre otras.

Del tipo de planeo de vuelos y configuraciones. AALP y MD-11 Interior Design Config System

Del tipo de mercadotecnia y reservaciones. AA Advantage System, BAMBI, DOCS, IQ Manager, Passanger Rev Accounting System

77

7.11.6 En Medicina ETT. Clasifica pacientes con problemas de arterias coronarias. Identifica varios factores que determinan los diagnsticos que emite como la edad, las condiciones actuales del paciente, su historial mdico, entre otros factores28. SPACEMED. Este es un Sistema Experto para asistencia en emergencias mdicas que sucedan durante un vuelo espacial o aborde de una estacin espacial en rbita. La principal caracterstica de este SE es una diagnstico rpido en casos de envenenamiento, resultado de la inhalacin de contaminantes txicos liberados en la cabina o en la nave espacial. Este sistema provee indicaciones para el tratamiento de cualquier tipo particular de envenenamiento. DIAVAL. Es un Sistema Experto para diagnstico mediante ecocardiografa, el cual se basa en redes bayesianas, en vez de utilizar reglas; la decisin de utilizar las redes bayesianas fue tomada basndose en la capacidad por parte de dichas redes para manejar conocimientos imprecisos de una mejor manera en comparacin con las reglas 29 . 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 lgica difusa, dado que se recurre a la utilizacin de coeficientes. El coeficiente es un factor que se agrega para representar la incertidumbre o la imprecisin que el experto asigna a este conocimiento 30 . DIAVAL fue construido en la Universidad Nacional de Educacin a Distancia (UNED) en Espaa, como proyecto para una tesis doctoral, siguiendo cinco etapas clsicas: identificacin, conceptualizacin, formalizacin, implementacin y evaluacin. Este Sistema Experto provee una interfaz flexible y fcil de manejar, conociendo la importancia de este factor en su aceptacin por parte de los mdicos.

7.11.7 Aplicaciones actuales Algunos de los campos de aplicacin de los Sistemas Expertos son: Medicina, Finanzas y Gestin, Militar, Educacin, Transportes, Aeronutica, Agricultura, Arqueologa, Derecho, Geologa e Industria electrnica, informtica y telecomunicaciones. A continuacin se enunciaran algunos de los Sistemas Expertos que existen en la actualidad o que se encuentran en desarrollo: MYCIN: Es el primer Sistema Experto que llego a funcionar con la misma calidad que un experto humano. Es un sistema de diagnostico y prescripcin en medicina, altamente especializado, diseado para ayudar a
KANDEL, Abraham. Fuzzy Expert Systems. DEZ Vegas Francisco Javier. Sistema Experto Bayesiano para Ecocardiografa. URL(http://ia.uned.es/~fdiez/tesis/tesis.html) 30 SCARABINO, Juan Carlos. Sistemas Expertos: Aspectos Tcnicos. URL(http://ciberconta.unizar.es/LECCION/sistexpat/INICIO.HTML)
29 28

78

los mdicos a tratar con infecciones de meningitis y bacteriemia. Una serie de tests han demostrado que MYCIN trabaja igual de bien que un mdico. TROPICAID: Permite obtener informacin adicional sobre los medicamentos ms usados. Este selecciona un conjunto de posibles diagnsticos a partir del anlisis del cuadro mdico, y propone un tratamiento ptimo para el caso concreto. ADICORP: Realiza diagnsticos de equipos industriales complejos, adems, trabaja en proyectos de Visin Artificial. PROSPECTOR: Sistema para la evaluacin de emplazamientos geolgicos. Capaz de deducir una gran parte del depsito de prfiro de molibdeno en el estado de Washington, este yacimiento que los gelogos no haban sabido detectar hasta entonces, y que esta valorado en cien millones de dlares. Palladian Operations Advisor: Es de Palladian Software Inc. (USA), fue diseado especficamente para la direccin de la produccin. Puede analizar el estado de la combinacin de productos para mantener la mayor eficacia y rentabilidad posible de las operaciones. LABEIN (Laboratorio de Ensayos e Investigaciones Industriales, en Espaa), desarroll un sistema inteligente para el diseo de motores elctricos mediante la aplicacin de las tecnologas clsicas de Sistemas Expertos a los sistemas de CAD/CAE de diseo y anlisis. DELTA: Ayuda a los mecnicos en el diagnstico y reparacin de locomotoras diesel y elctricas. Este sistema no solo da consejos expertos, sino que tambin presenta informaciones por medio de un reproductor de vdeo. STEAMER: Se cre para ensear a los oficiales de la armada los problemas de funcionamiento de una planta de propulsin a vapor, como las que impulsan a ciertos barcos. Eolo CN-235: Ofrece un curso especfico para pilotos y tcnicos de mantenimiento, a todos los compradores del avin CN- 235. Es un sistema de enseanza interactivo que integra grficos, texto y vdeo. GUIDON: Utilizado por las Facultades de Medicina para formar a los mdicos en la realizacin de consultas. GUIDON viene a ser una reorganizacin de MYCIN con intenciones educativas, por esto, tiene la ventaja adicional de disponer de toda la base de conocimientos de MYCIN adems de la experiencia acumulada. PUFF: Estudia la funcin pulmonar. HERSAY: Intenta identificar la palabra hablada. CASHVALUE: Evala proyectos de inversin. VATIA, que asesora acerca del impuesto sobre el valor aadido o I.V.A. COACH (Cognitive Adaptive Computer Help):Permite crear ayuda personalizada al usuario. Es un observador de las acciones del usuario que est aprendiendo a operar un ambiente, y en base a ellas construye un modelo adaptativo del usuario.

79

7.12 ACTIVIDADES COMPLEMENTARIAS 1. 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 eleccin 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 opcin para un sistema experto? Explique su respuesta. 2. Explicar la diferencia entre una base de datos y una base de conocimientos. 3. 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? 4. 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. 5. Realice una investigacin de las compaas especializadas en el diseo de sistemas expertos y en que reas del conocimiento han desarrollado sus productos.

80

8. GLOSARIO DE TERMINOS Agenda: Una lista con prioridades asignadas a las reglas, creada por el mecanismo de inferencia, cuyos patrones satisfacen los hechos u objetos de la memoria activa. Base de conocimientos: Es la parte del sistema experto que contiene el conocimiento sobre el dominio. hay que obtener el conocimiento del experto y codificarlo en la base de conocimientos. Base de hechos (Memoria de trabajo): Contiene los hechos sobre un problema que se han descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario introduce la 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. Subsistema de explicacin: Una caracterstica de los sistemas expertos es su habilidad para explicar su razonamiento. Usando el mdulo del subsistema de explicacin, un sistema experto puede proporcionar una explicacin al usuario de

81

por qu est haciendo una pregunta y cmo ha llegado a una conclusin. Este mdulo proporciona beneficios tanto al diseador del sistema como al usuario. El diseador puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema.

82

9. BIBLIOGRAFIA PROLOG / FRANCOIS GIANNESINI, HENRY KANOUI, ROBERT PASEROY MICHAEL VAN CANAGHEN .-- s.c: Editorial Iberoa- mericana. Patrick Henry Winston , Inteligencia Artificial , Editorial Iberoamericana Castillo, E., Gutierrez, J.M. y Hadi, H (1997), Expert Systems and Probabilistic Network Models. Springer, New York. Version Espa~nola editada por la Academia Espaola de Ingenieria. Durkin, J. (1994), Expert Systems: Design and Development. Maxwell Macmillan, New York. Russell Stuart y Norving Meter, (2.004), Inteligencia Artificial, Pearson Education Giarratano Joseph y Riley Gary, (2.001), Sistemas Expertos Principios y Programacin, Thomson Editores.

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

83

You might also like