Vous êtes sur la page 1sur 5

Sistema experto: Eleccin de jugadores de ftbol a partir de unas determinadas caractersticas seleccionadas.

Miriam Organista Ayala


Estudiante Ing. Telecomunicacin Universidad Carlos III de Madrid Avda. De la Universidad, 30 28911, Legans (Madrid-Espaa)

Sonia Muoz Bentez


Estudiante Ing. Telecomunicacin Universidad Carlos III de Madrid Avda. De la Universidad, 30 28911, Legans (Madrid-Espaa)

100055137@alumnos.uc3m.es

100047388@alumnos.uc3m.es

RESUMEN
En este documento se describe la utilizacin de JESS (versin Java de CLIPS) para la realizacin de un sistema experto. Este sistema nos permitir elegir cul es el mejor jugador de ftbol dadas unas ciertas caractersticas del mismo.

2. DESCRIPCIN DE LA NECESIDAD
Un ojeador de ftbol normalmente debe decidir segn una serie de caractersticas cul es el jugador de ftbol ms adecuado para sus objetivos. Este programa intenta dar respuesta a esta necesidad. Para ello, se tiene informacin sobre varios jugadores de ftbol. El usuario podr interaccionar con el programa respondiendo a una serie de preguntas sobre las caractersticas del jugador que busca. Y finalmente, el usuario recibir el nombre del jugador que ms se adeca a dichas caractersticas. De esta forma se facilita la bsqueda de un jugador que tenga unos requerimientos previos. Adems, como el sistema es capaz de aprender se puede ir ampliando el nmero de jugadores que se pueden ofrecer como solucin a la necesidad del usuario.

Categoras y Descriptores de Temas


I.2.1 [Computing Methodologies]: Artificial Intelligence Applications and Expert Systems; I.2.4 [Computing Methodologies]: Artificial IntelligenceKnowledge Representation Formalisms and Methods;

Trminos generales
Algoritmos, Documentacin, Diseo, Lenguajes, Teora.

Palabras clave
Inteligencia artificial, Sistema Experto, Clasificacin, Jugador de Ftbol, Eleccin de Jugador, CLIPS, JESS.

3. SISTEMA EXPERTO
Un sistema experto es un sistema que resuelve problemas utilizando una representacin simblica del conocimiento humano. Para ello, el sistema experto representa y utiliza conocimiento especializado en un determinado dominio. En nuestro caso, ser conocimiento sobre jugadores de ftbol. Adems, es capaz de razonar de tal forma que muestra un comportamiento similar al que tendra un experto en la materia. En nuestro caso, un ojeador de ftbol. Para lograr su objetivo, representa el conocimiento de manera simblica y manipula dichos smbolos. De esta forma, obtiene un alto rendimiento en el dominio en el que es experto (en este ejemplo, los jugadores de ftbol). Los sistemas expertos hacen una separacin entre el conocimiento y la forma de utilizarlo. Adems, se basan en la naturaleza heurstica del conocimiento y no en algoritmos [2].

1. INTRODUCCIN
En Inteligencia artificial uno de los temas a tratar es el de los sistemas expertos. Mediante stos las mquinas que poseen cierta informacin base consiguen dar una solucin adecuada a la situacin planteada por el humano. Este campo de investigacin se inicio en la dcada de los 70. En el ao 1974 el profesor de la Universidad de Stanford Ted Shortliffe desarroll MYCIN, el cual es considerado el primer sistema experto de la historia. MYCIN consegua, mediante una serie de preguntas que se le haca a un humano, elegir un diagnstico adecuado de la enfermedad que sufra un paciente. ste sistema demostr el poder de los sistemas basados en reglas para la representacin del conocimiento y la inferencia en el dominio de los diagnsticos mdicos [1]. En el presente documento se describe un sistema experto sencillo parecido a MYCIN. El objetivo de este sistema es que la mquina sea capaz de decidir, segn las respuestas que obtiene de una serie de preguntas, cul es el jugador de ftbol ms adecuado de los que tiene conocimiento. Tambin es capaz de ampliar su conocimiento (aprender acerca de nuevos jugadores). Para realizar dicho sistema experto se har uso de la herramienta JESS (Extensin Java de CLIPS).

3.1 Arquitectura general de un Sistema Experto


El sistema experto est formado por las partes que se observan en la figura 1.

de inferencia que por el momento se han usado para la resolucin de dicho problema.

3.2 Software de implementacin


Existen distintas soluciones software para implementar sistemas expertos. Este documento se basa en una solucin utilizando JESS (extensin Java de Clips).

3.2.1 CLIPS
C Language Integrated Production System (Sistema de produccin integrado en lenguaje C), sistema creado por la NASA en 1986 como una herramienta para el desarrollo de Sistemas Expertos. Su objetivo era solventar los problemas existentes en el desarrollo con LISP. Aunque la interfaz que usa se parece mucho a LIPS. Es uno de los lenguajes ms utilizados ya que tiene una serie de caractersticas bastante ventajosas. [4] Figura 1. Estructura general de un sistema experto [3] Una de ellas es que CLIPS es integrable. Esto significa que puede ser embebido en cdigo imperativo. Adems puede ser invocado como una sub-rutina, para ser integrado con lenguajes como C, Java, FORTRAN, etc. Por otra parte, CLIPS tiene un lenguaje orientado a objetos (COOL). Otra caracterstica importante de CLIPS es su portabilidad. Al estar escrito en C, cualquier sistema operativo con un compilador ANSI de C o de C++ puede utilizarlo. Permite adems un desarrollo interactivo de sistemas expertos ya que incluye herramientas para la depuracin, ayuda en lnea, y un editor integrado (adaptadas para cada uno de los distintos Sistemas Operativos). Por otra parte, est creado para que puedan verificarse las reglas includas en el sistema experto que se est desarrollando. Adems, permite el diseo modular y el particionamiento de la base de conocimientos del sistema. CLIPS puede chequear restricciones de manera esttica y dinmica para funciones y otros tipos de datos. Por ltimo, CLIPS permite el anlisis semntico de reglas para prevenir posibles inconsistencias. Otra ventaja importante es que CLIPS es un software de dominio pblico. [5] CLIPS dispone de interfaces y herramientas como JESS (que se usa en el presente estudio) o FuzzyCLIPS (para lgica borrosa). CLIPS trabaja con reglas y hechos. Los hechos permiten que una regla sea aplicable. El encaminamiento de la verdad que hace CLIPS es hacia delante. Pero adems, permite aadir reglas, hechos y estrategias para la resolucin de conflictos de manera dinmica[4].

3.1.1 Motor de Inferencias


Sirve para obtener conclusiones utilizando la base de conocimientos. Para ello, aplica reglas sobre los hechos presentes. En este sistema se aplican las reglas de decisin sobre uno u otro jugador. Entre las funciones que realiza se encuentra la determinacin de las acciones que tendrn lugar y el orden en que se llevarn a cabo. Tambin determinar cmo y cundo se procesarn las reglas, y dado el caso tambin la eleccin de qu reglas debern procesarse. Adems, se encargar de controlar el dilogo con el usuario [2]. El fin ltimo del motor de inferencias es usar las reglas de las que dispone y crear un rbol de decisin que sirva para mostrar una solucin final al usuario.

3.1.2 Base de conocimiento


Contiene los hechos, reglas y procedimientos del dominio del sistema experto que son importantes para resolver el problema. La representacin de esta informacin debe ser coherente, sencilla, independiente, rpida, fcil de modificar, relacional, potente, modular y fcil de mantener [2].

3.1.3 Interfaz de usuario


Debe ser sencilla, rpida, fcil de entender y que evite la introduccin de datos incorrectos [2].

3.1.4 Subsistema de adquisicin


El conocimiento, es decir, las reglas, los hechos, las relaciones entre los hechos, etc., debe poder introducirse de la forma ms sencilla posible. Por esto la representacin de la informacin debe ser clara y la sintaxis debe poder comprobarse automticamente [2].

3.2.2 JESS
Java Expert System Shell CLIPS. es una consola en Java basada en Entre las caractersticas a destacar de JESS es su alta portabilidad, su potencia y su gran flexibilidad. En principio JESS fue creado para simular el ncleo fundamental de CLIPS. Pero, gracias a la importancia creciente de los sistemas desarrollados en Java, se ha convertido en una herramienta muy prctica para permitir dotar a los sistemas desarrollados en Java la capacidad de razonar. Una de las ventajas ms importantes que presenta es que puede interaccionar en el mundo web. Esto es posible gracias a que puede incluirse en applets o en navegadores. Esto es poco

3.1.5 Generador de explicaciones


Las soluciones dadas por los expertos deben ser repetibles por el usuario. Por ello, es importante saber el progreso de la resolucin de problema mientras se aborda. En esto se debe centrar el generador de explicaciones. Algunos sistemas representan estas explicaciones de forma grfica [2].

3.1.6 Memoria de trabajo


Mantiene la informacin de la resolucin de un problema en concreto que adquiere de la base de conocimiento y de las reglas

utilizada pues supone un gran carga y se prefiere ubicar el sistema experto en el servidor. Por ltimo, es lgico que JESS pueda utilizarse mediante la consola, o a travs de sistemas como la plataforma Eclipse que facilitan el desarrollo de programas Java [4].

Para empezar, hace una serie de preguntas sobre las caractersticas que el usuario quiere del jugador. Tras las respuestas del usuario el sistema le ofrece una posible solucin de entre las que tiene guardadas en el archivo .dat (ver Tabla 1). La informacin que se muestra sobre el jugador elegido es su nombre y el club donde est jugando actualmente (ej. Figura 4) En algunos casos, el programa tiene ms de un posible jugador con las mismas caractersticas. En stos, el usuario puede pedir que se le muestren las otra alternativas o no (ej. Figura 5 y Figura 6)

4. DISEO
Para realizar el sistema experto Malidini en JESS tuvimos que plantear cules seran las caractersticas que clasificaran a los jugadores. Con esas caractersticas se consegua que el programa desarrollado en JESS pudiera hacer, mediante su motor de inferencia, un rbol de decisin que permitiese resolver el problema propuesto.

4.1 rbol de decision


La primera decisin que se debe tomar al arrancar el programa es la posicin en la que juega el tipo de jugador que interesa. Dependiendo de qu tipo de jugador se haya elegido se pedirn o no ms caractersticas sobre l mismo (ver Figura 2). En cada hoja de este rbol hay una ltima caracterstica de eleccin comn para todas ellas. Esta es la nacionalidad del jugador. Se podr elegir, entre: Espaa, resto de Europa u otras nacionalidades (ej. Figura 3).

Figura 5. Ejemplo de las diferentes opciones dadas sobre un mismo tipo de jugador

Figura 3. Ejemplo de eleccin de nacionalidad

Por otra parte, si el usuario no est de acuerdo con ninguno de los jugadores elegidos por el sistema puede introducir el nombre de un nuevo jugador y la caracterstica que lo diferencia de los anteriores. (ej. Figura 7)

Figura 2. rbol de decisin utilizado

5. IMPLEMENTACIN
El programa sigue los siguientes pasos para llegar a un jugador adecuado.

Tabla 1. Relacin de Jugadores almacenados

Figura 4. Ejemplo de ejecucin bsica

Figura 6. Ejemplo de ejecucin con mltiples soluciones

Figura 7. Ejemplo de ejecucin ampliando el conocimiento del sistema Esto permite que el sistema pueda ampliar su base de conocimiento.

9. REFERENCIAS
[1] Villena Romn, Julio. 2009. Apuntes de la asignatura Inteligencia en Redes de Comunicaciones. Tema: Breve historia de la Inteligencia Artificial. Universidad Carlos III (Madrid, Espaa, 2009) DOI =
http://www.it.uc3m.es/jvillena/irc/

6. POSIBLES TRABAJOS FUTUROS


Se podra ampliar este trabajo aadiendo mayor informacin sobre el jugador o mayor nmero de jugadores. Tambin se podra distinguir entre los distintos jugadores con nuevas caractersticas como la edad, o el club en el que milita, la clusula de rescisin, etc. Por otra parte, se podra mejorar la interfaz grfica del programa.

[2] Villareal Farrah, Gonzalo. Apuntes de Sistemas Basados en Conocimiento o Sistemas expertos. Asignatura Inteligencia Artificial.DOI=http://www.comenius.usach.cl/gvillarr/cursoia/
present/Sis-Exp%20P2.ppt.

7. CONCLUSIONES
Se ha tratado de desarrollar un ejemplo sencillo de sistema experto utilizando JESS. El objetivo no era conseguir un sistema profesional ni muy especializado. Sin embargo, se ha demostrado que esta herramienta es muy potente para este tipo de sistemas. Por otra parte, se ha podido comprobar la utilidad que puede llegar a tener un sistema experto basado en conocimientos para la toma de decisiones sencillas. Por tanto, este tipo de sistemas tienen un amplio campo de aplicacin en diversas materias. Ya que, cualquier mbito en que se requieran soluciones software que permitan la toma de decisiones de manera fcil y rpida a partir de unos datos concretos de entrada puede utilizar un sistema experto.

[3] Villena Romn, Julio. 2009. Apuntes de la asignatura Inteligencia en Redes de Comunicaciones. Tema: Sistemas Basados en Conocimiento. Universidad Carlos III (Madrid, Espaa, 2009) DOI = http://www.it.uc3m.es/jvillena/irc/ [4] Gonzlez-Ripoll, P. y Lucas, L. 2008. Trabajo de la asignatura Inteligencia en Redes de Comunicaciones. Sistema Experto: Clasificacin de animales segn su taxonoma. Universidad Carlos III (Madrid, Espaa, 2008) DOI= http://www.it.uc3m.es/jvillena/irc/#7 [5] Gmez, A., Corroto, A. y Bermejo, I. 2008. Trabajo de la asignatura Inteligencia en Redes de Comunicaciones. Sistemas de Produccin en CLIPS. Universidad Carlos III (Madrid, Espaa, 2008) DOI=
http://www.it.uc3m.es/jvillena/irc/#7

8. AGRADECIMIENTOS
A Julio Villena Romn.