MecaTeam: Um sistema Multiagente para o futebol de robôs simulado baseado no Agente Autônomo Concorrente

Documentos relacionados
MecaTeam 2006: Um Sistema Multiagente Reativo para o futebol de robôs simulado

Desenvolvimento de um time de futebol robótico para o RoboCup 2D

RELATÓRIO FINAL DE ATIVIDADES PIBIC ou PIBITI

MecaTeam Framework: Uma Infra-estrutura para Desenvolvimento de Agentes de Futebol de Robôs Simulado

Desenvolvimento de Estratégia para Programação do Futebol de Robôs

Implementação de um Time para a categoria RoboCup Soccer Simulation 3D

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

6. QUADRIMESTRE IDEAL 7. NÍVEL Graduação 8. Nº. MÁXIMO DE ALUNOS POR TURMA TEORIA: 60 LABORATÓRIO: 30

Inteligência Artificial Aplicada a Robôs Reais

Implementando um controlador difuso para ajuste de condução da bola do Agente do MecaTeam

OXENTE TEAM: IMPLEMENTAÇÃO DE HABILIDADES DE JOGO EM UM TIME DE FUTEBOL DE ROBÔS SIMULADO UTILIZANDO OTIMIZAÇÃO HEURÍSTICA

Simulação de Futebol de Robôs

Protótipo de um Simulador de um Aspirador de Pó, Utilizando Algoritmo de Busca e Agentes Inteligentes, em Ambientes com Barreiras

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Prof. Dr. Alexandre da Silva Simões UNESP

IFAS3D: Uma Interface para o Simulador de Jogos de Futebol com Robôs Humanoides em 3D

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

Temas Principais: Tipos de Robôs Sensores e Atuadores Modelos Sensoriais Modelos Cinemáticos Controle Robótico: Controle Reativo Controle

INF 1771 Inteligência Artificial

Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Inteligência Artificial. Conceitos Gerais

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Inteligência Artificial

Pontifícia Universidade Católica de São Paulo Programa de TIDD

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 4 Tipos de Agentes Inteligentes Racionais e Ambientes

Inteligência Artificial. Prof. Ilaim Costa Jr.

BAHIA2D: DESENVOLVIMENTO DE CONTROLADORES FUZZY PARA AGENTES ROBÔS JOGADORES DE FUTEBOL

INF 1771 Inteligência Artificial

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

Introdução à Programação

Prof. Lorí Viali, Dr.

SISTEMA ESPECIALISTA FUZZY PARA POSICIONAMENTO DOS JOGADORES APLICADO AO FUTEBOL DE ROBÔS

Prof. Ms. Ronaldo Martins da Costa

parte da teoria Engº Luis Paulo Reis parte da teoria + aulas práticas Sítio Web:

Competições de Robótica

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Documento de Requisitos SISTEMA DE APOIO À ESCRITA (SAPES)

SSC510 Arquitetura de Computadores 1ª AULA

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Inteligência Artificial. Josiane M. Pinheiro Ferreira Maio/2009

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES

Inteligência Artificial

O Time de Futebol Simulado ITANDROIDS-2D

INF 1771 Inteligência Artificial

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas

Hashing: conceitos. Hashing

INTELIGÊNCIA ARTIFICIAL

Objetivo do Curso. Introdução à Interação Humano-Computador. Professora: Raquel Oliveira Prates

Análise Sintática de Frases utilizando Gramáticas Livres de Contexto Probabilísticas

2 Sistemas MultiAgentes em Jogos

INTELIGÊNCIA COMPUTACIONAL

Inteligência Artificial - IA. Agentes Inteligentes Cont.

Introdução à Ciência da Computação

Linguagens de Programação Aula 3

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Cada jogador possui a visão do jogo, conforme ilustrado na Figura 3, que pode ser alterada e programada pelo desenvolvedor.

Um Framework Baseado em Sistemas Multiagentes para Simulação de Estratégias de Investimento no Mercado Financeiro

Mineração de Dados em Biologia Molecular

UNIDADE ACADÊMICA: Faculdade de

3 Redes Neurais Artificiais

Inteligência Artificial

INF 1771 Inteligência Artificial

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Linguagens de Programação

Documento de Arquitetura de Software- SGE

BAHIA2D: DESCRIÇÃO DO TIME. Universidade do Estado da Bahia (UNEB) Rua Silveira Martins, 2555, Cabula. Salvador BA Brasil

4 Arquitetura Adotada

MR-SoccerServer: Um Simulador de Futebol de Robôs usando Realidade Mista

4 Detecção de Silhueta

Ferramenta para simulação dinâmica de sistema de manufatura baseada em modelos de construção flexivel.

3 A aplicação MoLIC WOz

Comunicado: Janela de Manutenção do Sistema GAR 09/08/2012. Departamento de Produtos Agosto/2012

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Microsoft Faculty Connection

Sistemas de Informação e Decisão. Douglas Farias Cordeiro

Inteligência Artificial

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Inteligência Artificial

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

PESQUISA OPERACIONAL. UNIDADE 1 Introdução à Pesquisa Operacional. Prof. Me. Carlos Guimarães

SIMULADOR DE UMA PARTIDA DE FUTEBOL COM ROBÔS VIRTUAIS

APLICAÇÃO DE UM MODELO MATEMÁTICA EM UMA EQUIPE DE FUTEBOL DE ROBÔS

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

DESENVOLVIMENTO DE INTERFACE GRÁFICA PARA UM SISTEMA DIDÁTICO EM CONTROLE DE PROCESSOS

ARQUITETURA HIERÁRQUICA DISTRIBUÍDA PARA COORDENAÇÃO E COOPERAÇÃO DE SISTEMAS MULTI-ROBÔS

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Sistemas Especialistas. Prof. Msc. Jacson Rodrigues

Introdução à Computação

PROJETO DE INCLUSÃO DE DISCIPLINAS OPTATIVAS NO CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO CAMPUS CURITIBA

Autômatos e Linguagens

Introdução à Computação: Máquinas Multiníveis

Inteligência Computacional para Jogos Eletrônicos

CAP. VI ANÁLISE SEMÂNTICA

SUMÁRIO REGIMENTO INTERNO E ESTRUTURA CURRICULAR DO MESTRADO PROFISSIONALIZANTE EM CIÊNCIA DA COMPUTAÇÃO

Transcrição:

MecaTeam: Um sistema Multiagente para o futebol de robôs simulado baseado no Agente Autônomo Concorrente Orivaldo Vieira Santana Júnior, João Paulo Rocha Portela de Souza, Marcelo Santos Linder e Augusto Loureiro da Costa 1 Programa de Pós-Graduação em Mecatrônca, Universidade Federal da Bahia (UFBA) Departamento de Engenharia Mecânica - Escola Politécnica Departamento de Ciência da Computação - Instituto de Matemática Av. Adhemar de Barros S/N, Ondina - 40170-110 Salvador BA Brasil. {orivajr,joaop}@dcc.ufba.br, {linder,agusto.loureiro}@ufba.br Abstract. This paper describes the cognitive Multi-Agent System used by Mecateam (UFBA) for the control of the robots in the Robocup Brazil 2006 soccer competition of simulated robots. The architecture of the agent is described, with emphasis in the important aspects of its implementation. Performance problems were identified during the development of the agent. These points of improvement are described, as well as some solution proposals, the implementation required and the preliminary results. At the end of the paper some future works are indicated. Resumo. Este artigo descreve o Sistema Multiagente cognitivo utilizado pelo Mecateam (UFBA), para o controle dos robôs na competição de futebol de robôs simulados da RoboCup Brasil 2006. A arquitetura do agente utilizado é descrita, com ênfase nos aspectos de sua implementação relevantes para este trabalho. Ao longo do desenvolvimento foram identificados problemas relacionados ao desempenho computacional do agente em questão. Estes pontos de melhoria são descritos, assim como as propostas de solução, a implementação realizada e os resultados obtidos. Por fim, são indicados trabalhos futuros para otimização do desempenho do agente. 1. Introdução A Inteligência Artificial (IA) nasceu oficialmente em 1956 num workshop de verão em Dartmouth College, EUA [Bittencourt 2001]. O termo foi cunhado por John McCarthy e Marvin Minski. A inteligência artificial distribuída (IAD) é uma das áreas da IA que mais se desenvolveram nos últimos anos e apresenta um enorme potencial de aplicações [Durfee et al. 1989]. A IAD, segundo [Weiss 1999], é o estudo, construção e aplicação de sistemas multiagentes, que são sistemas nos quais vários agentes inteligentes interagem para realizar um conjunto de objetivos ou tarefas. Uma forma de estimular o desenvolvimento à pesquisa em IAD e Robótica é a realização de partidas de futebol entre robôs autônomos, onde possibilita a utilização de varias tecnologias e 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. 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 multiagentes. O jogo coletivo e, como tal, a participação de todos para que o objetivo principal, 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. A idéia tomou forma e em 1997 realizou-se a primeira Copa Mundial de Futebol de Robôs (RoboCup), em Nagoya, Japão. Sendo realizadas até hoje competições anuais sempre em locais distintos [Kitano et al. 1997] [Kitano 1997]. Atualmente existem na RoboCup diferentes modalidades (Competição de Futebol, Salvamento, RoboCup Junior), o foco deste trabalho é na competição de futebol, na liga simulada, onde jogadores virtuais e independentes (agentes) jogam futebol num campo virtual simulado por computador. Cada um desses agentes assume o controle de um único robô. Os onze agentes responsáveis pelo controle do time de futebol de robôs formam um Sistema Multiagente chamado MecaTeam. O MecaTeam, time de futebol de robôs simulados da Universidade Federal da Bahia, utiliza como abordagem para controle de robôs do time simulado a arquitetura do Agente Autônomo Concorrente. Essa abordagem modulariza o agente em 3 níveis decisórios que é descrita com mais detalhe em [Costa and Bittencourt 1999a]. O MecaTeam é apresentado neste artigo, segundo a seguinte disposição: A seção 2 descreve a arquitetura do Agente Autônomo Concorrente, adotada pelo MecaTeam; a seção 3 apresenta brevemente alguns apectos de implementação da biblioteca Expert- Coop++ [Costa et al. 2003] utilizada para a implementação do MecaTeam; na seção são relatados problemas relacionados ao desempenho computacional do agente utilizado, enfrentados durante o desenvolvimento e as respectivas melhorias implementadas. Na seção são apresentadas as conclusões e perspectivas. 2. Arquitetura do Agente MecaTeam O MecaTeam 2006 apresenta uma evolução da arquitetura de agente apresentado pelo UFSC-Team 98 [Costa and Bittencourt 1999b] na RoboCup 98, chamado Agente Autônomos Concorrente [Costa and Bittencourt 1999a]. O Agente Autônomo Concorrente, baseia-se em um model hybrido para agente cognitivo [Bittencourt and Costa 2001], utilizado pelo time de futebol de robôs simulados Mecateam utiliza uma arquitetura de três camadas. Cada uma delas é implementada como um processo e representa um nível decisório distinto que complementa os demais para a construção de um agente cognitivo. A complexidade de comportamento do agente é incrementada a cada camada, como pode ser visto na Figura 1. O primeiro nível decisório, denominado Reativo, está implementado no processo Interface encarregado pela interação com o ambiente e pela resposta em tempo real do agente. Esta interação é feita captando informações sobre o ambiente e atuando sobre o mesmo. As informações vindas do ambiente também são processadas e enviadas como mensagens contendo uma descrição do estado corrente do ambiente para o nível imediatamente superior (Instintivo). A atuação ocorre através dos comportamentos que determinam quais ações o agente deve tomar sobre o ambiente a cada percepção. A escolha do comportamento mais adequado para cada instante de atuação do agente é de responsabilidade do nível intermediário do Agente Autônomo Concorrente,

Figure 1. Fluxo de informação no Agente Autonomo Concorrente denominado Instintivo, implementado no processo Coordinator. O comportamento ativo é escolhido por um sistema baseado em conhecimento composto por um motor de inferência monociclo, uma base de fatos e uma base de regras. Para esta atividade, são utilizadas informações acerca do estado do ambiente (provenientes do nível Reativo) e o plano em vigor (definida pelo nível superior). Informações simbólicas são enviadas para o nível seguinte (cognitivo). O nível superior da arquitetura do agente denominado Cognitivo é implementado no processo Expert. similarmente ao que ocorre com o nível instintivo, este nível utiliza um sistema baseado em conhecimento. O principal papel do Cognitivo é a manipulação das informações simbólicas provenientes do Instintivo construindo um modelo lógico do ambiente utilizando o conhecimento armazenado na base de regras, escolhendo planos e avaliando a validade do plano corrente. 3. Expert-Coop++ A implementação dos níveis Instintivo e Cognitivo descrito na seção anterior é feita na linguagem de programação C++ a partir do uso da biblioteca Expert-Coop++ [Costa et al. 2003]. Esta biblioteca está dividida em diversos módulos, encarregados das funcionalidades do agente. Na versão do agente implementada para o time de futebol de robôs simulados descrito neste trabalho são utilizados os seguintes módulos: o Knowledge, que representa o conhecimento por meio de uma base de fatos contendo padrões lógicos e frames e de uma base de regras; o Inference, responsável por manipular este conhecimento através de um motor de inferência e de filtros; o Communication, faz a comunicação entre as camadas do agente por meio de mensagens. Estes conceitos serão detalhados nas subseções a seguir. 3.1. Motor de Inferência O motor de inferência é o principal componente dos sistemas baseados em conhecimento. Sua funcionalidade consiste na realização de inferências a partir de uma base de regras e de uma base de fatos. O modo de raciocínio usado na inferência do motor do agente descrito neste trabalho é o encadeamento progressivo (forward chaining) [Bittencourt 2001],

Figure 2. Implementação do Agente Autonomo Concorrente a partir da Expert- Coop++ em que a parte esquerda da regra é comparada com a descrição da situação atual contida na base de fatos. Apenas as regras que satisfazem esta descrição são selecionadas. É permitido o uso de filtros nas regras, possibilitando por exemplo a utilização de operações de comparação como igualdade, diferença, maior, menor, maior igual e menor igual. O filtro, em termos de implementação, consiste numa função que recebe como parâmetro uma lista de variáveis contidas no lado esquerdo da regra e retorna uma outra lista contendo as variáveis que satisfizeram a operação relativa ao filtro. Caso esta lista de retorno possua tamanho zero, a regra analisada é descartada e o processo de inferência passa para a análise da próxima regra. Um exemplo de regra é ilustrado na figura 3. Figure 3. Exemplo de regra para ativar uma nova meta (local goal) Ao final do processo de seleção das regras o motor de inferência dispõe de um conjunto de regras que satisfazem a situação atual do problema (denominado conjunto de conflito). Se este conjunto for vazio, o processo de inferêcia é finalizado; caso contrário, torna-se necessária a definição das regras que serão efetivamente executadas e sua ordem de execução[bittencourt 2001]. O método de resolução de conflito adotado consiste em ordenar as regras pelo menor período entre o momento atual e a última atualização. Ao final deste processo é gerada uma lista de regras a ser encaminhada para a base de fatos. Caso o motor de inferência esteja funcionando em modo única regra, somente a primeira regra desta lista é encaminhada para base de fatos.

3.2. Base de Fatos A base de fatos é responsável pelo armazenamento das informações simbólicas sobre o ambiente. A lógica é utilizada como principal formalismo de representação de conhecimento, de acordo com o formato de três termos: objeto, atributo e valor. Um outro formalismo utilizado pela Expert-Coop++ são os quadros, também conhecidos como frameworks, ou frames [Minsky 1975]. Na base de fatos também são armazenadas as mensagens que serão enviadas para o Soccerserver ou para as outras camadas da arquitetura do agente. Essas informações são organizadas em listas encadeadas. Uma forma possível de atualização da base de fatos é a partir de informações obtidas da lista de regras enviada pelo motor de inferência. Desta lista é utilizado o lado esquerdo de cada regra, que pode conter informações representadas como padrões lógicos, como frames ou mensagens. Para cada situação é atualizada uma lista específica (lista de padrões lógicos, lista de frames ou lista de mensagens de saída). Uma outra possibilidade de atualização da base de fatos é a partir de mensagem vindas do SoccerServer, que podem conter, dentre outras, informações sensoriais, como as dos sensores corporais e as relativas à visão. As informações relativa à visão são armazenadas em uma lista de quadros e relacionadas aos sensores do corpo, em uma lista de padrões lógicos. 3.3. Base de Regras A base de regras é responsável pela leitura do arquivo de regras, previamente definido; pela extração destas regras e pelo seu armazenamento em uma lista. Este processo de extração ocorre a partir da leitura de blocos de caracteres que formam cada parte da regra. Os parênteses encontrados nesta extração indicam quando começam e terminam expressões das regras, como if, filter, frame, message e then, ilustradas na figura 3. A base de regras possui também função de inserção, remoção e atualização de regras. 3.4. UvA Trilearn 2003 Visando concentrar os esforços nos níveis mais altos da arquitetura, encarregados da parte inteligente, foi escolhido re-utilizar o código base do UvA Trilearn 2003 [Kok et al. 2003, de Boer and Kok. 2001] encapsulado na camada Reativa do Agente Autônomo Concorrente. O código base do UvaTrilearn disponibiliza algumas habilidades básicas para uma agente controlar um robô do simulador RoboCup Soccer Server [Chen et al. 2002]. Habilidades como: interceptar a bola, chutar a bola em uma desejada posição do campo, mover-se para uma posição desejada do campo, etc, são disponibilizas encapsuladas em comportamentos. Estes comportamentos combinam comandos aceitos pelo RoboCup Soccer Server: kick, dash, turn, catch, etc O código base do UvaTrilearn provê ainda a sincronização do agente com o simulador RoboCup Soccer Simulator e um modelo simplificado do ambiente, com os objetos visualizado pelo robôs, suas coordenadas globais, etc. A escolha das habibilidades básicas adequadas ao estado corrente e suas combinações de forma a implementar um agente capaz de controlar um robô para o Simulador Soccer Server, devem ser implementadas pelo usuário. O MecaTeam 2006 aptou por encapsular o código base do UvaTrilearn na camada Reativa, tendo sempre um comportameto ativo e utilizar as camadas Instintiva e Cognitiva para implementar o raciocínio automático do agente.

4. Problemas e Melhorias Os agentes do MecaTeam implementados com versão da Expert-Coop++ do mês de dezembro de 2005 tinham o problema de consumir muito processamento, requerendo cerca quatro computadores Pentium III 1GHz com 128 MB de RAM. Isto ficava evidente ao iniciar uma simulação com dois agentes usando mais de vinte regras, pois havia sobrecarga de processamento durante a simulação feita num computador pessoal. Diante dessa situação fez-se necessária uma análise detalhada do código da Expert-Coop++ visando uma otimização na implementação computacional da biblioteca. Foram obtidos dois resultados da análise do motor de inferência e da base de fatos. O primeiro foi uma melhoria significativa no desempenho do agente através da redução de atribuições usadas no código, uma redução de cerca de 25 % na carga de processamento. No entanto o agente ainda continuava a consumir bastante processamento e para que fosse possível uma nova redução do processamento era necessário uma reestruturação na implementação dos algoritmos e estruturas de dados usados no motor de inferência e na base de fatos. A primeira melhoria foi percebida ao abrir o código do motor de inferência e da base de fatos e observar o uso excessivo de variáveis temporárias e listas. Em muitas situações, no escopo de uma variável, eram feitas algumas cópias desta e o seu valor não era alterado, sendo possível elimina-las. Com as listas acontecia algo semelhante, uma cópia da lista era criada como auxiliar para fazer o uso dos elementos que eram retirados um por um para serem usados fora da lista. Para não precisar desta cópia auxiliar usouse iteradores para percorre a lista e manipular o objeto dentro da lista original. Como estas medidas diminuiu-se a quantidade de atribuições no código e conseqüentemente o consumo de processamento do agente em cerca de 20%. 5. Conclusão e trabalhos futuros O MecaTeam apresenta um Sistema Multiagente Cognitivo baseado no Agente Autônomo Concorrente, e utilizado as habilidade básicas do UvaTrilearn 2003. A tomada de decisão na arquitetura do agente do MecaTeam baseia-se num modelo híbrido de agente que compartilha a rápida resposta aos estímulos do ambiente dos agentes reativos com um planejamento bem elaborado apresentdo pelos agentes cognitivos. Apresenta ainda uma arquitetura em camadas que explora o paradigma de programação concorrente. Com redução do uso de listas e variáveis locais reduziu-se em cerca de 20% o processamento computacional do agente e com a proposta de reestruturação pretende-se minimizar o processamento do agente, tornando possível fazer o time jogar utilizando apenas um computador pessoal. Para isto, sistema baseado em conhecimento será simplificado bastante e todas informação referentes a base de fatos estarão concentradas em um só lugar, para evitar as copias de grandes volumes de dados. Um outro ponto importante é o uso de árvores binárias, ao invés de listas, na base de fatos, baixando a complexidade de buscas de O(n) para O(log n). A documentação do código é um fator muito importante para bom desenvolvimento de uma aplicação complexa, como é o caso do Agente cognitivo do MecaTeam. Os trabalhos futuros são de analisar, gerar mais documentação, no formato HTML, sobre a Expert-Coop++ e reestrutura-la quando necessário. Esta reestruturação será feita com o

código da Expert-Coop++ que implementa o uso de variáveis nas regras, o uso de filtros e o uso de frames. Como implementação futura será adicionado a Expert-Coop++ o uso de redes semânticas e uma analisador léxico e sintático recursivo preditivo para extração de regras a partir do arquivo. References Bittencourt, G. (2001). Inteligência Artificial Ferramentas e Teorias. Editora da UFSC, ISBN 85-328-0138-2, 362 p., Florianópolis, SC, 2 a edição. Bittencourt, G. and Costa, A. L. d. (2001). Hybrid cognitive model. In The Third International Conference on Cognitive Science ICCS 2001 : Workshop on Cognitive Angents and Agent Interaction. Pequim, China. Chen, M., Foroughi, E., and at al., F. H. (2002). Soccerserver manual. Technical report, RoboCup Federation. http://sserver.sourceforge.net/docs/manual.ps. Costa, A. L. d. and Bittencourt, G. (1999a). From a concurrent architecture to a concurrent autonomous agents architecture. IJCAI 99, Third International Workshop in RoboCup, pages 85 90. Springer, Lecture Notes in Artificial Inteligence. Costa, A. L. d. and Bittencourt, G. (1999b). Ufsc-team: A cognitive multi-agent approach to the robocup 98 simulator league. RoboCup98 Workshop - Team description, pages 371, 377. Springer, Lecture Notes in Artificial Inteligence, vol.1694. Costa, A. L. d., Bittencourt, G., Gonçalves, E. M. N., and Silva, L. R. (2003). Expertcoop++: Ambiente para desenvolvimento de sistemas multiagente. IV ENIA Encontro Nacional de Inteligência Artificial, pages 597 606. XXIII Congresso da Sociedade Brasileira de Computação. de Boer, R. and Kok., J. R. (2001). The incremental development of a synthetic multiagent system: The uva trilearn 2001 robotic soccer simulation team. Master s thesis, University of Amsterdam, The Netherlands. Durfee, E., Lesser, V., and Corkill, D. (1989). Trends in cooperative distributed problem solving. IEEE Transactions on Knowledge and Data Engineering, 1(1):63 83. Kitano, H. (1997). Robocup: The robot world cup initiative. in Proc. of The First International Conference on Autonomous Agent (Agents-97)). Marina del Ray, The ACM Press. Kitano, H., Tambe, M., Stone, P., Veloso, M., Coradeschi, S., Osawa, E., Matsubara, H., Noda, I., and Asada, M. (1997). The robocup synthetic agent challenge, 97. International Joint Conference on Artificial Intelligence (IJCAI97). Nagoya, Japan. Kok, J. R., Vlassis, N., and Groen, F. (2003). Team description uva trilearn 2003. In RoboCup 2003 Symposium. Minsky, M. (1975). A framework to represent knowledge. In The Psychology of Computer Vision, pages 211 277. McGraw-Hill. Weiss, G. (1999). Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence. The MIT Press, Cambridge, MA. Edited by Gerhard Weiss.