oxente team: implementação de habilidades de jogo em um time de
Transcrição
oxente team: implementação de habilidades de jogo em um time de
OXENTE TEAM: IMPLEMENTAÇÃO DE HABILIDADES DE JOGO EM UM TIME DE FUTEBOL DE ROBÔS SIMULADO UTILIZANDO OTIMIZAÇÃO HEURÍSTICA Andrea Cassia Peixoto Bitencourt∗ Ana Cláudia Fiorin Pianesso∗ [email protected] [email protected] João Paulo Rocha Portela de Sousa ∗ Julhilson Silveira Ferreira Júnior∗ [email protected] [email protected] Marcelo Santos Linder Ricardo Perrone da Silva∗ [email protected] [email protected] ∗ Orientador Augusto Loureiro da Costa ∗ [email protected] ∗ Programa de Pós-Graduação em Mecatrônica, Universidade Federal da Bahia Departamento de Engenharia Mecânica - Escola Politécnica Departamento de Ciência da Computação - Instituto de Matemática CEP: 40210-630, Salvador, BA, Brasil RESUMO A inteligência artificial mostra-se como um dos mais promissores ramos da ciência da computação. Para testes e consolidação de métodos e teorias, atualmente utiliza-se competições de futebol entre robôs, a RoboCup. Este artigo pretende melhorar a atuação de um time de futebol de robôs, melhorando as habilidades de chute e de passe, inclusive melhorando a saída de bola do goleiro. Foi utilizado como base o sistema multiagente base do time da Universidade de Amsterdam, que disponibiliza somente as habilidades básicas. PALAVRAS-CHAVE: Inteligência RoboCup, Sistemas Multiagentes Artificial Distribuída, 1 INTRODUÇÃO A Inteligência Artificial Distribuída (IAD) é uma das áreas da Inteligência Artificial (IA) que mais se desenvolveu nos últimos anos e apresenta um enorme potencial de aplicação (Cheny et al., 2002). Segundo Weiss (1999), esta área envolve o estudo, construção e aplicação de sistemas multiagente, onde agentes inteligentes (entidade lógica ou física) interagem para realizar um conjunto de objetivos ou tarefas. Uma forma comum de incentivo à pesquisa em IA, mais especificamente em IAD é a proposta de problemas padrão. Um problema bastante interessante, que vêm atraindo interesse de diversos grupos de pesquisa em robótica e IA e que será o foco deste trabalho é a realização de partidas de futebol entre robôs VII SBAI / II IEEE LARS. São Luís, setembro de 2005 autônomos. Esta proposta surgiu da iniciativa de um grupo de pesquisadores da área, e em 1997 resultou na Primeira Copa Mundial de Futebol de Robôs (RoboCup) em Nagoya, Japão. Esta proposta apresenta a possibilidade de utilização de diversas tecnologias e áreas de pesquisa distintas. Em relação à IA, há espaço para a implementação de diferentes técnicas como cooperação em sistemas multiagentes, sistemas especialistas, lógica nebulosa, redes neurais, dentre outras (Stone e Veloso, 2000). Pelas características do problema e dos desafios envolvidos numa partida de futebol, o futebol de robôs tornou-se um importante laboratório principalmente para a pesquisa na área de sistemas multiagente. O jogo coletivo e, como tal, a participação de todos para que o objetivo principal (marcar o maior número de gols e vencer a partida) seja alcançado depende da atuação coletiva. É necessário que haja interação e comunicação entre os membros da mesma equipe para que se obtenha sucesso. Talentos individuais não são garantias de bons resultados, o ponto chave é cooperação. Desta forma, ao contrário dos paradigmas tradicionais da IA, os SMA deixam de dar atenção às iniciativas, seja mental (IA simbolista) ou neural (IA conexionista) de compreender e simular o comportamento humano isoladamente para abordar a idéia de Comunidade Inteligente (Bittencourt, 1998). Este conceito representa um sistema em que o comportamento social de comunidade possui características inteligentes, formada por agentes autônomos inseridos em um ambiente comum e capazes de se comunicar e cooperar para alcançar uma meta global (Briot e Demazeau, 2002). 1 Considerando os aspectos citados, este artigo descreve a aplicação de problemas de coletividade utilizando sistemas multiagente. O domínio de aplicação é um time de futebol de robôs simulado participante de diversos campeonatos mundiais. O objetivo é implementação de habilidades de jogo e tomada de decisão dos agentes para obtenção de estratégias de jogo e conseqüentemente melhoramento do desempenho do time. de Futebol Simulado, foco deste artigo, jogadores virtuais e independentes (agentes) jogam futebol num campo virtual simulado por computador como pode ser observado na figura 1, em que os jogos são divididos em dois tempos de 5 minutos (de Boer et al., 2002). Na seção 2 encontra-se uma breve descrição do RoboCup e suas características. Na seção seguinte é apresentado o problema futebol de robôs com suas características, arquitetura proposta bem como os componentes integrantes desta arquitetura e suas funcionalidades. A seção 4 descreve as principais características do objeto de estudo deste trabalho, o time UvA Trilearn. Na seção 5 é apresentada a implementação de estratégicas de jogo, com a metodologia utilizada e resultados obtidos e por fim encontra-se as conclusões e perspectivas para futuros trabalhos. 2 ROBOCUP A RoboCup segundo Asada et al. (2000), Kitano et al. (1997) e Kitano et al. (1995) trata-se de uma iniciativa internacional que visa fomentar a investigação e a integração das áreas da Inteligência Artificial e da Robótica no sentido de promover a evolução de algumas teorias, algoritmos, aprendizagem e arquiteturas de sistemas multiagente. O fato deste campeonato se tratar de robótica coletiva, na qual se trabalha com equipes de robôs e não com habilidades de um robô isoladamente, torna-o um ambiente propício para investigação de problemas apresentados na área de Inteligência Artificial (Foroughi et al., 2001). Apesar das vantagens apresentadas, esse fato agrava muitos problemas como os relativos à coordenação e à orientação dos jogadores. No caso da RoboCup, há ainda a característica de serem realizadas partidas entre times diferentes, o que torna os problemas relatados ainda mais complexos (de Boer et al., 2001). Atualmente a RoboCup é composta de diferentes provas e modalidades em que são implementados e testados diversos problemas de IA. Nem todas as provas que atualmente integram este campeonato faziam parte do seu formato original. As modalidades atuais desta competição estão descritas no próximo item. 2.1 As modalidades da RoboCup O formato da RoboCup é baseado principalmente em um problema padrão: jogar futebol. Este fato é considerado por Stone e Veloso (2000) uma grande vantagem em relação a outros formatos de competições com propósitos semelhantes. Desse modo concentram-se recursos e esforços num mesmo tipo de atividade, segundo regras comuns que todos conhecem e avaliam (de Boer et al., 2002). Atualmente existem outras modalidades de competição, nem todas envolvidas com futebol. As principais atividades englobadas pela RoboCup no atual formato estão descritas nos itens a seguir. • Competição de Futebol (RoboCup Soccer) - é considerada a atividade mais importante do compeonato. Inclui cinco competições: simulação, pequeno porte (18 cm), médio porte (50 cm), robôs de quatro patas e humanóides. Na Liga VII SBAI / II IEEE LARS. São Luís, setembro de 2005 Figure 1: Ambiente Simulado - Time UvA Trilearn X Time FCPortugal • Salvamento (RoboCup Rescue) - nesta modalidade as competições desenvolvem-se em torno de robôs capazes de efetuar salvamentos em situações de desastre. Inclui uma competição de simulação e uma competição com robôs reais (RoboCup, 2005c). • RoboCup Junior - é fundamentalmente uma iniciativa educativa e de sensibilização, que combina cooperação com competição. Crianças e jovens utilizando uma infraestrutura simples criam equipes de robôs para jogar futebol (2 contra 2), dançar ou resgatar vítimas (RoboCup, 2005b). 3 FUTEBOL SIMULADO DE ROBÔS O futebol simulado de robôs foi concebido para ser executado em um ambiente distribuído, levando-se em conta uma variedade de problemas científicos tais como: processamento em tempo real, robustez de comunicação com ruído, cooperação entre diversos agentes até processamento incompleto de informações. Logo, fica evidenciada a natureza abrangente com que o futebol simulado aborda diversas áreas do conhecimento. A simulação é assegurada por uma arquitetura cliente/servidor em que o servidor central é o (Soccerserver), e os jogadores constituem os clientes. Desta forma, observa-se que há uma arquitetura multiagente suportando a simulação(Kitano et al., 95, 97). No (Soccerserver) é modelado um campo de futebol virtual composto por duas equipes (Noda e Frank, 2000). Cada equipe é constituída por onze jogadores, tendo como objetivo vencer a partida marcando um número maior de gols que a equipe adversária. Os clientes, que desempenham o papel de jogador, se conectam ao (Soccerserver) via socket UDP/IP(Kitano et al., 95), onde toda a partida é simulada(Cheny et al., 2002). O jogo de futebol no campo virtual é controlado pelo Soccerserver de acordo com o conjunto de regras do jogo. Além de simular os movimentos da bola e dos jogadores, o servidor é ainda responsável pela comunicação entre os clientes. As percepções 2 e ações dos jogadores são mapeadas em mensagens enviadas e recebidas através do protocolo de comunicação executado entre o Soccerserver e os agentes num ambiente de rede. Todas as ações são tomadas pelos próprios clientes de forma autônoma, que recebem do servidor informações visuais, auditivas e físicas (Noda e Stone, 2000). Em virtude da arquitetura adotada, há flexibilidade para que os jogadores sejam implementados em qualquer linguagem de programação, desde que haja suporte para o protocolo UDP (Noda e Stone, 2000). A figura 2 ilustra as interações entre os componentes nesta arquitetura. Soccer Monitor Time A Time A A arquitetura do agente utilizada pelo time é hierárquica, contendo três camadas com níveis diferentes de abstração apresentada na figura 3 (de Boer e Kok, The Netherlands,2002). A camada de base é a Interaction Layer responsável pela interação com o ambiente de simulação soccer server . A camada de nível médio é a Skills Layer a qual utiliza funcionalidade disponibilizada pela camada Interaction Layer para construir um modelo do ambiente e implementar as várias habilidades de cada agente (intercepção de bola etc.). A camada mais alta na arquitetura é a Control Layer que contém o componente de raciocínio do sistema. Nesta camada, a melhor ação possível é selecionada da Skills Layer que depende do estado do ambiente atual e a estratégia atual do time. Cliente 1 Soccer Server UDP/IP Cliente 11 UDP/IP ... ... Cliente 1 et al. (2001) várias estratégias utilizadas em times como FC Portugal-2000, CMUnited-99, Cyberoos-2000, dentre outros foram aproveitadas. Cliente 11 Figure 2: Arquitetura simplificada dos componentes envolvidos na simulação O servidor é constituído por três módulos que permitem a comunicação com os clientes (Noda et al., 97). Os módulos são o servidor (soccerserver), o visualizador (soccermonitor) e o vídeo (logplayer). O servidor é o responsável por realizar a simulação de jogos utilizando para tal uma arquitetura clienteservidor. O monitor é a ferramenta que permite visualizar os jogos virtuais realizados com o auxílio do simulador. Comunicase com o servidor também através de sockets UDP, recebendo deste as posições de todos os objetos no campo virtual. Efetua depois o display gráfico desta informação de forma a permitir aos humanos a visualização do jogo. O vídeo é uma aplicação que permite a visualização de jogos pré-gravados (arquivos log). A sua utilização é associada à utilização de um monitor de forma a poder visualizar os jogos. 4 O TIME UVA TRILEARN Entre os times participantes da liga simulada da Robocup, o time UvA Trilearn foi escolhido para ser utilizado como base de estudo e investigação de técnicas de IA, especificamente a implementação de habilidades de jogo para sistemas multiagentes. A escolha desse time deu-se em função de alguns fatores tal como a documentação completa disponibilizada e os artigos descrevendo algumas técnicas utilizadas pelo próprio time. A sua primeira versão foi elaborada em 2001 pelos estudantes Remco de Boer e Jelle Kok da área de computação e Inteligência Artificial do grupo Intelligent Autonomous Systems (IAS) da University of Amsterdam (de Boer et al., 2001) como parte dos seus projetos de conclusão de curso, tendo continuação nos trabalhos do doutorado de Jelle Kok. O foco dado nesta versão do time foi apenas nas estratégicas básicas dos jogadores (passe, chute...) construídas desde o inicio. Nas versões posteriores foram acrescentadas gradativamente habilidades e estratégias de jogo, interação, percepção e comunicação. Segundo de Boer VII SBAI / II IEEE LARS. São Luís, setembro de 2005 Figure 3: Arquitetura UVA Trilearn Durante uma partida de futebol, percepções entram no sistema através da Interaction Layer e é enviada para a Skills Layer onde elas são usadas para atualizar o modelo do ambiente do agente. A informação mais recente do estado do ambiente é então usado pela Control Layer para considerar a melhor ação possível. A ação selecionada pela Control Layer é trabalhada subseqüentemente fora na Skills Layer que determina o comando de atuação apropriado. Este comando é executado então pelo módulo de Actuador Control na Interaction Layer. Estão apresentadas na lista abaixo, as colocações nos campeonatos em que o time UvA Trilearn participou. German Open 2001 - 5◦ lugar World Cup 2001 - 4◦ lugar German Open 2002 - 1◦ lugar World Cup 2002 - 4◦ lugar German Open 2003 - 1◦ lugar American Open 2003 - 1◦ lugar World Cup 2003 - 1◦ lugar American Open 2004 - 1◦ lugar World Cup 2004 - 4◦ lugar World Cup 2005 - 10◦ lugar 3 4.1 O Código disponibilizado O código liberado pela equipe de desenvolvimento, referente ao time que participou da Robocup 2003, contém implementação das camadas Interaction Layer e Skills Layer, compreendendo métodos de sincronização agente-ambiente, modelo do ambiente, e algumas habilidades dos jogadores. Dentre as características do time básico liberado destacamse: a) a estratégia de chute, onde o jogador ao interceptar a bola chuta-a para a direção oposta de forma aleatória indiferentemente da posição do seu oponente no campo; b) a formação do time, onde os jogadores permanecem em suas posições estratégicas determinadas pelo seu tipo (home position) levando em consideração a posição da bola. Aspectos relacionados a habilidades de drible e modelagem do oponente na habilidade de interceptação, que também são considerados aspectos do nível básico de decisão não estão disponíveis no código liberado. A intenção da equipe oficial de desenvolvimento do time era liberar um código básico para servir como ponto de partida para elaboração de novos times. Considera-se que o código liberado é um bom inicio para investigação de sistemas multiagentes, mas não suficientemente bom para ser usado em competições. Figure 4: Área Delimitada para chute a gol entre os centros do jogador com a posse da bola e os possíveis receptores, cujos comprimentos são definidos como "D". Em seguida, é analisada a distância "d" entre os centros de todos oponentes e este segmento. Caso não haja adversário a uma distância "d" inferior a 1/5 de "D", o jogador é considerado desmarcado.Esta análise é ilustrada na figura 5. A mesma heurística foi utilizada em relação à saída de bola a partir do goleiro. O código foi desenvolvido utilizando-se a linguagem orientada a objetos C++, e a concepção da arquitetura adotada no algoritmo encontra-se estruturada em um conjunto de classes. Classes responsáveis pelo nível de decisão mais alto não fazem parte do código liberado e não serão abordados neste artigo. 5 IMPLEMENTAÇÃO DAS HABILIDADES No código liberado, na habilidade de chute, o jogador mais rápido intercepta a bola e chuta em direção do gol, escolhendo um dos lados do gol como alvo, considerando apenas o tempo decorrido no jogo. Para efetuar o chute o jogador escolhe o canto esquerdo se o tempo for par e o canto direito se este for ímpar. Isso é feito sem se levar em conta a posição do jogador em relação ao gol inimigo, a posição de seus companheiros de time e a posição de seus oponentes. A habilidade de passe não foi implementada no código liberado. Os demais jogadores se movem para a posição estratégica que é determinada pela formação e pela posição da bola. O trabalho relatado neste artigo propõe a implementação da habilidade de passe e a otimização da habilidade de chute a gol, através da utilização de técnicas de IA. A habilidade de chute a gol foi otimizada a partir de regras heurísticas de acordo com a seguinte lógica: é verificada a distância entre o jogador e o gol adversário. Caso a distância seja menor que 1/3 do comprimento do campo, é efetuado o chute a gol. A figura 4 ilustra a área de chute. Caso o jogador se encontre fora da área delimitada para o chute a gol, será verificada a possibilidade do passe. A habilidade de passe foi também implementada a partir de regras heurísticas e possibilita o jogador tomar a seguinte decisão: passar a bola para o companheiro mais apto ou chutar a gol. O companheiro mais apto é definido como aquele que se encontra na posição mais ofensiva e sem marcação. São traçados segmentos de reta VII SBAI / II IEEE LARS. São Luís, setembro de 2005 Figure 5: Tomada de decisão para o passe 5.1 Resultados Obtidos Após a implementação das habilidades, pôde-se observar que o time melhorou muito a qualidade do passe, tornando possível a triangulação. Houve também um aumento considerável da posse de bola, devido à redução da interceptação pelo oponente. A saída de bola a partir do goleiro foi notadamente otimizada, com uma redução drástica dos passes errados. A eficácia do chute a gol foi aperfeiçoada, já que o mesmo só é efetuado a uma distância mais representativa em relação à possibilidade de gol. Foram realizadas várias simulações confrontando o time oficial UvA Trilearn 2003 com o time baseado no código liberado pela equipe de desenvolvimento, sem alterações. Em seguida, foram realizadas partidas entre o UvA Trilearn 2003 e o time baseado no código modificado. Comparações de desempenho entre os cenários descritos podem ser realizadas a partir da análise da tabela 1. De acordo com os resultados apresentados observa-se um avanço considerável a partir das alterações realizadas. 6 CONCLUSÕES E TRABALHOS FUTUROS Os resultados obtidos neste trabalho com a implementação da habilidade de passe e a otimização da habilidade de chute a gol 4 Table 1: Resultados obtidos em simulações antes e depois da implementação de estratégias de jogo Partida Time Básico Time Oxente UvA Trilearn 2003 13 X 0 9X2 UvA Trilearn 2003 15 X 0 7X1 UvA Trilearn 2003 12 X 1 12 X 3 UvA Trilearn 2003 17 X 2 9X4 UvA Trilearn 2003 13 X 0 7X3 UvA Trilearn 2003 15 X 0 7X2 foram consideradas satisfatórios. A melhoria de desempenho do time pôde ser comprovadas não apenas pelos resultados das partidas realizadas, mas também a partir da observação dos jogos. RoboCup (2005a). Robocup World Championship Games, http://www.robocup.org/games/31.html. RoboCup (2005b). RoboCupJunior, http://www.robocup.org/junior/index.html. RoboCup (2005c). RoboCupRescue: The Grand Challenge, http://www.robocup.org/games/36.html. Stone, P. e Veloso, M. (2000). Layered Learning and Flexible Teamwork in RoboCup Simulation Agents, springer verlag edn, RoboCup-99: Robot Soccer World Cup III. Weiss, G. (1999). Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence. As habilidades implementadas são consideradas neste trabalho, apenas os passos iniciais de melhoria no processo de tomada de decisão. Pode-se acrescentar a estas habilidades, aspectos relacionados a comunicação e sincronismo entre os agentes agentes, bem como a capacidade dos mesmos realizar avaliações e sugestões em uma jogada específica. REFERÊNCIAS Asada, M., Veloso, M., Tambe, M., Noda, I. e Kitano (2000). Overview of RoboCup, Computer Science. Briot, J. P. e Demazeau, Y. (2002). Principes et architecture des systemes multiagents, Paris. Cheny, M., Foroughi, E., Heintz, F., Huangy, Z., Kapetanakis, S., Kostiadis, J., Noda, I., Obst, O., Riley, P., Steens, T., Wangy, Y. e Yiny, X. (2002). RoboCup Soccer Server - for Soccer Server Version 7.07 and later. de Boer, R., Kok, J. e Groen, F. (2001). UvA Trilearn 2001 Research Abstract, http://www.science.uva.nl/ jellekok/robocup edn, RoboCup-2001. de Boer, R., Kok, J. e Groen, F. (2002). UvA Trilearn 2001 Team Description, berlin edn, Robocup-2001: Robot Soccer World Cup V. Springer Verlag. de Boer, R. e Kok, J. R. (The Netherlands,2002). The Incremental Development of a Synthetic Multi-Agent System: The UvA Trilearn 2001 Robotic Soccer Simulation Team, university of amsterdam edn, Master’s Thesis. Foroughi, E., Heintz, F., Kapetanakis, S., Kostiadis, K., Kummeneje, J., Noda, I., Obst, O., Riley, P. e Steffens, T. (2001). RoboCup Soccer Server User Manual: for Soccer Server version 7.06 and later, http://sourceforge.net/projects/sserver. Kitano, H., Asada, M., Kuniyoshi, Y., Noda, I. e Osawa, E. (1995). RoboCup: The Robot World Cup Initiative, agents97 edn, Proceedings of the First International Conference on Autonomous Agents. Kitano, H., Tambe, M. e Stone, P. (1997). The RoboCup Synthetic Agent Challenge, ijcai97 edn, International Joint Conference on Artificial Intelligence. VII SBAI / II IEEE LARS. São Luís, setembro de 2005 5