Sistema experto: Elección de jugadores de fútbol a partir de unas

Transcription

Sistema experto: Elección de jugadores de fútbol a partir de unas
Sistema experto: Elección de jugadores de fútbol a partir
de unas determinadas características seleccionadas.
Miriam Organista Ayala
Sonia Muñoz Benítez
Estudiante Ing. Telecomunicación
Universidad Carlos III de Madrid
Avda. De la Universidad, 30
28911, Leganés (Madrid-España)
Estudiante Ing. Telecomunicación
Universidad Carlos III de Madrid
Avda. De la Universidad, 30
28911, Leganés (Madrid-España)
[email protected]
[email protected]
RESUMEN
2. DESCRIPCIÓN DE LA NECESIDAD
En este documento se describe la utilización de JESS (versión
Java de CLIPS) para la realización de un sistema experto. Este
sistema nos permitirá elegir cuál es el mejor jugador de fútbol
dadas unas ciertas características del mismo.
Un ojeador de fútbol normalmente debe decidir según una serie de
características cuál es el jugador de fútbol más adecuado para sus
objetivos. Este programa intenta dar respuesta a esta necesidad.
Categorías y Descriptores de Temas
I.2.1 [Computing Methodologies]: Artificial Intelligence—
Applications and Expert Systems; I.2.4 [Computing
Methodologies]: Artificial Intelligence—Knowledge
Representation Formalisms and Methods;
Para ello, se tiene información sobre varios jugadores de fútbol. El
usuario podrá interaccionar con el programa respondiendo a una
serie de preguntas sobre las características del jugador que busca.
Y finalmente, el usuario recibirá el nombre del jugador que más se
adecúa a dichas características.
Algoritmos, Documentación, Diseño, Lenguajes, Teoría.
De esta forma se facilita la búsqueda de un jugador que tenga
unos requerimientos previos. Además, como el sistema es capaz
de aprender se puede ir ampliando el número de jugadores que se
pueden ofrecer como solución a la necesidad del usuario.
Palabras clave
3. SISTEMA EXPERTO
Términos generales
Inteligencia artificial, Sistema Experto, Clasificación, Jugador de
Fútbol, Elección de Jugador, CLIPS, JESS.
1. INTRODUCCIÓN
En Inteligencia artificial uno de los temas a tratar es el de los
sistemas expertos. Mediante éstos las máquinas que poseen cierta
información base consiguen dar una solución adecuada a la
situación planteada por el humano.
Este campo de investigación se inicio en la década de los 70. En el
año 1974 el profesor de la Universidad de Stanford Ted Shortliffe
desarrolló MYCIN, el cual es considerado el primer sistema
experto de la historia. MYCIN conseguía, mediante una serie de
preguntas que se le hacía a un humano, elegir un diagnóstico
adecuado de la enfermedad que sufría un paciente. Éste sistema
demostró el poder de los sistemas basados en reglas para la
representación del conocimiento y la inferencia en el dominio de
los diagnósticos médicos [1].
En el presente documento se describe un sistema experto sencillo
parecido a MYCIN. El objetivo de este sistema es que la máquina
sea capaz de decidir, según las respuestas que obtiene de una serie
de preguntas, cuál es el jugador de fútbol más adecuado de los que
tiene conocimiento. También es capaz de ampliar su conocimiento
(aprender acerca de nuevos jugadores).
Para realizar dicho sistema experto se hará uso de la herramienta
JESS (Extensión Java de CLIPS).
Un sistema experto es un sistema que resuelve problemas
utilizando una representación simbólica 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 fútbol.
Además, es capaz de razonar de tal forma que muestra un
comportamiento similar al que tendría un experto en la materia.
En nuestro caso, un ojeador de fútbol.
Para lograr su objetivo, representa el conocimiento de manera
simbólica y manipula dichos símbolos. De esta forma, obtiene un
alto rendimiento en el dominio en el que es experto (en este
ejemplo, los jugadores de fútbol).
Los sistemas expertos hacen una separación entre el conocimiento
y la forma de utilizarlo. Además, se basan en la naturaleza
heurística del conocimiento y no en algoritmos [2].
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 resolución
de dicho problema.
3.2 Software de implementación
Existen distintas soluciones software para implementar sistemas
expertos. Este documento se basa en una solución utilizando JESS
(extensión Java de Clips).
3.2.1 CLIPS
C Language Integrated Production System (Sistema de
producción 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 más utilizados ya que tiene una serie de
características bastante ventajosas. [4]
Figura 1. Estructura general de un sistema experto [3]
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 decisión sobre uno u otro
jugador.
Entre las funciones que realiza se encuentra la determinación de
las acciones que tendrán lugar y el orden en que se llevarán a
cabo. También determinará cómo y cuándo se procesarán las
reglas, y dado el caso también la elección de qué reglas deberán
procesarse. Además, se encargará de controlar el diálogo con el
usuario [2].
El fin último del motor de inferencias es usar las reglas de las que
dispone y crear un árbol de decisión que sirva para mostrar una
solución 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
representación de esta información debe ser coherente, sencilla,
independiente, rápida, fácil de modificar, relacional, potente,
modular y fácil de mantener [2].
3.1.3 Interfaz de usuario
Debe ser sencilla, rápida, fácil de entender y que evite la
introducción de datos incorrectos [2].
3.1.4 Subsistema de adquisición
El conocimiento, es decir, las reglas, los hechos, las relaciones
entre los hechos, etc., debe poder introducirse de la forma más
sencilla posible. Por esto la representación de la información debe
ser clara y la sintaxis debe poder comprobarse automáticamente
[2].
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 resolución
de problema mientras se aborda. En esto se debe centrar el
generador de explicaciones. Algunos sistemas representan estas
explicaciones de forma gráfica [2].
3.1.6 Memoria de trabajo
Mantiene la información de la resolución de un problema en
concreto que adquiere de la base de conocimiento y de las reglas
Una de ellas es que CLIPS es integrable. Esto significa que puede
ser embebido en código imperativo. Además 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 característica 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 además un desarrollo interactivo de sistemas expertos ya
que incluye herramientas para la depuración, ayuda en línea, y un
editor integrado (adaptadas para cada uno de los distintos
Sistemas Operativos).
Por otra parte, está creado para que puedan verificarse las reglas
incluídas en el sistema experto que se está desarrollando. Además,
permite el diseño modular y el particionamiento de la base de
conocimientos del sistema. CLIPS puede chequear restricciones
de manera estática y dinámica para funciones y otros tipos de
datos. Por último, CLIPS permite el análisis semántico de reglas
para prevenir posibles inconsistencias.
Otra ventaja importante es que CLIPS es un software de dominio
público. [5]
CLIPS dispone de interfaces y herramientas como JESS (que se
usa en el presente estudio) o FuzzyCLIPS (para lógica 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 además, permite añadir reglas,
hechos y estrategias para la resolución de conflictos de manera
dinámica[4].
3.2.2 JESS
Java Expert System Shell
CLIPS.
es una consola en Java basada en
Entre las características a destacar de JESS es su alta portabilidad,
su potencia y su gran flexibilidad.
En principio JESS fue creado para simular el núcleo fundamental
de CLIPS. Pero, gracias a la importancia creciente de los
sistemas desarrollados en Java, se ha convertido en una
herramienta muy práctica para permitir dotar a los sistemas
desarrollados en Java la capacidad de “razonar”.
Una de las ventajas más 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
utilizada pues supone un gran carga y se prefiere ubicar el sistema
experto en el servidor.
Para empezar, hace una serie de preguntas sobre las características
que el usuario quiere del jugador.
Por último, es lógico que JESS pueda utilizarse mediante la
consola, o a través de sistemas como la plataforma Eclipse que
facilitan el desarrollo de programas Java [4].
Tras las respuestas del usuario el sistema le ofrece una posible
solución de entre las que tiene guardadas en el archivo .dat (ver
Tabla 1). La información que se muestra sobre el jugador elegido
es su nombre y el club donde está jugando actualmente (ej. Figura
4)
4. DISEÑO
Para realizar el sistema experto Malidini en JESS tuvimos que
plantear cuáles serían las características que clasificarían a los
jugadores. Con esas características se conseguía que el programa
desarrollado en JESS pudiera hacer, mediante su motor de
inferencia, un árbol de decisión que permitiese resolver el
problema propuesto.
En algunos casos, el programa tiene más de un posible jugador
con las mismas características. En éstos, el usuario puede pedir
que se le muestren las otra alternativas o no (ej. Figura 5 y Figura
6)
4.1 Árbol de decision
La primera decisión que se debe tomar al arrancar el programa es
la posición en la que juega el tipo de jugador que interesa.
Dependiendo de qué tipo de jugador se haya elegido se pedirán o
no más características sobre él mismo (ver Figura 2).
En cada hoja de este árbol hay una última característica de
elección común para todas ellas. Esta es la nacionalidad del
jugador. Se podrá elegir, entre: España, 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 elección 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 característica que lo diferencia de los
anteriores. (ej. Figura 7)
Figura 2. Árbol de decisión utilizado
5. IMPLEMENTACIÓN
El programa sigue los siguientes pasos para llegar a un jugador
adecuado.
Tabla 1. Relación de Jugadores almacenados
Figura 4. Ejemplo de ejecución básica
Figura 6. Ejemplo de ejecución con múltiples
soluciones
Figura 7. Ejemplo de ejecución ampliando el
conocimiento del sistema
Esto permite que el sistema pueda ampliar su base de
conocimiento.
6. POSIBLES TRABAJOS FUTUROS
Se podría ampliar este trabajo añadiendo mayor información sobre
el jugador o mayor número de jugadores.
También se podría distinguir entre los distintos jugadores con
nuevas características como la edad, o el club en el que milita, la
cláusula de rescisión, etc.
Por otra parte, se podría mejorar la interfaz gráfica del programa.
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 aplicación en diversas materias. Ya
que, cualquier ámbito en que se requieran soluciones software
que permitan la toma de decisiones de manera fácil y rápida a
partir de unos datos concretos de entrada puede utilizar un sistema
experto.
8. AGRADECIMIENTOS
A Julio Villena Román.
9. REFERENCIAS
[1] Villena Román, Julio. 2009. Apuntes de la asignatura
Inteligencia en Redes de Comunicaciones. Tema: Breve
historia de la Inteligencia Artificial. Universidad Carlos III
(Madrid, España, 2009) DOI =
http://www.it.uc3m.es/jvillena/irc/
[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.
[3] Villena Román, Julio. 2009. Apuntes de la asignatura
Inteligencia en Redes de Comunicaciones. Tema: Sistemas
Basados en Conocimiento. Universidad Carlos III (Madrid,
España, 2009) DOI = http://www.it.uc3m.es/jvillena/irc/
[4] González-Ripoll, P. y Lucas, L. 2008. Trabajo de la
asignatura Inteligencia en Redes de Comunicaciones.
Sistema Experto: Clasificación de animales según su
taxonomía. Universidad Carlos III (Madrid, España, 2008)
DOI= http://www.it.uc3m.es/jvillena/irc/#7
[5] Gómez, A., Corroto, A. y Bermejo, I. 2008. Trabajo de la
asignatura Inteligencia en Redes de Comunicaciones.
Sistemas de Producción en CLIPS. Universidad Carlos III
(Madrid, España, 2008) DOI=
http://www.it.uc3m.es/jvillena/irc/#7