UN SISTEMA EXPERTO PARA EL DESARROLLO

Anuncio
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á[email protected]
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
Descargar