Controladores Fuzzy para Agentes Robôs Jogadores de
Futebol*
Hugo da Luz Silva1, Jessica Meyer1, Victor Souza1, Simon Viegas2, Marco A. C.
Simões1, 2, Helder Guimarães Aragão2
1
Núcleo de Arquitetura de Computadores e Sistemas Operacionais (ACSO)
Universidade do Estado da Bahia (UNEB)
Rua Silveira Martins, 2555, Cabula. Salvador – BA – Brasil
2
Grupo de Pesquisa em Computação Inteligente (GPCI)
Centro Universitário da Bahia (FIB)
Rua Xingu, nº. 179, Jardim Atalaia/STIEP. Salvador – BA – Brasil
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected]
Abstract. This paper presents the initial research results of Bahia Robotics
Team. This is a new research group created to investigate the application of
artificial intelligence methods in the standard problem of robotics soccer. In
this work, fuzzy controllers are used to improve some abilities of the players.
In the case of the attackers, the kick and the positioning ability were improved.
The midfielders had their positioning and passing ability improved. The
goalkeeper and the defenders had their positioning ability improved. The
generated Bahia2D soccer team was tested in matches against some victorious
teams from Robocup Brazil Open 2006 and from previous editions of the
Robocup World Competition. The positive results achieved and the ongoing
works to improve the current limitations are also presented.
Key Words: Fuzzy Logic, Robots' Soccer, Robocup.
Resumo. Este artigo apresenta os resultados iniciais do grupo de pesquisa
Bahia Robotics Team. Neste trabalho, controladores fuzzy são usados para
melhorar algumas habilidades dos jogadores. Para os atacantes, o chute e o
posicionamento foram aperfeiçoados. Os meiocampistas tiveram seu
posicinamento e tomada de decisões abordados. Goleiro e defensores tiveram
o posicionamento tratado. O time gerado Bahia2D foi testado em partidas
contra algumas equipes vitoriosas no Ropocup Brasil Open 2006 e em edições
anteriores da competição mundial da Robocup. Apresenta também os
resultados positivos obtidos até o momento, bem como os trabalhos em
andamento para solucionar problemas que ainda são encontrados.
Palavras chave: Lógica Fuzzy, Futebol de Robôs, Robocup.
*
Este projeto é parcialmente financiado pelos Programas de Bolsas de Iniciação Científica PICIN/UNEB
e PIBIC/FIB.
1. Introdução
Este artigo apresenta os primeiros resultados do projeto de pesquisa desenvolvido pelo
consórcio denominado Bahia Robotics Team (BRT). O BRT é uma união de dois grupos
de pesquisa – o Núcleo de Arquitetura de Computadores e Sistemas Operacionais
(ACSO/UNEB) e o Grupo de Pesquisa em Computação Inteligente (GPCI/FIB) –
visando investigar o estado da arte nas pesquisas em robótica inteligente. Para atingir
este objetivo, o BRT optou por dedicar-se ao projeto internacional de pesquisa
conhecido como RoboCup. Inicialmente este projeto conta com apoio financeiro dos
programas PICIN/UNEB e PIBIC/FIB através de bolsas de iniciação científica. Os
alunos envolvidos na pesquisa tiveram significativa participação no desenvolvimento do
projeto, através da criação dos controladores fuzzy, da avaliação dos resultados e da
elaboração do presente artigo.
A RoboCup foi criada em 1996 por um grupo de pesquisadores objetivando desenvolver
um desafio padrão para os estudos de inteligência artificial e robótica. O primeiro
problema abordado por esta iniciativa foi o futebol de robôs. O futebol de robôs é uma
atividade científica reconhecida pelo IEEE (Institute of Electrical and Electronics
Engineers), que tem apoiado a realização das competições mundiais na forma de
congressos científicos (Kitano, 1997).
A Robocup World Federation é uma iniciativa que aglutina pesquisadores das áreas de
inteligência artificial e robótica. A Robocup é dividida em quatro categorias:
RobocupSoccer, RobocupRescue, Robocup@Home e RobocupJunior.
A RobocupSoccer é a categoria que aborda o problema do futebol de robôs que está
sendo investigado pelo BRT, sendo subdividida em ligas: simulação, robôs pequenos,
robôs médios, robôs com 4 patas e robôs humanóides. Inicialmente, o BRT está
trabalhando com a liga simulação; esta liga é dividida em duas subligas: 2D e 3D. A liga
simulação funciona simulando uma partida de futebol entre dois times, de onze robôs
cada, através de um software simulador disponibilizado gratuitamente pela comunidade
de pesquisa RoboCup. Existem duas versões deste software, uma para cada subliga. Na
versão 2D, é considerado um ambiente bidimensional; na versão 3D, o ambiente torna-se
mais realista considerando três dimensões e, conseqüentemente, um significativo
aumento na complexidade do problema. No primeiro momento, o BRT está atuando na
subliga 2D.
A RobocupRescue é uma categoria que impõe desafios de resgate de vítimas de
acidentes, desmoronamentos, etc. A Robocup@Home visa desenvolver a indústria de
robôs domésticos e propõe desafios domésticos comuns, como limpar uma casa ou
mover móveis de lugar, para robôs autônomos. A RobocupJunior é a categoria
educacional da Robocup; tem por objetivo despertar a curiosidade científica e o senso de
investigação em estudantes do ensino médio e fundamental através de desafios
simplificados como futebol, dança e resgate.
O futebol é um dos jogos de equipe mais praticados no mundo e possui como principal
característica a cooperação entre os jogadores para alcançar a vitória. Por ser um
ambiente imprevisível, não-determinístico e dinâmico, tem sido considerado um
problema padrão para a Inteligência Artificial e gerado vários tópicos de pesquisa em
diversas áreas, tais como: sistemas com múltiplos agentes, algoritmos de cooperação,
inteligência artificial distribuída, aprendizagem, reconhecimento de padrões e robótica
inteligente.
O presente artigo apresenta um estudo, modelagem e aplicação de controladores fuzzy
em agentes inteligentes jogadores de futebol de robôs simulado em 2 dimensões. O
objetivo é desenvolver controladores nebulosos para os agentes jogadores de futebol
especializados nas diversas posições em campo, de forma a construir uma equipe de
agentes inteligentes capaz de disputar as competições da RoboCup Federation.
Especificamente, as habilidades de chute, passe, posicionamento sem bola e tomada de
decisão estão sendo abordadas neste artigo.
Na próxima seção, são descritos os fundamentos básicos de lógica fuzzy utilizados neste
trabalho. Na seção 3, apresenta-se sucintamente o ambiente do simulador utilizado neste
projeto. Os modelos desenvolvidos pelo grupo para controlar cada um dos jogadores do
time estão descritos na seção 4. Na seção 5, discute-se os resultados parciais obtidos, os
trabalhos em andamento e os futuros.
2. Lógica Fuzzy
A lógica Fuzzy foi desenvolvida por Zadeh em 1965 para representar conhecimento
incerto e impreciso (Zadeh, 1965). Esta lógica fornece uma maneira aproximada, mas
efetiva de descrever o comportamento de sistemas que são muito complexos, maldefinidos ou de difícil análise matemática. A intenção de Zadeh era flexibilizar a
pertinência de elementos em conjuntos que não possuíam fronteiras bem definidas. Para
isso, ele criou o conceito de grau de pertinência e, dessa forma, um elemento poderia
pertencer parcialmente a um dado conjunto.
Figura 1: Estrutura básica de um controlador nebuloso. Adaptada de (Sandri,
1999).
2.1 Conjuntos Fuzzy
Segundo Russell (2003), a teoria dos conjuntos Fuzzy é uma maneira de especificar o
quanto um objeto satisfaz a uma descrição vaga. Fabri (2000) afirma que a força da
Lógica Fuzzy deriva de sua habilidade em inferir conclusões e gerar respostas baseadas
em informações vagas, ambíguas, incompletas e imprecisas. Neste aspecto, os sistemas
de base Fuzzy têm habilidade de raciocinar com base em premissas parciais ou
imprecisas. Seu comportamento é representado de maneira muito simples e natural,
levando à construção de sistemas compreensíveis e de fácil manutenção. Estes conjuntos
são formados por Variáveis Lingüísticas que possuem valor expresso qualitativamente
por um termo lingüístico e, quantitativamente, por uma função de pertinência (Ortega,
2001). Estas variáveis podem conter modificadores que alteram seu valor. Esses
modificadores podem amenizar ou intensificar seu valor; alguns exemplos mais comuns
são: “muito”, “pouco”, “não muito”, “mais ou menos”.
2.2 Controladores Fuzzy
As técnicas de controle fuzzy se caracterizam pela utilização de regras lógicas no
algoritmo de controle, com a intenção de descrever em uma rotina a experiência humana,
intuição e heurística para controlar um processo. Esses controladores são bastante
versáteis quando o modelo físico é complexo e de difícil representação matemática. Eles
são utilizados em sistemas não-lineares ou onde a incerteza se faz presente de maneira
intrínseca. A figura 1 apresenta a estrutura básica de um controlador nebuloso, descrita a
seguir.
Interface de Fuzificação – Possui a função de identificar os valores das variáveis
de entrada, que caracterizam o estado do sistema, e normalizá-los em um universo de
discurso padronizado.
Base de Regras – Possui a função de caracterizar a estratégia de controle e as
metas do controlador. É formada por estruturas do tipo: Se <premissa> Então
<conclusão> (Sandri, 1999). Estas regras, juntamente com os dados de entrada, são
processadas pela máquina de inferência, que infere as ações de controle de acordo com o
estado do sistema, aplicando o operador de implicação.
Máquina de Inferência – O processo de inferência consiste em:
a) Verificação do grau de compatibilidade entre os fatos e as cláusulas nas
premissas das regras.
b) Determinação do grau de compatibilidade global da premissa de cada regra.
c) Determinação do valor da conclusão, em função do grau de compatibilidade
da regra com os fatos e a ação de controle constante no conseqüente das
regras.
d) Agregação dos valores obtidos como conclusão nas várias regras,
conseguindo-se uma ação de controle global.
Interface de Defuzificação – Nos controladores nebulosos do tipo clássico, a
interface de defuzificação é utilizada para obter uma única ação de controle precisa, a
partir do conjunto nebuloso. Os métodos mais utilizados são (Sandri, 1999):
a) Primeiro Máximo (SOM): Encontra o valor de saída através do ponto em que
o grau de pertinência da distribuição da ação de controle atinge o primeiro
valor máximo.
b) Média dos Máximos (MOM): Encontra um valor de saída que representa o
valor médio de todos os valores em que a função de pertinência atinge o
máximo.
c) Centro da Área (COA): Também conhecido como Centróide. O valor de
saída é o centro de gravidade da função de distribuição de possibilidade da
ação de controle.
3. O Ambiente do Futebol de Robôs Simulado
O ambiente no qual os agentes interagem é o simulador Soccer Server 2D. Ele fornece
um campo de futebol virtual que segue as regras do futebol normal e possui,
proporcionalmente, as mesmas medidas (aproximadamente 105m de comprimento e 68m
de largura). O servidor, disponibilizado pela RoboCup Federation, é implementado em C
e C++ e possui uma arquitetura estilo cliente-servidor onde os clientes (jogadores)
podem ser escritos em qualquer linguagem de programação que tenha interface UDP/IP.
Esse servidor é um sistema em tempo real que trabalha com intervalos discretos (ciclos).
Atualmente, o jogo ocorre em dois tempos de 5 minutos (3000 ciclos), portanto, cada
ciclo tem uma duração de 100ms. O Soccer Server também inclui uma ferramenta de
visualização chamada 'monitor de futebol' que exibe o que está acontecendo dentro do
servidor durante um jogo. O servidor e o monitor são conectados por UDP/IP. Assim
que o servidor é conectado ao monitor, ele passa a enviar informações relativas ao
estado atual do mundo a cada ciclo.
4. Controladores Difusos para Robôs Jogadores de Futebol
Inicialmente, o grupo de pesquisa dedicou-se à investigação de outras equipes vitoriosas
em competições promovidas pela Robocup internacional e brasileira. Nesta investigação,
percebeu-se que muitos times atuais são construídos a partir de outros times chamados
times-base. Um time-base fornece uma interface mais amigável de interação entre o
agente jogador e o simulador. Usando um time-base pode-se abstrair todos os detalhes
de comunicação UDP e ainda utilizar um modelo de representação do ambiente mais rico
e funcional. Existem vários códigos disponibilizados gratuitamente para servir de timebase e, dentre os diversos investigados, optou-se por utilizar o do UvA Base 2003. Este
código corresponde a parte do código fonte do UvA Trilearn 2003 (KOK et al, 2003),
equipe desenvolvida pela Universidade de Amsterdã e atual campeã da competição
mundial na categoria 2D. A escolha do UvA Base deu-se pela alta expressividade do seu
modelo de ambiente e pela facilidade da interface oferecida para comunicação com o
simulador. Os estudos do UvA Base 2003 conduziram ao seu predecessor – UvA
Trilearn 2001 (BOER & KOK, 2001) – que possui farta documentação sobre o
simulador e o ambiente em foco.
Decidido o código base a ser utilizado, foi iniciado o trabalho de definição de variáveis
lingüísticas de entrada e saída e bases de regras fuzzy para os controladores. Estes
modelos estão descritos nas subseções a seguir. Para todo o processo de modelagem foi
utilizada a ferramenta XFuzzy 3.0.
Após testes empíricos, optou-se pela utilização de um time com formação 4-3-3
ofensivo. Isto significa que o time é composto por um goleiro, dois zagueiros, dois
laterais, um meio campo defensivo, dois meio campo ofensivos e três atacantes. As
figuras 2,3,5,6,7,8,9 e 10 nesta seção representam a definição dos termos lingüísticos
usados para cada variável. O eixo Y destes gráficos indicam o grau de pertinência de
cada valor no eixo X aos termos lingüísticos descritos no corpo do gráfico.
4.1 Controlador para Posição de Chute
O objetivo do controlador para posição de chute é encontrar o ponto no gol onde a
possibilidade de marcar seja a maior possível, sendo a bola chutada da posição atual do
agente. Dessa forma, o agente vai escolher o canto do chute de acordo com sua posição
em relação ao gol e a posição relativa do goleiro. A variável de saída é a Posição do
Chute, que representa a posição no gol em que o agente irá chutar a bola. Seu universo
de discurso varia de -7.0 à 7.0, correspondente à posição das traves no eixo Y. O valor
do eixo X a ser considerado é o limite do campo, o mesmo da linha do gol, 52.5. A
variável possui os termos lingüísticos apresentados na figura 2.
Figura 2: Conjunto fuzzy para as variáveis posição no gol e do goleiro
As variáveis de entrada que influenciam a saída são: Posição do Goleiro, que representa
a posição do goleiro no gol e a Posição do Jogador, que representa a posição relativa do
agente no campo, com universo de discurso variando de -7.0 à 7.0. Os termos
lingüísticos utilizados são apresentados na figura 3.
Figura 3: Conjunto fuzzy para a variável posição do jogador.
As regras para esse controlador foram criadas a partir da combinação entre as variáveis
de entrada, visando a posição no gol mais distante possível do goleiro sem desconsiderar
a posição do jogador. O mesmo peso foi atribuído para todas as regras da base. Este
controlador foi inicialmente utilizado pelos três agentes atacantes. Posteriormente, o
mesmo foi reutilizado também pelos meio campo ofensivos no momento em que se
encontram em situação favorável a chutar para o gol.
4.2 Controlador para Posicionamento sem a Bola
O objetivo do controlador para o posicionamento sem a bola é permitir aos atacantes,
quando sem a posse da bola, encontrarem uma posição no campo do adversário
baseando-se em sua posição atual, na linha de impedimento e na posição da bola. Foi
utilizada a abordagem de divisão do campo em zonas (adaptada da proposta de Boer e
Kok, 2002), onde a metade do campo do adversário foi dividida em uma matriz de 9
zonas. A figura 4 apresenta essa divisão.
Figura 4: Divisão do campo em zonas, para o time que começa à esquerda.
Adaptada de (Reis, 2003).
Figura 5: Conjunto fuzzy para as variáveis do eixo X.
Figura 6: Conjunto fuzzy para as variáveis do eixo Y.
A ferramenta XFuzzy possibilitou a modelagem de dois controladores para a posição: um
para o eixo X e outro para o eixo Y. Esses dois controladores foram integrados a um
sistema que possui duas bases de regras independentes. Essa divisão simplificou a
criação das regras e não gerou ruído no resultado desejado, pois a variável de saída do
eixo X não é influenciada pelas variáveis de entrada no eixo Y e o mesmo ocorre com a
saída no eixo Y. Dessa forma, o sistema funciona como um único controlador com cinco
entradas e duas saídas.
As variáveis de saída utilizadas pelo controlador são a Posição X e a Posição Y, que
representam a posição final para onde o agente deve se deslocar nos eixos X e Y,
respectivamente. A figura 5 apresenta os termos lingüísticos utilizados para as variáveis
do eixo X. A figura 6 descreve o universo de discurso das variáveis do eixo Y.
As variáveis de entrada são: a posição do jogador e da bola nos eixos X e Y e a posição
de impedimento no eixo X.
As regras para esse controlador foram criadas de forma que o agente se deslocasse
apenas entre quadrantes adjacentes. Dessa forma, a movimentação ocorre entre
distâncias curtas, pois a cada ciclo as percepções podem mudar e, conseqüentemente, a
direção a seguir. Por exemplo, um agente posicionado no quadrante 8 só poderá se
deslocar até os quadrantes 4, 5, 6, 7, 8 e 9, pois não conseguirá chegar aos quadrantes 1,
2 e 3 no próximo ciclo. Isso foi definido criando-se regras que possuem os mesmos
valores para as entradas, mas com saídas e pesos diferentes. As regras para o agente
permanecer no quadrante atual, quando a bola está em outro quadrante, possuem peso
menor, fazendo com que ele se movimente sempre na direção da bola.
Figura 7. Universo de discurso para a variável posição X do agente
4.3 Controlador para Tomada de Decisão dos Meias Ofensivos
O objetivo do controlador fuzzy para tomada de decisão dos meias ofensivos é controlar
qual atitude estes deverão tomar quando estiverem com a posse de bola num
determinado ponto do campo. Sendo assim, o atacante deverá tomar a decisão do que
fazer analisando a posição X e Y global do agente, a distância do agente ao adversário
mais próximo, a distância do agente ao gol adversário, a distância ao gol adversário do
agente companheiro mais próximo, a quantidade de adversários próximos ao agente
companheiro e a distância do agente ao companheiro. A variável de saída será um valor e
dependendo do intervalo em que esteja será tomada a decisão de chutar, driblar, passar a
bola, tocar à frente ou carregar a bola. O universo de discurso da variável de saída varia
de 0 a 5, onde cada intervalo representa uma decisão. Os termos lingüísticos utilizados
pelas variáveis do eixo X e do eixo Y, e a quantidade de adversários, estão representados
respectivamente nas figuras 7, 6 e 8.
Os termos lingüísticos utilizados pelas variáveis distância do agente ao adversário mais
próximo, distância do agente ao gol advesário, distância do companheiro mais próximo
ao gol adversário e distância do agente ao companheiro mais próximo estão
representados na figura 9. A figura 10 ilustra o universo de discurso da variável de saída
que representa a decisão tomada pelo agente meio campista.
Figura 8. Universo de discurso para a variável quantidade de adversários
próximos ao agente companheiro
Figura 9. Universo de discurso para as variáveis: distância do agente ao
adversário, distância do agente ao gol, distância do agente companheiro mais
próximo ao gol e distância do agente ao companheiro.
Figura 10. Universo de discurso para a variável de saída do controlador dos
meias ofensivos.
As regras para o controlador foram criadas a partir da combinação das variáveis de
entrada, sempre visando dificultar ao máximo a perda da posse da bola e aumentar as
possibilidades de gol.
4.4 Controlador para Posicionamento do Meia Defensivo
O meia-defensivo possui um controlador fuzzy cujo objetivo é posicionar
estrategicamente o agente na sua área de atuação, levando em consideração a posição da
bola e a sua própria posição. Para esse controlador foram definidas duas bases de regras:
uma para o eixo X (na direção de um gol ao outro) e outro para o eixo Y (na direção de
uma lateral a outra).
A tática para o eixo X é movimentar-se em direção da bola, e a intensidade desta ação
depende da posição global da bola e do jogador, ou seja, a depender da posição de cada
objeto o jogador tenderá a se aproximar mais ou menos da bola.
Para o eixo Y, a movimentação ocorre de modo similar a do eixo X, só que levando em
consideração a coordenada Y. Além disso, para esta base de regras é acrescentada a
coordenada do eixo X da bola, que tem um peso expressivo sobre a decisão final de
posicionamento. Quanto mais a bola estiver afastada do campo defensivo do time do
agente, mais ele tenderá a ficar no centro do campo (em relação ao próprio eixo Y),
evitando assim um deslocamento desnecessário, já que a bola está, teoricamente,
afastando-se de sua zona de atuação.
4.5 Controlador para Posicionamento dos Laterais
O objetivo do controlador para posicionamento dos laterais é permitir a estes, quando
estiverem sem a posse da bola, que se movimentem ao longo das laterais do campo de
defesa ao ataque. O controlador faz com que o lateral sempre seja atraído pela bola.
Desta forma, com a bola indo para o ataque o lateral também avança até um pouco mais
da metade do campo adversário. Esse comportamento faz com que os laterais se
posicionem como “alas”, defendendo ou atacando a depender da posição da bola.
As variáveis de saída utilizadas pelo controlador são a Posição X e a Posição Y, que
representam a posição final para a qual o agente deve se deslocar no eixo X e Y,
respectivamente. As variáveis do eixo X possuem os seguintes termos lingüísticos: Perto,
que varia de -45 à -15; Médio, que varia de -15 à 15; e Longe, que varia de 15 à 45.
4.6 Controlador para Posicionamento dos Zagueiros
O objetivo do controlador para posicionamento dos zagueiros é permitir que estes,
quando estiverem sem a posse da bola, se posicionem em busca da bola e mantenham-se
no centro da zaga. Para esse controlador o eixo Y foi dividido em mais duas zonas,
CentroEsquerda e CentroDireita, fazendo com que seu posicionamento se concentre no
centro da defesa, deixando o espaço nas laterais para os alas.
As variáveis de saída utilizadas pelo controlador são a Posição X e a Posição Y, que
representam a posição final para a qual o agente deve se deslocar no eixo X e Y,
respectivamente. As variáveis do eixo X possuem os seguintes termos lingüísticos: Perto,
que varia de -45 à -28.125; Médio, que varia de -28.125 à -11.25; e Longe, que varia de
-11.25 à 0.
As variáveis do eixo Y possuem os seguintes termos lingüísticos: Esquerda, variando de
-34.0 à -19.428; CentroEsquerda, variando de -19.428 à -4.85; Centro, de -4.85 à 9.71;
CentroDireita, de 9.71 à 24.28; e Direita, de 24.28 à 34.
4.7 Controlador para Posicionamento do Goleiro
O controlador para posicionamento do goleiro faz com que este se desloque para
determinada posição do gol, ao perceber que um jogador do time adversário está a uma
distância apta a chutar a gol. A depender de qual posição do campo venha o jogador
adversário e de sua própria posição atual, o goleiro reage seguindo uma base de regras
definidas no XFuzzy, posicionando-se em determinada faixa de coordenadas (préestabelecidas de acordo com estas regras). Caso o atacante adversário esteja a uma
distância considerada próxima demais do gol, o goleiro passa então a ter um outro
comportamento mais adequado para a situação.
A Posição do Goleiro e a Posição do Jogador (o adversário que estiver com a posse de
bola e apto a chutar) são as variáveis de entrada para a base de regras Agarra. Baseada
nessas variáveis de entrada, a base de regras fornece uma variável de saída, que é
justamente a posição que o goleiro deve tomar para agarrar a bola, chamada de Posição
Agarra.
Após alguns testes, este modelo foi considerado ainda incompleto pois determina apenas
a posição do goleiro no eixo Y. Isto faz com o que o goleiro fique muito adiantado em
chutes feitos das laterais do campo ou nas cobranças de faltas pelo adversário.
5. Resultados Parciais e Trabalhos Futuros
O método escolhido para a validação dos controladores nebulosos foi execução de
partidas entre o time descrito na seção 4 (Bahia2D) e o UvA Trilearn Base, UvA
Trilearn 2003, MecaTeam (COSTA et al, 2006), Brainstormers (RIEDMILLER e
GABEL, 2006) e o Dainamite (ENDERT, 2006). Os controladores descritos na seção 4
foram adicionados aos poucos. Assim, é possível analisar o efeito de cada controlador no
desempenho dos jogadores individualmente e do time como um todo.
Inicialmente, apenas os controladores de chute e posicionamento dos atacantes foram
adicionados. Com esta configuração, foram realizadas dez partidas contra cada um dos
times, totalizando 50 partidas. Para analisar os dados dos jogos foi utilizada a ferramenta
Team Assistant. No total o Bahia2D venceu 10 partidas e perdeu 40. Em 50 jogos o
Bahia2D marcou 28 gols (média de 0,56 gols por jogo) e sofreu 461 (média de 9,22 gols
por jogo). Nos jogos contra o UvA Base os atacantes obtiveram o melhor desempenho
observado, com o maior número de vitórias, chutes a gol e gols. Contra o Mecateam os
jogos foram bastante equilibrados, os atacantes conseguiram uma boa média de gols (0,9
por partida) chegando a vencer quatro partidas.
Contra os demais times melhor qualificados, as derrotas eram esperadas, pois o Bahia2D
ainda carecia da implementação dos outros controladores para os demais jogadores. Isto
dificultava a chegada da bola ao ataque. Mesmo assim, alguns chutes a gol conseguiram
ser executados e três gols marcados contra o Dainamite.
A tabela 2 mostra a relação entre gols e chutes dos atacantes do Bahia2D e seus
adversários, isto é, a quantidade de gols marcados a cada 100 chutes. Esses valores
indicam uma pequena superioridade do Bahia2D sobre o Mecateam e o UvA Base e o
alto nível de aproveitamento das equipes mais qualificadas.
Tabela 2: Relação gols por 100 chutes dos times.
Bahia2D
Gols/ 100 Chutes
6,52
UvA Base
6,03
Mecateam
5,45
UvA 2003
65,57
Dainamite
60,30
Brainstormers
48,94
Com relação à escolha do canto do chute a gol contra os times mais simples, os
atacantes do Bahia2D apresentaram o comportamento esperado, chutaram muito a gol e
fizeram um número de gols razoável. Mas contra os times complexos, as oportunidades
de chute não foram bem aproveitadas o que indica a necessidade de outros métodos para
complementar o comportamento dos atacantes e as rotinas de chute.
Com relação ao posicionamento, a dificuldade em tirar conclusões é maior, mas alguns
dados podem ser considerados em favor dos controladores implementados:
a) O número de situações de impedimento dos atacantes foram 10, sendo 5 nos
jogos contra o UvA Base, 3 contra o Mecateam e 2 contra o Dainamite,
durante as 50 partidas de teste, demonstrando seu bom posicionamento em
campo.
b) Os atacantes do Bahia2D tiveram oportunidades de chutar ao gol em todas as
partidas e conseguiram marcar em 20 dos 50 jogos de teste e em 3 dos 5 jogos
do torneio. Dessa forma, pode-se concluir que os atacantes participaram
ativamente das partidas e seu posicionamento foi satisfatório.
Concluídos os primeiros testes com os controladores dos agentes atacantes, o passo
seguinte foi integrar os demais controladores. O trabalho de integração do código foi
concluído, mas os testes e análise de resultados ainda estão em andamento.
Uma observação empírica das primeiras partidas disputadas demonstra que o time
começa a conseguir levar a bola mais ao ataque, melhorando a qualidade de passe no
meio de campo, dificultando os chutes a gol dos adversários através do melhor
posicionamento dos jogadores de defesa e meio campo. Estas observações, entretanto,
carecem de ser validadas através de métricas e observações mais metódicas que estão
sendo realizadas pelo grupo atualmente.
Este trabalho apresentou os primeiros controladores nebulosos implementados nos
jogadores atacantes do time chamado Bahia2D, do grupo de pesquisa Bahia Robotics
Team. Os agentes atacantes apresentados representam o começo do desenvolvimento
desse time, que está pré-inscrito para a competição mundial Robocup 2007, em Atlanta EUA.
Os testes dos agentes atacantes demonstraram que isoladamente esses jogadores
apresentaram o comportamento esperado, mas os demais tipos de jogadores ainda estão
sendo testados.
Como continuidade deste trabalho, será concluída a análise dos resultados dos demais
controladores ainda não devidamente testados. Com os resultados desta análise,
eventuais aperfeiçoamentos serão efetuados nos mesmos. Outro trabalho a ser
desenvolvido é complementar o controlador do goleiro para abordar as situações de
movimento no eixo X.
Ainda como trabalhos futuros serão investigadas a aplicação de outros métodos de
inteligência artificial, como redes neurais, aprendizagem por reforço, computação
evolutiva, dentre outros, partindo dos referenciais bibliográficos e dos experimentos dos
grupos para otimizar os comportamentos básicos descritos neste trabalho.
Referências
BOER, Remco de, KOK, Jelle. The Incremental Development of a Synthetic MultiAgent System: The UvA Trilearn 2001 Robotic Soccer Simulation Team.
Amsterdam: Faculty of ScienceUniversity of Amsterdam, Dissertação de mestrado
para Inteligência Artificial e Ciência da Computação. Amsterdã, Holanda, 2002.
COSTA, Augusto Loureiro da, JÚNIOR, Orivaldo Vieira Santana, SOUZA, João Paulo
Rocha de, LINDER, Marcelo Santos. MecaTeam: Um sistema Multiagente para o
futebol de robôs simulado baseado no Agente Autônomo Concorrente. ENRI - III
Encontro de Robótica Inteligente, Campo Grande, 2006.
ENDERT, Holger. The Dainamite 2006 Team Description. Faculty of Electrical
Engineering and Computer Science. Berlin, Alemanha, 2006.
FABRI, José Augusto. Um Sistema Especialista Fuzzy Aplicado a Classificação de
Arquiteturas de Computadores. Semana de Informática (SEMINFO) da Universidade
Federal da Bahia realizado na Universidade Federal da Bahia (UFBA) – Salvador –
BA, período de 09 a 12 de maio de 2000. Disponível em: http://users.
femanet.com.br/~fabri/trabcien.htm. Acesso em: 20 out. 2006, 20:30.
KITANO, Hiroaki, ASADA, Minoru, KUNIYOSHI, Yasuo, NODA, Itsuki, OSAWA,
Eiichi. RoboCup -The Robot World Cup Initiative. Japão, 1997.
KOK, Jelle, VLASSIS, Nikos, GROEN, Frans. UvA Trilearn 2003 Team Description.
Faculty of Science, University of Amsterdam, Amsterdã, Holanda, 2003.
ORTEGA, Neli Regina S. Aplicação da Teoria de Conjuntos Fuzzy a Problemas da
Biomedicina. Tese de Doutorado em Ciências. Universidade de São Paulo. São Paulo,
2001.
REIS, Luís Paulo. Coordenação em Sistemas Multi-Agente: Aplicações na Gestão
Universitária e Futebol Robótico. Tese de PhD, FEUP - Faculdade de Engenharia da
Universidade do Porto, Porto, Portugal, 2003.
RIEDMILLER, Martin, GABEL, Thomas. Brainstormers 2D – Team Description 2006.
Universidade Osnabrück, Osnabrück, Alemanha, 2006.
RUSSELL, Stuart, NORVIG, Peter. Inteligência Artificial: uma abordagem moderna.
Ed. Campus, 2ª Edição. São Paulo, 2003.
SANDRI, Sandra, CORREA, Cláudio. Lógica Nebulosa. V Escola de Redes Neurais,
ITA, São José dos Campos, 1999.
ZADEH, L. A. Fuzzy Sets – Information and Control. University of California, Berkeley,
California, Estados Unidos, 1965.