Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
A.- ANTECEDENTES DE LOS SISTEMAS EXPERTOS. Desde los comienzos de la computación, muchos investigadores desearon ver en el computador un potencial concurrente de inteligencia humana. En 1945, John Von Newman y Oskar Morgestein propusieron una solución teórica a toda clase de problemas relativos a juegos de estrategias y demostraciones automáticas. Es así como aparece la inteligencia artificial. En oposición a la informática tradicional, donde los computadores manipulan fundamentalmente información numérica, la inteligencia artificial utiliza las máquinas para manipular información simbólica. A pesar de los progresos teóricos y de algunos programas espectaculares, la decepción sustituyó el optimismo inicial, debido a que los algoritmos empleados se basaban en análisis más o menos exhaustivos de todas las posibilidades que se podían presentar en la resolución de un problema, y por consiguiente los tiempos de ejecución crecían exponencialmente en función de la complejidad del problema (Explosión Combinatoria). La inteligencia artificial (I.A.) propiamente dicha aparece al final de la década de los años 50, cuando se comenzó a tratar de emular el comportamiento del ser humano por medio de un computador, usando para 24 25 ello algunos algoritmos que buscaban la mejor solución posible a determinados problemas. Estos algoritmos buscaban exhaustivamente hasta encontrar la solución, por lo que eran muy lentos. Como la inteligencia artificial se basa en apoyar el razonamiento simbólico, comenzaron a surgir lenguajes de programación que apoyaron al mismo. El primer lenguaje simbólico desarrollado fue el IPL, el cual dio inicio a una serie de lenguajes cada vez más perfeccionados en el campo. Los algoritmos funcionaban, pero sólo de forma teórica y general, sin emplear el conocimiento de las personas que conocían los temas. Esto llevó a un temprano fracaso dichos esfuerzos, por lo cual algunos investigadores comenzaron a buscar la alternativa que permitiera solucionar problemas reales más eficazmente. La concepción de los sistemas expertos surge durante los años 60, cuando los investigadores tratan de luchar en contra de las ideas existentes para la época, las cuales consistían en el desarrollo de herramientas generales para la representación del conocimiento en vez de desarrollar herramientas que manejaran dominios particulares de estudio. 26 Con la difusión de los primeros ordenadores en esta década, los estudios ya realizados en el campo de la resolución de problemas se intentaron trasladar a los ordenadores. Surgen nuevos problemas como son la representación de los conocimientos en la memoria del computador, la representación de las relaciones entre los conocimientos, etc. Uno de los problemas que surgió en aquel entonces fue la aparición de la explosión combinatoria en los cálculos exhaustivos que limitaba la profundidad en los mismos y el número de conocimientos que se podían procesar, es decir, se calculaban todas las posibles soluciones para luego elegir la óptima. Aparecen entonces los primeros algoritmos de poda. El error que se cometió fue emprender un problema tan general y tan amplio con herramientas poco adecuadas. Tanto el software como el hardware estaban adaptados al cálculo numérico y no simbólico, los ordenadores eran lentos y tenían poca capacidad de memoria, es decir, se gastaban muchos recursos y éstos eran caros, además los conocimientos lógico-matemáticos necesarios para estos desarrollos todavía estaban en su infancia. Una de las investigaciones más significativas para ese momento fue la realizada por los investigadores Feigenbaum y Lederberg, en la Universidad de Stanford y a partir de 1.965, con el programa Dendral. Posteriormente 27 MYCIN (Sistema Experto de Diagnóstico Médico en el Area de Infecciones Bacterianas) impuso la noción fundamental de separación del conocimiento y la estrategia del razonamiento. Comenzaron a surgir los primeros sistemas expertos a mediados de los años 70, siendo los pioneros de una disciplina cuya importancia crece cada día más y cuyo desarrollo ha implicado grandes avances tecnológicos en el campo de la inteligencia artificial desde entonces hasta ahora. En la década de los setenta, coincidiendo con la tercera época de la I.A., los planteamientos en el campo de la resolución de problemas cambian. No conociéndose los mecanismos generales de resolución de la mente humana se pensó en simular los mismos para campos muy concretos del conocimiento. Es decir, se imita la forma externa o comportamiento aparente, que es precisamente el enfoque completamente opuesto a la línea de investigación de las redes neuronales. El manejo eficaz de los conocimientos dio entonces sus primeros pasos: los Sistemas Expertos. Esto llenó de nuevo de optimismo a la comunidad científica que entre otras cosas había visto como las subvenciones por parte de los gobiernos se recortaban y en muchos casos desaparecían ante la falta de logros palpables en el campo de la I.A. 28 El precursor de los sistemas expertos actuales es el sistema DENDRAL que incorporaba una gran cantidad de conocimientos que no estaban incluidos en el programa de la Universidad de Standford. Utilizaba para la representación de conocimiento las reglas de producción, si bien su modo de funcionamiento se acercaba más a la filosofía de la resolución automática que a la de los sistemas expertos. Según Haton y Haton (1991, p.90) “El sistema era capaz de determinar la estructura química de un compuesto orgánico a partir de los resultados obtenidos mediante un espectrógrafo de masas”. Un desarrollo mejorado del mismo todavía se utiliza en la industria química. De los sistemas expertos construidos en esa época son famosos el Prospector, especializado en prospecciones mineras especialmente las petrolíferas, y el Mycin, basado en el diagnóstico y terapia de enfermedades infecciosas de origen bacteriano que contaba con unas 400 reglas. En la década de los ochenta, existen dos grandes líneas de investigación y desarrollo, que son: 1.- Divulgación o popularización de los Sistemas Expertos como una metodología que puede resolver de una forma adecuada múltiples problemas. Esta línea ha materializado sus investigaciones en el desarrollo de lenguajes, herramientas, entornos y sistemas vacíos que funcionan en pequeños ordenadores. 29 2.- Generalización de los Sistemas Expertos que permitan ampliar el campo de conocimientos cuyos primeros logros han sido la comercialización de ordenadores o máquinas simbólicas el desarrollo de los ordenadores y lenguajes paralelos. (Sánchez y Beltrán, 1990, pp.15,16). Actualmente, gracias a los Sistemas Expertos, se ha asistido al nacimiento de una nueva rama del saber: La Ingeniería del Conocimiento, del Saber o Cognoscitiva; que es la parte de la I.A. que estudia los sistemas expertos o basados en conocimientos y que es sin duda en estos momentos el campo más prometedor de la I.A. En resumen, Sánchez y Beltrán (1990, p.27) expone que la historia de los sistemas expertos puede dividirse en tres etapas: 1.- La primera época que llega hasta el año 1974 y que se denomina la "prehistoria de los sistemas expertos". Durante esta etapa se crearon las bases teóricas que van a posibilitar la concepción de los sistemas expertos, también se desarrollaron los lenguajes de programación y ordenadores para su utilización. 2.- La segunda época, desde 1974 hasta 1984; en ella se construyen de una forma artesanal los sistemas expertos y se ponen en marcha los grandes 30 proyectos de investigación y desarrollo que de una u otra forma incluyen a los sistemas expertos. 3.- La tercera época, comienza en 1984 y todavía se sigue en ella. Se caracteriza por lagran difusión de los lenguajes especializados, herramientas y sistemas vacíos, gracias a su comercialización en pequeños ordenadores. 31 B.- FUNDAMENTACIÓN TEÓRICA 1.- Definición de Inteligencia Artificial. La inteligencia artificial (IA) es la solución de problemas complejos, con el apoyo del computador mediante la aplicación de procesos que son análogos al proceso del razonamiento humano. A través de la IA, los sistemas expertos captan el conocimiento básico que permite a una persona desempeñarse como un experto frente a problemas complicados. Según Sánchez y Beltrán (1990, p.5) “La I.A. trata de la compresión de la inteligencia y del diseño de máquinas inteligentes”, es decir, el estudio y la simulación de las actividades intelectuales del hombre (manipulación, razonamiento, percepción, aprendizaje, creación, etc.). 2.- Características de la Inteligencia Artificial. La inteligencia artificial trata sobre el diseño de sistemas computarizados cuya característica principal es la de exhibir factores que asociamos con la inteligencia humana, tales como el entendimiento del lenguaje corporal, las etapas de aprendizaje y el razonamiento para la solución de problemas. 32 La lógica formal es el método más antiguo utilizado por la inteligencia artificial para representar el conocimiento de los humanos expertos. El sistema de lógica formal más ampliamente empleado es la lógica de predicados, la cual está formada por cuatro componentes: el alfabeto, el lenguaje formal, los axiomas y las reglas de inferencia. Las aplicaciones de la inteligencia artificial se diferencian de los sistemas de información convencionales, ya que se manejan conocimientos en vez de información y este conocimiento es representado por medio de símbolos. La inteligencia artificial infiere el conocimiento humano por medio de la inferencia simbólica y realizan una búsqueda basada en la heurística. La heurística tiene reglas generales en forma de opiniones o reglas empíricas que sugieren procedimientos que se pueden seguir cuando no existen reglas de procedimientos invariables. Dichas reglas son aproximadas y son generalmente acuñadas por el experto a través de años de experiencias. 3.- Áreas de Aplicación de la Inteligencia Artificial. La inteligencia artificial abarca un campo bastante amplio en relación con las siguientes áreas: 33 a) Sistemas Expertos: Evalúa el conocimiento del ser humano con experiencia, emulado su comportamiento y razonamiento. Haton y otros (1991, p.21) explican que los sistemas expertos estudian la simulación de los procesos intelectuales de los expertos humanos como pueden ser la interpretación de datos, el diagnóstico, la corrección, la monitorización, la corrección, el control, la predicción, la planificación, el diseño y la enseñanza. b) Reconocimiento de la Voz: Trata de reconocer información a través de la identificación de sonidos. Su objetivo es que los computadores entiendan y reconozcan voces humanas, simplificando el proceso de comunicación interactiva hombre-máquina. Según Haton y otros (1991, p.18) esta área presenta dos aspectos: (a) Reconocimiento –hablar a una máquina y hacerse entender, y (b) Síntesis –hacer hablar a una máquina. Esto ofrece analogías con el tratamiento del lenguaje natural escrito. c) Visión Artificial: Consiste en el reconocimiento por medio de la vista utilizando sensores y cámaras. Estudia la identificación, inspección, localización y verificación de objetos. Este campo está muy unido al de la robótica pues una de las necesidades básicas de los robots es poder "ver". d) Lenguaje Natural: Trata de emular el lenguaje natural humano. Estudia el uso del lenguaje natural como medio de comunicación con las máquinas; según Haton y otros (1991, p.17) “Es un problema complejo pues 34 intervienen distintos procesos como son la comprensión del lenguaje, la síntesis y el análisis de la voz, el resumen y la traducción”. Existen dos subdivisiones del lenguaje natural: la Comprensión, que investiga métodos que permitan al computador comprender instrucciones dadas en este tipo de lenguaje; y la Generación, la cual intenta que el ordenador sea capaz de expresarse en lenguaje ordinario, de atl forma que las personas puedan entender a los computadores más fácilmente. e) Robótica: Emula los movimientos motores del ser humano y estudia las máquinas capaces de realizar procesos mecánicos repetitivos y tareas manuales de las cuales es capaz el hombre. Un robot es un dispositivo electromecánico que puede ser programado para que realice tareas manuales y que incluye alguna forma de aparato sensorial que le permite responder a cambios en su entorno en lugar de seguir instrucciones establecidas previamente. f) Redes Neurales: Tratan de emular el comportamiento de las neuronas del cerebro humano y marca lo que es el aprendizaje automático. Es una técnica de modelación que se basa en el comportamiento observado de las neuronas del cerebro humano, usada para imitar el desempeño de un sistema. Consiste en un conjunto de elementos que se conectan al comienzo en un patrón aleatorio y con base en la retroalimentación 35 operacional, son moldeados en el patrón requerido para obtener los resultados deseados. g) Algoritmos Genéticos: Son técnicas basadas en la selección natural, que incluyen métodos de búsqueda de soluciones en espacios extensos que utilizan conceptos derivados de genéticas aplicadas a la computación. Las generaciones son creadas, combinadas y evaluadas usando operaciones genéticas para encontrar la solución más cercana a lo óptimo. h) Lógica Difusa: Consiste en una técnica matemática que puede tratar con valores de 0 y 1 y es más parecida a la lógica humana que a la digital. Los resultados pueden ser en mayor parte verdaderos y en mayor parte falsos, en vez de verdaderos y falsos exclusivamente. i) Programación Automática: Trata de eliminar la función del programador. Consiste en crear programas especiales que actuen como herramientas inteligentes, ayudando a los programadores en cualquier fase del proceso de programación. Estudia las formas automáticas de generar programas que resuelvan los problemas planteados cumpliéndose una serie de especificaciones. Otras tareas que se analizan son: la verificación, depuración y optimización de programas. Trata de eliminar la función del programador. 36 j) Juegos: Estudia aquellos problemas cuya resolución no necesita de explicación y justificación, sino que basta con que se cumplan una serie de leyes o reglas del juego. Haton y otros (1991, p.20) opinan que el interés de estos trabajos excede el aspecto lúdico, pues se plantean conceptos generales de búsqueda de soluciones, empleando estrategias heurísticas. 4.- Programación Tradicional Vs. Inteligencia Artificial. Tradicionalmente se han usado por décadas técnicas de prograamción convencionales para desarrollar los grandes sistemas de procesamiento de datos, normalmente asociados a computadores. Dichos sistemas se caracterizan por coleccionar y procesar grandes volúmenes de datos, mediante algoritmos complejos, los cuales son una serie de procedimientos conformados por pasos elementales que garantizan que siempre y cuando los datos introducidos sean los correctos, se logrará obtener la solución correcta. No obstante, el funcionamiento de un programa convencional solo puede ser entendido por un programador, ya que si otra persona detiene un programa en medio de su ejecución y trata de examinar el código de dicho programa para decifrar lo que en ese momento se está ejecutando, lo más seguro es que no lo logre. En este sentido, los sistemas basados en inteligencia artificial son muy diferentes: son interactivos, ya que el usuario puededetener la ejecución en cualquier momento y preguntar por qué el programa ha realizado determinada pregunta o ha planteado cierta solución. 37 Por otro lado, cabe destacar la existencia de un conjunto de diferencias fundamentales entre los sistemas de inteligencia artificial y los sistemas de programación tradicional, entre las cuales se encuentran: a) La tarea realizada por un sistema de inteligencia artificial fue realizada anteriormente por un especialista humano entendido en la materia. b) Los sistemas de inteligencia artificial son mantenidos por ingenieros de conocimiento y por expertos, mientras que el mantenimiento de programas tradicionales es llevado a cabo por programadores. c) La base de conocimientos de un sistema de inteligencia artificial es legible, fácil de modificar y se encuentra estructurada simbólicamente en una memoria de trabajo global, orientada al procesamiento simbólico. d) La base de datos de un sistema de programación tradicional depende de direccionamientos numéricos y está orientada a su procesamiento. e) La estructura global de los programas tradicionales descansa fundamentalmente en algoritmos, mientras que la de los sistemas de inteligencia artificial se basa principalemente en procedimientos heurísticos. 38 f) El procesamiento en los sistemas de programación tradicional es secuencial y por lotes, mientras que en los sistemas de inteligencia artificial es muy interactivo. Otra diferencia que pudo ser observada entre ambos sistemas la constituye la metodología de trabajo de los ingenieros de conocimiento, ya que se encarga tanto del desarrollo del software como del análisis del modo en que los expertos humanos resuelven los problemas. De esta manera los ingenieros humanos trabajan en conjunto con los expertos humanos ayudándoles a describir su conocimiento y estrategias de inferencia, de tal modo que puedan ser codificadas, logrando así combinar grandes dosis de psicología cognitiva con técnicas de programación simbólica para el desarrollo de sistemas basados en inteligencia artificial. Mientras la programación tradicional se basa en los algoritmos, los sistemas expertos lo hacen en la heurística. Los algoritmos son: a) Determinísticos, ya que partiendo de los mismos datos se llega a los mismos resultados. b) Masivos, porque son aplicables a toda clase de problemas. 39 c) Resolutivos, ya que siempre llegan a la solución si no existe un error en la entrada de datos. Por otro lado, los heurísticos resuelven todos los problemas de una clase a partir de un conjunto de operaciones elementales y se conforman de algoritmos experimentales fruto de la experiencia al solucionar por lo menos una primera vez determinado problema. Son: a) Determinísticos, ya que una vez establecido el heurístico partiendo de los mismos datos se llega a los mismos resultados. b) Masivos, ya que es aplicable a todos los problemas de una clase. c) No resolutivos, pues no garantizan la resolución de un problema y de encontrarla no necesariamente tiene que ser la más óptima. 5.- Definición de Sistemas Expertos. Los Sistemas Expertos son una rama de la inteligencia artificial cuya función es la de emular el comportamiento y razonamiento de un humano experto en la solución de problemas, usando para ello la heurística. 40 Constituyen un tipo de aplicación informática que soluciona problemas complejos o específicos que de otra manera exigirían ampliamente la pericia humana. Para lograr esto se simula el proceso de razonamiento humano mediante la aplicación de conocimientos e inferencia. (Rolston, 1990, p.2). 6.- Características de los Sistemas Expertos. a) Según Ganascia (1994, p.71) “El conocimiento manipulado por el sistema experto se basa exclusivamente en la experiencia del experto en un área determinada”, usando para ello conocimiento heurístico y diferenciándose de esta forma de los sistemas de información y de otros sistemas. b) En un sistema experto, los problemas tratados son específicos y deben estar englobados dentro de un alcance preestablecido, de allí que los sistemas expertos son especialistas en un ámbito y no en una tarea, como ocurre en los programas convencionales. c) Los sistemas expertos se caracterizan por su carácter declarativo, es decir, compuesto por un conjunto de especificaciones independientes unas de las otras. 41 d) Un sistema experto es capaz de dar explicaciones de sus razonamientos, mostrando al usuario como llegó a la solución de un problema. También establece las consultas de manera clara para el usuario, permitiendo esto que se le facilite la interacción en el sistema y el entendimiento del mismo. e) En los sistemas expertos actuales el conocimiento debe introducirse previamente. Para ello debe extraérsele previamente al experto humano, después este conocimiento hay que representarlo en el propio sistema experto y por último el conocimiento tiene que ser aplicable a la resolución de problemas y tiene que podérsele comunicar al usuario del sistema. f) La fiabilidad que se le da a un sistema experto es demostrada por sus explicaciones y por sus "éxitos" en la resolución brillante de las tareas que se le encomiendan, al igual que ocurre con los seres humanos. g) Un sistema experto es solo experto en un campo muy reducido del saber, ya que por razones físicas y por el tiempo requerido para su procesamiento, tiene una limitación en el conocimiento que puede contener. h) En un sistema experto es el mismo conocimiento el que resuelve y el que explica un problema determinado. 42 i) La estrategia general de resolución de problemas de un sistema experto es realmente el control del sistema, que se denomina motor de inferencia. j) El conocimiento en un sistema experto tiene que estar en forma de unidades elementales del mismo que puedan relacionarse unas con otras y que le permitan conocer cuál de ellas ha actuado, cuándo y por qué. k) Según Rauch-Hindin (1989, p.71) “Los sistemas expertos tienen que ser flexibles”, es decir, poder modificar el conocimiento que tienen almacenado en forma sencilla y sin que esto afecte al resto del sistema. l) La base de conocimientos de un sistema experto nunca está completa y por ello se va completando poco a poco en el transcurso del tiempo. m) Las funciones de control, los datos o hechos y el conocimiento en un sistema experto son totalmente independientes entre sí. n) Los sistemas expertos emplean preferentemente el razonamiento simbólico frente al procesamiento numérico o algoritmo que utilizan los programas tradicionales. 43 o) Los sistemas expertos tienen la capacidad de actuar como módelo de predicción para resolver problemas en un dominio dado, al proveer respuestas adecuadas a una solución particular y exhibir cómo cambian estas respuestas en nuevas situaciones. p) Permiten capitalizar el conocimiento que contiene las estrategias y métodos de operación de la empresa, como un bien activo evitando así la fuga, desplazamiento o pérdida del mismo. 7.- Participantes en el Desarrollo de los Sistemas Expertos. Los integrantes que básicamente conforman el equipo que desarrolla un sistema experto son los siguientes: a) Experto: es aquella persona con amplio conocimiento en un área determinada de la empresa. El experto es valioso para la empresa desde todo punto de vista, al significar una fuente de conocimiento que pone a producir eficazmente varios factores. El experto conoce tan bien el área donde se desenvuelve que ha desarrollado técnicas propias para efectuar rápidamente tareas en las que usualmente un no experto invierte mucho tiempo (ver cuadro 1). 44 Las características generales y externas de los expertos humanos son las siguientes:I. Son personas raras, tanto por su escaso número como por su comportamiento "poco ortodoxo" e "incomprensible" frente a los problemas con que se enfrentan. II. Son caros por su escaso número y por necesitar un largo período de aprendizaje. III. No siempre están disponibles, pues son humanos y cuando se jubilan o mueren se llevan con ellos todos sus conocimientos. Es por ello que tradicionalmente van acompañados de un "aprendiz" y que en la actualidad las grandes empresas los tengan "duplicados" con el fin de contar con relevo. IV. Hay expertos que además tienen mal carácter, son informales o poco comunicativos, lo que a veces les hace antipáticos. V. Emplean poco tiempo en la resolución de problemas. VI. Su eficiencia resolutiva y su organización son altas. 45 VII. Emplean estrategias, tácticas y cálculos aproximados. VIII. Su búsqueda de soluciones se basa en la heurística. IX. El tiempo de formación de un experto se estima entre cinco y diez años. Cuadro 1. DIFERENCIAS ENTRE UN EXPERTO Y UN NO EXPERTO HUMANOS (Sánchez y Beltrán, 1990, p.17). Características Experto No Experto Tiempo de resolución Eficacia Resolutiva Organización Estrategias y Tácticas Búsqueda de Soluciones Cálculos Aproximados Pequeño Alta Alta Sí Heurística Sí Grande Baja Baja No No heurística No Nota: La medición se hace comparando dos extremos opuestos y es relativa a la evaluación del supervisor. b) Ingeniero del Conocimiento: es el encargado de recopilar y organizar el conocimiento proporcionado por el experto, además de planificar la adquisición del conocimiento, diseña el sistema y también puede participar en la implementación del mismo. Pueden existir en el desarrollo del sistema cuantos ingenieros del conocimiento sean necesarios de acuerdo a la extensión del sistema. 46 c) Tutores: Actúan como guías en el desarrollo del proyecto, supervisando y corrigiendo todo lo relacionado con la evolución de las diferentes etapas involucradas en la evolución del sistema. d) Usuarios: Son quienes utilizan el sistema en toda su amplitud y constituyen los puntos claves a la hora de realizar las pruebas de aceptación del sistema experto. 8.- Ventajas de un Sistema Experto. Una de las ventajas más resaltantes del sistema experto es que sus unidades de información pueden ser cambiadas o eliminadas sin modificar a las demás, ya que constituyen estructuras independientes. La capacidad de crecer mediante la expansión de la base de conocimientos a medida que el experto va adquiriendo más experiencias, permite que el sistema se vaya enriqueciendo cada vez más. La existencia de un sistema experto disminuye la dependencia que una empresa pueda tener con un experto. La presencia de ese experto se hace la mayoría de las veces imprescindible de tal forma que en su ausencia los problemas tardarían mucho en solucionarse. Con un sistema experto 47 cualquier persona que no sea experta dispone del conocimiento del experto y puede llegar a solucionar problemas tan bien como él. El modo en el cual está representado el conocimiento hace que éste sea más legible y entendible, que el código de un programa convencional. Los sistemas expertos están siempre disponibles a cualquier hora del día y de la noche y de forma ininterrumpida, a diferencia de los expertos humanos. Pueden duplicarse, mantienen el humor, pueden situarse en cualquier lugar donde sean necesarios, toman decisiones homogéneas, son fáciles de reprogramar, perduran y crecen en el tiempo de forma indefinida y pueden ser consultados por personas u otros sistemas informáticos. (Sánchez y Beltrán, 1990, pp.25,26). 9.- Componentes de un Sistema Experto. Por lo general los componentes de un sistema experto son independientes unos de otros y forman unidades separadas. Los datos están agrupados en lo que se denomina Base de Hechos, los algoritmos no existen y en su lugar se utilizan sistemas de representación de conocimientos de tipo declarativo que forman la Base de Reglas. Estos dos componentes a su vez conforman la Base de Conocimientos. El control es independiente y se 48 denomina Motor de Inferencia. La Base de conocimientos se alimenta a través del Editor y si se dispone del Módulo opcional de Explicación se puede indicar al usuario cuál camino se siguió durante el razonamiento. Por último, las entradas y salidas de datos son similares a los programas tradicionales y conforman el Módulo de Comunicación que se subdivide en Módulo de Consulta o del Usuario y Módulo de Trabajo o del Experto. a) Base de Conocimientos: Es el resultado de la estructuración del conocimiento; contiene los hechos, estructuras y reglas que lo representan. Es una estructura de información que encierra el conocimiento y que es susceptible de ser procesada por un lado y actualizada por otro. La misión fundamental de la base de conocimientos es reunir los conocimientos de los expertos humanos en un tema (dominio) considerado, lo cual suele ser tarea de meses e incluso años de trabajo y colaboración entre personal informático y expertos en el dominio de aplicación. Se puede hablar de dos tipos de conocimientos: conocimiento factual y conocimiento heurístico. El conocimiento factual se compone de hechos, es decir, afirmaciones relativas al dominio del experto. Los conocimientos de naturaleza heurística con aquellos que traducen instrucciones, que interpretan la experiencia del experto, incluso sus convicciones. Por lo tanto, a diferencia del anterior, es un conocimiento que entra en el terreno de lo discutible. Las Bases de Conocimientos se dividen en dos partes: 49 I. Base de Hechos: Según Benchimol (1990, p.66) “Incorpora el conocimiento factual”. Es una memoria de trabajo que contiene información sobre las características del mundo (dominio) en el que opera el sistema. Se denominan hechos a la información que es invariable de una a otra resolución mientras que se suele denominar datos a aquella información que sí puede variar. Los hechos pueden formar parte del sistema experto mientras que los datos deben estructurarse en ficheros independientes. II. Base de Reglas: Según Benchimol (1990, p.66) “Contiene conocimientos en forma explotable por los procedimientos de manipulación del sistema experto”. En la base de reglas el experto humano expresa su modelo de razonamiento, su experiencia. Winston (1994, p.131) afirma que una regla de decisión es un formalismo que permite expresar una determinada aserción de la forma: Si Premisas entonces Conclusión. Las premisas expresan las condiciones que se deben verificar para que la regla sea aplicable. La conclusión indica los mismos hechos que pueden deducirse de las hipótesis. b) Motor de Inferencia: Es la parte que contiene las estrategias de inferencia y control que utiliza el experto para la solución de los problemas, ya que construye de una forma dinámica las soluciones. Según Sánchez y Beltrán (1990, p.37) “Selecciona, decide, interpreta y aplica el conocimiento de la Base de Conocimientos sobre la Base de Hechos con el fin de obtener 50 la solución buscada”. Comprende las diversas estrategias utilizadas para realizar inferencias y controlar el proceso de razonamiento. Se caracteriza por ser independiente del conocimiento y de los hechos. Una variación en cualquiera de las bases puede significar una variación en el resultado, pero no variará el control y por lo tanto éste permanecerá libre de errores. Un mismo motor de inferencia puede ser la base de varios sistemas expertos en diferentes campos del conocimiento. El funcionamiento general de un motor de inferencia es el siguiente: I. Evaluación, en la cual se selecciona el conocimiento a emplear. II. Comprobación,de que el conocimiento es aplicable. III. Ejecución, en la cual se aplica el conocimiento. IV. Comprobación de la condición final. V. Control de las reglas activas. En general un motor de inferencia viene definido por las siguientes características: I. El lenguaje con el cual ha sido escrito. II. La velocidad de trabajo (inferencias por segundo). III. Las estrategias que utiliza. IV. El sistema de elección del conocimiento. 51 V. La posibilidad de utilizar metaconocimientos. VI. El orden de la lógica que emplea. VII. El método de evaluación. En un sistema experto el motor de inferencia puede utilizar dos estrategias en la búsqueda de soluciones dentro del espacio de todas las posibles, pudiendo ser de forma no ordenada y ordenada. La búsqueda no ordenada de soluciones puede ser: I. Aleatoria: Consiste en recorrer de forma exhaustiva o también llamada combinacional toda la base de conocimientos, método que sólo es válido cuando ésta es pequeña o la velocidad de búsqueda es alta. Con este método se buscan todas las soluciones posibles con lo cual se elige la más óptima. II. Heurística: Consiste en dividir la base de conocimientos en módulos y solamente se busca en alguna de estas partes según lo indique el metaconocimiento, con lo cual se ahorra gran cantidad de tiempo. La solución alcanzada se aproxima tanto más a la solución óptima cuanto mejor sea el conocimiento 52 heurístico que contenga el sistema experto. Este método es el más adecuado cuando la cantidad de posibles soluciones es grande. Por otro lado, la búsqueda ordenada de soluciones se basa en el encadenamiento del conocimiento cuando éste está representado en forma de reglas. Este encadenamiento se consigue haciendo que el consecuente o acción de una regla se convierta en el antecedente de la regla siguiente a considerar, lo cual genera estructuras en forma de árbol. Este método admite el uso de heurísticos que permitan la poda del árbol de soluciones. También pueden hacerse por algoritmos. Tanto los heurísticos como los algoritmos de poda pueden ser ciegos si actúan sin tener en cuenta el conocimiento sino únicamente la estructura o los coeficientes incluidos para este fin, o no ciegos si lo que consideran son los conocimientos. Existen varios sentidos de encadenamiento que son encadenamiento hacia delante, encadenamiento hacia atrás y encadenamiento mixto. I. Encadenamiento hacia Adelante: Consiste en enlazar los conocimientos a partir de ciertos datos con el fin de obtener una solución a un problema y es el modelo de trabajo más acostumbrado. También se le llama Guiado por los Datos o Deductivo. Está basado en la regla del “modus ponens” que se explica más adelante. La 53 ventaja de utilizar este tipo de encadenamiento es su sencillez y que la entrada de datos es única y al principio del programa. Esta conformado por: • Selección de Reglas Candidatas: En esta primera fase se produce un filtro que es un patrón por medio del cual se establece qué reglas son candidatas válidas para su posible aplicación. Serán candidatas válidas aquellas cuyas premisas se verifiquen, es decir, aquellas reglas cuyas premisas estén en la base de hechos del sistema. Potencialmente, cualquiera de estas reglas puede ser accionada incluyendo la conclusión en la base de hechos. • Elección: De las reglas candidatas en la base de selección se elige una que realmente es la que se dispara. Los criterios heurísticos para realizar la selección son múltiples y deben proseguir la elección de la regla que mejor se ajusta a las exigencias del momento. • Aplicación: Los términos integrantes de la parte derecha (conclusión) de la regla elegida se agregan a la base de hechos del sistema. 54 El ciclo formado por los tres puntos anteriores se repite hasta que el hecho que se ha fijado como meta se incluye en la base de conocimientos o hasta que en un momento dado ninguna regla es aplicable. Este modo de trabajo tiene riesgos evidentes. El criterio de selección de la regla que debe ser aplicada se convierte en un punto clave para el buen funcionamiento del motor. La estrategia de encadenamiento hacia adelante es recomendada cuando el objetivo o solución tiene que construirse o elaborarse, lo cual puede ser necesario si el número de resultados posibles es muy grande. En los sistemas que utilizan este tipo de estrategia, las premisas de las reglas son examinadas para verificar si son o no son verdaderas, dada la información posible, Si la respuesta es afirmativa, las conclusiones son añadidas a la lista de hechos conocidos como verdaderos y el sistema vuelve a examinar las reglas. II. Encadenamiento hacia Atrás: Consiste en comprobar que un objetivo es cierto: basándose en unos hechos que forman el universo del sistema y a unos conocimientos determinados, se puede asociar el proceso de contraste del método científico. Tiene su fundamento en el “modus tollens” el cual se explica más adelante. El enfoque aquí es el contrario. Partiendo de un objetivo 55 perseguido, éste se reduce a subobjetivos más elementales, recorriendo subobjetivos y buscando respuestas. El encadenamiento hacia atrás resulta ser muy eficaz si los resultados posibles con conocidos y si su número es razonablemente pequeño. En este modo de encadenamiento las soluciones deben ser conocidas de antemano, mientras que los datos pueden introducirse a lo largo del programa. De un hecho así inducido se puede asegurar su “no-falsedad”. La ventaja del método es su gran potencia y los inconvenientes técnicos son la necesidad de emplear procesos recursivos. También se le llama Impulso por Objetivos o Inductivo. El ciclo de funcionamiento se traduce en los pasos siguientes: • Búsqueda de las reglas cuya conclusión se corresponde con el objetivo perseguido. • Elección de una regla entre éstas. • Reemplazo del objetivo por la conjunción de las premisas de la regla como subobjetivos equivalentes a él. El ciclo termina cuando el objetivo inicial ha podido reducirse a objetivos elementales que pertenecen a la base de hechos o cuando nuevamente no exista ninguna regla aplicable. Este modo de trabajo 56 también conlleva riesgos, como caer en ciclos de razonamiento del tipo "para concluir que B necesito averiguar A, y para concluir A necesito averiguar B". III. Encadenamiento Mixto: Es el más empleado en los sistemas expertos y consiste en buscar un conjunto de soluciones mediante un encadenamiento hacia delante, tras lo cual mediante el encadenamiento hacia atrás se verifican estas soluciones. También el encadenamiento hacia delante sirve para guiar la búsqueda de soluciones. Los sistemas que usan este tipo de encadenamiento son susceptibles de entrar en lazos infinitos, por lo cual hay que dotarlos de detectores y abridores de lazos. Por ejemplo: R1 = A si B y C R2 = A si C y D R3 = B si E R4 = C si E y F Los datos ingresados al sistema son B y F y se desea conocer si A es cierta o falsa. El sistema aplica marcha hacia atrás con el fin de intentar demostrar A: Se aplica R1, B es el dato y para C se aplica R4, pero como E no es conocido entonces no se cumple. Se prueba R2, pero falla al hacerlo R4. Se prueba R3, que no se cumple. Entonces, como termina la prueba sin demostrar nada, se aplica marcha hacia delante: Se aplica R3 y aparece E como dato nuevo. Luego se reinicia marcha hacia atrás: Se cumple R1 al 57 cumplirse ya R4, con lo cual se demuestra que A es cierto. En caso de no haber podido generar nuevos datos hacia delante, sería necesario introducir al motor de inferencia nuevos datos. El árbol creado es: A * * * y * * * B C B* * + * y * + * * + F E Los Sistemas Expertos son en general de tipo deductivo, es decir, sus reglas tienen como consecuente una única acción: inclusión de nuevos hechos en la base de los hechos. Para ello, la inferencia utilizada puede ser de dos tipos: I. Inferencia Lógica: Según Silverman (1987, p.113) “Cada regla es realmente una implicación en el sentido de la lógica”. De este modo, el motor de inferencias es un demostrador automático, basado en el algoritmo de resolución, que permite estudiar si una deducción es correcta. Sin embargo, el conocimiento no siempre puede formularse por medio de implicaciones lógicas dado que a veces es preciso razonar sobre conjeturas o conocimiento impreciso donde una premisa no tiene necesariamente los valores verdadero o falso. 58 II. Inferencia Pausible: Según Silverman (1987, p.113) “Se aplica cuando el grado de conclusión de las reglas, a partir de la premisa, no es total”. Esta inferencia establece una medida del grado de la implicación entre afirmaciones en una regla, y una medida del grado de certidumbre de las afirmaciones existentes en la memoria de trabajo (base de hechos). Según el tipo de medida se trata de sistemas determinísticos o sistemas en lógica difusa (probabilísticos). La Estrategia de Inferencia está conformada por una serie de reglas o técnicas, entre las cuales se encuentran: I. Modus Ponens y Modus Tollens: El Modus Ponens es una regla lógica que establece simplemente que si se sabe que A es verdadero y se tiene una regla que establece que <<si A entonces B>>, es perfectamente válido concluir que B es verdadero. Por ejemplo: R1 = A si B y C R2 = A si C y D R3 = B si E R4 = C si F o G Los datos ingresados al sistema son B y F y el sistema da como resultado A al aplicar las reglas 1 y 4. El árbol creado es: 59 F + + + B C + + + y + + + A Existe otra regla análoga al Modus Ponens, la cual es el Modus Tollens, y establece que si B es falso y hay una regla que indica <<si A entonces B>>, entonces es válido concluir que A es falso. Por ejemplo: R1 = A si B y C R2 = A si C y D R3 = B si E R4 = C si F o G Si la información dada al sistema es “Dados E y F demostrar que es cierto A” luego el sistema responderá “cierto” tras aplicar las reglas 1,3 y 4. A * * * y * * * B C * * * * * o * * * * E F G En resumen, ambas estrategias son reglas comunes para derivar nuevos hechos a partir de reglas y hechos conocidos, constituyendo una forma sencilla e intuitivamente atractiva para realizar razonamientos, aún 60 cuando no todas las inferencias válidas posibles puedan obtenerse con su único uso. II. Razonamiento con Incertidumbre: En la programación de sistemas basados en conocimiento no es indispensable disponer de toda la información necesaria para la realización de cálculos. Aquí la información desconocida se trata simplemente haciendo que las reglas sean inaplicables cuando la información necesaria para evaluar las premisas de estas reglas no está disponible; por supuesto, el resultado va a depender de la forma concreta de la premisa, ya que si las cláusulas de una premisa están conectadas entre sí mediante <<Y>> entonces todas las cláusulas deben estar evaluadas como verdaderas para que la regla pueda ser aplicada, mientras que si las cláusulas se encuentran conectadas por <<O>>, entonces un elemento desconocido de información no excluye la posibilidad de aplicar la regla. III. Resolución: Constituye la manera de describir si un hecho nuevo es válido, dado un conjunto de sentencias lógicas. Por ejemplo, decir <<si A entonces B>> equivale a decir <<no(A) o B>>. En lógica, la forma de demostrar la equivalencia es mediante una tabla de la verdad. Si dos expresiones son equivalentes, entonces la distribución entre <<verdadero>> y <<falso>> en la tabla de la verdad será la misma para ambas expresiones. 61 Dado que en este proceso se generan nuevos hechos, existen dos formas de tratarlos o sentidos de recorrido, que son: I. Con Profundidad, cuando apenas se genera un hecho éste se introduce en la base de hechos, es decir, no se toma otra posibilidad en un nudo hasta que no se ha desarrollado completamente otra rama. II. Con Anchura, cuando no se incorporan los hechos a la base de hechos hasta que se ha terminado de aplicar la base de conocimientos, es decir, se contemplan todas las posibilidades de un nudo antes de pasar al siguiente nodo o bifurcación del árbol. Por ejemplo, si hay un árbol formado por las siguientes reglas: Si A entonces B Si B entonces E Si A entonces C Si C entonces F Si B entonces D Si C entonces G A * * * * * * B C * * * * * * * * * * * * D E F G 62 En caso de una búsqueda con anchura el orden seguido es el siguiente: A-B-C-D-E-F-G. Si es una búsqueda con profundidad el orden seguido es el siguiente: A-B-D-E-C-F-G. El control del motor de inferencias debe resolver dos problemas principales: I. En un sistema de conocimientos tiene que haber una manera de decidir por dónde empezar. Las reglas y los hechos residen en una base de conocimientos estática. Tiene que haber una forma de arrancar el proceso de razonamiento. II. El motor de inferencias debe resolver conflictos que aparecen cuando surgen líneas de razonamiento alternativas. El motor de inferencias tiene que elegir cuál de entre ellas aplicar primero. c) Interfaz con el usuario: Lucas (1991, p.339) explica que es el elemento que comunica al motor de inferencia las consultas realizadas por el usuario y a éste último los resultados de dichas consultas. Dentro de la inteligencia artificial, el procesamiento de lenguaje natural constituye una aplicación sofisticada en este ámbito. 63 d) Editor de la Base de Conocimiento: Es la herramienta mediante la cual se alimenta a la Base de Conocimientos; dicha herramienta depende de la plataforma de desarrollo utilizada para la realización del sistema. e) Módulo de explicación: Es un módulo opcional a través del cual el sistema puede indicarle al usuario el proceso de razonamiento que siguió para llegar a la conclusión. Permite trazar el camino tomado en el razonamiento. Esta facilidad varía desde una traza de ejecución de las inferencias efectuadas hasta tener la habilidad de responder preguntas acerca del proceso de razonamiento para resolver un problema. f) Módulos de Comunicación: Deben ser: (a) Rápidos, para que la comunicación no sea pesada para el usuario; (b) Potentes, para que admita estructuras flexibles que sean cercanas al lenguaje natural; (c) Sencillos, que no implique el estudio de complejas estructuras y extensos vocabularios y (d) Adecuados, para que trabaje en el nivel de cada uno de los usuarios que tenga el sistema. Con el fin de lograr estos objetivos se utilizarán pantallas gráficas de alta resolución, sistemas multiventanas, ampliación de zonas de pantalla, iconos, animación, ayuda en línea, representación en árboles de la base de conocimientos, medidas de magnitudes de forma simbólica, abreviación de vocablos, lenguaje pseudonatural y acceso a bibliotecas. Se divide en dos tipos: 64 I. Módulo del Experto: Realiza funciones de adquisición de conocimientos del experto durante la construcción del sistemaexperto; mantenimiento del conocimiento; validación y depuración para detectar inconsistencias, errores, repeticiones; y configuración del sistema incluyendo el motor de inferencia. Si el sistema se desarrolla desde un lenguaje de alto nivel, este módulo puede ser el Editor del Lenguaje. II. Módulo del Usuario: Debe permitir el diálogo sencillo, aproximándose lo más posible al lenguaje natural. Entre sus funciones se encuentra la entrada de datos, entrada de opciones, salida de explicaciones, salida de justificaciones y salida de soluciones. Todos los componentes relacionados se aprecian en la figura 1. Experto Ing. Conocimiento Usuario Figura 1. ESQUEMA DE UN SISTEMA EXPERTO (Sánchez y Beltrán, 1990, p.32) Nota: El editor de la base de conocimientos y el módulo de explicación están en la explicación textual del autor, pero no aparecen en el gráfico original. Base de Hechos Motor de Inferencia Base de Conocimientos Editor de la Base de conocimientos Módulo de Explicación Interfaz con el Experto Interfaz con el Usuario 65 10.- Definición de la Representación del Conocimiento. Una representación del conocimiento es una combinación de estructuras de datos y procedimientos interpretativos que si se usan de forma adecuada en un programa, llegarán a un comportamiento inteligente. Trabajar en inteligencia artificial sobre la representación del conocimiento involucra tanto al diseño de varias clases de estructuras de datos para almacenar información en programas de computador como el desarrollo del procedimiento que permitan una manipulación inteligente de estas estructuras de datos para hacer inferencias. 11.- Tipos de Representación del Conocimiento. Los tipos de representación de conocimientos que se pueden aplicar en un sistema experto son: a) Marcos: Permiten describir un concepto según un modelo y pueden presentar uno de los dos estados siguientes: (a) Modelo, prototipo, marco general o vacío, que contiene la estructura del marco y valores por defecto; y (b) Particularizado, instanciado o lleno, en el cual se sustituyen algunos valores por defecto con valores particulares. Combinan las características de las reglas y de las redes semánticas, son modulares por naturaleza y admiten la representación del conocimiento en forma declarativa o 66 procedimental, haciendo énfasis en el conocimiento por omisión. Están formados por un nombre y una serie de casilleros o campos de información, los cuales guardan ciertas relaciones de herencia entre ellos y contienen valores, procedimientos para calcular valores o reglas para inferirlos. Cada casillero representa una propiedad estándar o atributo del elemento representado por el marco y permite colocar sistemáticamente un componente de nuestras experiencias anteriores con relación a la clase de elementos representados. Un marco que representa una clase de elementos de cierto nivel puede incluir casilleros con valores de marcos que se heredan de marcos que representan un mayor nivel de abstracción. El razonamiento con marcos es posible aún en casos en que la información disponible esté incompleta y permite inferir hechos rápidamente que no se observan explícitamente. Los marcos también pueden escribirse en forma de lista y están especialmente indicados para la representación de estereotipos, en los cuales se rellena la información que distingue a cada caso, sobre todo para bases de datos relacionales (ver cuadro 2). Cuadro 2. MARCOS CON RELACIÓN DE HERENCIA (Sánchez y Beltrán, 1990, p.77) Nombre: Pino Nombre: Árbol. Tipo: Árbol Corteza: Marrón. Tipo: Planta Tamaño: Alto. Nota: La relación de herencia se da puesto que Encina es “hijo” de Árbol y a su vez Árbol es “hijo” de Planta 67 b) Guiones: Son estructuras que se usan para guardar prototipos de secuencia de sucesos. En ellos las situaciones se describen mediante condiciones de entrada, una sucesión de acciones, unos actores que las realizan (agentes), unos objetos que las sufren (pacientes) y los resultados del guión. Son apropiados para tratar situaciones descritas en lenguaje natural y por lo tanto son una componente simbólica muy importante. Por ejemplo: Actores: Pino, Encina. Objetos: Piñones, Bellotas. Sucesos: El pino tiene piñones. c) Objetos: Es decir, representación, clases y descripción de objetos, puesto que, típicamente, el conocimiento se entiende en términos de hechos acerca de objetos en el mundo que nos rodea. Son similares a los marcos, con la diferencia de que la relación entre los objetos viene dada por los mensajes. Mantienen los conceptos de casilleros y relaciones de herencia. Son descritos por propiedades y se agrupan en clases y subclases. Por ejemplo: Sean las clases de objetos: Nombres: Pino, Encina. Árbol: Planta, alta, tronco. 68 El mensaje: Los < nombres > SON < árboles > Conclusión: El pino es una planta alta y con tronco. La encina es una planta alta y con tronco. d) Sucesos: También se tiene conocimiento de acciones y sucesos del mundo, de manera que es necesaria la representación de una secuencia de sucesos y sus relaciones causa-efecto. e) Ejecución: Este es el conocimiento de cómo hacer las cosas. Es un conocimiento que envuelve objetos y sucesos. f) Metaconocimiento: Es el conocimiento acerca de lo que el usuario conoce. Por ejemplo, a menudo se conoce la extensión y origen del conocimiento sobre un objeto particular, el grado de confianza de cierta información o la importancia relativa de hechos específicos del mundo. El metaconocimiento también incluye lo que se conoce acerca del propio entendimiento en procesos cognoscitivos, por ejemplo, el nivel de conocimiento en diferentes dominios y el sentimiento de progreso durante la resolución de un problema. Se resume el metaconocimiento como el conocimiento del conocimiento. Es muy importante que la base de conocimientos esté dividida en clases o grupos. El metaconocimiento se puede presentarse cuatro formas, que son: 69 I. Es fijo y ciego, estando embebido en el propio motor de búsqueda. II. Es seleccionable antes de la ejecución o demostración del programa, es decir, realiza un control estratégico, ya sea ciego o no. III. Es seleccionable durante la ejecución o demostración, es decir, realiza un control de tipo táctico. IV. Es externo, para lo cual el sistema experto permanece en modo interactivo durante todo el proceso con el usuario. g) Lógica: Existen muchos tipos de lógica que pueden ser utilizadas por el motor de inferencia. Según el número de valores o estados que admiten las variables: I. Lógica Booleana: Es aquella en la que se admiten sólo dos tipos de valores que son verdadero y falso, o cero y uno. II. Lógica Trivalente: Es aquella en la que se admiten tres valores posibles que son verdadero, falso y neutro o intermedio. 70 III. Lógica Multivalente: Es aquella en la cual las variables pueden tomar muchos valores discretos. IV. Lógica Difusa o Borrosa: Es una generalización de la lógica multivalente y permite la existencia de valores continuos entre dos valores límite. Es una de las más empleadas en los sistemas expertos. Según el tipo de conocimientos que emplea: I. Lógica Monótona: Es aquella en la que los nuevos conocimientos no pueden entrar en contradicción con los ya existentes en la base de hechos. II. Lógica No Monótona: Es aquella en la que se admite la incorporación de nuevos conocimientos en la base de hechos aunque estos entren en contradicción con los ya existentes. Según la temporalidad: I. Lógica Atemporal: Es aquella en la que no se considera el tiempo, cuando los hechos son para siempre en el valor inicial.II. Lógica Temporal: Es aquella que considera el tiempo. Los valores pueden cambiar en el transcurso del tiempo. 71 Según el tipo de valores que admite: I. Lógica de Orden 0 o Lógica de las Preposiciones: Solamente admite valores. Permite representación de parejas o duplas del tipo Objeto-Valor. II. Lógica de Orden 0+: Este tipo de lógica permite la representación de ternas del tipo Objeto-Atributo-Valor y se considera un caso particular de las redes semánticas. Cuando se utiliza este tipo de lógica se necesita otro sistema para completarla, siendo la más empleada en los sistemas de desarrollo actuales. III. Lógica de Orden 1: Utiliza predicados y es la más potente de las que se utilizan en la actualidad. h) Reglas de Producción: La regla es la forma más común de representar el conocimiento, tanto factual como procedimental, debido a su gran sencillez y a ser la formulación más inmediata del principio de Causa- Efecto. Una regla consta de un conjunto de acciones o efectos que son ciertas cuando se cumplen un conjunto de condiciones o causas. El “mundo” es una representación del conocimiento mediante reglas de producción y se hace mediante un conjunto de hechos que son ciertos y un conjunto de reglas de producción que muestran la forma de evolución de estos hechos. La conclusión suele referirse a la creación de un nuevo hecho válido o a la 72 incorporación de una nueva característica a un hecho, mientras que la acción suele referirse a la transformación de un hecho. Por ejemplo: HECHO: En mi jardín tengo una planta alta, verde y de tronco firme. REGLA 1: Un árbol es una planta alta, verde y de tronco firme. NUEVO HECHO: En mi jardín tengo un árbol. Existe una restricción de la sintaxis de las reglas de producción que se denomina Cláusulas de Horn y que establece que solo existe una conclusión por regla, la cual no puede aparecer negada. El conocimiento acerca de las reglas de producción que siguen esta misma estructura se denomina metarreglas, las cuales facilitan la resolución de los problemas, pues si la base de conocimientos es modular, entonces las metarreglas pueden inhibir parte de los módulos con lo que se hace más rápida la búsqueda de soluciones. Existen tres tipos de metarreglas: I. Ciegas: Son aquellas que contienen conocimiento sobre la estructura de las reglas, es decir, su sintaxis. Algunos ejemplos son elegir la regla más corta, elegir la primera regla, elegir la regla con mayor peso, elegir la regla utilizada más recientemente, etc. 73 II. No ciegas o Inteligentes: Son aquellas que contienen conocimiento sobre el contenido de las reglas, es decir, su semántica. Un ejemplo sería: Un árbol joven no es alto, por lo cual no es aplicable la regla 1. III. Estratégicas: Consisten en la ejecución de algoritmos o procedimientos para el control de los procesos. De esta forma se puede omitir el metaconocimiento. Pero un sistema así no sería declarativo sino procedimental porque en la base de conocimientos se incluiría algoritmos y procedimientos que limitan la independencia de la misma derivando en una programación tradicional no concordante con los sistemas expertos. i) Redes Semánticas: También se les conoce como redes asociativas. Representan el conocimiento gráficamente mediante nodos (elementos del conocimiento o conceptos) y ramas (relaciones entre los nodos, bien sea de herencia o de descripción. En cualquier caso, como sólo pueden ser verdaderas o falsas, estas relaciones son binarias). Su concepción se basa en la asociación de conocimientos que realiza la memoria humana. Al igual que las reglas de producción, pueden transformarse en una lista con facilidad. Emplean la herencia de las propiedades asociadas a un nodo, la cual nos dice que cualquier propiedad verdadera para una clase de elementos, debería ser cierta para cualquier elemento de la clase; las propiedades salen descendiendo a niveles más bajos conectados a través de enlaces de herencia de propiedades, por lo cual se pueden representar como 74 taxonomía. En cuanto al razonamiento, este generalmente es directo porque se puede hacer sencillamente rastreando los enlaces en el sistema (ver figura 2). Alto Tronco (es) (tiene) Pino Árbol Planta Raiz (es) (es) (tiene) (HERENCIA) (tiene) Hojas Figura 2. EJEMPLO DE RED SEMÁNTICA (Sánchez y Beltrán, 1990, p.74) Nota: La red crece al incluir el nuevo hecho “El pino es un Árbol”. De aquí se puede deducir varios hechos: (a) Un árbol es una planta alta, (b) Una planta tiene tronco, hojas y raíz, y entonces (c) Un pino es alto y tiene tronco, hojas y raíz. Las ventajas de las redes semánticas son su potencia al definir relaciones y su especial adaptación a sistemas interactivos, mientras que sus desventajas son su poca flexibilidad que dificulta las modificaciones y la complejidad que encierra su lectura cuando la base de conocimientos es grande. 75 En conclusión, la consideración más importante al examinar y comparar distintos esquemas de representación del conocimiento es el uso que se va a hacer del mismo. Los objetivos del sistema experto se pueden describir en términos de tareas cognoscitivas, como el conocimiento de objetos, respuestas a preguntas y manipulación de robots. Pero el uso actual del conocimiento en estos sistemas está relacionado con: a) Adquisición de más conocimiento: No sólo tiene que ver con la adquisición de conocimiento sobre algo desconocido, sino también con la ampliación de lo que ya SE conocía, ya que, cuanto más se sabe de un tema, más fácilmente se aprenden cosas adicionales del mismo, lo que constituye un proceso incremental. b) Recuperación de hechos de una base de conocimiento para resolver un problema determinado. Qué conocimiento es relevante para un problema dado puede llegar a ser crucial cuando el sistema conoce muchas cosas diferentes. c) Razonamiento: Cuando se requiere que el sistema haga algo que no se le ha dicho explícitamente cómo hacer, debe razonar. Según Silverman (1987, p.p.410-416) existen diferentes tipos de razonamiento que son los siguientes: 76 I. Razonamiento formal: Implica la manipulación sintáctica de estructuras de datos para deducir otras nuevas siguiendo reglas de inferencia específicas. Este tipo de razonamiento se utiliza en la lógica matemática. II. Razonamiento procedural: Usa simulación para responder cuestiones y resolver problemas. Por ejemplo, cuando se usa un programa para conocer cuánto suma 3 y 7 se usa un razonamiento procedural de aritmética. III. Razonamiento por analogía: La idea es que el sistema puede establecer una analogía entre objetos para responder cuestiones sobre uno basándose en el conocimiento que se tiene de otro. IV. Razonamiento por generalización y abstracción: Si varias reglas con diferentes premisas tienen la misma conclusión, se puede resumir que todas las premisas pertenecen a un género común. V. Metanivel de razonamiento: Usa el conocimiento acerca de lo que se conoce y de la importancia de ciertos hechos. 77 12.- Propiedades de la Representación del Conocimiento. Las propiedades que debe poseer un buen sistema de representación del conocimiento son las siguientes: a) Capacidad de respuesta: Todos los tipos de conocimiento que son necesarios en ese dominio. b) Capacidad de manejar las estructuras representacionales, de tal manera que pueden derivarse nuevas estructuras que se correspondan en el nuevo conocimiento inferido del anterior. c) Capacidad de incorporar a la estructura del conocimiento información adicional que puede ser usada para centralizar la atención del mecanismo inferencial en la dirección másprometedora. d) Capacidad de adquirir fácilmente nueva información. El caso más simple se refiere a la inserción directa por una persona de nuevo conocimiento. e) Sencillez: Debe ser manipulable con facilidad, ocupar poco espacio de memoria y poder leerse con comodidad. 78 f) Independencia: Con el fin de que su inclusión, modificación o exclusión de una unidad de conocimientos no afecte al resto de la base de conocimientos ni al resto del sistema experto. g) Facilidad de Modificación: El experto humano o el usuario final puede variar por sí mismo, si fuese necesario, la base de conocimientos sin que para ello tenga que recurrir a un programador. h) Transparencia: Debe poder soportar un sistema de justificación de las soluciones y de explicación de los procesos. El proceso de explicación y justificación en la práctica se suele realizar de alguna de estas formas: (a) aprovechando los mecanismos de traza o seguimiento que suelen encontrarse como utilidad del lenguaje o de la herramienta, (b) con un conjunto de reglas paralelas o bien (c) introduciendo durante las pruebas de las reglas indicadores de inicio y final con éxito de las pruebas. i) Relacionabilidad: Debe permitir establecer relaciones entre los conocimientos como pueden ser de ascendencia o en grupo. j) Potencia: Viene dada por el poder expresivo de la representación y por su eficiencia en el cálculo. La máxima se conseguiría con el lenguaje natural y el lenguaje de máquina, respectivamente. 79 13.- Técnicas de Representación del Conocimiento. Se han desarrollado varias técnicas de representación de conocimiento, que cumplen estos objetivos o prioridades. Estas técnicas pueden dividirse en dos grandes tipos de métodos: a) Métodos declarativos: En este tipo la mayoría del conocimiento se representa como una colección estática de hechos, acompañada por un conjunto de procedimientos generales para manipularlos. Sus ventajas son: I. Cada hecho sólo necesita almacenarse una vez, con independencia del número de formas distintas en que puede usarse. II. Es fácil añadir nuevos hechos al sistema sin cambiar los hechos conocidos. Esto proporciona a los sistemas de este tipo más flexibilidad y economía de recursos y medios, certidumbre en las deducciones y modificabilidad. Ejemplo de esta clase de representación son las redes semánticas, marcos y guiones. b) Métodos Procedurales: En este tipo de representación, la mayoría del conocimiento se representa por procedimientos para el uso del mismo. 80 Sus principales ventajas son: I. Facilidad de representar el conocimiento de cómo hacer las cosas. II. Facilidad de representar el conocimiento que no se ajusta bien en muchos esquemas declarativos simples, tal como sucede con el conocimiento defectuoso o probabilístico. III. Facilidad para representar el conocimiento humanístico de cómo hacer cosas eficientemente. Como ejemplo de este sistema se encuentra el SHRDLU, que explota un pequeño campo de conocimiento declarativo de hechos simples, representando su entendimiento como un conjunto de operaciones que hay que realizar cuando sea necesario. 14.- Técnicas de Funcionamiento de un Motor de Inferencias. a) Resolución con Cláusulas Fundamentales: La resolución forma la fundamentación de muchos sistemas lógicos. El primer paso es reducir las relaciones de su forma normal a la formal normal conjuntiva, una forma estándar que permite la manipulación 81 mecánica. Este proceso de conversión se basa en el empleo de expresiones de equivalencia. Cuando se aplica el proceso de conversión a un conjunto de relaciones en su forma normal, se produce un conjunto de cláusulas, cada una de las cuales es una disyunción finita de literales. Cada una de las cláusulas resultantes se llama un conyunto porque el conjunto total se puede ver como una gran conjunción: todas las cláusulas están unidas con secuencias Y, dado que todas ellas requieren ser verdaderas simultáneamente. La expresión final se divide luego en conjuntos separados. Como todas las cláusulas están unidas, se puede operar indistintamente sobre cualquier combinación de conjuntos. Este proceso, que se denomina Resolución de Cláusulas, puede generalizarse de esta manera: I. Negar la proposición deseada (llamada el objetivo) y agregarla al conjunto de relaciones en su forma normal para conformar un nuevo conjunto. II. Convertir el conjunto de relaciones en su forma normal a forma normal conjuntiva. III. Repetir hasta que se produzca nada o hasta que ningún otro proceso sea posible: 82 • Seleccionar dos cláusulas principales que contengan el mismo literal, una vez en forma positiva y otra vez en forma negativa. • Formar una nueva cláusula mediante la disyunción de secuencias “o” de todos los literales a partir de las cláusulas principales, excepto por la pareja cancelada. b) Unificación: Es el proceso formal de determinar si dos literales se pueden convertir para emparejarse idénticamente. El proceso de unificación hace énfasis en la sustitución de los términos –variables, constantes o expresiones de función (un símbolo de función y los términos asociados) –por variables en los literales. Una instancia de sustitución de un literal resulta de tal sustitución. Un conjunto específico de sustitución es un conjunto de pares ordenados tal que el primer elemento es el nuevo artículo y el segundo elemento es la variable por la cual es sustituido. El proceso de unificación puede ser visto como un proceso de emparejamiento de los elementos en dos listas para determinar si hay algún conjunto de sustitución que haría las listas idénticas. Se resume de la siguiente manera: 83 I. Representar cada predicado como una lista en que el símbolo del predicado es el primer elemento, que está seguido por los argumentos del predicado en orden. II. Abandonar si las dos listas no tienen la misma longitud. III. Hacer una comparación por parejas de los elementos en la lista mediante el empleo de las siguientes reglas: • Los símbolos de predicados, los símbolos de funciones y las constantes deben emparejar exactamente. • Las variables deben emparejarse por sustitución. Cuando se encuentre una variable, debe reemplazarse y todas las subsecuentes ocurrencias de ella en la lista, con el correspondiente elemento a partir de la otra lista. La única restricción de este aparejamiento es que una variable no puede ser reemplazada por un término que contenga la misma variable, para prevenir ciclos infinitos. IV. Los dos predicados se pueden unificar si todos los elementos se emparejan. 84 c) Resolución en Lógica de Predicados. Es la misma que la técnica de unificación, excepto que: I. Dos literales deben ser unificados antes que se puedan cancelar. II. Las sustituciones hechas para lograr la unificación dentro de una cláusula deben ser elaboradas a través de la cláusula completa, no solamente en el literal que está siendo unificado. 15.- Aspectos a Considerar en la Adquisición de Conocimientos. a) Interacciones Experto – Ingeniero de Conocimientos. El ingeniero de conocimientos es quien realmente construye el sistema, aunque es el conocimiento del experto el que se está modelando. En este proceso el ingeniero de conocimiento actúa como un intermediario quien espera catalizar dicho proceso llevando el conocimiento del experto al sistema. Como consecuencia, el ingeniero de conocimientos debe ser muy cuidadoso para reflejar objetivamente el conocimiento del experto El primer paso es la comprensión del dominio, que es un período de familiarización general (ver figura 3). Comienza con una reunión informal 85 entre el ingeniero de conocimiento y elexperto. Los propósitos de esta reunión son establecer una armonía entre el experto y el ingeniero de conocimientos a través del respeto mutuo, proporcionar al ingeniero de conocimientos un panorama de muy alto nivel del dominio y poner al corriente al experto con conceptos de sistemas expertos. Durante este período el ingeniero de conocimientos debe desarrollar una visión global del dominio con la ayuda de documentos de referencia, material de entrenamiento, videocintas, etc. No debe solicitar al experto la información básica que puede obtener leyendo. Posteriormente, de este estudio debe resultar una descripción general del problema, una bibliografía con referencias importantes y un glosario que describa el lenguaje del dominio y su vocabulario. Siempre que sea posible el ingeniero de conocimientos debe usar el lenguaje natural del dominio cuando trabaje con el experto. El siguiente paso es la identificación de los problemas de muestra (ver figura 3) a ser usados en la implementación inicial (prototipo de demostración). Debe efectuarse un análisis de primero-amplitud que identifique una lista de problemas genéricos que sirven para circunscribir el espacio global del problema. De esta lista global se seleccionan varios problemas específicos, los cuales son identificados conjuntamente por el ingeniero de conocimientos y el experto. 86 A continuación comienzan en paralelo las tres actividades más críticas, que son la formulación conceptual, la implementación de los problemas del ejemplo y el desarrollo de la representación de conocimientos (ver figura 3). La implementación del problema de ejemplo es conducida por el ingeniero de conocimientos quien entrevista al experto con la actividad de solución de problemas. La estructura de conocimientos que se empleará para representar los conceptos de desarrollo y el conocimiento de la solución de problemas toma parte según avancen otros procesos. Cuatro dificultades básicas pueden presentarse durante estas actividades: I. El experto puede no tener el conocimiento requerido en alguna área. II. El experto puede no estar consciente del conocimiento requerido. III. El experto puede no estar en capacidad de comunicar el conocimiento al ingeniero de conocimientos. IV. El experto puede no estar en capacidad de estructurar el conocimiento para entrarlo a la base de conocimientos. 87 Figura 3. PROCESO DE ADQUISICIÓN DE CONOCIMIENTOS (Rolston, 1990, p.156). Nota: La selección e implementación del problema esencial conforman el análisis crítico a profundidad b) Comportamiento Cognoscitivo. El desempeño experto es un ejemplo de comportamiento cognoscitivo, ya que con frecuencia no se sigue el razonamiento lineal que aparece en los textos. En general, los expertos tienden a usar un método más orientado hacia patrones que se basan en el reconocimiento rápido de poderosos bloques o grupos de conocimientos. Esta característica, que en muchos dominios es la clave de la pericia, resulta del hecho de que el experto ha desarrollado, a través de muchos años de experiencia, un repertorio amplio de conocimiento compilado que se almacena subconscientemente. Esto, Comprensión del Dominio Identificación del problema de Ejemplo Formulación Conceptual Implementación del Problema de Ejemplo Desarrollo de Representación del Prototipo Implementación del Prototipo Selección del Problema Esencial Implementación del Problema Esencial 88 aunque le agrega potencia a las capacidades del experto, también le hace más difícil explicar las acciones que efectúa para solucionar los problemas. c) Técnicas de Adquisición de Conocimientos. I. Descripción: En esta forma, que es una de las más apropiadas para las etapas iniciales del proyecto, el experto presenta una descripción estructurada del dominio. Esta clase de presentación, que es similar a la que se ofrece en los textos, es buena para establecer la información fundamental. Sin embargo, es de valor restringido para el desarrollo del sistema real, principalmente porque presenta versiones idealizadas de las actividades de solución de problemas y con frecuencia omite información referente a las estrategias. II. Observación: En este caso el ingeniero de conocimientos observa al experto durante situaciones reales de solución de problemas. Esta actividad, que es la más valiosa después que el ingeniero de conocimientos ha establecido un nivel razonable de competencia en el dominio, permite observar detalles en un ambiente totalmente real. III. Introspección: En este modo de interacción, que normalmente se presenta con la entrevista del ingeniero de conocimientos al experto, se conduce una evaluación crítica de las situaciones de solución de problemas. 89 Todas las tres formas de interacción ocurren durante cualquier proyecto de desarrollo y progresan en el orden señalado. d) Implementación de Problemas de Ejemplo. Debe efectuarse un análisis de problemas específicos, de arriba hacia abajo en orden jerárquico, tal que el dominio total sea fraccionado en subsistemas manejables. Se pueden aplicar varias técnicas de análisis. De entre ellas las más utilizadas son: I. Descomposición dirigida a objetivos: En ella, el ingeniero de conocimientos hace énfasis en la identificación de qué objetivo se está tratando de alcanzar en cada paso. II. Simulación de escenarios hacia delante: Ocurre cuando el ingeniero de conocimientos ayuda al experto a mantener una visión global y le extrae los conocimientos, ya que éstos son generativos a través de relaciones asociativas. Se comienza seleccionado una clase específica de problemas para proporcionar el contexto necesario para la investigación. Luego se hacen preguntas generales. La primera explicación debe ser general porque se hacen preguntas de arriba hacia abajo. La segunda debe comenzar a formular bloques de conocimientos. La tercera y subsiguientes deben clarificar los detalles. En cualquier caso, la comprensión debe ser 90 completa y exacta. Si el cualquier punto el ingeniero de conocimientos no entiende el enunciado del experto, debe pedirle claridad y anotarlo para su solución en una pasada posterior. El ingeniero de conocimientos debe hacer preguntas de sondeo hasta que se determine un nivel de detalle satisfactorio. Posteriormente el conocimiento adquirido debe restablecerse y pedirle al experto que lo confirme, valiéndose de grabaciones de las sesiones de consulta. Esto también permite posponer el análisis crítico de otros puntos detallados. Normalmente toma hasta cuatro horas analizar en detalle una entrevista de una hora. e) Formulación Conceptual. En ella deben identificarse las subtareas que abarca el dominio. Las estrategias del dominio son más difíciles de articular por el experto que los conocimientos fácticos. Como consecuencia, el ingeniero de conocimientos debe estar activamente involucrado en el reconocimiento de las estrategias que son descritas indirectamente por el experto durante las entrevistas. También debe determinar qué clases de incertidumbre están vinculadas en el dominio y cómo se procesan (identificar las heurísticas que emplea el experto para limitar la búsqueda). Por otro lado, para atar el conocimiento conceptual con el obtenido del experto, se debe descubrir el modelo en que se basa para el dominio. 91 Muchas veces éste se puede descubrir mediante la búsqueda de analogías entre el tema del dominio y otros dominios que se han entendido por completo. Si varias descripciones de solución de problemas son muy similares, debe tratarse de encontrar algún concepto que actúe como unificador detrás de ellas. f) Desarrollo de la Representación de Conocimientos.
Compartir