ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época UN SISTEMA EXPERTO PARA EL DESARROLLO DEL PROCESO DOCENTE EDUCATIVO DE LA DISCIPLINA INTELIGENCIA ARTIFICIAL IMPLEMENTATION OF AN EXPERT SYSTEM USING PROLOG FOR THE DEVELOPMENT OF THE EDUCATIONAL PROCESS OF THE DISCIPLINE OF ARTIFICIAL INTELLIGENCE Autor: Reyder Cruz de La Osa. Universidad de Ciencias Informáticas.reyder@uci.cu RESUMEN Una inquietud frecuente en los estudiantes de la asignatura Inteligencia Artificial 2 ha sido el hecho de no percatarse durante el desarrollo de las clases de las aplicaciones prácticas del contenido teórico desarrollado. Dicha inquietud ha dado lugar a la necesidad de implementar un sistema experto utilizando las ventajas del lenguaje simbólico PROLOG, lo que ha conllevado a una mejor asimilación de los temas relacionados con los sistemas basados en el conocimiento. PALABRAS CLAVE: sistemas expertos, sistemas basados en el conocimiento, Prolog, inferencia, lenguaje simbólico. ABSTRACT A frequent doubt of students in Artificial Intelligence 2 has been the fact of no seeing during the class development of practical use of the theoretical content of the lessons. Because of that, appears the necessity of the implementation of an expert system using the advantages of the symbolic language Prolog, reaching a better understanding of the subjects related with knowledge-based systems. KEYWORDS: experts systems, knowledge-based systems, Prolog, inference, symbolic language. INTRODUCCIÓN En los años 80 del pasado siglo se destacó en el campo de la Inteligencia Artificial (IA) una pasión desbordada por la implementación de sistemas expertos (SE). En dicho momento se enfatizó dicha vertiente como el futuro de la disciplina, y hubo resultados 1 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época muy alentadores y deslumbrantes como la aplicación del sistema MYCIN en los diagnósticos médicos y el sistema PROSPECTOR para la detección de yacimientos minerales estratégicos. Los SE (sistemas expertos) son complejos programas de IA que utilizan diversas técnicas para representar el conocimiento, sin embargo, la forma más utilizada es un conjunto de Reglas de Producción (RP). Las reglas de producción son tan usadas que en ocasiones los términos SE y Sistemas Basados en Reglas de Producción (SBRP) se usan indistintamente. Un SBRP es un Sistema Basado en Conocimientos (SBC) que usa las RP como formalismo de representación del conocimiento. Debido a la importancia que revisten los sistemas expertos como parte emblemática de la historia de la disciplina Inteligencia Artificial, así como la gran vigencia de que dispone aún dicho campo de investigación para su aplicación en diferentes ramas de la economía, no deja de formar parte en todos los planes de estudio de IA a nivel internacional. En la Universidad de las Ciencias Informáticas (UCI) se aborda dicha temática en la asignatura Inteligencia Artificial 2 como parte del tema Formas de Representación del Conocimiento. Se hace un énfasis especial en los SBRP, sobre los cuales se profundiza en la máquina de inferencia y las formas que existen de realizar el proceso inferencial (encadenamientos hacia delante y hacia atrás). Tradicionalmente este tema se ha enfocado muy teóricamente, o sea, se muestran en conferencia ejemplos de reglas de producción en dominios determinados, como el sistema Zookeper (Winston, 1996) basado en clasificación de animales, a partir de los cuales el estudiante realiza un encadenamiento hacia delante (forward chaining) o hacia atrás (backward chaining). El estudiante plantea como inquietud el no ver en la práctica el funcionamiento de dichos sistemas basados en reglas. Es por ello que surge la necesidad de incluir actividades de laboratorio donde los alumnos puedan interactuar con algún sistema experto implementado y que puedan ver la utilidad de dichos sistemas en problemas específicos. A partir de la situación previamente planteada surge el problema siguiente: ¿cómo fomentar en el estudiante la motivación desde un punto de vista práctico hacia el 2 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época contenido de sistemas basados en reglas abordado en la disciplina Inteligencia Artificial? Para solucionar dicho problema se traza como objetivo general la implementación de un sistema experto basado en reglas de producción para su posterior utilización en un laboratorio de la asignatura Inteligencia Artificial 2. Se pretende que la utilización en clases de dicho sistema experto facilite en el estudiante la asimilación de los contenidos relacionados con los sistemas basados en reglas. Se persigue además la vinculación intradisciplinar al realizar la implementación de dicho sistema sobre el lenguaje PROLOG, el cual conocen los alumnos desde la asignatura anterior de la disciplina (Inteligencia Artificial 1) y del que podrán ver una de sus disímiles utilidades, gracias a su poder de representación como lenguaje simbólico (implementación de sistemas expertos). El presente artículo describe primeramente qué es un sistema experto, las partes que lo componen y las características de un sistema experto basado en reglas. En la siguiente sección se explican las características del sistema experto propuesto, implementado sobre PROLOG. Para finalizar, se exponen las experiencias adquiridas con la utilización en una actividad de laboratorio de dicho sistema experto y se analizan los resultados obtenidos. DESARROLLO Sistemas expertos Los Sistemas Expertos (SE) son sistemas que resuelven problemas que normalmente son solucionados por “expertos” humanos. El concepto más universalmente usado de lo que es un SE fue dado por Feigenbaum en 1977 y en esencia plantea que un SE es "un sistema de bases de conocimientos que pretende imitar el comportamiento de los expertos humanos en un dominio restringido". Para construir un SE debe crearse una base de conocimiento sobre un dominio determinado y utilizar uno o más mecanismos de razonamiento para aplicar el conocimiento a los problemas que el SE debe tratar, así como un mecanismo para explicar a los usuarios cómo se obtienen los resultados. En el concepto “Sistema Experto” es esencial el término “experiencia”, el cual aparece en muchos diccionarios con una definición más o menos similar a la siguiente: 3 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época Experiencia: Enseñanza adquirida con la práctica, o que porta la vida misma. Tiene un fondo intuitivo y se basa en ciertos aspectos del conocimiento racional. Los sistemas expertos constituyen el campo de la IA más conocido y representan la mayor parte de la IA aplicada. Un SE es un programa que acumula conocimiento o experiencia (experticia) humana en la solución de problemas, sobre todo en problemas difíciles. Los SE desarrollan tareas en las que son necesarias determinadas habilidades y conocimiento práctico. Un SE debe imitar las respuestas que debe dar un experto en un universo en cuestión. Este universo o tema del SE debe ser pequeño para lograr buena calidad en él. En esto debe servirnos de guía una frase de Emerson: “Un zapatero hace buenos zapatos debido a que él no sabe hacer nada más”. Los SE han navegado por numerosas etapas, alcanzando éxitos notables en muchas ramas, y han devenido el mejor ejemplo del impacto que pueden tener las técnicas exitosas de Inteligencia Artificial en la vida práctica. Hoy en día, la teoría de los SE ha alcanzado un nivel de madurez tal, que hacen de ella la técnica de IA más segura y conocida para resolver muchos problemas, teniendo conocimiento bastante claro de sus ventajas y desventajas. Estructura de un sistema experto Un paso importante en el desarrollo de los sistemas inteligentes, fue cuando se logró conceptuar la separación entre el conocimiento y la forma de trabajar con él (inferir). A partir de aquí, se definieron formas de representar conocimiento y de realizar razonamientos que podían usarse en distintos dominios, permitiendo llegar así a una abstracción mayor en el tipo de información que una computadora puede procesar. Estos elementos y esta abstracción se observan claramente en el esquema de los SE, ya que fueron precisamente estos sistemas unos de los fundamentales para lograr este resultado. Por esta razón, muchas personas utilizan indistintamente los términos SE y Sistemas de Bases de Conocimiento, a pesar que la misma definición de Feigenbaum establece la semejanza y la diferencia entre ambos conceptos. Recordemos que esta 4 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época definición dice que un SE es "un sistema de bases de conocimientos que pretende imitar el comportamiento de los expertos humanos en un dominio restringido". Un SE está compuesto por tres elementos fundamentales: Base de Conocimientos (BC) Máquina o Motor de Inferencia (MI) Interfaz En una BC existen conocimientos complejos de forma explícita formando una colección de hechos simples y de reglas generales representando algún universo. Un primer ejemplo de esta representación es en un programa Prolog, donde aparecen explícitamente hechos (ej: los hecho "prog") y reglas (ej: "abuelo", "tio"). Estas reglas están explícitas y no ocultas o enmascaradas dentro de los códigos de los programas. Es por ello que Prolog se perfila como un lenguaje muy apropiado para la implementación de sistemas expertos. Al igual que en los Sistemas de Bases de Datos, los SBC deben permitir almacenar y recuperar hechos, así como hacer inferencias sobre estos. En este sentido, los SBC y los SE tienen una estrecha vinculación con las BD Deductivas, que constituyen un tópico avanzado dentro de las BD. La MI varía su procedimiento de trabajo en función de la forma usada para representar el conocimiento. Esto quiere decir que la manera de inferir nuevos conocimientos en una Base de Conocimiento representada a través de Reglas de Producción es muy diferente a los mecanismos usados en una representación basada en otros formalismos como podrían ser las Redes Semánticas, los Frames o la misma Lógica Matemática. Lo más importante aquí es reconocer que la función de la MI es obtener nuevo conocimiento que no existe explícitamente en la BC, infiriéndolo a partir de lo que sí está representado y de otras inferencias que se hayan hecho antes. La interfaz de un SE cumple un papel muy importante ya que es la cara del sistema. No debe ocurrir que un SE sea parecido a esos "genios", que son personas que saben mucho, pero que nadie es capaz de entenderlos. Debe tenerse en cuenta que la razón 5 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época de ser de un SE es para simular un experto humano. Por ejemplo el sistema BLAH (Weiner 80) es el resultado de un estudio de las respuestas humanas y hacía énfasis en sus capacidades explicativas. MYCIN también impactó por sus capacidades de explicación. Sistema experto Zookeper Zookeper es un sistema basado en reglas que tradicionalmente se utiliza como ejemplo en las clases de Inteligencia Artificial relacionadas con el tema de sistemas basados en conocimiento. Aparecen las reglas descritas en el libro Inteligencia Artificial, del autor Patrick Henry Winston, uno de los fundadores de dicha rama de la computación. A través de un conjunto de reglas, el sistema es capaz de identificar un animal, a partir de evidencias proporcionadas a este que describen características del animal en cuestión. Para ello debe realizar un proceso de inferencia, que puede apoyarse en un mecanismo de encadenamiento hacia adelante o hacia atrás. El sistema propuesto en el presente trabajo realiza la implementación de ambos mecanismos de inferencia sobre Prolog. El estudiante al disponer del sistema en sus manos, puede introducirle un conjunto de datos a través de un menú amigable proporcionado por la aplicación, y seleccionar además el mecanismo de inferencia que quiere utilizar para dar una respuesta. Para implementar dicho sistema, se utilizan herramientas de una gran potencia expresiva que proporciona Prolog, tales como los operadores, a la hora de definir las reglas, y las cláusulas dinámicas para permitir agregar dinámicamente a la base de hechos, las evidencias que proporciona el usuario. A continuación se presenta cómo está implementado el menú, así como una pequeña muestra de la base de reglas: :-op(800,fx,si). :-op(700,xfx,entonces). :-op(300,xfy,o). 6 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época :-op(200,xfy,y). :-dynamic hecho/1. inicio:-nl, nl,write('Sistema basado en reglas Zookeeper'),defineHechos, nl,write('Escoja tipo de encadenamiento a utilizar en la inferencia'), nl,write('Opciones'), nl,write('1 ----- Hacia delante'), nl,write('2 ----- Hacia atrás'),nl, read(X),procesa(X). defineHechos:-nl,write('Escriba evidencia '),nl,read(T),defineHechos(T). defineHechos(fin). defineHechos(X):assert(T), defineHechos. T=..[hecho,X], procesa(1):-hacia_delante. procesa(2):-nl,write('Escriba la hipótesis a demostrar '),read(P),nl,es_verdad(P). si plumas y vuela y pone_huevos entonces ave. simamifero y come_carne entonces carnivoro. simamifero y dientes_agudos y garras y ojos_que_miran_hacia_delante entonces carnivoro. sicarnivoro y color_leonado y manchas_oscuras entonces onza. Como se puede apreciar, las evidencias introducidas por el usuario que deben unificar por los antecedentes de las reglas descritas en la base de conocimiento, se añaden dinámicamente a dicha base como cláusulas de functor hecho y un solo argumento, que es la evidencia en cuestión. En el laboratorio se le explica al estudiante cómo introducir las evidencias (utilizando el símbolo _ en lugar de los espacios en blanco), así como las evidencias de que se va a disponer para interactuar con el sistema. Ya los estudiantes se encuentran familiarizados con dicha base de conocimientos puesto que 7 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época ejecutaron a mano los mecanismos de inferencia hacia adelante y hacia atrás sobre las reglas de Zookeper, aunque no tienen idea de cómo realizar la implementación de dicha inferencia en algún lenguaje procedural o descriptivo. Prolog debido a su semántica descriptiva y su representación simbólica, es de una gran fuerza expresiva para la implementación de los mencionados mecanismos que realiza el motor de inferencia. Es muy provechoso para el estudiante ver este sistema, puesto que relacionan lo visto anteriormente en Inteligencia Artificial 1 durante el primer tema, o sea, el trabajo con Prolog, vinculado al contenido de SBC que se desarrolla durante el primer tema de Inteligencia Artificial 2. De esta manera se contribuye a la vinculación intradisciplinar y se ve la utilidad práctica de lenguajes descriptivos dentro de la Inteligencia Artificial. Análisis de la aplicación del sistema Zookeper en el laboratorio Después de realizado el laboratorio con el sistema de reglas sobre Prolog, se pudieron identificar las siguientes ventajas: Todos los estudiantes se sintieron muy motivados con la utilización del sistema experto basado en reglas. Les interesó mucho la forma de poder utilizar Prolog para la implementación de sistemas expertos. Asimilaron de una forma didáctica y entretenida los mecanismos de inferencia que adopta un sistema basado en reglas para dar una posible respuesta. En las encuestas PNI realizadas a los estudiantes al concluir el laboratorio se recogieron los siguientes resultados: Como aspectos positivos, señalan que han aprendido cosas útiles para su formación y para la vida por enfrentarse a problemas más reales y no académicos. La documentación está acorde con sus necesidades y con buena calidad. Les gustó 8 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época mucho el poder ver una utilidad práctica de PROLOG en la implementación de sistemas expertos. Como aspectos negativos, señalaron la mala situación técnica en la que se encontraba el laboratorio (máquinas que no funcionaban, falta de climatización). Entre los aspectos interesantes destacan principalmente algunos de los recursos utilizados para la implementación del sistema Zookeper, tales como los operadores (la definición de operadores y su precedencia no la ven en el tema de PROLOG de IA1). Otro de los logros que se evidencian está dada por la calidad de las respuestas que se brindan a las preguntas de las pruebas parciales que abordan el tema. A pesar de que se haya elevado el nivel de complejidad de estas y de incluir otros contenidos que anteriormente no se trataban como las formas de representación del conocimiento, se mantienen los mismos índices de promoción del 80% en dicho tema. CONCLUSIONES En el presente trabajo se ha descrito un sistema experto implementado sobre Prolog como una herramienta de apoyo a la enseñanza de sistemas basados en el conocimiento en la asignatura Inteligencia Artificial 2. Con dicha aplicación se ha logrado una mayor motivación por parte de los estudiantes y mejorar los resultados en la calidad del aprendizaje de este tema. Los estudiantes valoraron muy positivamente la actividad desarrollada en el laboratorio con la utilización del sistema implementado, apreciando además las ventajas del lenguaje Prolog visto en el semestre anterior para la definición de bases de conocimiento y de mecanismos de inferencia en sistemas expertos. Se recomienda el perfeccionamiento del sistema, con una interfaz de usuario más amigable, quizá mediante la vinculación con otros lenguajes de programación, así como la posible inclusión del tratamiento de la incertidumbre. 9 ISSN 1607 – 5888 REVISTA CIENCIAS PEDAGÓGICAS No.2, Año 2015, 3ra Época Como conclusión final se puede afirmar que se han obtenido mejores resultados con la utilización en las actividades de laboratorio del sistema experto Zookeper implementado sobre el lenguaje declarativo Prolog. BIBLIOGRAFÍA Álvarez de Zayas, Carlos; Sierra Lombardía, Virginia. La universidad de excelencia. Versión Electrónica. GEDES. UPR. Chávez Rodríguez, Justo; Suárez Lorenzo, Amparo; Permuy González, Luis Daniel. Un acercamiento necesario a la Pedagogía General. ICCP-2003. Colectivo de autores. Preparación pedagógica integral para profesores universitarios. Editorial Félix Varela, 2003. Crevier, Daniel. Inteligencia Artificial. Acento Editorial, 1996. Gálvez Lio, Daniel. Curso de Sistemas Basados en el Conocimiento. Universidad Central de Las Villas, Grupo de Investigación de Inteligencia Artificial, 1998. Raynor, William. The International Dictionary of Artificial Intelligence. Amacom, 1999. Rich, Elaine; Knight, Kevin.Inteligencia Artificial, 2da.Edición.McGraw-Hill, 1994. Winston, Patrick Henry. Inteligencia Artificial. 2da. edición. Editorial Félix Varela, 1996. 10