Desarrollo y aplicación de escenarios de pruebas en Inteligencia

Anuncio
Desarrollo y aplicación de escenarios de pruebas en Inteligencia Artificial.
Experiencias de laboratorio y perspectivas a futuro
en la Universidad Nacional del Sur, Argentina
Dr. Diego C. Martínez
Comisión de Investigaciones Científicas y Técnicas – CONICET
Laboratorio de Investigación y Desarrollo en Inteligencia Artificial – LIDIA
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur – Bahía Blanca, Buenos Aires, República Argentina
Introducción
A principios de la década del 50, un grupo de científicos comenzó a indagar sobre los alcances de una rama
de la ciencia que apenas nacía: la computación. Una de las inquietudes más interesantes que surgieron en
ese momento fue el hecho de si las máquinas pueden o no pensar. Era evidentemente una incertidumbre
avanzada para la época, más aún si consideramos el estado de la computación en esos años. Por
supuesto, el primer problema aquí era definir en forma precisa qué significa “pensar”, más aún en un
contexto donde la noción de computabilidad era relativamente nueva. Un joven matemático llamado Alan
Turing fué uno de los primeros en eliminar ese inconveniente al proponer un Test de inteligencia basado en
lo que se conoce como el Juego de Imitación [1]. En este juego intervienen tres personas: un hombre (A),
una mujer (B) y un interrogador (C). Este último se sitúa en una habitación aparte y por medio de preguntas
debe determinar quién es el hombre y quién es la mujer. Los conoce simplemente por las referencias X e Y.
Al final, debe concluir si “X es el hombre e Y es la mujer”, o al revés. Nada, excepto las respuestas a las
preguntas enunciadas, puede inducir quién es quién. Podemos suponer que las respuestas son
mecanografiadas, para eliminar influencias dadas por el tono de voz o el estilo caligráfico de los
interrogados. El juego sería algo aburrido a no ser por una pequeña trampa que complica la tarea del
interrogador: el sujeto A tiene como objetivo lograr que C efectúe una identificación errónea, mientras que el
objetivo de B es ayudar al interrogador a descubrir la verdad. Las preguntas pueden ser absolutamente de
cualquier tema, sin limitaciones. Puede hablarse sobre aspectos personales, sobre gustos musicales, el
clima, los deportes, literatura o historia antigua. Cualquier pregunta es válida, como lo es en cualquier
diálogo convencional.
Hasta ahí, un juego simple entre seres humanos. La pregunta que Alan Turing formula en relación a este
juego es ¿qué sucede si reemplazamos al sujeto A por una máquina? ¿el interrogador se equivocará tanto
como cuando participan un hombre y una mujer? Turing afirmaba que este test reemplazaría la pregunta
inicial de si las máquinas pueden pensar. Vale decir, no es necesario indagar en forma abstracta si las
máquinas pueden pensar, simplemente es suficiente verificar si pueden superar este test. De hacerlo,
arribaremos a la respuesta buscada originalmente. Turing aventuró, incluso, que la superación de este test
por una máquina es posible en el futuro e indicó que, según sus estimaciones, algún día las máquinas
efectivamente pensarían. Desde entonces, hubo partidarios y detractores de esta idea.
El test propuesto por Alan Turing puede pensarse como un criterio cuya consecuencia directa es la
clasificación de las máquinas en dos tipos: aquellas que pueden pensar y aquellas que se considera que no
pueden hacerlo. Una máquina será considerada pensante si supera el Test. Con su trabajo, Turing
planteaba implícitamente un nuevo desafío en esta ciencia naciente: la de la construcción de entidades
inteligentes, denominada hoy en día la Inteligencia Artificial. Tal vez sin saberlo, fué el primero en la
definición de criterios para la consideración de las capacidades mentales de una máquina computacional.
De la misma manera que un alumno se prepara para un examen de la Universidad, un grupo de
investigadores podría preparar una máquina únicamente para que enfrente el Test de Turing. Sin embargo,
la universalidad del Test y la necesidad de la máquina de enfrentar cualquier pregunta del interrogador
dificulta mucho este emprendimiento. Imaginemos pues que esta máquina debe ser capaz de responder
naturalmente, y sin despertar sospechas, una pregunta sobre matemática y luego tal vez otra sobre
mitología escandinava o el fútbol africano (incluso manifestando una ignorancia razonable). Este es un
requerimiento de diseño simple, pero a la vez muy fuerte y agobiante. ¿No sería más fácil definir un
problema mucho más limitado que nuestra máquina pueda enfrentar? Nos ayudaría a concentrarnos en
aspectos puntuales del comportamiento de las entidades pensantes que llevarán paulatinamente al
progreso deseado. De hecho, no siempre es necesario producir una máquina que pueda enfrentar un
diálogo con los humanos. Muchos otros aspectos de la inteligencia necesitan ser estudiados y modelados
computacionalmente. La idea es plantear escenarios simples y acotados en los cuales sea necesaria la
actividad inteligente, expresada con diferentes complejidades. De esta forma las tecnologías desarrolladas
encuentran un campo de prueba de sus capacidades computacionales, en lo que constituyen nuevas y
limitadas versiones del Test de Turing. Los protagonistas principales en estos escenarios son los
denominados agentes inteligentes.
Agentes Inteligentes
En términos generales, dentro de las Ciencias de la Computación, la Inteligencia Artificial es el estudio de la
automatización del comportamiento inteligente. Como es natural, esta tarea sumamente complicada abarca
diversos aspectos y, a su vez, diferentes objetivos particulares. Por ejemplo, es de interés dotar a un
dispositivo móvil (como un vehículo) de la habilidad necesaria para evitar obstáculos, y por otro lado
también es interesante modelar los procesos de razonamiento humanos. En el primer caso, una parte del
problema es ingenieril, como la determinación de la estructura física del dispositivo, sus sensores y las
consideraciones de eficiencia pertinentes. En el segundo caso, la administración del conocimiento y sus
modelos matemáticos son los que llevan la mayor atención. Esta diversidad de enfoques, si bien presenta
puntos en común, es inherente a la Inteligencia Artificial desde sus comienzos.
Durante los últimos años, sin embargo, algunas
nociones son de aceptación general para esta
comunidad científica, y radican en la identificación
de un ente inteligente en términos que todos pueden
asimilar. Básicamente, un agente inteligente es una
entidad que puede realizar ejecuciones de acciones
en forma autónoma, puede percibir su entorno,
incluyendo el efecto de sus acciones, y puede
modificar su accionar en función de esta
percepción. Otras definiciones similares son
aceptadas, poniendo énfasis en diferentes aspectos,
como el grado de autonomía de los agentes, o su
actitud al entorno que los rodea. Por ejemplo, un
agente inteligente puede ser reactivo, al estar
guiada su actividad por reacción ante eventos
externos,
o
proactivo,
al
poseer
mayor
independencia y tomar iniciativa propia en pos de
sus metas u objetivos individuales. En la Figura 1
puede verse esquemáticamente la composición
básica general de un agente inteligente. Este
percibe el estado del mundo por medio de sensores.
Figura 1. Agente Inteligente.
Esta información conforma su visión del entorno que lo rodea, para luego, en función de ella, determinar
qué acción realizar de acuerdo a sus metas. Esta acción, a su vez, producirá posiblemente cambios en el
entorno. No existe una definición precisa de la noción de agente inteligente, pero su concepción general es
la mencionada anteriormente. Y es lo suficientemente general para admitir varias instanciaciones. Por
ejemplo, un robot explorador de la superficie de Marte que, dada la demora en las comunicaciones desde la
Tierra, toma ciertas decisiones por cuenta propia para recorrer una porción de terreno, es considerado un
auténtico agente inteligente. También lo es una aplicación de software que observa las costumbres del
usuario al navegar por Internet y procura facilitarle la tarea. Incluso el termostato de aire acondicionado de
un centro comercial también puede verse como un agente inteligente, dado que es capaz de percibir la
temperatura ambiente y modificarla si es necesario hasta alcanzar los valores deseados.
Particularmente interesante es el escenario en el cual varios agentes inteligentes conviven
simultáneamente. En los sistemas multiagente, un agente participa en diálogos y negocia y coordina
transferencias de información con otros agentes, ubicados probablemente en un ambiente distribuído.
Puede ser visto como una sociedad en la cual cada agente realiza sus actividades cooperando con otros
agentes para alcanzar metas comunes o compitiendo por ellas. La interacción entre agentes inteligentes es
actualmente un área de estudio intensivo en sistemas multiagente. Dos o más agentes pueden intercambiar
información estableciendo un diálogo regido por ciertas reglas específicas. Por ejemplo, un agente X puede
requerir acceso a un servidor de datos administrado por un agente Y. El agente X inicia entonces un pedido
a Y, el cual puede analizar varios parámetros como la situación actual o la confiabilidad del agente X y sus
razones para acceder al servidor. Luego el agente Y comunica su decisión al agente X y el proceso continúa
si es necesario de acuerdo a las reglas establecidas. Entre los diversos diálogos sociales se encuentran la
negociación, aquel proceso centrado en el alcance de un acuerdo en pos de objetivos individuales y la
coordinación o la colaboración, donde se buscan acuerdos dependiendo de los objetivos comunes
perseguidos. Gran parte de las actividades de investigación exploran estas formas de interacción entre
agentes, definiendo lenguajes eficientes y formalizando algún protocolo dialéctico específico.
Agentes Inteligentes y escenarios de prueba
El desarrollo de agentes inteligentes es particularmente delicado, no sólo porque a veces requiere la
elaboración de artefactos físicos (como robots) sino también porque la información tratada por los agentes
representa conocimiento sobre el mundo que lo rodea y es la base para la toma de decisiones. Esto no es
más que la afirmación de la importancia que la Representación de Conocimiento y el Razonamiento poseen
en esta rama de la Inteligencia Artificial.
Siguiendo la misma motivación de Alan Turing, y dada la diversidad de formalismos, técnicas y lenguajes
existentes para la creación de agentes inteligentes, es interesante emplear un campo de prueba común
para la evaluación de las tecnologías emergentes en este ámbito. Una especie de Test de Turing, reducido,
con una motivación específica y reglas acotadas, permitiría concentrar el esfuerzo en aspectos puntuales
del comportamiento inteligente.
Es así que surgen propuestas como, por ejemplo, el fútbol de robots [2,3]. En este escenario, varios
agentes inteligentes procuran jugar al fútbol de manera respetable. La ventaja principal es que las reglas
son simples y conocidas por todos y de esta forma distintos investigadores que desarrollan tecnologías
diferentes pueden aplicarlas a un mismo campo. Cada agente es programado con la tecnología elegida y
desarrollada por cada equipo, permitiendo así ver el resultado de las investigaciones aplicadas a un
problema concreto con un objetivo específico: realizar la mayor cantidad de goles posibles. Tal vez el
principal referente de esta competencia es RoboCup [3]. Esta organización promueve varias categorías,
pero la meta más ambiciosa es desarrollar un equipo de humanoides autónomos que pueden ganarle al
equipo campeón mundial de fútbol. De humanos, por supuesto. Esta misma organización propone una
categoría especial, denominada RoboCup Rescue cuyo objetivo es promover la investigación y el desarrollo
en la asistencia automatizada de operativos de rescate ante desastres urbanos. En todos los casos existen
diferentes categorías de acuerdo al nivel tecnológico empleado. Existen robots físicos que juegan al fútbol y
también robots rescatadores de víctimas de accidentes, denominadas a veces “Ligas de Robots”. Asi
mismo, cuando no es considerada prioritaria la construcción física de los robots, existen entornos de
simulación de agentes de fútbol o rescate, denominadas “Ligas Simuladas”. La principal ventaja de éstas
últimas es, por supuesto, el bajo costo de desarrollo. Cabe destacar que RoboCup no es la única
organización que promueve estos emprendimientos. La Asociación FIRA (Federation of International Robosoccer Association) [2] es también una institución encargada de diversas competiciones del mismo tipo.
Si bien el fútbol es una actividad muy popular, no es la única existente. Otra competición que procura
estimular el estudio y la investigación en sistemas multiagente, en particular con el uso de lógica
computacional, es un problema basado en laberintos. Básicamente, en un terreno plano con obstáculos
existen dos o más competidores que procuran capturar la mayor cantidad de determinados elementos
dispersos en ese terreno. En el CLIMA VII Contest [11] se propuso una competición en donde dos equipos
de mineros procuran evitar árboles y arbustos para recolectar pepitas de oro dispersas en el bosque. El
terreno está dividido en cuadrículas, y en cada una de ellas puede haber obstáculos u oro, o estar vacío
simplemente. Los movimientos de los mineros son discretos, pudiendo avanzar una cuadrícula por vez, en
cualquier dirección libre de obstáculos. El principal atractivo de esta competencia es su simplicidad en la
implementación general. Esto se debe básicamente a que el énfasis es puesto en la aplicación de
formalismos basados en lógica para la implementación de los agentes intervinientes.
Otras propuestas encaran problemas de diferente naturaleza y complejidad. Existe, por ejemplo, una
competencia para emplear agentes inteligentes en el juego de poker [10]. Por otro lado, la competencia de
agentes de negociación, denominada Trading Agent Competition (TAC) [3], es un evento anual que
promueve la investigación de agentes autónomos para la negociación en mercados electrónicos. La
competencia se basa en un escenario de negociación común y un entorno abierto para que los
competidores puedan probar sus ideas y desarrollos propios. Una de las últimas categorías se demomina
TAC-SCM (Supply Chain Management) y captura muchos de los desafíos que deben enfrentarse al
administrar una cadena de provisiones en la industria de manufacturación de productos. En este escenario,
los agentes deben construir productos, ganar órdenes de clientes y procurar componentes. También existe
la categoría TAC-Classic, donde el agente inteligente es básicamente un agente de viaje cuyo objetivo es
construir paquetes de viaje entre ciertas ciudades. Cada agente actúa en representación de ocho clientes,
que expresan sus preferencias sobre algunos aspectos del viaje. El objetivo general del agente es,
naturalmente, maximizar la satisfacción de sus clientes.
De la misma manera pueden desarrollarse otros escenarios interesantes para que los agentes inteligentes
pueden demostrarse como tales. En particular es atractiva la búsqueda de juegos de computadora en los
cuales un jugador humano puede ser reemplazado por un jugador virtual, en una forma moderna de Test de
Turing. Son de especial interés aquellos juegos populares en los cuales los humanos aún exhiben
habilidades superiores. Los mejores juegos suceptibles a este experimento son aquellos que admiten la
modalidad multijugador (multi-player), donde varios participantes pueden jugar en forma cooperativa o
competitiva en un mismo escenario. Los jugadores pueden estar ubicados en la misma sala, o en diferentes
lugares del mundo, por lo que no necesariamente pueden verse y conocerse entre sí. Estos juegos son muy
populares precisamente porque los contrincantes a enfrentar son humanos que exhiben un comportamiento
inteligente superior a los contrincantes virtuales encontrados al jugar bajo la modalidad de único jugador
(single-player). De esta manera el juego es más entretenido al plantear mayores desafíos. Lo que nos
interesa puntualmente es el efecto del Test propuesto por Turing en estos juegos, es decir, el reemplazo del
jugador humano por uno automatizado, denominado usualmente jugador sintético, sin la percepción del
resto de los participantes. Trasladar el Test a este escenario es la motivación primaria. Para ello existen dos
tipos de juegos altamente asimilables a estos experimentos, conocidos como RTS y FPS.
Juegos de acción en tiempo real: RTS y FPS
Los juegos de computadoras de Estrategia en Tiempo Real (RTS - Real Time Strategy) son muy populares
actualmente. Estos juegos, en su expresión más completa, representan un desafío complejo dada la
cantidad de variables a tener en cuenta: dos o más bandos compiten por la conquista de un terreno, o por la
eliminación del contrincante, para el cual pueden producir diferentes tipos de unidades militares. La
producción se basa en una economía simple, la cual consiste generalmente en la obtención de recursos
primarios en el escenario (típicamente oro o minerales ficticios), que luego son utilizados para la creación de
las unidades de combate. El jugador dirige estas unidades por el terreno intentando vencer al oponente. La
principal característica es que toda la acción ocurre en tiempo real y las dificultades del terreno presentan
mayor granularidad que en los problemas de laberintos. Ejemplos clásicos de este tipo de juegos, con gran
éxito comercial, son Dune [6], Warcraft, Starcraft [5] y Command and Conquer [6], todos con diferentes
ediciones. Una propuesta reciente en este tipo de juegos es ORTS - Open Real Time Systems de Michael
Buro [16], un entorno de programación para estudiar problemas de Inteligencia Artificial en tiempo real,
como la búsqueda de caminos en un terreno, el razonamiento con información imperfecta o la planificación
de pasos a seguir. Este emprendimiento procura emular los juegos RTS comerciales, pero bajo la filosofía
open source, con el objetivo de poder programar específicamente cada equipo.
En los últimos años también acaparan cierta atención en la academia los juegos denominados FPS – First
Person Shooters. Estos son juegos de perspectiva en primera persona donde el usuario debe avanzar por
diferentes escenarios complejos poblados de enemigos. Tal vez los pioneros en este género de juegos
fueron las empresas id-Software [7], creadora de los juegos Wolfenstein, Doom, Quake y sus posteriores
versiones, y la empresa 3D-Realms [8], creadora del popular juego Duke Nukem entre otros. En la
actualidad la diversidad de productos es considerable. Si bien estos juegos son muy utilizados en su
modalidad multi-jugador, la mayoría permite la inclusión de contrincantes virtuales, programados en forma
separada, denominados bots. Estos son básicamente jugadores cuyo comportamiento está determinado por
una serie de reglas de diversa complejidad, establecidas en forma de guiones o scripts que modelan la
inteligencia del agente, al estilo de los sistemas expertos. Esto permite jugar cuando no hay contrincantes
humanos. De esta forma existen bots de comportamiento simple, que únicamente saben esconderse para
no ser encontrados por el jugador, y otros de comportamiento más elaborado, capaces de comenzar una
auténtica cacería virtual. El principal problema con este tipo de aplicaciones es que prácticamente todas
son emprendimientos comerciales y la posibilidad de expansión se limita únicamente a la programación de
los bots de acuerdo a los mecanismos establecidos en el producto. En muchos casos consiste en la
determinación de máquinas de estados finitos e instrucciones de comportamiento limitadas, que si bien son
interesantes, a su vez son bastante primitivas para las técnicas de Inteligencia Artificial actuales. En algunos
juegos es posible un vínculo con el producto, como fué encarado por el Proyecto Soar/Games [17], con
cierto apoyo de la industria. Afortunadamente, en el año 2006, la empresa id Software, liberó el código
completo de uno de sus juegos más populares, denominado Quake III Arena, bajo licencia GNU-GPL. Este
es un excelente punto de partida para el desarrollo posterior en este tipo de juegos y constituye un acto de
apoyo a la comunidad de código abierto. En este sentido, un proyecto denominado OpenArena pretende
producir un clon del Quake III de forma tal de librarse de algunos aspectos propietarios del juego original,
como las texturas gráficas. Otras modificaciones han sido producidas con éxito, como World of Padman o
Tremulous, que también puede ejecutarse en Linux, algo no usual en los juegos comerciales con derecho
de copia reservado. Todos estos son buenos señales de tiempos de cambio e integración entre dos ramas
de la computación, el entretenimiento como industria y la investigación académica, que en muchos casos
recorrieron trayectos en forma separada. Desde el punto de vista académico, en este género es de especial
interés la elaboración de juegos multiplayer en donde el énfasis es puesto en la posibilidad de recepcionar
bots implementados con diferentes técnicas en Inteligencia Artificial. Esta universalidad del juego es
esencial para que sea recibido con agrado por la comunidad de investigadores en el área. Por el momento,
los productos FPS alternativos, si bien exhiben en muchos casos un buen grado de inteligencia, no son
desarrollados específicamente con objetivos académicos. Es deseable que esta situación cambie
lentamente.
Figura 2. Arquitectura general del escenario percepción-acción
Una arquitectura apropiada para el desarrollo de estos juegos está basada en un ciclo operacional que se
conoce como percepción-acción o ciclo de decisión. La idea general es conocer el entorno y accionar sobre
él, de manera repetitiva hasta alcanzar los objetivos deseados. En la Figura 2 puede verse el esquema de
esta organización. Un servidor centraliza el conocimiento del mundo modelado (por ejemplo un campo de
fútbol, un laberinto, un terreno con obstáculos, etc) y es capaz de informar al cliente todos los parámetros
necesarios sobre este mundo virtual. El cliente modela al agente situado en ese escenario, y recibe
información desde el servidor, en lo que constituye la percepción del mundo del agente inteligente. El
servidor ofrece aquella información que estará disponible para el agente dependiendo de diversos
parámetros, como la posición del agente en el escenario y la dirección en la que observa. El agente debe
utilizar esta información para decidir sobre sus próximas acciones, las cuales deben ser comunicadas al
servidor para actualizar apropiadamente el modelo del mundo.
El escenario modelado puede ser virtual o real. En este último caso será sensado adecuadamente por el
servidor, y el agente se alimentará de la información procesada en ese aspecto. Esto ocurre, por ejemplo,
en las competencias RoboCup, donde la posición de la pelota es detectada por una cámara de video
situada sobre el campo de juego. Los agentes conocen esta posición gracias al servidor que
constantemente les informa de los cambios en el mundo. Dado que el servidor centraliza el conocimiento
del escenario, también es posible incorporar clientes que permiten visualizar lo que está ocurriendo en la
simulación. Un cliente de este tipo puede interpretarse como un agente inteligente cuya presencia en el
escenario no es relevante para el juego y mantiene una actitud meramente pasiva: simplemente observa y
exterioriza la información pertinente. Por ejemplo, en el fútbol de robots existen visualizadores en dos
dimensiones del campo de juego, y a su vez se han desarrollado recientemente algunos visualizadores 3D.
Todo esto, independientemente de los agentes inteligentes que están enfrentando el partido del fútbol.
El sistema ORTS de Michael Buro está organizado de acuerdo al modelo cliente-servidor recién descripto.
El servidor simula el terreno de juego y envía a cada cliente (por medio de un protocolo específico) las
vistas correspondientes, teniendo en cuenta la visibilidad posible desde la situación en la que se
encuentran. De esta forma los clientes descubren el mapa paulatinamente, a medida que avanzan sobre él.
Esta característica es la tradicional en los juegos de estrategias en tiempo real, donde solamente se conoce
aquello que se ha visitado previamente, el resto del terreno permanece no revelado. El cliente, que es un
agente inteligente, debe decidir estratégicamente sus movimientos. Nótese que la información revelada por
el servidor constituye parte del conocimiento del agente y por ende éste debe administrarla adecuadamente.
Esto es mandatorio para que el agente construya su imagen mental del mundo en el que se encuentra.
De la misma manera, el juego Quake III-Arena también posee una arquitectura donde un jugador sintético
cumple el rol de cliente y el motor del juego cumple el rol del servidor. El esquema general incluye, sin
embargo, otros componentes como un servidor específico para interactuar con jugadores humanos, como
es tradicional en el producto.
Experiencias en el fútbol de robots
El desarrollo basado en escenarios de prueba como los mencionados anteriormente es estimulante y
atractivo para muchos investigadores. En particular, en el Laboratorio de Investigación y Desarrollo en
Inteligencia Artificial (LIDIA) [18] de la Universidad Nacional del Sur, este tipo de simulaciones ha servido
para capturar la atención de muchos estudiantes que no tienen necesariamente una formación matemática
sólida en Inteligencia Artificial, pero poseen excelentes habilidades de programación. Las líneas de
investigación de nuestro Laboratorio son originariamente de corte teórico, basado en formalismos lógicos
para la representación del conocimiento y el razonamiento. Aquellos alumnos renuentes a estos
formalismos, pero interesados en los objetivos y el desarrollo en Inteligencia Artificial, pueden realizar su
aporte estimulados por el espíritu de las competencias, integrados con otros investigadores con mayor
experiencia en el área. En la mayoría de los casos, las últimas generaciones de alumnos de posgrado de
nuestro Laboratorio surgen del interés en estas tecnologías. Muchos dieron sus primeros pasos en la
Inteligencia Artificial gracias a estos emprendimientos, lo que les permite en primera instancia comprender
las motivaciones de esta área de las Ciencias de la Computación, sus dificultades y desafíos principales.
Comprenden luego la importancia de los estudios teóricos para superar los objetivos iniciales y descubren
una nueva línea de formación profesional.
En el año 2002 se formó en el LIDIA el Grupo de Robótica Cognitiva, formado por docentes y alumnos del
Departamento de Ciencias e Ingeniería de la Computación bajo la dirección del Dr. Alejandro García, cuya
actividad inicial fué el estudio del fútbol de robots, especialmente en la categoría Robocup E-league. Se
utilizaron kits de robótica de bajo costo de la empresa Lego Mindstorms, que cuentan con una
microcomputadora (denominada RCX) y mecanismos de movilidad (un motor, ruedas y piezas mecánicas).
Esta microcomputadora posee capacidades reducidas, y dispone de un sensor infrarrojo para recibir
información. Puede a su vez controlar algunos dispositivos conectados a ella, como el motor. Existe además
una estructura de ladrillitos de plástico y dos ruedas tractoras. Cuando el robot gira para buscar la pelota, la
computadora hace funcionar una rueda en cada dirección. En la Figura 3 se muestra uno de los robots
construídos, junto con el RCX. Este es el cerebro del robot, y en esta versión es un procesador Hitachi
H8300, de 8 bits y 16Mhz con 32Kbytes de RAM. Una vez diseñados y construidos los robots (que no es
una tarea simple), el equipo se ha dedicado a la programación de los agentes de software que los controlan
para poder jugar al fútbol. En el año 2004 parte del grupo viajó a Portugal para participar del Mundial
RoboCup 2004 donde nuestros robots, cuyo equipo se denominaba MateBots, jugaron contra equipos de
otras universidades. Esta actividad generó un intercambio con otros investigadores que resultó
enriquecedor para todos los participantes. Al regreso de la competencia el equipo formado por alumnos
organizó una serie de conferencias en la Universidad Nacional del Sur para transmitir las experiencias
vividas y plantear desafíos futuros.
Figura 3. Jugador del Equipo MateBot y el RCX utilizado
Es importante destacar que puede encararse un desarrollo de agentes inteligentes para el fútbol de robots
sin la necesidad de contar con estos dispositivos electrónicos, que no siempre son de fácil acceso aunque
el costo sea relativamente bajo. Tanto RoboCup como FIRA proveen una categoría para jugar en forma
simulada, como se explicó anteriormente. Esto permite enfocarse en aspecto de la inteligencia de los
agentes dejando de lado características ingenieriles de los artefactos físicos. En el LIDIA, parte del
entrenamiento es testeado en estas simulaciones.
Dado el éxito y la atención que acapararon el fútbol de robots con nuestro equipo, en el Laboratorio de
Investigación y Desarrollo en Inteligencia Artificial estamos interesados en entornos de prueba que
requieran intensa actividad de razonamiento automatizado. Y efectivamente un género que llama mucho la
atención son los juegos de computadoras para el entretenimiento personal. En la actualidad estamos
procurando expandir el horizonte en este campo, prestando atención a los juegos de estrategia en tiempo
real. Consideramos que en ellos puede aplicarse una buena parte de nuestra investigación. También
consideramos atractivos en este sentido los juegos FPS, tal vez los que despiertan mayor curiosidad en los
alumnos jóvenes.
El interés recae en el desarrollo de jugadores sintéticos inteligentes para
emprendimientos académicos como los mencionados anteriormente, y también en la posibilidad de
desarrollar juegos nuevos o modificaciones de algunos existentes. Esto último requiere, por supuesto, un
mayor esfuerzo de programación. Aún así los costos son bajos dada la ausencia de dispositivos robóticos
en los emprendimientos. Esto permite mayor acceso a la tecnología por parte de los docentes y alumnos, lo
cual aumenta las prespectivas de la audiencia obtenida.
Para ejemplificar en términos generales nuestros proyectos de derivación de los desarrollos teóricos a los
escenarios de prueba basados en juegos, en la siguiente sección se explica brevemente la mecánica de la
Argumentación Rebatible, una de las principales líneas de investigación del LIDIA.
Un ejemplo: agentes que juegan argumentando
La Inteligencia Artificial ataca, entre otros, el problema de la representación formal de determinados
aspectos presentes en el mundo real. Uno de estos aspectos, tal vez el más tradicional en esta rama de la
ciencia, se refiere al razonamiento y la representación de conocimiento, para lo cual diversos modelos
formales han sido propuestos. En particular, la argumentación ha sido utilizada en el mundo real para
diferentes propósitos en diferentes áreas, y varios modelos de argumentación han sido desarrollados dentro
del área de Inteligencia Artificial. Uno de estos modelos, la argumentación rebatible, se refiere a un grupo
particular de patrones de razonamiento, donde argumentos a favor y en contra de una proposición son
producidos y evaluados para verificar la aceptabilidad de dicha proposición. La argumentación rebatible ha
alcanzado gran popularidad entre la comunidad de Inteligencia Artificial en los últimos años. Usualmente es
utilizada bajo diferentes formalizaciones para capturar aspectos del razonamiento del sentido común y la
representación de información incompleta y potencialmente inconsistente. Este formalismo es básicamente
un mecanismo de razonamiento no monótono en donde la aceptación o el rechazo de una proposición
dependen de un análisis entre argumentos a favor y en contra de esa proposición. En términos generales,
un argumento es una explicación tentativa de una afirmación específica. Por ejemplo,
Argumento A: “El centro de esquí abrirá hoy al público pues la cantidad de turistas en la ciudad
es importante y la recaudación esperada supera las expectativas”
El argumento A expone una explicación para al afirmación “El centro de esquí abrirá hoy al público”. El
siguiente argumento propone algo diferente, fundamentado por otras razones.
Argumento B: “El centro de esquí no abrirá hoy sus puertas pues los caminos se encuentran
bloqueados por la nieve de la tormenta de anoche”
Luego el argumento B contradice al argumento A. Esto implica principalmente que no podemos aceptar
ambos argumentos simultáneamente. Más aún, como la información expuesta por B es de mayor relevancia
para la apertura del centro (no importa cuántos turistas haya, si no se puede acceder al Centro, éste no
abrirá) se dice que el argumento B ataca al argumento A. El siguiente argumento también se relaciona con
los anteriores:
Argumento C: ”Los caminos no se encuentran bloqueados pues hoy temprano la Dirección de
Tránsito envió dos máquinas quitanieves que estuvieron trabajando exitosamente”.
El argumento C contradice al argumento B. De hecho lo descalifica pues afirma algo que contradice una
suposición de B (los caminos bloqueados), y por ende se dice que C ataca a B. Dado que el argumento A
es atacado por B, el cual a su vez es atacado por A, se dice que C defiende al argumento A del ataque
recibido por B. Esto es así, dado que si se acepta el argumento C, entonces no debe aceptarse B, y si esto
ocurre, se puede aceptar A, ya que éste no tiene oposición. En la Figura 4 se observa una representación
de grafos de esta situación, donde los nodos representan los argumentos y los arcos la relación de ataque.
A
B
C
Figura 4. Sistema Argumentativo Simple
El argumento rechazado en la Figura 4 es el argumento B, por lo que podemos concluir que el centro de
esquí abrirá sus puertas a los turistas.
Estos ejemplos simples muestran la mecánica general de la argumentación. Existen varias propuestas
formales de sistemas de representación de conocimiento y razonamiento, en particular la Programación en
Lógica Rebatible o DeLP (Defeasible Logic Programming) [12,13], desarrollada en el Laboratorio de
Investigación y Desarrollo en Inteligencia Artificial LIDIA. También existe un gran desarrollo de marcos
argumentativos abstractos donde algunos elementos se mantienen sin especificar, como la estructura de los
argumentos, y que sirven para estudiar aspectos semánticos de la argumentación [14]. En el caso puntual
de DeLP, los argumentos son conjuntos de reglas de un lenguaje formal, que sustentan una conclusión
determinada. Por ejemplo, en la Figura 5 se muestra un programa
argumento para vuela(tweety).
simple en DeLP,
junto con un
vuela(X) -< ave(X).
~vuela(X) -< pinguino(X).
ave(X) <- pinguino(X).
pinguino(tweety) <- true.
Programa DeLP
Argumento para vuela(tweety)
Figura 5. Base de conocimiento en DeLP
Un programa lógico rebatible consiste de un conjunto de reglas que codifican el conocimiento del agente.
Las reglas tienen la forma “consecuente -< antecedente”. En este caso, por ejemplo, la primer regla
vuela(X) -< ave(X) establece que “Si X es un ave, entonces X vuela”. De la misma manera, la regla
~vuela(X)-<pinguino(X) establece que “Si X es pingüino, entonces X no vuela”.
La regla
pinguino(tweety) <- true afirma que “Tweety es un pingüino”. Este tipo de reglas permite codificar
la base de conocimientos de una entidad inteligente y facilita el proceso de razonamiento posterior.
El argumento de la derecha en la Figura 5 muestra una construcción
en base a estas reglas, denominada derivación rebatible y es
básicamente un encadenamiento complejo de estos elementos. Dada
la independencia de cada una de las reglas con respecto a las demás,
estas pueden encadenarse de diversas formas, derivando nuevo
conocimiento. El argumento mostrado en la Figura 5 afirma que
“Tweety vuela, pues Tweety es un ave, y es un ave puesto que Tweety
es un pingüino”. Nuevas reglas en el programa permitirán la
construcción de nuevos argumentos, que probablemente se
contradigan entre sí. De hecho, en el programa de la Figura 5 ya es
posible construir un argumento para ~vuela(tweety). Dado este
dilema en la base de conocimientos, por medio de un análisis entre
argumentos y contraargumentos [8] será posible concluir si
efectivamente Tweety vuela o no. En la Figura 6 se observan los dos
argumentos, uno para afirmar que Tweety vuela, el otro para afirmar
que no vuela, en lo que constituye un árbol dialéctico.
Figura 6. Arbol dialéctico
De acuerdo al criterio de comparación de argumentos de DeLP, el segundo es preferido al primero dado que
es más específico en su construcción, por lo que el argumento para ~vuela(tweety) ataca al argumento
para vuela(tweety). El argumento marcado con verde (el inferior) en la Figura 6 está aceptado pues no
posee otros atacadores. Como consecuencia, el argumento marcado con rojo (el superior) está rechazado
al poseer un atacante aceptado. Luego, ante la pregunta ¿vuela(tweety)? la respuesta será “no”.
La idea central es utilizar este mecanismo de razonamiento para modelar uno o varios agentes inteligentes
en escenarios de juegos en tiempo real, como los RTS o FPS. Estos juegos requieren mucha actividad
inteligente principalmente en la planificación de las acciones a tomar, por lo que parte del conocimiento del
agente tendrá una fuerte relación con acciones en su entorno. La primer dificultad es la escasez de
proyectos amigables a tecnologías de inteligencia artificial no convencionales. Como se dijo anteriormente,
muchas propuestas comerciales de juegos FPS se limitan a la elaboración de autómatas de estados finitos,
con el comportamiento del agente especificado en parte en guiones (scripts) personalizados y en parte
codificado en los motores de inteligencia artificial del producto (usualmente código propietario y no
disponible abiertamente). En contrapartida, el desarrollo libre con fines académicos de juegos RTS es
mucho más limitado, siendo actualmente el desarrollo del sistema ORTS de Michael Buro en la canadiense
Universidad de Alberta el más completo en ese sentido.
Nuestro laboratorio ya dispone de un motor de razonamiento argumental. El mismo puede utilizarse on-line
[12] para comprender el mecanismo de trabajo general y el lector interesado puede dirigirse al sitio para
experimentar con lógicas rebatibles. La intención es utilizar el mismo motor para que los agentes
inteligentes puedan debatir sobre los pasos a seguir en el terreno de juego. La implementación debe ser
eficiente pues los juegos en tiempo real como los FPS y RTS requieren respuestas rápidas ante los
cambios constantes en el escenario.
Por el momento surgen dos posibles modelos interesantes para la utilización de argumentación en juegos
de tiempo real:
•
Heterogéneo: Una arquitectura cliente-servidor en donde el servidor modela el mundo y comunica a
los agentes el estado de éste. Los agentes inteligentes argumentan sobre su desenvolvimiento en
este mundo virtual (“¿debo escapar ahora o permanecer escondido?”). Cada agente posee su
propio motor de argumentación con características propias, lo que permite distinguir la inteligencia
de los agentes. Por ejemplo, pueden comparar argumentos de forma diferente, o realizar el análisis
global de argumentos a favor y en contra de una acción en forma limitada, tal vez considerando sólo
algunos de los argumentos disponibles. Esto tendrá un impacto directo en su desenvolvimiento.
Básicamente, este modelo es el clásico en las implementaciones tradicionales: cada agente aporta
su propio nivel de inteligencia modelado con alguna tecnología específica. Por ejemplo, un agente
puede estar basado en argumentación, y el otro en cálculo de situaciones. Un tercero tal vez podría
aprender del resto por medio de redes neuronales. Esta es la diversidad buscada en los entornos
de prueba, los cuales deben ser lo suficientemente independientes para admitir cualquier propuesta
tecnológica. En este caso el objetivo es incluir argumentación rebatible en los jugadores sintéticos.
•
Homogéneo: A diferencia del anterior, éste es un diseño exclusivamente argumental. Existe una
arquitectura cliente-servidor en donde el servidor modela el mundo y comunica a los agentes el
estado de éste. El servidor, sin embargo, también implementa un único motor de argumentación. De
esta manera los agentes se distinguen unos a otros simplemente en el conocimiento que poseen,
no en la mecánica misma de la argumentación. Para tomar decisiones deben utilizar los servicios
que el motor de argumentación ofrece, aplicados a su propia base de conocimiento. Esta
arquitectura presenta un desafío mayor dado que no existen entornos de prueba que observen
estas características, por lo que el desarrollo debe comenzar en una fase mas primitiva.
En ambos casos el comportamiento del agente puede ser programado por medio de un lenguaje lógico
como DeLP, en donde se especifica la base de conocimiento. Esta es la base del proyecto, dado que
constituye el componente sobre el cual ya existe un desarrollo concreto.
Conclusiones
La diversidad temática de investigaciones y desarrollos en Inteligencia Artificial se debe mayoritariamente a
que son muchos los aspectos del comportamiento inteligente que necesitan ser modelados, con propósitos
diferentes. Con el objetivo de proveer un campo común de prueba para las diferentes propuestas, cobran
relevancia ciertos escenarios como los juegos o competencias donde agentes inteligentes pueden
demostrar un buen nivel de participación. Si bien algunas propuestas llevan varios años de exitosa
actividad, recientemente algunos juegos populares de corte comercial como los de tipo First-Person
Shooters o los llamados Real-Time Strategy, atraen el interés de parte de la comunidad científica. Esto se
debe principalmente a que algunas tecnologías propietarias están ahora disponibles en forma libre, y al
hecho de que muchos jóvenes investigadores, usuarios de estos juegos en años anteriores, ven con
entusiasmo la posibilidad de aplicar nuevas técnicas de desarrollo académico reciente.
El camino a seguir es animar el desarrollo de estos escenarios de prueba basados en juegos populares. No
es una tarea fácil, dada la complejidad inherente de estos sistemas. Pero algunas propuestas, como ORTS,
demuestran que es factible proponer escenarios aceptables. Las ventajas son muchas, principalmente:
•
Permiten el test de desarrollos teóricos en un campo práctico de considerable complejidad. En [15]
Laird y van Lent destacan las areas de investigación en IA relacionadas con los juegos, entre ellas,
la planificación, el procesamiento del lenguaje natural, el comportamiento reactivo, el razonamiento
espacial y temporal y el aprendizaje automatizado.
•
Al vincularse a iniciativas Open Source, las experiencias exitosas tendrán un impacto en la
comunidad de desarrolladores de juegos, lo que aumentará la calidad técnica de los
emprendimientos futuros. Esta es una contribución académica al movimiento de software de código
abierto. A su vez, acerca a los desarrolladores de este movimiento a la comunidad de Inteligencia
Artificial, produciendo una alimentación mutua de conocimentos tecnológicos con beneficios para
ambas partes.
•
Animan a jóvenes estudiantes a involucrarse en un proyecto de desarrollo de software novedoso
con aplicación directa en la comunidad científica. De esta forma dan sus primeros pasos en una
actividad de investigación académica.
•
Por naturaleza requiere un trabajo multidisciplinario, donde es importante el aporte de varias áreas
de las Ciencias de la Computación, como Computación Gráfica, Ingeniería de Software y Sistemas
Distribuídos entre otros. Esta característica permite involucrar investigadores de diferente formación
en un proyecto común.
•
Puede ser el punto de inicio para la creación de grupos de Investigación y Desarrollo en Inteligencia
Artificial, en aquellas unidades académicas en las que otras áreas sean las predominantes.
De alguna manera, en diferente grado durante el transcurso de los años, los juegos de computadoras cuyo
principal objetivo es el entretenimiento del usuario fueron relegados como punto de atención por la
comunidad científica. A medida que los juegos comienzan a requerir cierta complejidad tecnológica para
ofrecer mayores desafíos a sus clientes, la industria y la academia comienzan a prestarse mutuamente
mayor atención. De esta forma es posible observar hoy la aplicación de técnicas de Inteligencia Artificial en
productos comerciales de entretenimiento, aunque en algunos casos con timidez. De la misma forma el
desarrollo tecnológico de la industria provee a los investigadores con interesantes y motivadores campos de
prueba para sus actividades. La reciente liberación del código de algunos de sus productos es una
excelente iniciativa en ese aspecto. Sin duda alguna, este es el comienzo de una nueva sociedad con
perspectivas de futuro alentadoras y, por qué no, sumamente entretenidas.
Referencias
[1]
[2]
[3]
[4]
Computing machinery and intelligence. Turing, Alan M. Mind, 59, 433-460. (1950).
Federation of International Robo-soccer Association. Web site: http://www.fira.net/
The Robocup Federation. Web site: http://www.robocup.org/
Trading Agent Competition. SICS - Sweedish Institute of Computer Science. Web site:
http://www.sics.se/tac/
[5] Blizzard Entertainment. Web site: http://www.blizzard.com
[6] Westwood Studios. Web site: http://www.westwoodstudios.net
[7] id Software. Web site: http://www.idsoftware.com
[8] 3D Realms. Web site: http://www.3drealms.com
[9] Open Real Time Strategy – ORTS. A Free Software RTS Game Engine. Home page:
http://www.cs.ualberta.ca/~mburo/orts/
[10] University of Alberta Computer Poker Research Group. Web site: http://poker.cs.ualberta.ca/
[11] Second CLIMA contest. Future University, Hakodate, Japan. Web site:
http://cig.in.tu-clausthal.de/CLIMAContest/
[12] Intérprete on-line para DeLP (Defeasible Logic Programming). Laboratorio de Investigación y
Desarrollo en Inteligencia Artificial LIDIA, Universidad Nacional del Sur.
http://lidia.cs.uns.edu.ar/delp_client
[13] Defeasible logic programming: An argumentative approach . García Alejandro J, and Simari
Guillermo R. Journal of Theory and Practice of Logic Programming. Vol 4(1-2) pp 95-138.
Cambridge University Press. UK (2004)
[14] On the Acceptability of Arguments and its Fundamental Role in Nonmonotonic Reasoning, Logic
Programming and n-Person Games. Phan Minh Dung, Artificial Intelligence, 77-2 pp 321-358, 1995.
[15] Human Level AI's Killer Application: interactive computer games. John Laird, Michael van Lent.
Proceedings of the Seventeenth National Conference on Artificial Intelligence and Twelfth
Conference on Innovative Applications of Artificial Intelligence. pp 1171-1178, 2000.
[16] Real Time Strategy. New AI Research. Michael Buro. Proceedings of the International Joint
Conference on AI 2003, Acapulco, Mexico, pp.1534—1535.
[17] Intelligent Agents in Computer Games. Van Lent, Laird, et al. Proceedings of the National
Conference on Artificial Intelligence, July 1999, Orlando, FL, pp. 929-930.
[18] Laboratorio de Investigación y Desarrollo en Inteligencia Artificial LIDIA, Universidad Nacional del
Sur. Web site: http://lidia.cs.uns.edu.ar
Descargar