Sidney de Castro
Simulador Multiagentes para a Coordenação de
Agentes Heterogêneos no Domínio de Futebol
Santo André, SP - Brasil
Julho - 2011
Sidney de Castro
Simulador Multiagentes para a Coordenação de
Agentes Heterogêneos no Domínio de Futebol
Dissertação apresentada ao Programa de PósGraduação em Engenharia da Informação da
Universidade Federal do ABC, como requisito
parcial para obtenção do título de Mestre em
Engenharia da Informação, Área Sistemas Inteligentes, Linha de Pesquisa Inteligência Artificial.
Orientador:
Profa .
Dra .
Maria das Graças Bruno Marietto
U NIVERSIDADE F EDERAL DO ABC
Santo André, SP - Brasil
Julho - 2011
i
Dissertação de Mestrado sob o título “Simulador Multiagentes para a Coordenação de
Agentes Heterogêneos no Domínio de Futebol”, defendida por Sidney de Castro.
Avaliada em Julho - 2011, pela seguinte Banca Examinadora:
Profa . Dra . Maria das Graças Bruno Marietto
Orientadora
Profa . Dra . Vera Lúcia da Silva
Instituto Federal de Educação, Ciência e
Tecnologia de São Paulo
Prof. Dr. Edson Pinheiro Pimentel
Universidade Federal do ABC
ii
Resumo
A proposta desta pesquisa consiste em: (i) modelar um SMA para o domínio do Futebol; (ii)
escrever o simulador SMA do domínio modelado; e (iii) analisar o comportamento dos agentes
jogadores no ambiente simulado. O simulador proposto é uma ação de desenvolvimento da área
de Inteligência Artificial e, principalmente de Sistemas Multiagentes.
O simulador permite desenvolver agentes jogadores que demonstrem um nível considerável
de competência para a realização de suas tarefas, como percepção, ação, cooperação, estratégias
pré-definidas, decisão e previsão. Os agentes estão agrupados representando papeis no jogo: o
goleiro, os zagueiros, os jogadores de meio campo e os atacantes. Os papeis por sua vez estão,
subordinados à tática adotada no momento da partida.
O simulador desenvolvido neste trabalho é composto por módulos independentes: o módulo
de ambiente de jogo, que é formalmente modelado como um SMA; o módulo comportamental,
composto pelos jogadores e demais papeis em uma partida de futebol (Jogadores, Técnico, Juiz
e Estatística); o módulo da interface gráfica, que apresenta a tela do jogo.
Palavras-chave: Simulação Multiagentes (SMA), Domínio do Futebol, Arquitetura de
Agentes, Ambiente Formalmente Simulado.
iii
Abstract
The purpose of this research is to: (i) model a SMA for the domain of Soccer, (ii) write the
simulator as an SMA of the modeled domain, and (iii) analyze the behavior of players agents
in the simulated environment. The proposed simulator is a development action in the field of
Artificial Intelligence, and particularly for Multiagent Systems.
The simulator allows gamers to develop agents that demonstrate a considerable level of
competence to perform tasks such as perception, action, cooperation, pre-defined strategies,
decision making and forecasting.
The simulator developed in this work consists of independent modules: the game’s module
of the environment, that is formally modeled as a MAS, the behavioral module of the
agents
components of the game (Players, Coach, Referee e and Statistics) which is also an SMA, and
the graphical interface module..
Keywords: multiagent systems (MAS), the Football Domain, Architecture Agents Formally Simulated Environment.
iv
Dedicatória
Dedico este trabalho a minha professora e orientadora Maria das Graças Bruno Marietto.
Durante a escrita foram muitos os momentos em que não sabia por onde seguir, a sua
orientação sempre me levava pelo caminho certo.
Cara professora muito obrigado pela paciência e companheirismo nesta jornada.
v
Agradecimentos
Agradeço a todos os colegas e professores da Universidade Federal do ABC, que durante
este período estiveram sempre presentes nas intensas atividades acadêmicas.
Agradecimentos à Fundação Santo André que apoia os professores que estão se qualificando.
Agradeço também pela paciência de minha esposa Sara e o filho Gustavo, a quem peço
desculpas pela ausência de corpo pressente durante as intermináveis leituras das pesquisas.
vi
Sumário
Lista de Figuras
x
Lista de Tabelas
xii
1
2
Introdução
1
1.1
Definição do Escopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3
Principais Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.4
Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Computação Social: Sistemas Multiagentes, Simulação Multiagentes
6
2.1
Sistemas Multiagentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1.1
Definição de Agente . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.1.2
Sistemas Intencionais . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.1.2.1
Arquitetura BDI . . . . . . . . . . . . . . . . . . . . . . . .
11
Desenvolvimento de Sistemas Multiagentes . . . . . . . . . . . . . . .
13
Simulação Multiagentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2.1
Conceitos de Modelagem Multiagentes . . . . . . . . . . . . . . . . .
16
2.2.2
Processos de Verificação e Validação . . . . . . . . . . . . . . . . . .
19
2.1.3
2.2
3
Descrição de Trabalhos Relacionados
21
3.1
Ambientes de Sistemas Multiagentes Formalmente Modelados . . . . . . . . .
22
3.1.1
22
Integrating Environments with Organizations (AGRE) . . . . . . . . .
vii
Sumário
3.1.2
3.2
An Environment Description Language for Multi-agent Simulation (ELMS) 24
Trabalhos Relacionados ao Domínio de Futebol . . . . . . . . . . . . . . . . .
27
3.2.1
A Versão 2006 da Equipe POTI de Futebol de Robôs . . . . . . . . . .
27
3.2.2
Planejamento Cooperativo de Tarefas em um Ambiente de Futebol de
Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Simulação Multiagentes na Modelagem do Domínio do Futebol
34
4.1
Arquitetura em Três Camadas . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.2
Camada Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.2.1
Sistema Multiagentes do Ambiente Simulado . . . . . . . . . . . . . .
37
4.2.2
Módulo de Agregação . . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.2.3
Base de Informação . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Camada Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.3.1
Agente Técnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.3.2
Agente J UIZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.3.3
Sistema Multiagentes J OGADORES . . . . . . . . . . . . . . . . . . .
54
Camada Observação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.4.1
Inicialização da Camada Ambiente . . . . . . . . . . . . . . . . . . .
63
4.4.2
Inicialização da Camada Modelo . . . . . . . . . . . . . . . . . . . . .
63
4.4.3
Inicialização da Camada Observação . . . . . . . . . . . . . . . . . .
64
4.4.4
Comunicação entre Camadas . . . . . . . . . . . . . . . . . . . . . . .
64
4.4.5
Detalhamento da Posição dos Jogadores no Campo . . . . . . . . . . .
64
4.3
4.4
5
29
Modelo Computacional e Analise de Resultados
67
5.1
Descrição Técnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
5.1.1
Descrição Técnica da Camada Observação . . . . . . . . . . . . . . .
67
5.1.2
Descrição Técnica das Camadas Modelo e Ambiente . . . . . . . . . .
68
Comportamento e Sentidos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.2
viii
Sumário
5.3
6
5.2.1
Regras Comuns Aos Jogadores . . . . . . . . . . . . . . . . . . . . . .
69
5.2.2
Regras de Comportamentos Programados . . . . . . . . . . . . . . . .
72
5.2.2.1
Analise de Comportamento do Goleiro . . . . . . . . . . . .
73
5.2.2.2
Analise de Comportamento dos Zagueiros . . . . . . . . . .
73
5.2.2.3
Analise de Comportamentos dos Jogadores de Meio Campo .
74
5.2.2.4
Analise de Comportamentos dos Atacantes . . . . . . . . . .
75
Comportamentos Emergentes . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
Conclusões
77
6.1
Dificuldades Encontradas na Construção do Simulador Multiagentes . . . . . .
78
6.2
Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
Apêndice A -- Regras dos Agentes da Camada Ambiente
80
A.1 Regras dos Agentes do SMA do Ambiente Simulado . . . . . . . . . . . . . .
80
A.1.1 Agentes A MBIENTAIS . . . . . . . . . . . . . . . . . . . . . . . . . .
80
A.1.2 Agentes Integrantes do Jogo . . . . . . . . . . . . . . . . . . . . . . .
85
A.2 Regras do Módulo de Agregação . . . . . . . . . . . . . . . . . . . . . . . . .
90
Apêndice B -- Regras dos Agentes da Camada Modelo
92
B.1 Regras do Agente Técnico . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
B.2 Regras do Agente Juiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
B.3 Regras Comuns aos Agentes Jogadores
98
. . . . . . . . . . . . . . . . . . . . .
B.4 Regras do Agente G OLEIRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
B.5 Regras do Agente Z AGUEIRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
B.6 Regras do Agente M EIO C AMPO . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.7 Regras do Agente ATACANTE . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Apêndice C -- Regras dos Agentes da Camada Observação
110
Sumário
Referências
ix
116
x
Lista de Figuras
1
Arquitetura BDI. Fonte: [Reis 2003]. . . . . . . . . . . . . . . . . . . . . . . .
12
2
Arquitetura Funcional da Plataforma JADE. . . . . . . . . . . . . . . . . . . .
15
3
Representação dos Agentes, Grupos, Comunidades e Servidores para a Modelagem AGRE. Fonte: [Ferber 2012]. . . . . . . . . . . . . . . . . . . . . . . .
23
4
Arquitetura da Equipe Poti. Fonte: [Cerqueira et al. 2006]. . . . . . . . . . . .
28
5
Camadas de Decisão da Modelagem. Fonte: [Yamamoto 2005]. . . . . . . . .
31
6
Arquitetura em Três Camadas do Simulador de Futebol Robótico. . . . . . . .
35
7
Arquitetura da C AMADA A MBIENTE. . . . . . . . . . . . . . . . . . . . . . .
36
8
Posicionamento dos Agentes da C AMADA A MBIENTE no Campo de Jogo. . . .
37
9
Medidas Oficiais de um Campo de Futebol. Fonte: [IPEM 2012]. . . . . . . . .
44
10
Arquitetura da C AMADA M ODELO. . . . . . . . . . . . . . . . . . . . . . . .
46
11
Hierarquia de Decisão do Agente T ÉCNICO. . . . . . . . . . . . . . . . . . . .
48
12
Posicionamento dos Sistemas Táticos das Equipes. Fonte: [Melo 1999]. . . . .
49
13
Área de Atuação da Posição de um Jogador. . . . . . . . . . . . . . . . . . . .
49
14
Região de Atuação das Posições e Separação das Áreas do Campo para a Formação 4-3-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
Região de Atuação das Posições e Separação das Áreas do Campo para a Formação 4-4-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
50
51
Região de Atuação das Posições e Separação das Áreas do Campo para a Formação 3-5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
17
Definição das Áreas do Campo. . . . . . . . . . . . . . . . . . . . . . . . . . .
53
18
Sequência da Aplicação das Regras Comuns . . . . . . . . . . . . . . . . . . .
56
19
Exemplo de Aplicação das Regras Comuns aos Jogadores. . . . . . . . . . . .
57
xi
Lista de Figuras
20
Comportamentos do Agente G OLEIRO: [Yamamoto 2005]. . . . . . . . . . . .
58
21
Comportamentos do Agente Z AGUEIRO . . . . . . . . . . . . . . . . . . . . .
59
22
Sequência de Disparo do Comportamento dos Zagueiros e . . . . . . . . . . .
59
23
Comportamento do agente M EIO C AMPO. . . . . . . . . . . . . . . . . . . . .
60
24
Sequência de Disparo do Comportamento dos Jogadores de Meio
. . . . . . .
61
25
Comportamento dos Agentes ATACANTES. . . . . . . . . . . . . . . . . . . . .
62
26
Sequência de Disparo do Comportamento dos Jogadores Atacantes
. . . . . .
62
27
Ordem da Carga dos Processo na C AMADA O BSERVAÇÃO. . . . . . . . . . . .
63
28
Posicionamento Inicial do Time na C AMADA O BSERVAÇÃO . . . . . . . . . .
65
29
Reposicionamento dos Times Preto a Esquerda em 3-5-2 e vermelho a Direita
em 4-3-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
30
Arquitetura em Três Camada - Ênfase na Tecnologia Aplicada. . . . . . . . . .
68
31
Direções Posíveis de Deslocamento jo Jogador . . . . . . . . . . . . . . . . .
70
32
Analise do Comportamento da Regra D ISTÂNCIA B OLA. . . . . . . . . . . . .
71
33
Determinação da Direção da Bola. . . . . . . . . . . . . . . . . . . . . . . . .
71
34
Definição de Bloqueio no Deslocamento de um Jogador . . . . . . . . . . . . .
72
35
Definição do Perímetro de Ataque de Cada Posição . . . . . . . . . . . . . . .
72
36
Comportamento Programado do Goleiro. . . . . . . . . . . . . . . . . . . . . .
73
37
Comportamento Programado dos Zagueiros . . . . . . . . . . . . . . . . . . .
74
38
Comportamento Programado dos Jogadores de Meio Campo . . . . . . . . . .
75
39
Comportamento Programado dos Atacantes . . . . . . . . . . . . . . . . . . .
75
40
Direções Possíveis para o Deslocamento da Bola. . . . . . . . . . . . . . . . .
82
41
Invasão da Área de Ação do Adversásio. . . . . . . . . . . . . . . . . . . . . . 102
xii
Lista de Tabelas
1
Limite de Atuação dos Jogadores para o Sistema Tático 4-3-3. . . . . . . . . .
93
2
Limite de Atuação dos Jogadores para o Sistema Tático 4-4-2. . . . . . . . . .
94
3
Limite de Atuação dos Jogadores para o Sistema Tático 3-5-2. . . . . . . . . .
95
4
Definição das Áreas do Campo. . . . . . . . . . . . . . . . . . . . . . . . . . .
95
1
1
Introdução
O começo de todas as ciências é o espanto de as coisas
serem o que são.
—– Aristóteles
Como resultado da revolução informacional, mais e melhores recursos computacionais permitem a abertura de novos campos de pesquisa e desenvolvimento. Dentre eles cita-se os ambientes virtuais, desenvolvimento de sistemas com técnicas de Inteligência Artificial. A Inteligência Artificial (IA) está na intersecção de áreas como a Matemática, a Psicologia ou a Economia.
Os Sistemas Multiagente (SMA) são um esforço de síntese que se centra na ideia de colocar os
agentes no seu contexto, permitindo uma abordagem mais realista da complexidade associada
à dinâmica das interações.
Neste contexto a área de modelagem computacional tem se deparado com novas abordagens e desafios. Um desafio a ser destacado é como modelar sistemas inter-disciplinares e
complexos, envolvendo áreas variadas como Psicologia, Ciências Sociais, Física, Biologia,
etc. Tal integração para a modelagem de sistemas complexos é, inclusive, estabelecida pela
Sociedade Brasileira de Computação como uma das grandes áreas de interesse de pesquisa
[LUCENA et al. 2006].
Dentre as novas formas de modelagem computacional tem-se o uso de Sistemas Multiagentes para a construção de simulações, criando-se a área de Simulação Multiagentes. Para que os
agentes atuem de maneira esperada em uma simulação é necessário que tenham características
tais como: (i) autonomia, no sentido de que devem poder operar sem a direta intervenção de
humanos ou outros sistemas, tendo algum tipo de controle sobre suas ações e estados internos,
(ii) iniciativa, quando agentes não somente agem em resposta aos seus ambientes, mas também
são capazes de exibir comportamento orientado a objetivos e (iii) habilidade social, interagindo
com outros agentes através de uma linguagem de comunicação de agentes, ou de forma indireta
no ambiente.
1 Introdução
2
A área de Simulação Computacional de forma geral, e Simulação Multiagentes de forma
específica, oferecem um arcabouço que permite confrontar teorias com experimentação, de antecipar resultados experimentais ou de realizar experiências de outro modo inacessível. A prática de juntar simulações em computador com experiências reais de laboratório está se tornando
cada vez mais importante. Um exemplo é a simulação da relações de confiança entre agentes
que transformada em métrica podem estabelecer novas forma de se estabelecer relações comercias, escolha estratégica e a formação da coalizão [Castelfranchi, Falcone e Marzo 2009].
Um fator que contribui para o crescimento do interesse em sistemas multiagentes, é que
pode-se aplica-los em áreas diversas do conhecimento, como redes e robótica, nos chamados
sistemas multirobôs. Sistemas multirobôs são usados em situações reais como exploração aérea,
terrestre, aquática ou espacial, trabalhos em ambientes hostis ou procura de sobreviventes em
desastres. As principais característica destes sistemas multiagentes é são a coordenação e a
cooperação. Para que se possa tirar máximo proveito de uma situação onde vários agentes
devam de realizar o mesmo objetivo, os agentes, primeiramente não podem atrapalhar um ao
outro (coordenação), e se possível ajudar um ao outro (cooperação). O objetivo da cooperação
entre agentes é montar um grupo que possa realizar tarefas mais rapidamente que um único
agente ou até tarefas que um agente sozinho não conseguiria cumprir.
O domínio modelado neste trabalho será o de um simulador multiagentes para o Futebol.
Jogo de Futebol é um domínio de aplicação utilizado no desenvolvimento de pesquisas em
diversas áreas, tais como: visão computacional, aprendizado de máquinas, planejamento de
caminhos, controle e automação, dentre outras [Melo e Romero 2009]. Um jogo de futebol
é um exemplo típico de um sistema multiagentes. Dois times, cada um composto por onze
(11) jogadores, os quais devem organizar-se de modo a tentar garantir que seu time vença o
jogo, como no futebol humano. Vence o time que marcar mais gols. Esse ambiente inclui
coordenação, cooperação com os companheiros de time, e competição com os adversários.
Neste trabalho foi desenvolvido métodos de cooperação de futebol com a ideia de papel
que um agente assume. O papel de um jogador rege suas ações em cada momento do jogo.
Os agente jogadores nas mesmas posições e em condições semelhantes podem tomar ações
distintas dependendo de seu papel no jogo. Os quatro papeis assumidos pelos jogadores são:
Goleiro, Defensor, Meio Campo e Atacante. Estes papeis são apresentados na Seção 4.3.3.
A coordenação entre os jogadores foi obtida com dois aspectos, o uso do limite de atuação
do jogadores (ver Figura 13), e o sistema tático adotado (ver Seção 14). Para o primeiro caso
assume-se que o jogador está inserido em uma porção retangular do campo, que é sua região
de atuação. A distribuição destas regiões no campo de jogo está depende do papel do jogador e
1.1 Definição do Escopo
3
do sistema tático adotado. O sistema tático avança ou recua o time, bem como amplia ou limita
os movimentos dos jogadores restringindo ou alargando a região de atuação. Esta variações em
conjunto com o papel do jogador tem por objeto ocupar todo do espaço do campo de jogo.
Além das diversas linhas de pesquisa que o domínio do futebol pode proporcionar como
campo de pesquisa, a escolha deste domínio tem alguns ponto chaves:
• A quantidade de bons trabalhos nos quais será possível fazer uma comparação com o
simulador proposto nesta pesquisa;
• O domínio permite uma rápida assimilação de suas regras, que são bem definidas e conhecidas;
• O uso de Sistemas Multiagentes é indicado para a aplicação no domínio, por que os agentes podem ser modelados para agirem de forma colaborativa, facilitando a programação
de comportamento dos jogadores.
Neste trabalho propõe-se a modelagem explícita do ambiente onde o SMA está inserido. Segundo Helleboogh et ali [Helleboogh et al. 2007], o ambiente de um SMA deve ser modelado
de maneira explícita, considerando seus componentes e suas regras de interação e funcionamento. De fato, na literatura há trabalhos que já modelam formalmente o ambiente, conforme
descrito na Seção 3.1. Entretanto, Helleboogh et ali [Helleboogh et al. 2007] vão mais além,
propondo que o formalismo do ambiente de uma simulação multiagentes seja feito também por
um SMA.
Considerando a importância da proposta de [Helleboogh et al. 2007], neste trabalho o ambiente da simulação multiagentes será modelado de forma explícita via um SMA. A descrição
formal do ambiente permitirá, dentre outras contribuições: (i) representar de maneira explícita
os componentes do ambiente, suas relações e regras gerais de funcionamento, modelando assim
o dinamismo que ocorre no ambiente, (ii) especificar como o dinamismo no ambiente influencia
os agentes (iii) definir a forma com os agentes agem e influenciam o ambiente.
1.1
Definição do Escopo
Este trabalho enquadra-se na área de Simulação baseada em Sistemas Multiagentes. Essa
área de pesquisa é composta de duas campos científicos, a saber, computação baseada em agentes e simulação computacional [David et al. 2004].
1.2 Objetivos
4
Mais especificamente, a atuação desse trabalho envolve a computação baseada em agentes
e como produto final um simulador baseado em multiagentes. Trata-se, então, do uso da tecnologia de agentes para a simulação de um jogo de futebol, com entidades autônomas interagindo
entre si.
O trabalho esta focado no fluxo das informações que ocorrem durante a disputa de uma
partida de futebol. O modelo deve ser flexível o suficiente para a introdução de pequenas,
variações no ambiente ou comportamento dos jogadores. Estas varições permitirão analisar a
emergência de comportamento coletivos durante a disputa. A rede de relacionamento dinâmica
que se forma durante a partida entre os jogadores, é o principal objeto deste estudo.
1.2
Objetivos
Este trabalho tem como objetivo geral o desenvolvimento de um modelo teórico para o domínio de futebol. Com base no modelo teórico proposto, o próximo objetivo geral é a concepção
de um modelo computacional multiagentes que implemente o modelo teórico definido.
A concepção de um modelo teórico e um modelo computacional sob o viés macro foi um
desafio vencido com êxito neste trabalho. Não foram encontrados na literatura trabalhos de
simulação que atuem na abstração explícita multiagentes, especificando a estrutura comportamental da simulação multiagentes do domínio de futebol. Desta forma justifica-se a necessidade
da criação de um novo simulador para o deste domínio, com o foco na modelagem dos comportamento dos jogadores.
1.3
Principais Contribuições
As principais contribuições deste trabalho estão destacadas a seguir:
• Modelagem e implementação de um simulador multiagentes para o domínio de Futebol;
• Explicitação do campo de futebol na forma de um Sistema Multiagentes. Vale ressaltar
que o campo de futebol é o ambiente onde atuarão os agentes jogadores do simulador;
• Definição dos papeis e da tática de jogo para os agentes autônomos.
Para a modelagem e implementação do simulador o ambiente é modelado de forma explicita, o que é uma importante contribuição para a pesquisa. O modelo explicito do ambiente
1.4 Organização do Trabalho
5
garante a flexibilidade na introdução de pequenas mudanças, e consequentemente, a exploração
de um maior número de combinações de comportamento em busca de padrões emergente.
1.4
Organização do Trabalho
Este texto está organizado e seis Capítulos e três Apêndices. No Capítulo 2 (Sistemas Multiagentes e Simulação Multiagentes), é apresentado o estado da arte em simulação multiagentes.
No Capítulo 3 (Descrição de Trabalhos Relacionados), são apresentação trabalhos de onde se
busca-se a inspiração na construção desta pesquisa. No Capítulo 4 (Simulação Multiagentes na
Modelagem do Domínio de Futebol de Robôs), é feita a apresentação do modelo do simulador
do futebol multiagente. No Capítulo 5 (Modelo e Analise de Resultados), descreve-se tecnicamente os módulos funcionais do simulador, e as dificuldades da implementação. No Capítulo
6 (Conclusões), tem-se a apresentação dos resultados obtidos com a pesquisa. Os apêndices
apresentam o detalhamento, e neste caso os pseudocódigos dos comportamentos apresentado
no Capítulo 4. O Apêndice A traz o detalhamento da Camada Ambiente. O Apêndice B traz o
detalhamento do da C AMADA M ODELO. O Apêndice C traz o detalhamento do da C AMADA
O BSERVAÇÃO.
6
2
Computação Social: Sistemas
Multiagentes, Simulação Multiagentes
O sucesso é uma consequência e não um objetivo.
—– Ésquilo
Uma possível abordagem para a modelagem de processos tais como inteligência e cognição é considerar indivíduos em um contexto social. Isto é, considerando o indivíduo, suas
interações, a emergência de sistemas sociais e a influência de tais sistemas no comportamento
individual. Novas teorias e métodos científicos que adotam uma abordagem multidisciplinar
partem do pressuposto de que os comportamentos são uma construção coletiva, resultando de
decisões localizadas, e que são tomadas a partir de um repertório global de possíveis seleções.
Neste contexto, um dos desafios da área de Computação Social é entender e modelar processos
nos níveis micro e macro para responder questões tais como: como decisões individuais podem
afetar comportamentos coletivos e vice-versa? [Albert e Barabási 2002, Angelis 2005]
Neste contexto a área de Inteligência Artificial Distribuída (IAD) apresenta uma base teóricotécnica adequada para a modelagem e implementação de aspectos sociais de sistemas computacionais, apresentando novas e mais abrangentes formas para a resolução de problemas,
representação do conhecimento, etc. Neste trabalho duas sub-áreas da IAD serão consideradas como referencial teórico, quais sejam: Sistemas Multiagentes e Simulação Multiagentes
[Axelrod e Tesfatsion 2006].
Sistemas Multiagentes (SMAs) é uma área de pesquisa da IAD em que a modelagem e a
implementação de sistemas computacionais estão sob a metáfora da inteligência social. Esta
abordagem parte do pressuposto de uma construção coletiva da solução, onde comportamentos
emergem como resultados das interações de seus elementos, seguindo regras locais. Aqui,
agentes trabalham de forma autônoma na medida que são capazes de desempenhar determinadas
ações de maneira independente. Durante o desenvolvimento dos agentes, o projetista não leva
em conta o problema ou a estrutura no qual o agente estará inserido. Este trabalha de modo que
2.1 Sistemas Multiagentes
7
cada agente seja capaz de realizar ações, em suas especializações, de acordo com um conjunto
de conhecimento e habilidades. Assim, os agentes são construídos de maneira independente do
problema e, por meio da sociedade, tornam-se capazes de resolver problemas que não foram
previstos, caracterizando um comportamento emergente. Na Seção 2.1 tem-se a descrição dos
principais princípios de SMAs.
A área de Simulação Multiagentes é formada pela intersecção das áreas de IAD e Simulação Computacional, utilizando o arcabouço oferecido pela IAD na modelagem, implementação
e análise de simulações que levem a um melhor entendimento dos sistemas simulados. Neste
contexto, a infra-estrutura teórico-técnica da área de Simulação Multiagentes possibilita modelar e entender processos complexos relacionados a fenômenos que envolvem interações sociais
tais como ações de coordenação, cooperação, formação de coalizões e grupos, relacionamento
micro-macro, intencionalidade, dentre outros [David et al. 2004]. Na Seção 2.2 tem-se a descrição dos principais princípios de simulações multiagentes.
2.1
Sistemas Multiagentes
No início da década de 1960 a Inteligência Artificial (IA) foi definida como um sistema
baseado no modelo de Von Neumann (com um único centro de controle) e os conceitos da
Psicologia tradicional. No final dos anos 1970 a ideia do comportamento do indivíduo foi
modelado de várias maneiras, sempre procurando entender e investigar o controle distribuído
entre os atores. Por exemplo, o trabalho relacionado a blackboards [Fennel e Lesser 1977] e
actors [Hewitt 1977] permitiram a modelagem de problemas clássicos considerando conceitos
tais como cooperação, comunicação e distribuição. Desta maneira, pesquisadores começaram
a investigar a interação entre sistemas, tentando resolver problemas distribuídos em uma perspectiva mais social.
Objetivando encontrar soluções para sistemas distribuídos, a área de Inteligência Artificial
Distribuída (IAD) teve início no começo da década de 80. A IAD combina conceitos teóricos
e práticos das áreas de IA e Sistemas Distribuídos. Sistemas Multiagentes (SMA) é uma das
áreas de pesquisa da IAD que utiliza agentes autônomos em suas ações e comportamentos. Os
agentes em um SMA são projetados para atuar como especialistas em determinada área. A característica principal é controlar seu próprio comportamento e, se necessário, agir sem qualquer
intervenção dos humanos ou outros sistemas. O foco em um projeto de SMA é desenvolver
agentes que trabalhem de forma autônoma e social, bem como sistemas de comunicação e cooperação/colaboração, de modo que a solução surja a partir das interações. Esta abordagem de
2.1 Sistemas Multiagentes
8
baixo para cima geralmente leva a uma arquitetura aberta, onde os agentes podem ser inseridos, excluídos e reutilizados. Segundo [Sawyer 2003], a Internet é um exemplo de SMA, pois
é constituída por milhares de computadores independentes, cada um na execução de programas de software autônomos que são capazes de comunicação com um programa rodando em
qualquer outro nó da rede.
Agentes possuem comportamento imprevisível em diferentes graus de intensidade. Por
exemplo, as formigas parecem comportarem-se como em um passeio aleatório em sua busca
por comida. Seu comportamento começa a tornar-se previsível, quando o feromônio lançado
pelas formigas que encontram o seu objetivo passam a guiar o caminho das demais. Portanto,
um agente pode variar de ser totalmente previsível à completamente imprevisível [Odell 2002,
Batista et al. 2010].
Pelo o que foi exposto até o momento percebe-se que SMAs apresentam características tais
como:
• São sistemas abertos;
• Agentes agem de forma autônoma, tentando alcançar seus objetivos (dialeticamente, mantendo uma relação com seu ambiente);
• Possuem comportamento dinâmico e agregado;
• A ação de cada agente afeta as ações subseqüentes da sociedade;
• O funcionamento do sistema é socialmente construído e ocorre de maneira emergente;
• Apresentam um elevado grau de imprevisibilidade em seu funcionamento.
Para a apresentação dos principais conceitos de SMAs, esta seção está organizada como
se segue. Na Subseção 2.1.1 tem-se a definição do termo agente. A descrição de sistemas
intencionais e da arquitetura BDI encontram-se na Subseção 2.1.2. Por fim, o desenvolvimento
de SMAs utilizando a plataforma multiagentes JADE está descrito na Subseção 2.1.3.
2.1.1
Definição de Agente
O termo agente tem sido utilizado de diversas maneiras na área de IAD. Algumas noções
são essencialmente intuitivas, outras bastante formais. Mas de forma geral, quando os investigadores definem um agente, referem-se a uma entidade que funciona continuamente e de forma
2.1 Sistemas Multiagentes
9
autônoma em um ambiente em que outros processos ocorrem. A autonomia dos agentes permite que tomem suas próprias decisões para o alcance de seus objetivos, sem a necessidade de
orientação ou intervenção humana constante [Shoham 1993, Batista et al. 2010]. Sendo assim,
agentes podem entrar e sair da sociedade, podem alterar suas regras, papéis, relações de interdependência com outros agentes, etc. Esta característica leva a uma nova geração de sistemas e
aplicações distribuídas intrinsecamente dinâmica, aberta e complexa.
Segundo [Wooldridge e Jennings 1995] é difícil obter uma definição universalmente aceita
do termo agente. Mas a autonomia é a idéia central do conceito de um agente. Estes autores
também explicam que a dificuldade para encontrar uma definição geral é porque o termo é
amplamente utilizado por muitos pesquisadores, trabalhando nas mais diversas áreas. Assim,
eles definem dois usos do termo geral: a noção fraca e a noção forte de agência.
A noção fraca considera um conjunto de propriedades que um software apresenta para ser
considerado um agente. As seguintes propriedades são definidas:
• Autonomia: os agentes são capazes de decidir suas ações sem a intervenção direta dos
seres humanos e/ou outros sistemas;
• Habilidade social: agentes comunicam-se através de algum tipo de linguagem com outros
agentes (humanos ou computacionais), a fim de resolver um problema;
• Reatividade: os agentes percebem seus ambientes (que pode ser o mundo físico, um
usuário através de uma interface gráfica, outros agentes, etc) e respondem às mudanças
que ocorrem nos mesmos;
• Pró-atividade: os agentes têm iniciativa, eles não agem somente em resposta ao seu ambiente.
Na noção forte as mesmas propriedades da noção fraca estão presentes, e outras propriedades são consideradas. Essas propriedades são mais aplicadas a características humanas, tais
como conhecimento, crença, intenção, obrigação, emoção, antropomorfismo, etc.
Desde o início da área de IAD, pelo menos um consenso pode ser percebido na comunidade
científica: a divisão dos agentes em reativos e cognitivos. Essa visão binária permite focar a
análise nos pontos-chave de cada uma dessas classes.
Agentes Reativos
Os agentes reativos são geralmente modelados seguindo a metáfora das organizações biológicas e etológicas, tais como: formigueiro, populações de insetos, bactérias, anticorpos, etc.
2.1 Sistemas Multiagentes
10
Tais sistemas fornecem provas de inteligência emergente. Seguindo esta metáfora, agentes reativos tendem a ser estruturalmente mais simples, uma vez que não têm uma representação
explícita de seu ambiente, bem como não são capazes de realizar raciocínio lógico sofisticado.
Seus comportamentos são baseados apenas no estímulo-resposta.
Em uma sociedade de agentes reativos a comunicação ocorre indiretamente, por meio do
ambiente externo. Além disso, suas decisões ocupam-se da situação atual, já que nenhuma
ação da história é armazenada. Geralmente, esses agentes não planejam suas ações futuras e
também não comunicam-se diretamente com outros agentes. Normalmente, conhecem as ações
de outros agentes pela mudança do ambiente.
Em [Gottifredi et al. 2010] uma arquitetura reativa é proposta para a implementação de uma
equipe de futebol de robôs. Na camada reativa as ações básicas são implementadas. Ela inclui
o hardware básico e suporte de software que são fornecidos para o campeonato. Trata-se de
meios físicos, tais como transmissores de infravermelho, câmara de vídeo, rede de comunicações software comum.
Agentes Cognitivos
Agentes cognitivos são inspirados na metáfora da organização social humana, de grupos e
hierarquias. Sociedades de agentes cognitivos são geralmente compostas por um pequeno número de participantes. Eles têm modelos explícitos do mundo externo e estruturas de memória
que permitem manter o histórico de ações passadas, utilizadas para resolver os problemas atuais
[Bittencourt 2006]. Além disso, comunicam-se uns com os outros diretamente, usando os seus
sistemas de percepção (para sentir o ambiente) e do sistema de comunicação (troca de mensagens). Agentes cognitivos normalmente apresentam uma certa complexidade computacional e
caracterizam-se por apresentar um comportamento inteligente, tanto em uma comunidade de
agentes quanto isoladamente.
2.1.2
Sistemas Intencionais
As teorias de agentes abordam quais conceitos devem ser utilizados para conceituar e especificar agentes. Tais modelos teóricos auxiliam a estruturar e a raciocinar sobre os comportamentos dos agentes individuais e sociais. Entre tais modelos teóricos pode-se citar a teoria dos
sistemas intencionais proposto em [Dennett 1987], bem como a Lógica.
Em muitas situações é útil entender e interagir com dispositivos e sistemas assumindo-os
como tendo uma postura intencional. Isto é, considerando que é possível descrevê-los com
atributos mentais tais como crenças, preferências, desejos, intenções, objetivos, etc. O filósofo
2.1 Sistemas Multiagentes
11
Daniel Dennett [Dennett 1987] usou o termo sistemas intencionais para designar tais sistemas,
descrevendo sistemas que podem ser descritos e/ou previstos através de atributos mentais tais
como crenças, preferências, desejos, intenções, livre arbítrio, metas, etc. Esses atributos são
chamados por [Wooldridge e Jennings 1995] como noções intencionais.
Portanto, o que caracteriza o sistema intencional é a possibilidade de ser interpretado como
um sistema com suas noções intencionais. Para Dennett, o desejo especifica preferências com
relação a estados futuros do mundo. Desejos podem ser inconsistentes, ou não alcançáveis. Os
objetivos são os desejos que um agente considera alcançáveis em um determinado momento. Na
intenção há uma medida associada de comprometimento, que direciona e controla as atividades
futuras do agente, para que o mesmo possa atingir sua meta. As crenças são a expressão dos
estados do mundo visto pelo agente.
Agentes podem ser visualizados como sistemas intencionais, possuindo estados mentais
de informação e que manipulam o conhecimento. Isto porque sistemas intencionais aparecem
como metáfora para explicar comportamentos complexos, atuando como uma ferramenta de
abstração para a construção destes sistemas complexos. As noções intencionais (crenças, desejos, etc) são ferramentas abstratas que permitem de forma conveniente descrever, explicar e
prever o comportamento de sistemas complexos. Um agente, mais especificamente o comportamento de um agente, também pode ser descrito como um sistema intencional.
2.1.2.1
Arquitetura BDI
A implementação de um agente requer uma especificação dos componentes que o integrarão. Componentes, comportamentos, conhecimento sobre o ambiente são elucidados em suas
arquiteturas, onde são explícitos da forma abstrata. A arquitetura de um agente mostra como
ele está implementado em relação as suas propriedades, sua estrutura e como os módulos que o
compõem podem interagir, garantindo sua funcionalidade. Ela vem especificar a estrutura e o
funcionamento de um agente.
A arquitetura BDI (Belief Desire Intention) é provavelmente o modelo de arquitetura de
agentes cognitivo mais conhecido. Foi proposto pelo [Bratman 1987] como uma teoria de raciocínio prático humano. Várias arquiteturas de agentes cognitivos seguem o modelo BDI, cuja
ênfase é dada nos estados mentais primitivos (que lhe dão o nome) e nos mecanismos que os
relacionam.
A arquitetura genérica de um agente BDI definida por [Wooldrigde e Jennings 1995] é
constituída por sete componentes: conjunto de crenças, função revisão de crenças, função gera-
2.1 Sistemas Multiagentes
12
ção de opções, conjunto de opções, função de filtragem, conjunto de intenções e função seleção
de ação, mostradas na Figura 1.
Figura 1: Arquitetura BDI. Fonte: [Reis 2003].
Estes componentes podem ser descritos, segundo [Reis 2003], da seguinte forma:
• Conjunto de crenças: representa a informação que o agente possui sobre o ambiente em
cada instante;
• Função de revisão de crenças: função que atualiza o conjunto de crenças de acordo com
novas percepções e comunicações recebidas pelo agente, tendo em conta as crenças atuais
do agente;
• Função de geração de opções: função que determina as opções (desejos) disponíveis
para o agente, com base nas suas crenças e intenções atuais. É o processo que permite
o agente decidir a linha de ação a selecionar em cada instante, de forma a satisfazer
suas intenções. Algumas das opções resultantes da aplicação desta função se tornarão
intenções, e servirão de feedback para geração de novas opções, resultando em opções
mais concretas;
2.1 Sistemas Multiagentes
13
• Desejos: representam os possíveis cursos de ação (opções) disponíveis para o agente;
• Função de filtro: esta função realiza o processo de deliberação do agente, que determina
suas intenções com base nas crenças e desejos atuais e nas suas intenções prévias. É o
processo onde o agente decide o que fazer e atualiza suas intenções. Esta atualização
implica, por vezes, a desistência de intenções que deixam de ser atingíveis ou apresentam
um custo elevado; e ainda a adoção de novas intenções que resultaram da adoção de novas
opções;
• Intenções: Representa o conjunto de intenções, i.e., os estados que o agente está atualmente comprometido a tentar obter;
• Função seleção de ação: esta função determina qual ação a realizar em cada momento
com base nas intenções atuais do agente.
2.1.3
Desenvolvimento de Sistemas Multiagentes
Devido ao fato de que muitas das características dos SMAs serem independentes de aplicação, começaram a surgir frameworks para SMAs com o objetivo de facilitar o desenvolvimento
destes sistemas. Tais frameworks oferecem as funcionalidades básicas de um SMA, o que permite ao desenvolvedor do sistema preocupar-se apenas com o desenvolvimento do agente. Essa
abordagem é denominada horizontal, ou seja, esses frameworks oferecem uma biblioteca de
nível relativamente alto, porém genérica e independente de aplicação. A organização FIPA é
responsável pelas normas que muitos desenvolvedores usam para assegurar a interoperabilidade
entre estes SMAs, desenvolvidos com frameworks genéricos.
FIPA é o acrônimo para Foundation for Intelligent Physical Agents. Trata-se de uma fundação internacional sem fins lucrativos situada em Genebra, na Suíça. Foi fundada em 1996 pela
junção dos esforços de diversas empresas, universidades e centros de pesquisas com atividades
neste campo de pesquisa [Agents 2008]. Um de seus objetivos principais é a criação de padrões
que tornem possível a implementação de agentes abertos e interoperáveis. Para atingir seus
objetivos a FIPA cria, divulga e gera especificações que visam maximizar a interoperabilidade
entre estes sistemas heterogêneos de agentes.
Com base na visão de interoperabilidade entre sistemas com diferentes fabricantes e operadores, FIPA lançou o padrão de referência FIPA. Com o padrão FIPA foi possível o desenvolvimento de frameworks genéricos, garantindo a interoperabilidade de SMAs. Dentre os frameworks genéricos mais utilizados cita-se a plataforma JADE, descrita na próxima subseção.
2.1 Sistemas Multiagentes
14
Plataforma JADE
O IDE de desenvolvimento de sistemas multiagentes JADE foi criado de acordo com os padrões da FIPA, e implementado em JAVA pela Universidade de Parma, Itália [Bellifemine et al. 2008],
com o objetivo de facilitar o desenvolvimento de sistemas multiagentes. JADE é um desenvolvimento segundo as regra do software livre.
O desenvolvimento se dá através de um conjunto de ferramentas gráficas que suportam a
depuração no processos de desenvolvimento. O IDE permite a configuração e o controle dos
agentes através de uma interface gráfica remota. A configuração pode ser alterada, mesmo em
tempo de execução, movendo agentes de uma máquina para outra, como e quando necessário.
JADE é completamente implementada na linguagem Java.
Algumas características da plataforma de desenvolvimento de sistemas multiagentes JADE
são listadas a seguir [Bellifemine et al. 2008]:
• A plataforma de desenvolvimento de agentes JADE pode ser implementada em diversos
servidores simultaneamente. Os agentes são desenvolvidos em threads da linguagem
JAVA, e podem ser agrupados em repositórios de agentes;
• A interface gráfica de usuário da plataforma JADE auxilia o desenvolvimento do agente
e de seu comportamento nas agências;
• Roda múltiplos agentes simultaneamente, oferecendo recursos de programação que permitem o escalonamento dos comportamentos dos agentes em tempo de excussão.
Arquitetura da Plataforma JADE
A arquitetura JADE baseia-se na coexistência de várias Máquina Virtuais JAVA (JVMs) que
podem ser distribuídas por vários computadores, independentemente do sistema operacional.
A Figura 2 apresenta os componentes arquiteturais da plataforma JADE rodando em diversos servidores. Cada servidor executa seus agentes JADE, e estes agentes formam uma agência.
Estas agências são coordenadas pela agência principal da plataforma. Cada máquina roda sua
própria JVM, independentemente da plataforma operacional. Em cada JVM tem-se os agentes
em um ambiente de execução completo. Os agentes rodam simultaneamente no mesmo servidor. A coordenação da execução da plataforma JADE ocorre na agência principal, e as demais
máquinas executam seus agentes registrados na agência central.
2.2 Simulação Multiagentes
15
Figura 2: Arquitetura Funcional da Plataforma JADE.
2.2
Simulação Multiagentes
Uma simulação computacional é uma transposição das principais características e comportamentos de um ambiente, real ou virtual, para um ambiente digital controlado [Banks 1999].
Este modelo incorpora as mudanças que ocorrem ao longo do tempo, representando a dinâmica
do ambiente que está sendo simulado [Carson e John 2004]. Um modelo de simulação é um
tipo particular de modelo, que procura representar um determinado sistema alvo. Este modelo
difere dos demais na medida em que permite (i) estudar como o sistema modelado se comporta sob determinadas condições, e (ii) examinar as consequências de alterações internas no
comportamento geral do sistema.
De forma mais específica, define-se que o modelo de simulação multiagentes está baseado
na idéia do relacionamento de um indivíduo com um programa, sendo possível simular um
mundo artificial formado por entidades computacionais interativas. A simulação ocorre quando
há a transposição da população de um sistema alvo para um modelo conceitual equivalente,
seguido da codificação deste modelo para um modelo computacional. Neste caso, um agente
equivale a uma entidade do sistema alvo, ou um grupo delas [Marietto et al. 2002].
Com o desenvolvimento do paradigma da programação multiagentes, o papel da simulação
baseada em agentes vem adquirindo relevância em uma variedade de disciplinas científicas. Em
particular, na definição de modelos que fazem analogias entre o agente cibernético e modelos
de sistemas sociais. Esforços para lidar com tais sistemas complexos, através do uso da infraestrutura teórico-técnica da área de Simulação, criaram este intenso esforço interdisciplinar que
fornece terreno para o advento da área de Simulação Baseada em Sistema Multiagentes (do
Inglês Multi-Agent Based Simulation - MABS).
Como resultado do crescimento e amadurecimento da área de MABS, interfaces foram
criadas entre diversas disciplinas sob a égide de uma abordagem multidisciplinar, isto porque
2.2 Simulação Multiagentes
16
a área de MABS envolve pesquisadores de diversas áreas tais como Psicologia, Sociologia,
Economia e Ciência da Computação. Considerando o aspecto multidisciplinar da área, grandes
desafios podem ser divisados pois há a necessidade de um corte em todos os limites tradicionais
das escolas de pensamento, misturando-se diferentes teorias, metodologias e técnicas.
Em uma simulação multiagentes, a execução ao longo do tempo é ditada pelas regras presentes em agentes situados em um ambiente simulado. Os agentes são a representação dos
atores do mundo real ou virtual, e o ambiente simulado representa o ambiente real onde os
atores estão alocados. Os agentes em uma simulação podem apresentar comportamentos reativos ou cognitivos. No primeiro caso, apesar da autonomia de ações, estas ações dependem
de estímulos do ambiente. Assim, um agente reativo pode ser considerado parte do ambiente em que está inserido, só manifestando-se quando provocado. Já os agentes cognitivos
possuem vontade própria, não apenas representam objetos inanimados, mas modificam o ambiente por ações que modificam-se em relação a um desejo próprio, ou em resposta ao ambiente
[David, Sichman e Coelho 2001, Silva 2011].
De forma geral, o ambiente onde estão inseridos os agentes em uma simulação é dinâmico,
alterando-se conforme transcorre o tempo da simulação. O dinamismo do ambiente ocorre em
decorrência de suas próprias características e leis reguladoras, bem como via o relacionamento
dialético com os agentes. Adicionalmente, como o dinamismo dos agentes e do ambiente ocorrem simultaneamente, resultados emergentes inesperados podem ocorrer neste sistema complexo [Helleboogh et al. 2007]. Na Seção 2.2.1 são apresentados os conceitos principais de
modelos de simulação multiagentes.
Um aspecto importante a ser considerado em sistemas de simulação é a garantia de que
tanto o modelo conceitual, quanto o modelo computacional representem com precisão o sistema
a ser modelado. Esta fidelidade da representação pode ser obtida através de dois processos:
verificação e validação. Ambos processos estão descritos na Subseção 2.2.2.
2.2.1
Conceitos de Modelagem Multiagentes
Modelagem Ascendente
A modelagem de sistemas complexos através de uma abordagem descendente (top-down)
não é apropriada, pois os sistemas complexos apresentam um número muito grande de interações e com comportamentos emergentes socialmente construídos (não pré-determinados). Uma
abordagem analítico/reducionista também não é adequada para a modelagem de sistemas complexos, uma vez que os comportamentos não podem ser entendidos através da análise de suas
partes em separado.
2.2 Simulação Multiagentes
17
Assim, um modelo ascendente (bottom-up) é mais adequado para criação de sistemas complexos, como os aplicados na área de Vida Artificial. Como a abordagem ascendente concentrase em regras simples de comportamento do agente, e como eles interagem uns com os outros
para simular um grande número desses agentes e suas interações, padrões emergentes podem
ser observados e estudados. O modelo pode, então, ser manipulado em termos de adição ou remoção de propriedades em seu nível micro, e como estas alterações podem afetar os fenômenos
em nível macro. Por exemplo, um modelo ascendente para uma colônia de formigas poderia
descrever as formigas em um nível micro, em termos de seu comportamento como indivíduos
na colônia, e como elas comunicam-se umas com as outras. A ferramenta de simulação, então, pode ser usada para imitar o ambiente da colônia onde várias formigas são colocadas para
comunicarem-se e executarem tarefas, permitindo que um observador possa estudar o surgimento de fenômenos sociais.
Comportamento Emergente
De acordo com Axelrod [Axelrod 1997], propriedades emergentes de sistemas simulados
com agentes surgem quando a simulação ocorre em grande escala. Esta propriedades emergem
como o efeito dos agentes interagindo, e em decorrência das regras do agente para esta interação. A seguir tem-se uma lista das principais situações em que modelos baseados em agentes
são úteis para a captura de comportamento emergente:
• As interações entre os agentes não são lineares, ou seja, não existe uma relação direta de
causa e efeito de um determinado comportamento. O agente pode interromper e reiniciar
um interação a qualquer momento. Desta forma, uma relação é considerada descontínua
entre os indivíduos e este comportamento complexo é de difícil implementação, levandose em conta os métodos tradicionais de análise matemática (por exemplo, equações diferenciais);
• As populações de indivíduos são heterogêneas. Ao se modelar agentes que representem
esta populações, se faz necessário a modelagem de diferentes conjuntos de racionalidades;
• A topologia de interações de redes sociais é complexa e heterogênea. A transposição desta
liberdade de interação entre os agentes aumenta a complexidade do modelo proposto.
Em alguns modelos, as propriedades emergentes podem ser formalmente deduzidas, mas
também estas propriedades podem ser imprevisíveis e inesperadas. As previsões das consequências, de mesmo simples interações locais, demonstra ser uma tarefa difícil. Por exemplo,
2.2 Simulação Multiagentes
18
[Axelrod 1997], destaca que fenômenos emergentes podem ser visto em um modelo onde os
agentes representam consumidores, e as regras de comportamentos locais lhes permitem escolher e comprar de acordo com a disponibilidade dos produtos. Axelrod percebe que, somente
através da análise das regras locais do agente, não se pode afirmar que os agentes da simulação
terão preferência por um determinado produto.
Além disso, a análise matemática pode ser limitada em sua capacidade de derivar as consequências dinâmicas em modelos onde, por exemplo, os agentes têm um comportamento adaptativo influenciado por suas experiências passadas. Para este tipo de situação, um modelo de
simulação é um dos métodos mais indicados para modelar e representar o sistema alvo.
Sistemas Abertos e Auto-Organização
Auto-organização é um processo onde a organização de um sistema não é guiada ou gerida
por uma fonte externa. Sistemas auto-organizados normalmente aparecem em modelagens de
sistemas abertos e podem exibir propriedades emergentes. Sistemas abertos, por sua vez são
descritos como sistemas com adaptação ambiental elevada através da incorporação rápida de
novos elementos, informações e idéias. Por outro lado, um sistema fechado resiste à incorporação de novas idéias e corre o risco de atrofia, deixando de servir adequadamente ao ambiente
em que está inserido.
A auto-organização é considerada uma abordagem eficaz para modelar a complexidade de
sistemas, permitindo o desenvolvimento de sistemas com dinâmica complexa e adaptável a
perturbações ambientais, sem o conhecimento completo das condições futuras.
2.2 Simulação Multiagentes
2.2.2
19
Processos de Verificação e Validação
Processo de Verificação
Segundo Katerelos [D e E 1996], a verificação é um processo que determina se a implementação do modelo feita pelo desenvolvedor representa com precisão a descrição conceitual e suas
especificações. Com esta abordagem existe uma tendência em verificar modelos utilizando-se
as mesmas técnicas de Engenharia de Software. Os requisitos são, então, confrontados com os
dados obtidos de forma rigorosa, e isto requer uma especificação de requisitos também rigorosa.
A Engenharia de Software trata o processo de verificação em todas as atividades de criação do
modelo: levantamento de requisitos, análise, modelagem, etc. A metodologia utilizada segue
as mesmas diretrizes dos diversos modelos de processos de desenvolvimento, como cascata,
evolucional, prototipação, espiral, RAD, etc.
Em geral, o processo de verificação pode ser dividido em duas abordagens [Sargent 2005]:
• Testes Estáticos: Depuração de erros utilizando técnicas como walk-throughs, teste de
mesa, testes de caixa branca, etc;
• Testes Dinâmicos: Instâncias dos dados são fornecidas ao software e os resultados obtidos
são examinados durante todo o processo de execução. As técnicas utilizadas são de crossvalidation, relação de entrada/saída, traces, etc.
Além do processo de Engenharia de Software envolvido no desenvolvimento, Sargent considera a linguagem de programação utilizada como um fator de incremento na possibilidade de
erros de verificação. O uso de linguagens específicas na simulação, em oposição às linguagens
de programação de alto nível, diminui consideravelmente a quantidade de erros nesta fase do
processo. Também, o crescente número de variáveis presentes nas simulações pode representar
um obstáculo no processo de verificação, aumentando o esforço necessário nesta fase de desenvolvimento. Uma abordagem comum é a escolha de variáveis-chave no processo de verificação.
O sucesso neste processo é crucial para a validação do modelo conceitual, atestando que a
teoria foi corretamente aplicada na modelagem do agente.
Processo de Validação
Segundo Caughlin [Caughlin 2000] a validação é determinada pelo grau que o modelo representa o mundo real, ou o objeto de estudo. Esta abordagem é abrangente, já que engloba
modelos onde os requisitos não são definidos, e portanto não podem ser confrontados no processo de validação. É possível identificar dois tipos de validação: a validação estática e a
2.2 Simulação Multiagentes
20
validação dinâmica.
A validação estática procura analisar se as teorias sobre o modelo são válidas; se a representação lógica é coerente com as teorias propostas; se a matemática e as relações de causa e efeito
são adequadas ao propósito da simulação. Nesta fase, as técnicas de validação usam recursos
da análise matemática, estatística, entre outras, para verificar se o modelo mantém a relação
de causa e efeito com o mundo real simulado. Esta série de métodos e técnicas é aplicada em
cada um dos sub-modelos que compõe a simulação, e finalmente também aplica-se ao modelo
geral. A modelagem incorreta implica na revisão do modelo como um todo, já que o modelo
conceitual é a base de toda a simulação. Feita a correção, o processo de validação do modelo é
realizado novamente.
Na validação dinâmica/comportamental, a preocupação está em avaliar o comportamento
do modelo em produção, observando a precisão do mesmo em relação à finalidade e aplicabilidade pretendidas. Este é o ponto de encontro entre todas as abordagens de validação, incluindo
o processo de verificação.
21
3
Descrição de Trabalhos Relacionados
Nós geralmente descobrimos o que fazer percebendo aquilo
que não devemos fazer. E provavelmente aquele que nunca
cometeu um erro nunca fez uma descoberta.
—– Samuel Smiles
Neste capítulo tem-se a apresentação de trabalhos de pesquisa relacionados com os referenciais teóricos deste projeto, quais sejam: Sistemas Multiagentes, Simulação Multiagentes e
o domínio de Futebol. Para tanto foi realizado o levantamento de uma série de trabalhos destas
áreas, procurando sempre que possível verificar o uso destes conceitos em conjunto. Neste sentido, procurou-se na literatura trabalhos que modelassem o domínio de Futebol com Sistemas
e/ou Simulação Multiagentes.
Analisando a literatura, pôde-se observar que a grande maioria dos trabalhos que aborda
simulações de disputa de futebol não faz uso de SMAs, e não foram encontrados trabalhos com
a modelagem formal do ambiente do campo de futebol. Vale ressaltar que o resultado deste
levantamento do estado da arte reforça o caráter de ineditismo desta pesquisa.
Este capítulo está organizado como se segue. Na Seção 3.1 tem-se a apresentação de projetos que modelam formalmente o ambiente de SMA, ou seja, que fazem uso de agentes com o objetivo de criar um substrato (o ambiente) onde a simulação possa ser executada. Em especial foram avaliados simuladores de futebol entre os quais cita-se [Xavier, Barbosa e Matsuura 2006,
Pinto e Garganta 1996, Jr e Bianchi 2001, NetLogo]. A Seção 3.2 tem-se a apresentação dos
projetos que modelam o domínio do Futebol. Os trabalhos detalhados nesta Seção congregam
as principais características presentes trabalhos avaliados.
3.1 Ambientes de Sistemas Multiagentes Formalmente Modelados
3.1
3.1.1
22
Ambientes de Sistemas Multiagentes Formalmente Modelados
Integrating Environments with Organizations (AGRE)
O modelo AGR é um modelo de SMA centrado em organizações. A base deste modelo
constitui-se das seguintes primitivas: agente, grupo e papel. Estas primitivas estão estruturalmente conectadas e não podem ser definidas a partir de outras primitivas. No modelo AGR um
agente é uma entidade ativa e comunicante, que desempenha papéis nos grupos. Um agente
pode assumir vários papéis, e pode pertencer a vários grupos. Um grupo é um conjunto de
agentes com algumas características em comum. Um papel é a representação abstrata de uma
posição funcional de um agente em um grupo. Em um grupo um agente pode desempenhar
apenas um papel, mas um agente pode desempenhar um outro papel em outro grupo. Um implementação do modelo AGR é a plataforma MadKit [Ferber 2012], que não impõe qualquer
consideração sobre a estrutura interna dos agentes, respeitando a arquitetura interna dos agentes
projetados para rodarem no ambiente.
O modelo AGRE (AGR+Environment) estende o modelo Agent-Group-Role (AGR) incluindo ambientes físicos [Ferber, Michel e Baez 2005]. Esta extensão está baseada (i) no conceito de espaço, que pode ser interpretado como uma área física que contém agentes, ou como
um grupo social e (ii) em uma clara distinção entre um agente e seu modo, ou seja, a maneira
como ele aparece e interage em um ambiente físico com outros agentes. O modelo AGRE
também apresenta uma notação que engloba os ambientes social e físico.
O modelo AGRE [Ferber, Michel e Baez 2005] define os princípios centrais para a concepção e organização notacional do ambiente de um SMA:
• Descrição do “o que”, e não “o como”: a organização do modelo impõe uma estrutura no
padrão das atividades dos agentes, mas não descreve como os agentes comportam-se;
• Não existe uma descrição de agente: desta forma os agentes reativos e os agentes intencionais podem atuar em uma mesma organização;
• A organização do modelo permite uma maneira de particionar o sistema: cada partição
(ou grupo) constitui um contexto de interações entre os agentes. Assim, um grupo é uma
unidade organizacional, em que todos os membros são capazes de interagir livremente.
Ao projetar um aplicativo modelado no ambiente AGRE, pode-se criar grupos que pertençam a entidades maiores como comunidades. Uma comunidade, vista do ponto de vista de um
3.1 Ambientes de Sistemas Multiagentes Formalmente Modelados
23
programador, pode ser um espaço para a inserção de vários grupos da mesma aplicação. Por
exemplo, o aplicativo bate-papo, que implementa um bate-papo em uma rede peer-to-peer, é
organizado ao longo de uma comunidade em que os grupos representam os temas do bate-papo.
Quando um agente de bate-papo cria um tópico, um grupo cujo o nome é o próprio tópico é
criado dentro da comunidade de bate-papo. Quando outro agente desejar juntar-se a esta comunidade, conecta-se a este outro agente, especificando o número de identificação do acesso,
possibilitando sua entrada na comunidade.
A Figura 3 apresenta a relação criada pelo ambiente descritivo AGRE em sua notação,
representando os agentes (Agent), as comunidades (Community), os grupos dentro da comunidades (Groups) e os servidores (Kernel).
Figura 3: Representação dos Agentes, Grupos, Comunidades e Servidores para a Modelagem
AGRE. Fonte: [Ferber 2012].
O ambiente AGRE apresenta quatro princípios para a definição de um modelo multiagente:
1. Um SMA é constituído de agentes (indivíduos) que podem perceber e agir em espaços
definidos pelo modelo manifestando a sua existência neste mundo:
• Uma organização é um tipo de mundo em que os espaços agrupam os agentes, e os
agentes percebem e agem através de seus papéis nestes espaços;
• um mundo físico correspondem às áreas em que os agentes percebem e agem através
de seus sentidos.
2. Um agente pode pertencer simultaneamente a um mundo social e a um mundo físico,
podendo desempenhar diversas funções nestes mundos;
3. Um agente pode possuir vários modos de agir, dependendo em que mundo está inserido:
3.1 Ambientes de Sistemas Multiagentes Formalmente Modelados
24
• um agente pode ter vários papéis em um grupo e pode pertencer a vários grupos;
• instâncias diferentes de um mesmo agente não podem existir simultaneamente.
4. Um agente adota um modo de agir preferencial para cada mundo em que for inserido.
3.1.2
An Environment Description Language for Multi-agent Simulation
(ELMS)
ELMS é uma linguagem de descrição de um ambiente multiagente, com apoio explícito
para especificar a percepção e interação de agentes cognitivos. A linguagem ELMS faz parte
do projeto MAS-SOC (Multi-Agent Simulations for the SOCial Sciences), que fornece uma
estrutura para a criação de simulações baseadas em agentes sociais.
ELMS implementa a proposta de Chang [Chang et al. 2005], para definição de uma camada
cognitiva intermediária aos ambientes da simulação, utilizando uma ontologia comum para
apresentar a informação ambiental dos agentes [Bordini et al. 2004, Okuyama, Bordini e Costa 2005].
Este trabalho apresenta um forma de especificação do ambiente onde os agentes de um SMA
estão inseridos. A facilidade da especificação da linguagem ELMS, de prototipagem do ambiente de um SMA permite a modelagem de sistemas multiagentes sociais, podendo ser usada
para a especificação e implementação completa de um ambiente simulado.
A linguagem ELMS segue a hierarquia descrita a seguir na suas três fases: corpo do agente,
percepção do ambiente e definição da ação. A base da definição da linguagem ELMS, é a
linguagem XML.
Corpo do Agente (AGENT BODY)
O corpo do agente define a classe do agente que participa de uma simulação neste ambiente. A linguagem ELMS define esta etapa, conforme apresentado na Listagem 3.1. Ainda na
listagem a hierarquia da construção é constituída de:
• ações (ACTIONS) - Definição das ações (métodos);
• percepção do agente (PERCEPTIONS) - Definição dos atributos e tipos.
3.1 Ambientes de Sistemas Multiagentes Formalmente Modelados
25
1
< AGENT_BODY NAME = " worker_robot " >
2
< INTEGER NAME = " id " > " SELF " </ INTEGER >
3
< BOOLEAN NAME = " functional " > " TRUE " </ BOOLEAN >
4
< ACTIONS >
5
< ITEM NAME = " walk_right "/ >
6
< ITEM NAME = " walk_left "/ >
7
< ITEM NAME = " load "/ >
< ITEM NAME = " unload " / >
8
</ ACTIONS >
9
< PERCEPTIONS >
10
< ITEM NAME = " vision " / >
11
< ITEM NAME = " audition "/ >
12
</ PERCEPTIONS >
13
14
</ AGENT_BODY >
Listagem 3.1: Exemplo de Especificação de Corpo de um Agente na Linguagem ELMS. Fonte:
[Chang et al. 2005].
Percepção do Ambiente (PERCEPTION NAME)
Definição de como um agente percebe seu ambiente. Esta construção permite a especificação de tipos de percepção usados pelo agente. Uma definição de tipo é formada por um nome,
uma lista opcional de pré-condições, e uma lista de propriedades que são perceptíveis. As propriedades listadas podem ser qualquer uma, daquelas associadas com as definições: recursos,
agentes, células da grade ou variáveis de controle da simulação. No exemplo da Listagem 3.2 a
habilidade de enxergar o ambiente é modelada com o auxílio da linguagem ELMS. A hierarquia
desta construção é composta por:
• Recursos (PRECONDITION) - Definição dos objetos dentro do ambiente;
• Reações (OPERAND) - Definição do comportamento de cada objeto dentro do ambiente.
3.1 Ambientes de Sistemas Multiagentes Formalmente Modelados
26
1
< PERCEPTION NAME = " vision " >
< PRECONDITION >
2
< EQUAL >
3
< OPERAND >
4
< ELEMENT_ATT NAME = " SELFCLASS " ATTRIBUTE = " functional " >
5
< INDEX >" SELF " </ INDEX >
6
</ ELEMENT_ATT >
7
</ OPERAND >
8
< OPERAND > " TRUE " </ OPERAND >
9
</ EQUAL >
10
11
</ PRECONDITION >
12
< CELL_ATT ATTRIBUTE = " CONTENTS " >
13
<X > +0 </X > <Y > +0 </Y >
</ CELL_ATT >
14
15
</ PERCEPTION >
Listagem 3.2: Exemplo de Especificação da Funcionalidade Visão do Agente na Linguagem
ELMS. Fonte: [Chang et al. 2005].
Aspectos Operacionais (ACTION NAME)
As ações que um agente pode executar são descritas neste módulo. Uma definição de ação
inclui o seu nome, uma lista opcional de parâmetros, uma lista opcional de pré-condições, e
uma sequência de comandos que determinam o que a ação muda no ambiente. A lista de parâmetros especifica os dados que serão recebidos do agente para orientar a execução desse tipo
de ação. Os comandos possíveis para a definição das consequências da execução de uma ação
são as atribuições de valores aos atributos e as atribuições ou reposicionamento de instâncias
de agentes ou de recursos dentro da grade. Os recursos também podem ser instanciados ou
removidos por comandos em uma ação.
Um exemplo desta definição é a mobilidade do agente, que é modelada no módulo aspectos
operacionais. A Listagem 3.3 traz esta definição das característica de movimentação do agente
na linguagem ELMS:
• Inicialização (PRECONDITION) - definição de valores iniciais para os atributos do agente;
• Expressões (MOVED) - define a regra matemática da movimentação do agente.
3.2 Trabalhos Relacionados ao Domínio de Futebol
27
1
< ACTION NAME = " walk_right " >
< PARAMETER NAME =" STEPS " TYPE =" INTEGER " / >
2
< PRECONDITION >
3
< LESSTHAN >
4
5
< OPERAND > " STEPS " </ OPERAND >
6
< OPERAND > 3 </ OPERAND >
</ LESSTHAN >
7
8
</ PRECONDITION >
9
< MOVE >
<ELEMENT NAME = " SELFCLASS " >
10
< INDEX >" SELF " </ INDEX >
11
12
</ELEMENT>
13
< FROM >
< CELL >
14
<X > +0 </ X > <Y > +0 </ Y >
15
</ CELL >
16
17
</ FROM >
18
<TO >
< CELL >
19
<X > STEPS </X > <Y >+0 </Y >
20
</ CELL >
21
</ TO >
22
</ MOVE >
23
24
</ ACTION >
Listagem 3.3: Exemplo de Especificação Operacional de um Agente na Linguagem ELMS.
Fonte: [Chang et al. 2005].
3.2
Trabalhos Relacionados ao Domínio de Futebol
Dentro os trabalhos analisados cita-se o trabalho do Centro Universitário da FEI “Time
de Futebol de Robôs Y04” [Penharbel et al.]. Este artigo trata da: navegação, trajetória, passe,
estratégia de ataque e defesa entre os robôs. Outro trabalho considerado foi “Construindo Robôs
Autônomos para Partidas de Futebol: o time GUARANÁ” [Costa e Pegoraro 2000]. Este artigo
descreve a construção do software e em especial na implementação dos algoritmos dos robôs,
sob o paradigma de programação estruturada.
Os trabalhos apresentados nas Seções 3.2.1 e 3.2.2 enquadram-se mais no foco desejado
deste trabalho.
3.2.1
A Versão 2006 da Equipe POTI de Futebol de Robôs
O artigo descreve as características eletro-mecânicas e os algoritmos de percepção, estratégia de jogo e controle adotados na equipe POTI de futebol de robôs. O foco deste trabalho está
3.2 Trabalhos Relacionados ao Domínio de Futebol
28
nas características dos algoritmos de percepção e estratégia de jogo.
O jogo é realizado por robôs autônomos que compartilham uma mesma imagem fornecida
pelo promotor da partida, em outras palavras, é uma imagem gerada em iguais condições para
ser usada pelos dois times na tomada de decisão de seus agentes. A Figura 4 apresenta a
sequência de aquisição de dados [Cerqueira et al. 2006].
Figura 4: Arquitetura da Equipe Poti. Fonte: [Cerqueira et al. 2006].
Sistema de Visão dos Robôs
O sistema de visão é composto por uma câmera colocada acima do campo de jogo, que está
conectada a uma placa de aquisição de imagens. O objetivo deste sistema é capturar imagens
do jogo e informar ao módulo da estratégia a localização de cada robô, tanto do próprio time
quanto do adversário, e também a posição da bola.
A Definição da Estratégia Geral da Equipe
O módulo da estratégia tem a função de decidir para onde os jogadores do time devem ir,
de forma que estes apresentem um comportamento cooperativo inteligente. A estratégia está
organizada em camadas segundo o trabalho de [Yamamoto 2005].
Alocação Dinâmica de Papéis
Foram definidos três papéis para a equipe POTI de futebol de robôs: goleiro, atacante
e zagueiro. Cada papel pode ter um ou mais estados associados. No decorrer da partida a
estratégia irá indicar o papel mais adequado para cada robô. O papel de goleiro será sempre
atribuído a um mesmo jogador escolhido antes do início da partida, de forma que o goleiro não
participa da alocação dinâmica de papéis. Os papéis restantes são do jogador da defesa e do
jogador do ataque. A alocação é definida em relação à posição da bola e do jogador dentro do
campo:
• Caso a bola esteja no campo de defesa, o jogador atrás da linha da bola será o atacante.
3.2 Trabalhos Relacionados ao Domínio de Futebol
29
Se ambos estiverem ou atrás ou à frente desta linha, o jogador mais perto da bola será o
atacante e o zagueiro será o robô restante;
• Na situação da bola estar no campo de ataque, o jogador mais perto da bola será atacante
e o outro robô será o zagueiro.
Estados dos Jogadores
O goleiro pode estar nos estados defesa ou espera:
• No estado espera o jogador fica no centro do gol. Este estado é usado pelo goleiro quando
a bola está no campo de ataque;
• No estado defesa o jogador fica posicionado de tal forma a interceptar a trajetória da bola
para o gol.
O atacante é o jogador que mais interage com a bola. Seus possíveis estados são:
• chutar, quando o atacante está no ataque e de posse da bola;
• alinhar, quando o atacante está no ataque mas a bola está desalinhada em relação ao fundo
do gol do adversário;
• contornar, o atacante está à frente da linha da bola, ele irá posicionar-se atrás desta linha
de modo a contornar a bola.
O zagueiro apresenta dois estados:
• espera, é atribuído quando a bola está no campo de ataque;
• zagueiro, é o estado em que o jogador posiciona-se na linha formada pela posição da bola
e o centro do gol do time, de modo a interceptar o avanço ou chute do adversário.
3.2.2
Planejamento Cooperativo de Tarefas em um Ambiente de Futebol
de Robôs
Este trabalho apresenta o desenvolvimento de um método de coordenação e cooperação
para um grupo de mini-robôs na disputa de uma partida de futebol de robôs. Este modelo foi
concebido para a categoria Mirosot de futebol de robôs, que consiste em dois times com três
robôs cada, onde um deles pode ser o goleiro. As dimensões dos robôs devem ser tais que
3.2 Trabalhos Relacionados ao Domínio de Futebol
30
caibam em um cubo com aresta 7,5cm. A bola de jogo é uma bola de golfe laranja. Cada time
pode possuir, além dos robôs:
• Uma câmera para a captação das imagens do campo, localizada a uma altura igual ou
superior a 2m;
• Um computador para processamento de imagem, para planejamento e controle dos robôs;
• Um sistema de comunicação via rádio entre o computador e os robôs.
O modelo proposto pode ser dividido nos seguintes módulos: robô, visão, localização,
planejamento e controle. O funcionamento do sistema dá-se através da repetição dos cinco
passos, descritos a seguir:
1. O módulo de visão (câmera) capta a configuração atual do campo (imagem);
2. O módulo de localização analisa a imagem e, com base nos rótulos fixados sobre os robôs,
estima as posturas (posições e orientações) dos robôs e da bola;
3. A partir das posturas dos robôs e da bola, e de informações sobre o jogo (tempo de jogo,
placar, etc), o módulo de planejamento calcula qual comportamento deverá ser adotado
pelo time;
4. O módulo de controle traduz as informações geradas pelo módulo de planejamento em
valores de tensão para os motores, compreensíveis pelos robôs, e os transmite via rádio;
5. Os robôs recebem os dados e geram os valores de tensão desejados para os motores.
Segundo o autor, a tática usada para os deslocamentos dos robôs é o principal foco deste
trabalho. Ela dita o comportamento do time e, consequentemente, dos jogadores durante o
jogo. A tática está organizada em camadas. As camadas estão sobrepostas em quatro níveis de
decisão, apresentadas na Figura 5:
1. O estilo de jogo está no nível mais alto;
2. No segundo nível estão os papéis dos jogadores;
3. No terceiro nível estão os estados dos jogadores;
4. No nível mais baixo estão os cálculos das posições desejadas de deslocamento de cada
jogador.
3.2 Trabalhos Relacionados ao Domínio de Futebol
31
Figura 5: Camadas de Decisão da Modelagem. Fonte: [Yamamoto 2005].
O papel de um robô dita seu comportamento em um determinado momento do jogo. Os
papéis são alocados dinamicamente durante o jogo, de forma que um mesmo robô pode assumir
diferentes papéis no decorrer da partida. Três papéis foram definidos para esta modelagem:
defensor, atacante e curinga. Cada um dos papéis apresenta um número variável de estados
associados. No decorrer do jogo a tática irá distribuir os papéis entre os jogadores, adequando
para cada robô na situação em que se encontrar. Isso significa, por exemplo, que um robô que
comece o jogo como defensor, durante o jogo poderá assumir a posição de atacante e vice-versa.
Para a definição dos papéis dos jogadores o campo foi dividido em três regiões: a mais à
esquerda como a região da defesa, a região central, e a região de ataque. Com estas regiões
definidas, o sentido de deslocamento da bola e o posicionamento dos demais jogadores, a modelagem define o papel que cada jogador deve executar e em que estado este jogador deve atuar.
As regras da alocação dinâmica de papéis para os robôs, durante uma partida, são as seguintes:
• Bola no ataque: A situação em que a bola está no campo de ataque é o momento em
que o time possui menor risco de sofrer gols. Portanto, nesse caso, o papel prioritário na
escolha é o atacante. Como regra geral, o robô mais próximo da bola será considerado o
3.2 Trabalhos Relacionados ao Domínio de Futebol
32
atacante. O mais recuado será o defensor, e o terceiro o curinga;
• Bola na defesa em direção ao gol adversário: Nessa situação, o comportamento procede
de forma similar ao caso de risco mínimo de gol, e neste caso escolhe-se o jogador mais
próximo da bola como atacante;
• Bola na defesa em direção ao gol defendido: Nesse caso, a prioridade de escolha de papel
é sempre do defensor. O robô posicionado mais próximo ao gol defendido será o defensor.
O robô mais próximo da bola, que não seja o defensor, será o atacante e o outro robô será
o curinga.
Os estados dos jogadores são alterados em função do posicionamento em campo e do papel
que o jogador desempenha no momento da ação. A seguir tem-se uma relação dos possíveis
estados a serem atribuídos aos robôs:
• Estado finalizar: é um estado do atacante, quando na região de ataque. Neste estado o
atacante é enviado diretamente para a posição da bola;
• Estado alinhar para toque: é um estado tanto do atacante como do curinga, quando em
deslocamento em sentido ao gol adversário e sem a posse da bola. Neste estado os jogadores buscam posicionar-se no campo de tal forma que a bola fique entre ele e o fundo do
gol adversário;
• Estado tocar: qualquer jogador, quando alinha com a bola, faz o toque em direção ao gol
ou a outro jogador;
• Estado alinhar: estado do atacante quando próximo à área adversária, sendo uma preparação para o chute a gol. Neste estado o jogador busca colocar-se na posição em que a
bola fique entre ele e o fundo do gol adversário;
• Estado chutar: uma vez que o alinhamento foi possível, o chute é o próximo passo;
• Estado conduzir: neste estado o robô de posse da bola, e sem a possibilidade de chute,
passa a conduzir a bola em campo procurando aproximar-se do gol adversário;
• Estado pressionar: é idêntico ao estado finalizar, mas a posse da bola é de um adversário.
Nesta situação o atante procura a posse da bola, avançando sobre o adversário;
• Estado bloquear: neste estado o atacante não possui a posse da bola e a mesma movimentase em direção ao gol defendido. Nesse caso, o atacante tenta alcançar o jogador com a
posse da bola;
3.2 Trabalhos Relacionados ao Domínio de Futebol
33
• Estado contornar: o jogador da defesa tem a bola mais próxima ao gol defendido do que
ele próprio. Este jogador deve, então, deslocar-se em direção á bola contornando-a com
o objetivo de ficar entre ela e o gol defendido;
• Estado cobrir: nesta situação os jogadores devem posicionar-se entre a bola e o adversário, bloqueando seu avanço.
34
4
Simulação Multiagentes na
Modelagem do Domínio do Futebol
Aquele que conhece os outros é sábio, aquele que se conhece a si próprio é iluminado.
—– Lao-Tsé
O arcabouço teórico-técnico da área de Simulação Multiagentes permite que sejam realizados testes de viabilidade de um projeto sem o custo de tempo e financeiro para o desenvolvimento de protótipos. Podem-se destacar três pontos importantes para analisar a qualidade de
um ambiente simulado: a modelagem dos objetos, a modelagem das colisões e o tempo de simulação [Elfes 1989]. O simulador proposto neste trabalho utiliza o formalismo de SMAs para
modelar o ambiente considerado (um campo de futebol), bem como os jogadores dos times. A
modelagem dos jogadores deve, então, ser a mais fiel possível, contendo as principais características dos jogadores do mundo real. O tratamento das colisões implica, neste modelo, em não
permitir que dois jogadores ocupem o mesmo espaço físico do campo. O tempo da simulação
envolve o tempo das ações imediatas como chutes e deslocamento dos jogadores no campo,
bem como tempo total da partida.
Um jogo de futebol é um exemplo típico de um sistema multiagentes. Dois times, cada um
composto por onze (11) jogadores, os quais devem organizar-se de modo a tentar garantir que
seu time vença o jogo, como no futebol humano. Vence o time que marcar mais gols. Esse
ambiente inclui coordenação, cooperação com os companheiros de time, e competição com
os adversários. Neste capítulo tem-se a apresentação da P ROPOSTA
TUAL DE UM
S IMULADOR M ULTIAGENTES ,
PARA O
D OMÍNIO
DO
DE
M ODELO C ONCEI -
F UTEBOL. O texto está
organizado como se segue. Na Seção 4.1 tem-se a apresentação da arquitetura em camadas do
simulador. A Seção 4.2 descreve a C AMADA A MBIENTE com a representação do campo de
jogo. A Seção 4.3 apresenta a C AMADA M ODELO onde estão modelados o técnico, os jogadores e o juiz. Na Seção 27 é apresentada a C AMADA O BSERVAÇÃO, onde é detalhada a interface
4.1 Arquitetura em Três Camadas
35
gráfica do simulador.
4.1
Arquitetura em Três Camadas
O simulador proposto neste trabalho está estruturado em uma arquitetura de três camadas
conforme ilustra a Figura 6: C AMADA A MBIENTE, C AMADA M ODELO e a C AMADA O BSER VAÇÃO .
Figura 6: Arquitetura em Três Camadas do Simulador de Futebol Robótico.
A C AMADA A MBIENTE (detalhada na Seção 4.2) representa o espaço físico do campo de
futebol onde as partidas são realizadas. As funções desta camada são:
• Criação e gerenciamento das ações dos agentes ambientais e dos agentes estruturais;
• Armazenamento, em cada passo da simulação, de uma “fotografia” do jogo, considerando
informações tais como qual a posição de cada agente jogador e da bola;
• Modelagem formal do espaço físico onde a simulação vai ocorrer;
• Armazenamento de dados sobre eventos que ocorrem no campo para a base de estatísticas
do jogo (BASE E STATÍSTICA DO J OGO), via o agente E STATÍSTICA.
A C AMADA M ODELO (detalhada na Seção 4.3) é a responsável pela execução da simulação
propriamente dita. Os jogadores, o técnico, o juiz e as regras de uma partida estão definidas
nesta camada. As funções desta camada são:
• Criação e gerenciamento das ações do agente T ÉCNICO, dos agentes J OGADORES e do
agente J UIZ;
• Coleta das informações a serem enviadas para a C AMADA O BSERVAÇÃO;
36
4.2 Camada Ambiente
• Coleta dos dados estatísticos do jogo, via o agente J UIZ.
A C AMADA O BSERVAÇÃO (detalhada na Seção 4.4) separa as ações de observação das
ações de simulação. Neste primeiro nível da arquitetura tem-se a observação da simulação.
Assim, este nível controla o que o usuário vê e suas interações em tempo real com a simulação
que está sendo executada, permitindo ao usuário observar o comportamento dos agentes no
campo de jogo. As funções desta camada são:
• Estruturação da interface com o usuário, como por exemplo a criação de telas para observação e controle da simulação;
• Criação do segundo nível hierárquico, formado pelas C AMADA M ODELO e C AMADA
A MBIENTE;
• Coleta de dados advindos da C AMADA M ODELO e C AMADA A MBIENTE. Tendo como
base tais dados, a C AMADA O BSERVAÇÃO gera informações e ferramentas estatísticas
(gráficos, planilhas, etc) para mostrá-las de forma interativa ao usuário, ou armazená-las
no modo batch em arquivos.
4.2
Camada Ambiente
A C AMADA A MBIENTE provê o ambiente onde ocorre a simulação. Esta camada é composta pelos módulos: SMA
DE I NFORMAÇÃO .
DO
A MBIENTE S IMULADO, M ÓDULO
DE
AGREGAÇÃO e BASE
A Figura 7 apresenta a arquitetura proposta da C AMADA A MBIENTE.
Figura 7: Arquitetura da C AMADA A MBIENTE.
4.2 Camada Ambiente
37
Vale ressaltar que a modelagem multiagentes do campo de futebol e seus componentes é
uma contribuição a ser destacada. Isto porque o SMA do ambiente simulado permite a construção e analise das mais variadas relações entre os agentes e o ambiente, e vice-versa.
4.2.1
Sistema Multiagentes do Ambiente Simulado
Nesta seção tem-se o detalhamento dos agentes que descrevem o ambiente simulado (agentes ambientais) e dos agentes integrantes do jogo. Esta modelagem representa o ambiente do
jogo de futebol implementado em um SMA.
Agentes Ambientais
Para a modelagem do domínio de futebol de robôs os seguintes agentes ambientais são considerados: agente C ÉLULA, agente T RAVE, agente L INHA L ATERAL, agente G OL, agente L I NHA F UNDO , agente M ARCA P ENALTI , agente C IRCULO C ENTRAL , agente E SCANTEIO , agente
M EIO C AMPO, agente P EQUENA A REA e agente G RANDE A REA. Estes agentes representam os
elementos físicos do campo de futebol. A Figura 8 indica o posicionamento de cada agente, ou
grupo de agentes, na disposição do campo de futebol.
Figura 8: Posicionamento dos Agentes da C AMADA A MBIENTE no Campo de Jogo.
4.2 Camada Ambiente
38
AGENTE C ÉLULA
O agente C ÉLULA representa a menor porção do campo de jogo (do gramado). O seu
tamanho é tal que apenas um agente jogador poderá ocupar este espaço de cada vez. Entretanto, em um mesmo passo da simulação uma célula pode ser ocupada simultaneamente por
um agente jogador e por um agente B OLA. Em um ambiente real este tamanho de célula está
estimado em um quadrado de 50cm de lado, correspondendo à área média ocupada por uma pessoa. A definição deste espaço baseou-se em estudos relacionados à movimentação de pedestres
[Adler e Blue 1998, França et al. 2009].
No modelo deste trabalho os atributos do agente C ÉLULA são os seguintes:
•
POS X, POS Y:
Coordenadas nos eixos X e Y, representando a sua posição fixa na matriz
do campo de jogo;
•
NOME:
O nome do agente será composto por sua especialização e posicionamento no
campo de jogo, por exemplo:
– para a célula que ocupa a posição posX=10 e posY=10, que no campo de jogo
representar um agente tipo C ÉLULA, tem-se o caractere “C” mais sua indexação na
matriz(10,10) assim, seu nome será: C(10,10);
– para a célula que ocupa a posição posX=1 e posY=50, que no campo de jogo representar um agente tipo G OL, tem-se os caracteres “Gol” mais sua indexação na
matriz(1,50), assim seu nome será: G OL (1,50).
• Além dos agentes descritos nos exemplos anteriores, os demais agentes da C AMADA
A MBIENTE serão denominados dentro do SMA como:
– agente T RAVE: T RAVE ( POS X, POS Y);
– agente L INHA L ATERAL: L INHA L ATERAL ( POS X, POS Y);
– agente L INHA F UNDO: L INHA F UNDO ( POS X, POS Y);
– agente M ARCA P ENALTI: M ARCA P ENALTI ( POS X, POS Y);
– agente C IRCULO C ENTRAL: C IRCULO C ENTRAL ( POS X, POS Y);
– agente E SCANTEIO: E SCANTEIO ( POS X, POS Y);
– agente M EIO C AMPO: M EIO C AMPO ( POS X, POS Y);
– agente P EQUENA A REA: P EQUENA A REA ( POS X, POS Y);
– agente G RANDE A REA: G RANDE A REA ( POS X, POS Y).
39
4.2 Camada Ambiente
•
TIME:
Indica o time que está do lado do campo da referida célula. Quando os times
mudarem de lado, por exemplo na passagem do primeiro para o segundo tempo, o atributo
TIME
•
é alterado pelo agente J UIZ;
TEM B OLA :
Variável booleana que representa a existência, ou não, da bola sobre a cé-
lula. Quando do início da simulação este atributo é inicializado com o valor
FALSE .
No
transcorrer da simulação, este atributo é atualizado pelo agente B OLA;
•
TEM J OGADOR :
Variável booleana que representa a existência, ou não, de um jogador
sobre a célula. Quando do início da simulação este atributo é inicializado com o valor
VERDADEIRO ,
caso algum jogador seja alocado na célula. Caso contrário, receberá o
valor FALSE. Durante a simulação, este atributo é atualizado pelos agentes jogadores.
Para cada atributo do agente há uma regra GET <N OME D OATRIBUTO > que tem por objetivo
retornar o valor atual deste atributo. A Listagem A.1 apresenta esta regra geral para o retorno
de valores a atributos do agente C ELULA. Também, para cada um dos atributos deste agente
há uma regra SET <N OME D OATRIBUTO > que tem por objetivo alterar o valor deste atributo. A
Listagem A.2 apresenta o método para o agente C ÉLULA.
A seguir tem-se a apresentação dos demais agentes ambientais, que herdam os atributos e
métodos do agente C ÉLULA.
AGENTE G OL
Em cada lado do campo existe um conjunto de agentes G OL que representam as linhas de
gol de um campo de futebol. Os agentes G OL sinalizam a marcação de um gol para o agente
J UIZ. Um gol ocorre quando o agente B OLA verifica, através da regra P ERCEBER A MBIENTE,
que está na superfície de uma célula especializada do tipo G OL e dispara a regra D ETERMINAR
G OL do agente G OL.
A regra D ETERMINAR G OL do agente G OL coleta os seguintes atributos da bola:
DADE B OLA
e
ULTIMA P OSSE .
VELOCI -
Caso a velocidade da bola esteja acima de zero, então o agente
G OL envia uma mensagem para o J UIZ informando que houve um gol, com os seguinte parâmetros: passo da simulação, ontologia da mensagem, última posse da bola, as coordenadas do
agente no campo. O detalhamento desta regra está na Listagem A.3.
AGENTE T RAVE
O agente T RAVE separa os agentes L INHA F UNDO e os agentes G OL, com seu posicionamento no campo exatamente entre eles. Em cada lado do campo existem dois destes agentes,
40
4.2 Camada Ambiente
que representam as traves do campo de futebol. Neste trabalho não serão representados os chutes alto, logo não é necessário a definição do conjunto de agentes travessão. Quando a bola
“bater” em uma das traves, a regra D ETERMINAR B OLA
NA
T RAVE será executada. A regra é
apresentada na Listagem A.4.
Por esta regra o agente T RAVE envia uma mensagem ao agente J UIZ com os seguintes
parâmetros: passo da simulação, a ontologia da mensagem,
TIME
(atributo do agente T RAVE)
e ULTIMA P OSSE (atributo do agente B OLA). As informações enviadas por esta mensagem são
armazenadas para controle estatístico do jogo.
AGENTE L INHA F UNDO
Os agentes L INHA F UNDO limitam o comprimento do campo, estando posicionados entre
os agentes T RAVE e E SCANTEIO. Sua função é sinalizar ao agente J UIZ a passagem da bola no
sentido do campo de jogo para fora de campo, com informações suficientes para que o agente
J UIZ consiga determinar se a bola saiu para escanteio, ou como tiro de meta.
Quando o agente B OLA perceber, através da regra P ERCEBER A MBIENTE (veja Listagem
A.7), que está na superfície de uma célula do tipo L INHA F UNDO, dispara a regra D ETERMI NAR
S AÍDA
PELA
L INHA
DE
F UNDO do agente L INHA F UNDO (veja Listagem A.5). Por esta
regra o agente L INHA F UNDO verifica, se a velocidade da bola está acima de zero. Se sim, o
agente L INHA F UNDO envia uma mensagem para o J UIZ com os seguintes parâmetros: passo
da simulação, ontologia da mensagem, última posse da bola, as coordenadas do campo.
AGENTE E SCANTEIO
Os agentes E SCANTEIO indicam quatro marcas de referência no campo de futebol, com a
função de ser o ponto inicial da cobrança de um escanteio. Estes agentes estão posicionados
exatamente nos quatro vértices do quadrilátero formado pelo campo de jogo. Neste modelo o
agente E SCANTEIO não apresenta métodos.
Quando o agente J UIZ recebe a mensagem de que houve uma saída de bola pela linha de
fundo, mensagem enviada pelo agente L INHA F UNDO, caso tenha sido escanteio o J UIZ decide
por uma das quatro marcas de escanteio, para que seja realizada a reposição da bola.
AGENTE L INHA L ATERAL
Estes agentes tem como função sinalizar ao agente J UIZ se houve bola fora pela lateral. A
sinalização ocorre quando o agente B OLA, tendo percebido que está na superfície de um agente
L INHA L ATERAL, dispara a regra D ETERMINAR S AÍDA PELA L INHA L ATERAL.
Esta regra agente L INHA L ATERAL verifica se a velocidade da bola está acima de zero.
4.2 Camada Ambiente
41
Caso sim, envia uma mensagem para o agente J UIZ com os seguintes parâmetros: passo atual
da simulação, a ontologia da mensagem, de quem foi a última posse da bola e as coordenados
do agente que informa a saída pela lateral. O detalhamento deste método pode ser visto na
Listagem A.6.
Com estes dados o agente J UIZ define de qual time será a reposição pela lateral do campo,
bem como a posição do campo onde ocorrerá a cobrança.
AGENTE M EIO C AMPO
O agente M EIO C AMPO situa-se na posição central do campo, tendo como função a demarcação do meio de campo. Esta marca é usada para posicionar a bola no início de cada jogo,
reinício pela virada do tempo, ou pela marcação de um gol. O agente J UIZ é quem determina
estas situações. Neste modelo o agente M EIO C AMPO não apresenta métodos.
AGENTE C IRCULO C ENTRAL
Os agentes C IRCULO C ENTRAL situam-se na posição central do campo, sendo que sua
função é a demarcação da área circular central. No modelo proposto neste trabalho tais agentes
tem por função básica a indicação do círculo central, e por isso não apresentam métodos.
AGENTE P EQUENA A REA
É um conjunto de agentes na frente do gol, delimitando uma região retangular. Neste trabalho tais agentes têm por função a identificação desta região do campo de futebol e por isso não
apresentam métodos.
AGENTE G RANDE A REA
Os agentes G RANDE A REA definem uma região retangular à frente do gol, sendo que a
pequena área está contida na grande área. Neste modelo estes agentes não apresentam métodos.
AGENTE M ARCA P ENALTI
O agente M ARCA P ENALTI é um agente que marca a posição de onde serão cobrados os
pênaltis. Neste modelo estes agentes não apresentam métodos.
Agentes Integrantes do Jogo
Os agentes integrantes do jogo são aqueles que não fazem parte da estrutura física do campo
de futebol, mas atuam no jogo e auxiliam na formação do ambiente onde o SMA dos jogadores
irá atuar. São eles: agente B OLA e o agente E STATÍSTICA.
42
4.2 Camada Ambiente
AGENTE B OLA
O agente B OLA, por representar um objeto inanimado, é um agente reativo, mas seu comportamento depende das condições atuais do jogo. O agente B OLA apresenta os seguintes
atributos:
•
POS X
e
POS Y:
Atributos que identificam a posição da bola, nos eixos X e Y do campo,
respectivamente;
•
POS XA NT
e POS YANT: Atributos que identificam a posição da bola, nos eixos X e Y do
campo, no passo anterior da simulação;
•
ULTIMA P OSSE:
Identifica o último jogador a tocar na bola. Este atributo é inicializado
no começo do jogo e no começo do segundo tempo com o valor NULL. Cada jogador que
obtiver a posse da bola altera este atributo com seu nome;
•
POSSE ATUAL :
Identifica o jogador que detém o controle da bola, em um determinado
passo da simulação;
•
VELOCIDA B OLA :
Indica a quantidade de metros que a bola deve se deslocar quando em
movimento. Este atributo é passado pelo agente J OGADOR, quando do chute ou quando
a bola bater na trave;
•
CHUTE N OVO :
Indica que a bola está movimentando em decorrência de um chute. Este
atributo permite identificar o transcorrer do movimento da bola.
Em todos os passos da simulação o agente B OLA verifica, com a regra P ERCEBER A MBI ENTE,
cujo detalhamento está na Listagem A.7, se houve algum evento a ser relatado ao juiz.
Os eventos a serem avaliados são:
• a saída da bola pela lateral, pelo agente L INHA L ATERAL;
• uma bola que bate na trave, relatado pelo agente T RAVE;
• um gol marcado, relatado pelo agente G OL;
• a saída da bola pela linha de fundo, relatado pelo agente L INHA F UNDO.
A regra D EFINIR ATRIBUTO
POSSE ATUAL ,
para a atribuição do atributo
POSSE ATUAL ,
pode ser vista na Listagem A.8. A regra D EFINIR ATRIBUTO ULTIMA P OSSE, para a atribuição
do atributo
ULTIMA P OSSE,
pode ser vista na Listagem A.9. Estas regras definem a posse da
43
4.2 Camada Ambiente
bola nas diversas situações de jogo. A regra M OVER B OLA, apresentada na Listagem A.10,
tem por finalidade simular o deslocamento da bola pelo campo durante uma partida. A regra
D EFINIR D IREÇÃO
DA
B OLA define o sentido em que a bola se locomove, se é da direita para
esquerda ou da esquerda para a direita. A Listagem A.11 detalha a regra.
AGENTE E STATÍSTICA
O agente E STATÍSTICA é responsável pelo armazenamento e gerenciamento das informações necessárias para a geração das estatísticas do jogo, bem como pela criação de gráficos
e outras ferramentas de análise estatística de desempenho dos times. O agente J UIZ recebe
as informação dos eventos ocorridos na partida, decide sobre o evento, e informa ao agente
E STATÍSTICA a ocorrência para armazenamento e posterior totalização. A regra do agente E S TATÍSTICA denominada A RMAZENAR
E VENTOS O CORRIDOS D URANTE UMA PARTIDA, para
o recebimento de tais informações, está descrita na Listagem A.12. Por exemplo, se houve um
gol o juiz informa ao agente E STATÍSTICA qual jogador o marcou, de qual time e em que passo
da simulação ocorreu o gol.
4.2.2
Módulo de Agregação
O M ÓDULO
DE
AGREGAÇÃO tem a função de compor o ambiente do campo de fute-
bol, gerando a matriz com os agentes C ÉLULA e suas especializações: agente T RAVE, agente
L INHA L ATERAL, agente G OL, agente L INHA F UNDO, agente M ARCA P ENALTI, agente C IR CULO C ENTRAL ,
agente E SCANTEIO, agente M EIO C AMPO, agente P EQUENA A REA e agente
G RANDE A REA. As medidas oficiais de um campo de futebol segundo [IPEM 2012] e detalhadas na Figura 9, são as seguintes:
1. O campo de jogo deve ser retangular e marcado com linhas. As linhas que determinam a
extensão ou o comprimento do campo são chamadas de laterais, e a largura é determinada
pela linhas de meta. Os limites máximos e mínimos são:
• Comprimento (neste modelo é representado pelos agentes L INHA L ATERAL): mínimo de 90m e máximo de 120m;
• Largura (neste modelo é representada pelos agentes L INHA F UNDO): mínima de
45m e máxima de 90m.
2. O campo deve ser dividido em duas metades iguais, e o centro deve ser marcado com um
ponto (que neste modelo é representado pelo agente M EIO C AMPO) na metade da linha
de meio-campo;
44
4.2 Camada Ambiente
3. As dimensões da grande área (que neste modelo é representado pelos agentes G RANDE A REA) e pequena área (que neste modelo é representado pelos agentes P EQUENA A REA)
também têm valores fixos definidos. A Figura 9 detalha estas medidas;
4. A área penal é delimitada por duas linhas perpendiculares de 16, 5m, unidas por uma linha
paralela à linha de meta.
Figura 9: Medidas Oficiais de um Campo de Futebol. Fonte: [IPEM 2012].
O simulador proposto neste trabalho adota uma medida de 200 células de comprimento total
e 100 células de largura total. Desta forma cada time defende um campo de 100x100 células,
que representa um campo com 50x50 metros. Tais medidas estão dentro dos limites de um
campo de futebol oficial.
Os agentes ambientais são agrupados na
MATRIZ C AMPO .
Esta matriz tem a dimensão de
200x100 células. Tal agrupamento requer a criação de 20.000 agentes C ÉLULA e suas especializações. Esta matriz dá a posição relativa dos agentes ambientais do campo de futebol. A regra
I NICIALIZAR
MATRIZ
na Listagem A.13.
C AMPO apresenta o detalhamento desta inicialização, e está codificada
45
4.2 Camada Ambiente
4.2.3
Base de Informação
Na BASE
DE I NFORMAÇÃO
são armazenados dois tipos de informação: o primeiro tipo
corresponde às características do campo, e o segundo tipo de informação corresponde às estatísticas do jogo.
Neste modelo tem-se uma discussão inicial das variáveis que representam as características
do campo. Contudo, um maior detalhamento deverá ser realizado em trabalhos futuros.
Base Característica do Campo
As seguintes variáveis pode ser utilizadas para representar as características do campo:
•
PISO C AMPO :
tipo de piso do campo, podendo assumir os valores: campo gramado,
campo de terra, campo de arreia e campo artificial;
•
TEMPERATURA A MBIENTE:
•
UMIDADE C AMPO :
temperatura do ambiente;
nível de umidade do campo.
Base Estatísticas do Jogo
O segundo tipo de informação corresponde às estatísticas do jogo, que permitem avaliar se
a dinâmica de um time está apresentando vantagens sobre o adversário durante a partida. O
agente E STATÍSTICA é responsável por gerenciar tais informações. O banco de dados para a
organização das estatísticas armazena a ocorrência de cada um dos seguintes eventos, diferenciados para cada equipe, com seus respectivos atributos:
• Gol marcado: jogador que o marcou, tempo da simulação;
• Gol sofrido: jogador que o marcou, tempo da simulação;
• Arremesso lateral cobrado: jogador que gerou o arremesso, tempo da simulação;
• Arremesso lateral gerado: jogador que colocou a bola para fora, tempo da simulação;
• Escanteio cobrado: jogador que cobrou o escanteio, tempo da simulação;
• Escanteio gerado: jogador que colocou a bola para fora, tempo da simulação;
• Tempo de posse de bola: jogador que detém a posse da bola, tempo inicial, tempo final,
tempo total momentâneo.
46
4.3 Camada Modelo
Com base nos dados armazenados, o agente E STATÍSTICA gera as seguintes totalizações:
• Total de gols marcados por cada equipe;
• Total de arremessos laterais cobrados por equipe;
• Total de escanteios cobrados por equipe;
• Total de escanteios sofridos por equipe;
• Tempo acumulado e percentual de posse de bola por equipe;
• Ranking dos jogadores artilheiros, cobradores de escanteios e laterais.
4.3
Camada Modelo
Na C AMADA M ODELO tem-se a modelagem do agente T ÉCNICO, do agente J UIZ, dos
agentes
JOGADOR
com suas especializações (agente G OLEIRO, agente Z AGUEIRO e agente
ATACANTE). A interação entre estes agentes define a dinâmica das ações durante a simulação de
uma partida de futebol. Estes agentes são cognitivos, em cada passo da simulação eles decidem
suas ações e colaboram entre si para a vitória do time. A Figura 10 apresenta a arquitetura desta
camada.
Esta seção está organizada como se segue. A Seção 4.3.1 trata do detalhamento do agente
T ÉCNICO, a Seção 4.3.2 detalha o comportamento do agente J UIZ e a Seção 4.3.3 detalha o
comportamento do SMA dos jogadores.
Figura 10: Arquitetura da C AMADA M ODELO.
4.3.1
Agente Técnico
Um técnico de futebol é responsável pela coordenação e direção das atividades da equipe.
De um técnico é exigido o conhecimento de táticas e estratégias de jogo e também da compe-
4.3 Camada Modelo
47
tição, normalmente envolvendo a elaboração de esquemas, a substituição de jogadores e outras
ações dentro e fora do campo.
Dentro deste contexto, nete trabalho o técnico de futebol assume as seguintes responsabilidades:
1. Definição do sistema tático usado nas diversas situações de jogo. Neste trabalho o técnico
atribui ao time as seguintes posturas táticas: posicionamento 4-3-3, posicionamento 4-4-2
e posicionamento 3-5-2;
2. Definição do papel a ser assumido pelos jogadores durante uma partida;
3. Reconhecimento das áreas em que um campo de futebol divide-se. São elas: defesa, meio
e ataque;
4. Definição do estado coletivo que o time deve apresentar, em cada momento do jogo;
5. Posicionamento inicial dos jogadores em campo.
A sequência de decisões, que são de responsabilidade do técnico, está demonstrada na
Figura 11. No nível mais alto tem-se a decisão de qual sistema tático deve ser adotado. A
seguir o técnico deve decidir sobre os papéis que cada jogador adota dentro da tática escolhida.
O campo ainda é dividido em áreas, permitindo ao técnico e ao jogador decidir pela melhor
posição a ser adotada durante a partida. No nível mais baixo, o técnico decide pelo estado
coletivo: ataque, defesa ou normal. Cada uma destas decisões está detalhada a seguir.
Definição do Sistema Tático
Cada agente J OGADOR ocupa sua posição no campo, seguindo a tática de ocupação do
solo definida pelo técnico. Esta ocupação pode representar uma vantagem significativa em uma
disputa. Por exemplo, impedindo que sobrem espaços vazios, pois espaços vazios permitem o
deslocamento e os chutes a gol dos adversários. A adoção de uma tática para a distribuição dos
jogadores em campo aumenta a área total que a equipe consegue ocupar do campo. Considerase que, quanto mais espaço estiver ocupado, maior a capacidade da equipe em manter a posse
da bola, visto que o adversário terá que cobrir uma área também maior para recuperar a posse.
Existem distâncias ótimas para cada momento e circunstância. Portanto, um grande afastamento entre os jogadores permitirá a ocupação de mais espaço, mas poderá interferir na capacidade deles relacionarem-se. Enquanto uma pequena distância entre os jogadores poderá gerar
melhor relação, porém com pouca utilização dos espaços [Braz e Borin 2009].
48
4.3 Camada Modelo
Figura 11: Hierarquia de Decisão do Agente T ÉCNICO.
A Figura 12 está dividida em três partes sendo que cada parte apresenta um sistema tático
adotado neste trabalho:
• Na Figura 12(a) tem-se o posicionamento do sistema tático 4-3-3 com a distribuição de
um sistema que preconiza uma estrutura defensiva de quatro defensores, sendo: um lateral direito, um zagueiro central, um quarto zagueiro e um lateral esquerdo. Na frente
dos quatro defensores posicionam-se três meio-campistas e na área ofensiva mais três
atacantes;
• Na Figura 12(b) tem-se o posicionamento do sistema tático 4-4-2, com a distribuição para
uma estratégia balanceada no ataque e defesa, sendo quatro atletas como defensores: um
lateral direito, um zagueiro central, um quarto zagueiro e um lateral esquerdo. O setor de
meio campo dispõe de quatro atletas e o setor ofensivo de dois atacantes;
• A Figura 12(c) representa o posicionamento do sistema tático 3-5-2, permitindo uma
postura ofensiva ao time. O sistema 3-5-2 é composto inicialmente por três zagueiros
com características de bons marcadores. O meio campo é formado por cinco jogadores,
sendo que dois jogadores atuam pelas alas do campo e os outros três compõem a área
central do campo. Já a frente é composta por dois atacantes [Melo 1999].
Para controlar a posição dos jogadores no campo, considerando a adoção de um sistema
49
4.3 Camada Modelo
(a) Sistema Tático 4-3-3.
(b) Sistema Tático 4-4-2.
(c) Sistema Tático 3-5-2.
Figura 12: Posicionamento dos Sistemas Táticos das Equipes. Fonte: [Melo 1999].
tático, é necessário definir as áreas de atuação de cada jogador. O objetivo é de manter os jogadores espalhados no campo, respeitando o sistema tático durante a partida. Entretanto, dentro
de sua área de atuação o jogador pode deslocar-se em qualquer direção. A Figura 13 apresenta o detalhamento da área de atuação dos jogadores. A estrela representa o ponto onde o
agente é instanciado no início de cada jogo, e para onde ele volta sempre que sua equipe está
sendo atacada. O ponto de nascimento de cada jogador é armazenado nas coordenadas (NAS CIMENTOX, NASCIMENTOY).
Um jogador pode deslocar-se livremente dentro de sua região
de atuação. Estas regiões mantêm os jogadores distanciados uns dos outros e obedecendo ao
sistema de posicionamento definido pelo técnico. Os atributos que definem estes limites são:
LIMITE I NF X, LIMITE S UP X, LIMITE I NF Y, LIMITE S UP Y.
Figura 13: Área de Atuação da Posição de um Jogador.
Dependendo do papel de cada jogador (atacante, defensor, ou goleiro) e de sua posição
identificada pelo nome na camisa (lateral direito, esquerdo, etc), haverá uma área de atuação no
campo específica que definirá o seu limite de deslocamento no campo. Para cada sistema tático
as áreas de atuação e as posições dos jogadores são diferenciadas.
50
4.3 Camada Modelo
Sistema Tático 4-3-3
O posicionamento 4-3-3 dá ao time uma postura mais defensiva, congestionando a região
de defesa dificultando o avanço do adversário. A Figura 14 apresenta os limites de atuação
de cada jogador dentro da tática 4-3-3. Para maior clareza há três subfiguras, e cada uma das
imagens representa o campo de futebol. Sobrepondo-se as imagens observa-se que as áreas
de atuação dos jogadores também sobrepõem-se no campo de jogo. As estrelas nas imagens
indicam a posição de “nascimento” do jogador na simulação.
Os zagueiros representados na Figura 14(a) são os jogadores mais recuados em campo, e
ocupam predominantemente a região de defesa. Os jogadores do meio representados na Figura
14(b), ocupam o centro do campo. Os dois atacantes que aparecem na Figura 14(c) ocupam a
região do ataque e boa parte da região central.
(a) Defesa.
(b) Meio de Campo.
(c) Ataque.
Figura 14: Região de Atuação das Posições e Separação das Áreas do Campo para a Formação
4-3-3.
As regiões de atuação de cada jogador no sistema tático 4-3-3 são determinadas na regra
D EFINIR S ISTEMA TÁTICO 4-3-3. A Listagem B.2 apresenta a lógica desta regra.
Sistema Tático 4-4-2
O posicionamento 4-4-2 dá ao time uma postura equilibrada entre ataque e defesa. Os
jogadores posicionados no meio têm um área maior a sua frente, mas também recuam para a
defesa. Isto é que permite um maior equilíbrio. A Figura 15 apresenta os limites de atuação
de cada jogador dentro da tática 4-4-2. Para maior clareza há três subfiguras, e cada uma das
imagens representam o campo de futebol. Sobrepondo-se as imagens observa-se que as áreas
de atuação dos jogadores também sobrepõem-se no campo de jogo. As estrelas nas imagens
indicam a posição de “nascimento” do jogador na simulação.
A Figura 15(a) apresenta a região de atuação dos zagueiros. Os zagueiros são os jogadores
mais recuados em campo, ocupando a região de defesa. Os jogadores do meio, que aparecem
na Figura 15(b), localizam-se mais no centro do campo. Os atacantes, que aparecem na Figura
15(c), são apenas dois (2) na formação 4-4-2, e ocupam predominantemente o ataque.
51
4.3 Camada Modelo
(a) Defesa.
(b) Meio de Campo.
(c) Ataque.
Figura 15: Região de Atuação das Posições e Separação das Áreas do Campo para a Formação
4-4-2.
As regiões de atuação de cada jogador no sistema tático 4-4-2 são determinadas na regra
D EFINIR S ISTEMA TÁTICO 4-4-2. A Listagem B.3 apresenta a lógica desta regra.
Sistema Tático 3-5-2
O sistema tático 3-5-2 é o posicionamento mais agressivo, congestionando o meio de
campo, impedindo o avanço dos defensores e pressionando o time na saída de bola. A Figura
16 apresenta os limites de atuação de cada jogador dentro da tática 3-5-2. Para maior clareza
há três subfiguras, e cada uma das imagens representam o campo de futebol. Sobrepondo-se as
imagens observa-se que as áreas de atuação dos jogadores também sobrepõem-se no campo de
jogo. As estrelas nas imagens indicam a posição de “nascimento” do jogador na simulação.
A Figura 16(a) apresenta a região de atuação dos zagueiros. Os jogadores do meio, que
aparecem na Figura 16(b). Os atacantes, que aparecem na Figura 16(c), são apenas dois (2) na
formação 3-5-2, e ocupam predominantemente a região de ataque.
(a) Defesa.
(b) Meio de Campo.
(c) Ataque.
Figura 16: Região de Atuação das Posições e Separação das Áreas do Campo para a Formação
3-5-2.
As regiões de atuação de cada jogador no sistema tático 3-5-2 são determinadas na regra
D EFINIR S ISTEMA TÁTICO 3-5-2. A Listagem B.4 apresenta a lógica desta regra.
4.3 Camada Modelo
52
Papel do Jogador
Os jogadores neste modelo podem assumir quatro (4) papeis: Goleiro, Zagueiro, Meio
Campo, Atacante. Cada papel é definido como se segue:
• O agente Goleiro tem a responsabilidade de ser a última de defesa. O goleiro se posiciona
exclusivamente dentro da pequena área;
• Os Zagueiros permanecem imediatamento a frente do goleiro, sua movimentação é estreita e organizada em linha;
• Os jogadores de meio lançam-se mais ao ataque com uma maior abrangência do campo.
Sua função é de preparar as jogadas objetivando o gol;
• Os atacante estão desobrigados de marcar, sua função é desempenhada perto da área
adversária com o objetivo de marcar o gol.
Divisão do Campo em Áreas
Com o objetivo de definir os papéis e os comportamentos dos jogadores, o técnico considera
que o campo apresenta três áreas: a defesa, o meio e o ataque. A Figura 17 apresenta esta divisão
do campo:
• A área de defesa, que aparece na Figura 17 como A1, região mais à esquerda do campo
até à metade do campo de defesa, é a região mais apropriada para ações de defesa;
• A área do meio de campo, que aparece na Figura 17 como A2, vai do final da área A1
até à metade do campo de ataque. Nesta região central do campo ocorrem as ações de
preparação para ataque e também é o local para as primeiras ações de defesa;
• A área do ataque, que aparece na Figura 17 como A3, compreende o restante do campo.
Nesta região os atacantes dificilmente empenham-se em ações defensivas, já que um posicionamento estratégico avançado pode significar um boa oportunidade de gol.
A regra D EFINIR Á REAS DO C AMPO é apresentada na Listagem B.5.
53
4.3 Camada Modelo
Figura 17: Definição das Áreas do Campo.
Definição do Estado Coletivo do Time
A alteração do estado coletivo do time durante a partida não faz parte do escopo deste
modelo, e deve ser implementada em trabalhos futuros. O estado coletivo do time é a aplicação
da estratégia mais adequada em decorrência das condições da partida. A mudança do estado
coletivo implica na mudança da postura do time em campo. O técnico é quem decidirá pela
troca do estado coletivo de seu time. Os possíveis estados que um time pode assumir são: o
estado defensivo, o estado normal e o estado agressivo. Para cada estado coletivo o técnico
informa a condição aos jogadores.
Posicionamento Inicial dos Jogadores em Campo
A criação dos agentes J OGADORES em suas posições no campo de jogo é comandada pelo
agente T ÉCNICO. A regra C RIAR J OGADOR é detalhada na listagem B.1. Para cada jogador
são informados os seguintes atributos:
•
NOME :
nome presente na camisa do jogador, representando sua função no sistema tático;
• L IM I NF X: valor no eixo x do limite inferior da região de atuação do jogador;
• L IM S UP X: valor no eixo x do limite superior da região de atuação do jogador;
• L IM I NF Y: valor no eixo y do limite inferior da região de atuação do jogador;
• L IM S UP Y: valor no eixo y do limite superior da região de atuação do jogador;
•
NASC X:
valor no eixo x da coordenada de nascimento do jogador;
•
NASC Y:
valor no eixo y da coordenada de nascimento do jogador.
54
4.3 Camada Modelo
Estes dados estão definidos nas regras: D EFINIR S ISTEMA TÁTICO 4-3-3, detalhada na
Listagem B.2; D EFINIR S ISTEMA TÁTICO 4-4-2, detalhada na Listagem B.3 e D EFINIR S IS TEMA
TÁTICO 3-5-2, detalhada na Listagem B.4.
4.3.2
Agente J UIZ
Durante uma partida de futebol eventos podem alterar a dinâmica do jogo, estes eventos
são: a saída da bola pela lateral, a saída da bola pela linha de fundo e a marcação de um gol.
Caso ocorra um destes eventos, o agente J UIZ é o responsável pela decisão de paralisação e
reinício do jogo. Em cada evento a posse da bola e as ações de reinício são diferentes, e para
controlar tais situações a regra T RATAR E VENTOS J UIZ, detalhada na Listagem B.6, apresenta
este comportamento.
O agente J UIZ também é o responsável pelo início de jogo e o reinício da partida na virada
do segundo tempo. A regra I NICIAR
E
R EINICIAR J OGO, apresentada na Listagem B.7, define
este comportamento.
4.3.3
Sistema Multiagentes J OGADORES
Os agentes J OGADORES em uma partida simulada de futebol são os elementos que efetivamente participam da disputa do jogo. Cada time é composto por onze agentes, sendo um
goleiro e dez jogadores da linha. Este jogadores são colocados em suas posições de nascimento
pelo agente T ÉCNICO. Após este primeiro posicionamento, os agentes J OGADORES passam a
movimentar-se de forma autônoma.
Para a definição destes comportamentos no contexto do futebol foram estudados trabalhos de pesquisadores da área. Dentre os trabalhos analisados foram selecionados artigos
da Equipe Guaraná [Costa e Pegoraro 2000], de Gupta [Sng, Gupta e Messom 2002], Hubner
[Hubner e Sichman 2003] e Enderle [Kraetzschmar et al. 2010], dentre outros. A tática de movimentação dos agentes J OGADORES está baseada na monografia de [Yamamoto 2005]. A
adaptação do trabalho de [Yamamoto 2005] visa a criação de um simulador de futebol com
agentes inteligentes, em um ambiente com onze jogadores de cada lado. O simulador é implementado por um conjunto de agentes reativos na construção do ambiente do jogo (o campo), e
agentes cognitivos na definição dos jogadores.
Os jogadores podem assumir quatro papéis: G OLEIRO, Z AGUEIRO, M EIO C AMPO e ATA CANTE.
A função do agente G OLEIRO é de evitar que a bola entre no gol. Seu posicionamento é
restrito a pequena área. Os agentes Z AGUEIRO posicionam-se logo a frente da grande área. Sua
55
4.3 Camada Modelo
função é de desarmar os atacantes adversários. Possuem pouca mobilidade movimentando-se
no espaço do campo de defesa. Os agentes M EIO C AMPO são a primeira linha de defesa, ocupam a região central do campo. Este jogadores possuem grande mobilidade, avançando até à
linha de fundo do adversário. Os agentes ATACANTE são os jogadores mais avançados, ficando
o tempo todo próximos dos zagueiros adversários. Sua função é de marcar o gol.
Os atributos comuns a todos agentes J OGADORES são os seguintes:
• (POS X, POS Y): definem as coordenadas da célula onde o jogador está posicionado, em
cada passo da simulação;
• (NASC X, NASC Y): define a posição inicial do jogador, e o ponto em que deve retornar
quando o time entra em defesa, de acordo com o sistema tático adotado;
•
NOME:
é o nome da posição do jogador, por exemplo, para o caso do sistema tático
4-3-3 os nomes dos jogadores serão os seguintes: G (Goleiro), L1 (Lateral), L2 - (Lateral), Z1 (Zagueiro), Z2 (Zagueiro), M1 (Meio), M2 (Meio), M3 (Meio), M4 (Meio), A1
(Atacante), A2 (Atacante), A3 (Atacante);
•
LIM S UP X, LIM S UP Y, LIM I NF X, LIM I NF Y:
pontos extremos da região de atuação do
jogador;
• A1, A2 e A3: atributo informado pelo técnico sobre o que representa os de limites no
eixo x das áreas A1, A2 e A3, respectivamente.
Os agentes J OGADORES apresentam regras comuns a todo jogadores, independentemente
de sua posição tática no jogo. Estas regras são:
• P OSICIONAR
NO
C AMPO: regra que coloca o jogador no campo na posição informada.
A Listagem B.8 detalha este comportamento;
• M OVER J OGADOR: regra para a movimentação do jogador. A regra solicita (i) a direção
que é um valor numérico entre 1 e 8, (ii) o deslocamento que é o número de células do
movimento (iii) e um valor verdadeiro/falso para informar se o jogador deve, ou não,
respeitar o limite de atuação no campo. A Listagem B.9 detalha este comportamento;
• ATACAR: o jogador desloca-se diretamente para a posição da bola para tentar obter a
posse do outro jogador. A Listagem B.10 detalha este comportamento;
• D EFINIR D ISTÂNCIA
DA
B OLA: regra para devolver a distância atual do jogador até a
bola. A Listagem B.11 detalha este comportamento;
56
4.3 Camada Modelo
• I DENTIFICAR B LOQUEIO: regra que verifica se existe, ou não, outro jogador no meio do
caminho. A Listagem B.12 detalha este comportamento;
• PASSAR A B OLA: regra que procura o jogador mais próximo e calcula a direção do passe.
A Listagem B.13 detalha este comportamento.
O diagrama apresentado na Figura 18 identifica a sequência de disparo das regras comuns
a todos os jogadores.
Figura 18: Sequência da Aplicação das Regras Comuns
A Figura 19 apresenta uma exemplo da aplicação das regras comuns a todos os Jogadores.
1 Inicialmente o jogador é posicionado em seu local de nascimento, conforme o sistema tático.
2 O jogador decide então se movimentar. 3 A movimentação implica em identificar a distân
4 e também se este movimento
cia da bola no jogo, já que, a bola está sempre em movimento, 4.3 Camada Modelo
57
5 Com a bola próxima, o jogador
é possível, porque outro jogador pode estar no caminho. 6 Com a bola distante o jogador continua seu avanço
ataca esta posição disputando a posse. 2
para o gol adversário ().
Figura 19: Exemplo de Aplicação das Regras Comuns aos Jogadores.
Agente G OLEIRO
O goleiro age de três formas distintas:
• Quando a bola está na direção do seu gol, ou na direção do gol adversário, mas a grande
distância. Neste caso, o goleiro procura posicionar-se na direção em que a bola está no
jogo, sem ultrapassar os limites de sua atuação. A Figura 20(a) ilustra o comportamento;
• Quando a bola está próxima a uma das marcas de escanteio. Neste caso, o goleiro deve
fechar o ângulo de chute do atacante. Desta forma seu posicionamento é ao lado da trave,
como ilustra a Figura 20(b);
• Quando a bola está dentro da pequena área. Se a bola está em direção ao gol adversário o
goleiro apenas marca a bola, se a bola está na direção do gol defendido o goleiro avança
para ela. A Figura 20(c) ilustra este comportamento.
A regra J OGAR AGENTE G OLEIRO, apresentada na Listagem B.14, detalha o comportamento do goleiro.
58
4.3 Camada Modelo
(a) Bola Distante.
(b) Bola na Borda da Área. (c) Bola Dentro da Pequena
Área
Figura 20: Comportamentos do Agente G OLEIRO: [Yamamoto 2005].
Agentes Z AGUEIROS
Os jogadores da defesa, neste trabalho representados pelos zagueiros e laterias, estão posicionados à frente do gol defendido e são a primeira linha de defesa do time. Estes agentes
procuram impedir que os atacante adversários aproxime-se da área defendida. A Figura 21
ilustra este posicionamento, explicado a seguir:
1
• Situação :
os zagueiros avançam em conjunto se a posse é do seu time, e a bola está
em direção ao ataque;
2
• Situação :
os zagueiros recuam em conjunto se a posse é do adversário, e está em
direção ao gol defendido;
3
• Situação :
os jogadores, concomitantemente, também fazem a marcação da linha da
bola;
4 os jogadores apoiam os zagueiros que estão na linha da bola;
• Situação :
5
• Situação :
os jogadores avançam diretamente para a bola, se esta está próxima dele.
Neste caso o valor de proximidade é de dez células, ou seja, 5 metros. Com esta ação os
zagueiros buscam obter a posse da bola do adversário;
6
• Situação :
os jogadores perseguem a bola se esta está em sua área de atuação e mais
próxima do gol defendido do que ele próprio.
59
4.3 Camada Modelo
Figura 21: Comportamentos do Agente Z AGUEIRO
Os zagueiros permanecem a maior parte do tempo em seu campo de defesa. A Figura 22
apresenta a sequência de disparo das regras de comportamento dos zagueiro.
Figura 22: Sequência de Disparo do Comportamento dos Zagueiros e
Agente M EIO C AMPO
Estes jogadores apresentam comportamento similar aos zagueiros, em uma posição mais
avançada do campo. Por estarem mais avançados e mais livres da tarefa de marcar, seu deslocamento em campo é mais abrangente. Os jogadores de meio são os responsáveis pelo passe,
e pela armação do jogo. A Listagem B.17 detalha o comportamento. A Figura 23 ilustra este
60
4.3 Camada Modelo
Figura 23: Comportamento do agente M EIO C AMPO.
comportamento, explicado a seguir:
1 os jogadores de meio campo avançam em conjunto se a posse é do time e a
• Situação :
bola está em direção ao ataque;
2 os jogadores de meio campo recuam em conjunto se a posse é do adversário
• Situação :
e está em direção ao gol defendido;
3
• Situação:
os jogadores, concomitantemente, também fazem a marcação da linha da
bola;
4 os jogadores apoiam os jogadores de meio campo que estão na linha da bola;
• Situação :
5 os jogadores sem a posse da bola avançam diretamente para a bola, se esta
• Situação :
está próxima dele. Neste caso o valor de proximidade é de dez células, ou seja, 15 metros.
Com esta ação os jogadores de meio campo buscam obter a posse da bola do adversário;
6 os jogadores com a posse da bola avançam até o limite de sua área de atuação
• Situação :
e chutam para o gol;
7
• Situação :
em não havendo condição para o avanço, o jogador passa a bola para o
jogador mais próximo e a sua frente.
Os jogadores de meio campo são a primeira linha de defesa e permanecem a maior parte
do tempo no meio do campo. A Figura 24 apresenta a sequência de disparo das regras de
comportamento dos jogadores de meio.
4.3 Camada Modelo
61
Figura 24: Sequência de Disparo do Comportamento dos Jogadores de Meio
Agente ATACANTE
O atacante tem como função principal marcar os gols do time. Como o atacante é o jogador
mais avançado, a probabilidade de receber passes é maior, já que o passe é feito sempre para
os jogadores que estão a frente no campo. A Figura 25 ilustra este posicionamento, explicado a
seguir:
1 os jogadores de meio campo avançam em conjunto se a posse é do time e a
• Situação :
bola está em direção ao ataque;
2 os jogadores de meio campo recuam em conjunto se a posse é do adversário
• Situação :
e está em direção ao gol defendido;
3
• Situação:
os jogadores, concomitantemente, também fazem a marcação da linha da
bola;
4
• Situação :
o jogador sem a posse da bola, e coma a bola próxima a ele, avança dire-
tamente para a bola. Neste caso o valor de proximidade é de trinta células, ou seja, 15
metros. Com esta ação os atacantes buscam obter a posse da bola no campo adversário;
62
4.3 Camada Modelo
Figura 25: Comportamento dos Agentes ATACANTES.
5 os jogadores com a posse da bola avançam até o limite de sua área de atuação
• Situação :
e chutam para o gol;
6
• Situação :
em não havendo condição para o avanço, o jogador passa a bola para o
jogador mais próximo e a sua frente.
O detalhamento do comportamento do atacante está na Listagem B.18.
Os jogadores Atacante permanecem a maior parte do tempo no campo adversário. A Figura
26 apresenta a sequência de disparo das regras de comportamento dos Atacante.
Figura 26: Sequência de Disparo do Comportamento dos Jogadores Atacantes
63
4.4 Camada Observação
4.4
Camada Observação
A C AMADA O BSERVAÇÃO inicializa o sistema com todos os agentes bem como a interface
gráfica do jogo. A sequência de execução da regra I NICIALIZAÇÃO
DO
S ISTEMA aparece no
fluxograma da Figura 27, e dcetalhada na Listagem C.1.
Figura 27: Ordem da Carga dos Processo na C AMADA O BSERVAÇÃO.
4.4.1
Inicialização da Camada Ambiente
O ambiente formalmente modelado é gerado com os agentes C ÉLULA e suas especializações: agente T RAVE, agente L INHA L ATERAL, agente G OL, agente L INHA F UNDO, agente
M ARCA P ENALTI, agente C IRCULO C ENTRAL, agente E SCANTEIO, agente M EIO C AMPO, agente
P EQUENA A REA e agente G RANDE A REA. A agregação do ambiente também ocorre nesta
etapa, com a criação da MATRIZ C AMPO populada com os agentes especializados em suas posições. A Listagem C.2 detalha a regra.
4.4.2
Inicialização da Camada Modelo
Após a criação da C AMADA A MBIENTE, os demais gentes (J OGADORES , J UIZ , T ÉCNICO ,
E STATÍSTICA) são criados com a regra Inicialização da Camada Modelo. Os agentes jogadores
são também registrados na C AMADA O BSERVAÇÃO. A regra de registro dos jogadores apesar
de similar à regra de inicialização, desempenha papel diferente, a primeira cria a infraestrutura
4.4 Camada Observação
64
e a segunda faz a alteração dos valores. A regra Inicializar Modelo é detalhada na Listagem
C.3.
4.4.3
Inicialização da Camada Observação
O ambiente gráfico com o campo e a renderização dos objetos é então carregado, representando a C AMADA O BSERVAÇÃO. Cada mudanças de valor de posicionamento dos jogadores
ou da bola na C AMADA M ODELO, causa imediata reação com a apresentação desta mudança
de posicionamento na C AMADA O BSERVAÇÃO.
Esta integração é possível porque os agentes jogadores, que terão sua animação apresentada
na tela do jogo, estão registrados na C AMADA O BSERVAÇÃO. A Regra R EGISTRAR J OGADOR,
que registra os jogadores é detalhada Listagem C.4.
4.4.4
Comunicação entre Camadas
O campo de jogo é conceitualmente definido na C AMADA M ODELO como uma matriz de
200x100 células. Para a C AMADA O BSERVAÇÃO o campo é representado como uma imagem
de 1000x500 pixel´s. Logo, os endereços entre as camadas devem ser convertidos para representarem um posicionamento relativo. A relação de conversão de endereço entre as camadas
é de 5x1, ou seja, uma célula da C AMADA A MBIENTE é representada por cinco (5) pixel´s na
C AMADA O BSERVAÇÃO. A Listagem C.5 apresenta o detalhe da regra C ONVERTER P OSIÇÃO,
regra dos agentes B OLA e J OGADORES.
Como o agente na camada O BSERVAÇÃO tem seu endereço multiplicado por cinco (5), a
ação de deslocar uma posição na camada modelo implica em cinco (5) iterações na camada
Observação. A conversão acontece apenas da C AMADA M ODELO para a C AMADA O BSERVA ÇÃO ,
não há valor que seja coletado da camada observação para ser usado na camada modelo.
A Listagem C.6 apresenta o detalhe da R EGRA A PROXIMAR AGENTES que ajusta a velocidade
de apresentação evitando saltos na dinâmica do movimento.
4.4.5
Detalhamento da Posição dos Jogadores no Campo
A Figura 28 trás o posicionamento inicial dos jogadores e da bola no centro do campo. Esta
tela é gerada pela execução da regra D ESENHAR C AMPO, detalhada na Listagem C.7.
Trás ainda os reservas que estão fora de campo (na figura o ”A3“ no canto superior esquerdo
e uma pequena marca do lado direito ao lado do escanteio, representam os reservas). Este
4.4 Camada Observação
65
jogadores reserva poderão ser usados durante a partida dependendo da tática adotada pelo agente
T ÉCNICO. Dentro do campo de futebol, no canto superior esquerdo tem-se o valor Frame Per
Second (FPS). Este número deve permanecer entre trezentos (300) e quinhentos (500), valores
fora desta faixa causam problemas na apresentação do jogo.
Ainda na figura, tem-se as estatísticas gerados pelo agente E STATÍSTICA, e são exibidas no
canto superior esquerdo. Logo abaixo das estatísticas são apresentadas duas telas dos agentes
T ÉCNICO, uma para cada time (preto a esquerda e vermelho a direita), esta tela indica qual é a
tática que o técnico selecionou para seu time.
Figura 28: Posicionamento Inicial do Time na C AMADA O BSERVAÇÃO
A Figura 29 apresenta dois outros posicionamentos comandados pelos técnicos. Neste caso
o técnico do time vermelho posiciona seus jogadores na formação 4-3-3, e o técnico do time
preto na formação 3-5-2.
Figura 29: Reposicionamento dos Times Preto a Esquerda em 3-5-2 e vermelho a Direita em
4-3-3.
66
5
Modelo Computacional e Analise de
Resultados
O sucesso é ir de fracasso em fracasso sem perder o entusiasmo.
—– Winston Churchill
Neste capítulo descreve-se tecnicamente os módulos funcionais do simulador. Na Seção
5.1 é descrito o ambiente operacional. Na Seção 5.2, tem-se a analise dos principais comportamentos dos jogadores em sua posição característica. Na Seção 5.3, tem-se uma analise
dos comportamentos que surgem na aplicação dos comportamentos do jogador no grupos de
jogadores da posição.
5.1
Descrição Técnica
O simulador é escrito em JAVA sob o paradigma da orientação a objetos, os agentes são
modelados com o Framework JADE [Sun 2, Bellifemine e Greenwood 2007] e o ambiente gráfico usa o Framework Sclik. A Figura 30 apresenta um resumo da tecnologia aplicada em cada
camada do desenvolvimento do simulador. O Java é a linguagem geral de desenvolvimento, os
Framework’s utilizados também são escrito em Java. Desta forma o sistema é totalmente Java.
Esta característica torna o simulador multiplataforma. Os agentes fazem uso do Java Agent
DEvelopment Framework (JADE).
5.1.1
Descrição Técnica da Camada Observação
A C AMADA O BSERVAÇÃO é implementada com o auxilio do RAMEWORK S LICK [Lumosity 2011].
O S LICK cria um game container, proporcionando os meios para criar cada passo do ciclo de
apresentação da tela do jogo. O S LICK é implementa com o OPEN GL, segundo [Woo et al. 1999],
isto garante uma performance muito boa em todas as plataformas.
5.1 Descrição Técnica
67
Figura 30: Arquitetura em Três Camada - Ênfase na Tecnologia Aplicada.
O S LICK fornece o ambiente onde a apresentação do jogo é executada. As facilidades da
implementação do Framework trás um conjunto regras que facilitam a programação.
As três principais regras são:
• init: Faz a carga inicial dos recursos e inicializando o jogo. Carrega o módulo de acesso
direto a memória gráfica (OPEN GL [Woo et al. 1999]);
• render: Utilizado para desenhar para a tela do jogo, onde todos os elemento são renderizados em cada ciclo da apresentação;
• update: Onde a lógica do jogo é processada. Em cada iteração este método é processado,
o que permite que o usuário interaja com o jogo.
5.1.2
Descrição Técnica das Camadas Modelo e Ambiente
As C AMADA M ODELO E A MBIENTE usam o Framework Jade [Bellifemine e Greenwood 2007]
para a criação dos agentes. Um agente Jade roda como uma Java thread. O framework Jade
oferece regras que facilitam a criação dos agentes. A Listagem a seguir escrita em java detalha
a criação do agente jade.
1
Public String addAgent ( String agentName , String agentClass , Object [] args ){
try {
2
// criação de um novo agente: nome do agente , nome da classe , argumentos
3
4
agentController = containerController . createNewAgent ( agentName , agentClass , args );
5
6
agentController . start ();
7
return agentController . getName ();
8
} catch ( StaleProxyException s ){
9
System . out . println ( s );
return null ;
10
}
11
12
}
Listagem 5.1: Método Java para a Criação de Agente Jade.
5.2 Comportamento e Sentidos
68
O método inicia com a descrição dos parâmetros de entrada solicitados:
•
NOME DO AGENTE:
É o nome que será usado pelo Jade para registrar o agente na agencia.
•
NOME DA CLASSE:
É classe java que representa o agente.
•
ARGUMENTOS :
São os valores que serão usados para o construtor da classe java.
O método registra os agentes na containerController, e inicia sua operação (agentController.start). A classe java que representa o agente aponta para outras classes que conterão os
diversos comportamentos programados para o agente.
5.2
Comportamento e Sentidos
A movimentação do jogador no campo depende de dois fatores: (i) as regras que simulam
os sentidos do jogador (R EGRAS C OMUNS AOS J OGADORES), (ii) o desejo do jogador de se
deslocar (C OMPORTAMENTOS P ROGRAMADO). Os sentidos são programados como regras
comuns aos jogadores e o desejo do jogador é programado como seu comportamento.
5.2.1
Regras Comuns Aos Jogadores
As regras C OMUNS AOS J OGADORES além de simular os sentidos dos jogadores, oferecendo a localização relativa sua e dos demais jogadores, também simulam o deslocamento e os
limites que sem impõe durante o jogo de futebol.
Regra Mover Jogador
A regra M OVER J OGADOR é a materialização do desejo do jogador em se deslocar de um
ponto a outro no campo de jogo. Esta regra tem um característica especial no contexto do SMA,
pois ela implementa a interface entre a camada modelo e a camada observação. Supondo que
um jogador deseje se deslocar 10 células em sentido noroeste (45 o em relação ao eixo X, em
sentido crescente), o comando programado pelo no SMA é: moverJogador(2,10,true). A Figura
31 ilustra a situação. Na figura o jogador poderia decidir pelo sentido 1 ou pelo sentido 7. Não
existe uma sentido que descreva uma linha reta até a bola, e ainda a bola esta em movimento,
ou seja, quando o jogador chegar ao seu destino a bola pode não mais estar a sua espera. O
fragmento de Código da C AMADA O BSERVAÇÃO da Listagem 27 detalha a interface.
1. Os valores de cada camada devem ser convertidos para inteiro, isto permite a comparação
entre os valores.
5.2 Comportamento e Sentidos
69
Figura 31: Direções Posíveis de Deslocamento jo Jogador
2. Sendo os valores diferentes, significa que o jogador teve o desejo de se deslocar em x, tal
desejo é então materializado pela C AMADA O BSERVAÇÃO:
• tal movimentação primeiramente desabilita o comportamento do jogador;
• fazer a aproximação até o ponto desejado;
• reabilita o comportamento do jogador.
O processo de desabilitação do comportamento do jogador se faz necessário para que as
ações sejam sincronizadas entre as camadas. Mas apenas o jogador tem se comportamento
desabilitado durante o deslocamento, os demais continuam ativos. Desta forma o jogador que
teve seu o comportamento primário desabilitado mantém o foco na marcação da bola, o que é
desejável nesta situação.
Regra Distância Bola
A regra D ISTÂNCIA B OLA representa a capacidade que o jogador tem de avaliar a distância
em que ele e os demais se encontram da bola. Tal capacidade permite ao jogador decidir dentro
da sua posição se ele é o jogador mais próximo, então, partir para o ataque da bola. Em tese, dois
jogadores do mesmo time podem simultaneamente atacar a bola, basta que estejam exatamente
a mesma distância da bola e dentro da região de ataque. Tal situação não pode ser verificada nos
testes, pois na dinâmica dois jogadores ao decidir se movimentar, estarem exatamente à mesma
distância da bolsa é um fato bastante raro.
A mesma regra também é usada para a escolha da direção do passe. Na Figura 32, o
zagueiro com a bola é bloqueado pelo atacante adversário, desta forma sua ação é de passar
a bola para o jogador mais próximo. A regra D ISTÂNCIA B OLA, detalhada na Listagem B.11
calcula e classifica as distâncias do zagueiro até os demais jogadores do time. Neste modelo o
passe é feito para o jogador mais próximo, mesmo que esteja coberto por um adversário. Esta
decisão foi tomada na modelagem para simular passes errados.
70
5.2 Comportamento e Sentidos
Figura 32: Analise do Comportamento da Regra D ISTÂNCIA B OLA.
Regra Determinar a Direção da Bola
Com esta regra simula-se a capacidade de avaliar se o time esta na situação de ataque ou
defesa. Se a bola se afasta do gol defendido o jogador considera-se no ataque ou se a bola se
aproxima então a postura deve ser de defesa. Na Figura 33, ilustra-se a é possível para o jogador
identificar, através da regra D ETERMINAR
A
D IREÇÃO
DA
B OLA, se a bola esta caminhando
da esquerda para a direita ou da direita para a esquerda.
Figura 33: Determinação da Direção da Bola.
Regra Identificar Bloqueio
Com a regra I DENTIFICAR B LOQUEIO, o jogador simula sua limitação de não passar através de objetos sólidos, que neste caso são os jogadores. Aos se deslocar a regra verifica se
existe outro jogador na célula a frente de seu deslocamento, apenas no eixo X. Assim o simulador não permite que um jogador bloqueado pode decidir por fazer um passe. NBa Figura 34,
o jogador que está no ataque e com a posse da bola avança em direção ao gol adversário. O
jogador adversário que faz o bloqueio avançanado da direita para a esquerda. Inevitavelmente
haverá um choque entre os jogadores. A regra I DENTIFICAR B LOQUEIO, informa da condição
aos jogadores no campo.
Regra Atacar
Com a regra ATACAR o jogador sabe que um adversário está dentro de seu perímetro desarme. Este perímetro é uma característica que, neste modelo, pertence a posição do jogador. Os
zagueiros se lançam ao ataque da bola, apenas quando esta estiver bem próxima. Desta forma
5.2 Comportamento e Sentidos
71
Figura 34: Definição de Bloqueio no Deslocamento de um Jogador
os zagueiros esperam a aproximação dos mantendo sua posição de bloqueio. Os jogadores de
meio já são mais combativos e possuem um perímetro maior de atuação. Esta característica dá a
estes jogadores maior poder de roubar a bola. Os atacante apresenta um perímetro ainda maior.
Esta característica faz com que seu comportamento seja de perseguir a bola principalmente na
saída de jogo do adversário. A Figura 35 apresenta o perímetro programado de ataque de cada
jogador. Este perímetro está relacionado a sua posição no campo.
Figura 35: Definição do Perímetro de Ataque de Cada Posição
5.2.2
Regras de Comportamentos Programados
Cada jogador apresenta um comportamento específico relativo a sua posição no campo:
• O goleiro mantem-se dentro da pequena área.
• Os defensores ocupam a parte próxima do gol defendido, deslocando-se em uma área
menor que as demais posições.
• Os jogadores de meio campo apresentam avançam para o gol adversário com maior
frequência. Estes jogadores evitam manter a posse de bola, passando rapidamente ao
companheiro mais próximo.
• Os atacantes ao obterem a posse se lançam imediatamente em direção ao gol e fazem o
chute assim que se aproximam do gol adversário.
5.2 Comportamento e Sentidos
72
Além do comportamento da posição, os jogadores também apresentam um conjunto de
comportamentos em comum. Estes comportamentos estão relacionados a dinâmica do jogo.
5.2.2.1
Analise de Comportamento do Goleiro
O agente G OLEIRO permanece sempre dentro da pequena área, Figura 36, apresenta as
quatro possibilidades de movimentação do goleiro:
1 e ,
2
• Nas Imagens identificadas pelas marcas o goleiro fecha o angulo de chute
posicionando-se ao lado da trave;
3 o goleiro faz a marcação da bola, neste caso a bola
• Na Imagem identificada pela marca está fora da grande área;
3 a bola entra na pequena área, o goleiro então vai
• Na Imagem identificada pela marca em seu encontro.
Figura 36: Comportamento Programado do Goleiro.
5.2.2.2
Analise de Comportamento dos Zagueiros
O objetivo primário de um zagueiro é de evitar que um adversário de aproxime do gol
defendido, para isto se comportamento principal é de se posicionar entre a bola e seu gol. A
Figura 37 apresenta o comportamento:
1 a bola se aproxima dos zagueiros conforme des• Na imagem identificada pela marca ,
creve o sentido da seta. O zagueiro que esta dentro da região de movimentação da bola
se posiciona em frente a ela. Os demais apoiam o zagueiro se posicionando no limite de
suas áreas de atuação;
5.2 Comportamento e Sentidos
73
2 a bola muda de direção se aproximando mais do
• Na imagem identificada pela marca zagueiro 2;
3 apresenta o zagueiro 2 avançando diretamente para
• Na imagem identificada pela marca a bola, com o objetivo de obter a posse;
4 zagueiro 2 de posse da bola avança até seu limite
• Na imagem identificada pela marca ,
superior de movimentação no eixo X para fazer o passe.
Figura 37: Comportamento Programado dos Zagueiros
Os zagueiros sempre marcam a bola, se este comportamento não fosse tratado adequadamente eles se embolam em busca da bola. A definição de sua área de atuação é o que evita tal
situação. As várias táticas de posicionamento em campo (4-4-2, 4-3-3 e 3-5-2), podem avançar
para o ataque ou reforçar a defesa simultaneamente ao balanço do time de um lado para o outro,
em marcação ao movimento da bola.
5.2.2.3
Analise de Comportamentos dos Jogadores de Meio Campo
Os jogadores de meio campo tem comportamento similar aos zagueiros, mas com maior
abrangência de área de atuação. A Figura 38 apresenta o comportamento:
• Os jogadores do meio do campo, assim como os zagueiros também fazem a marcação da
1 vê-se este comportamento;
bola. A imagem identificada pela marca ,
• conforme a bola se afasta ou se aproxima, os jogadores de meio acompanham o sentido do
deslocamento da bola em uma marcação mais adiantada ou recuada, a imagem marcada
2 trás as setas com sentido do deslocamento;
com 3
• O final deste avanço em conjunto é ilustrado na imagem marcada como .
A consequência desta regra de movimentação dos jogadores de meio campo, é que estes
jogadores se deslocam muito mais que os zagueiros. Seu deslocamento povoa o meio campo
bloqueando a movimentação dos adversários sem a bola. Outra característica importante é o
5.2 Comportamento e Sentidos
74
Figura 38: Comportamento Programado dos Jogadores de Meio Campo
passe, estes jogadores passam a bola rapidamente quando estão bloqueados. Esta característica
permite que a bola se desloque de um lado para o outro do campo, dificultando a marcação do
adversário.
5.2.2.4
Analise de Comportamentos dos Atacantes
Os atacante estão liberados da marcação, mas seu raio de atuação em buscar a bola é bem
maior. A Figura 39 apresenta este comportamento:
1 o atacante vai de encontro a bola obtendo sua
• Na imagem identificada pela marca posse;
2 o atacante se dirige para o limite inferior em Y de
• Na imagem identificada pela marca seu limite de atuação e avança diretamente para o gol adversário;
3 o agente chute em direção ao gol.
• Na imagem identificada pela marca Figura 39: Comportamento Programado dos Atacantes
Com a liberação da marcação, o atacante volta sempre para seu ponto de ”nascimento“ em
campo. Esta característica permite que os atacante fujam da marcação do adversário, já que
não acompanham a bola. Sua posição também é uma referência de passe para os jogadores
5.3 Comportamentos Emergentes
75
de meio campo. Por característica estes jogadores são ainda mais velozes que os jogadores de
meio campo. Isto é possível porque a regra M OVER J OGADOR recebe os seguintes valores de
velocidade: um (1) para os zagueiros, dois (2) para os jogadores de meio e três (3) para os
atacantes.
5.3
Comportamentos Emergentes
É possível perceber que certos procedimentos manifestaram-se a partir da combinação dos
comportamentos definidos ao agente. Embora não exista um processo de cooperação explícito entre os jogadores, cada um realiza suas ações, tendo conhecimento da situação de seus
companheiros e adversários visíveis em campo.
A R EGRA J OGAR
DO
Z AGUEIRO descrita na Listagem B.16 não prevê o apoio de marca-
ção, mas tal comportamento emerge naturalmente pela simples aplicação desta regra a todos os
zagueiros. Isto acontece porque o comportamento de acompanhar a bola dos zagueiros até o
limite de sua atuação, acontece mesmo que a bola esteja fora do campo de ação do zagueiro. A
zaga, se desloca de uma lado para outro fechando o caminho dos atacantes adversários, acompanhando o movimento da bola.
A R EGRA J OGAR DO M EIO C AMPO é semelhante regra dos zagueiros, mas estes, avançam
mais rapidamente que os zagueiros. A Listagem B.17 detalha o comportamento. Esta movimentação mais rápida, causa a maior penetração dos jogadores no campo inimigo. A presença dos
jogadores de meio campo na zaga adversária, faz com que os marcadores fiquem pressos com
a função de marcar, limitando a possibilidade de contra-atacar quando assumem novamente a
posse.
A R EGRA J OGAR DO ATACANTE detalhada na Listagem B.18 dá ao atacante liberdade de
movimentação e não prevê que este jogador faça a marcação da bola. Com estas característica
o atacante está sempre mais avançado que os demais jogadores, assim o atacante, segura os
zagueiros adversários na defesa. Com estes posicionamento abre-se uma região sem marcação
no meio de campo, facilitando o passe e mesmo o chute dos jogadores de meio.
A aproximação dos jogadores no sentido vertical do campo, provem da regra de marcação
da bola (ver B.16 linhas de 6 a 11). Esta situação facilita o passe quando um jogador está bloqueado no avanço. Outra característica é que o avanço dos jogadores acontecem com a mesma
velocidade para cada grupo de jogadores de mesma posição. Desta forma apesar de não ter sido
programado o impedimento nesta versão, os jogadores já fazem uma linha de impedimento.
76
6
Conclusões
Só se pode alcançar um grande êxito quando nos mantemos
fiéis a nós mesmos.
—– Friedrich Nietzsche
O interesse de pesquisa da comunidade de Inteligência Artificial em Sistemas Multiagentes
tem gerado o crescimento da utilização de técnicas de agentes nas mais diversas áreas da ciência
da computação. A proposta desta pesquisa consiste em: (i) modelar um SMA para o domínio do
Futebol; (ii) escrever o simulador SMA do domínio modelado; e (iii) analisar o comportamento
dos agentes jogadores no ambiente simulado.
A simulação do domínio do futebol permitiu que ampla cadeia de tecnologias fossem integradas, examinada e comparada. A simulação permitiu a avaliação de diferentes técnicas de
Sistemas Multiagentes (planejamento de estratégias, conhecimento em tempo real, colaboração
de agentes, princípios de agentes autônomos, entre outros), investigações e testes que possibilitaram a construção gradativa de agentes avançados.
O simulador desenvolvido é uma ação de desenvolvimento da área de Inteligência Artificial
e, principalmente de Sistemas Multiagentes. O simulador permitiu o desenvolvimento de agentes jogadores que demonstraram um nível considerável de competência para a realização de
suas tarefas, como percepção, ação, cooperação, estratégias pré-definidas, decisão e previsão.
O uso de papeis na definição do comportamento do jogador, permite que os agentes se separem
e permaneçam dentro de suas regiões de atuação. O sistema tático adotado distribui as regiões
no campo ocupando os espaços, de forma a produzir um comportamento coletivo muito similar
ao do mundo real. A analise desta ocupação dos espaços pode gerar novas o desenvolvimento
de novas táticas de jogo mais eficientes na ocupação do solo.
Além da contribuição do modelo computável implementado a partir do modelo teórico,
sua posterior execução e análise dos resultados possibilitou verificar que mesmo sendo um
sistema complexo, o que torna os comportamentos não previsíveis a longo prazo, é possível a
6.1 Dificuldades Encontradas na Construção do Simulador Multiagentes
77
formulação de cadeias explicativas de causa e efeito. Não se encontrou na literatura simulações
com esta características.
Outro ponto de destaque deste trabalho é que os modelos conceitual e computacional permitem o desenvolvimento de novos trabalhos na área. E que esta pesquisa é interdisciplinar,
pois propõe a junção da área de sistemas sociais e da área de sistemas inteligentes.
6.1
Dificuldades Encontradas na Construção do Simulador
Multiagentes
Durante os teste com o simulador percebeu-se que a marcação dos jogadores à posição da
bola é muito intensa, ou seja, um deslocamento da bola implica no mesmo deslocamento vertical
do jogador. Desta forma o jogo parece entrar um empasse onde não é possível ultrapassar esta
marcação. Foi necessário então acrescentar um certo ”erro“ na marcação. Este comportamento
acontece quando o jogador se aproxima e o defensor avança para a disputa da bola. Neste
momento o zagueiro não avança para aposição da bola, mas sim para a direção representada
pelos oito (8) valores codificados neste trabalho para o deslocamento dos jogadores.
Na implementação do simulador houveram diversos desafios mas a suavidade da movimentação dos jogadores foi um desafio com implicações mais complexas. Esta suavidade tem
dependência direta da velocidade com que o hardware consegue processar as telas. Um indicador conhecido como Frame Per Second (FPS) aparece no canto esquerdo do campo de jogo
indicando qual quantidade de telas é apresentada a cada instante. Máquinas com performance
inferiores a 300 FPS não conseguem rodar o jogo de forma suave. O desafio foi encontrar uma
forma de acessar a memória de vídeo diretamente, de forma melhorar o FPS. A solução do
problema foi possível com o uso do Open GL encapsulado no Slick [Hearn e Baker 2004].
O desenvolvimento modular permite que o desenvolvimento deste simulador aconteça de
forma também modular, ou seja, é possível apenas melhorar a apresentação sem que seja necessário mudar comportamento. De outra forma os comportamento também podem ser modificados sem implicações com outras camadas. Em resumo modelo apresenta grande coesão e baixo
acoplamento.
6.2 Trabalhos Futuros
6.2
78
Trabalhos Futuros
No desenvolvimento do modelo do simulador algumas características que foram observadas
não foram implementadas nesta versão. O que definiu se a características deveria ou não ser
implementadas é a sua importância na dinâmica principal do simulador. O atributo da bola com
o campo e dos jogadores com o campo. Em trabalhos futuros o atrito poderia ser usado para
modificar a força dos chutes deslocamento dos jogadores no ambiente simulado.
Um atributo que foi discutido e poderia ser implementado no agente C ÉLULA, em futuros
trabalhos, corresponde a características que indicam problemas no campo, como por exemplo
buracos, falta de grama, areia, ou objetos estranhos ao jogo.
O relacionamento dos jogadores em laços de amizade são outra característica não explorada neste simulador, que poderá ser objeto de estudo em outras versões. Tanto laços fortes
de amizade quanto fracos são relacionais pois são consequência da interação que, através do
conteúdo e das mensagens, constituem uma conexão entre os jogadores envolvidos. A força
dos laços nem sempre é recíproca, por exemplo, considere um jogador A que tem como melhor
amigo outro jogador B (laço forte) e que B, em retorno, não considera A como uma pessoa
íntima (laço mais fraco). Isso mostra que os laços que conectam esses dois indivíduos podem
possuir forças diferentes dependendo do fluxo, tratando-se de laços assimétricos. Os laços são
considerados simétricos quando possuem a mesma força em ambos os sentidos da conexão
[Recuero et al. 2006]. A implementação de uma dinâmica assim para a definição das disputas
de bola é o objetivo a ser alcançado em verões futuras.
O simulador permite que sejam testadas as hipóteses de que variações mínimas relacionadas
a laços entre os jogadores possam alterar o resultado do jogo. Por exemplo: Na regra PASSAR
A
B OLA, se a escolha para o passe também levasse em conta a amizade entre os jogadores, isto
influenciaria o resultado da partida?
79
APÊNDICE A -- Regras dos Agentes da Camada
Ambiente
Este apêndice contém as principais regras utilizadas pelos agentes ambientais e agentes
integrantes do jogo, em suas ações de modelagem do campo de futebol como um SMA. A
seguir são apresentadas algumas estruturas de dados utilizadas nas regras:
• A matriz MATRIZ C AMPO armazena todos os agentes C ÉLULA e suas especializações, em
suas respectivas posições no campo de futebol;
• A matriz
MATRIZ J OGADOR
tem as mesmas dimensões da matriz
MATRIZ C AMPO ,
e
agrega os jogadores de uma partida de futebol, sendo que cada jogador ocupa sua posição relativa nesta matriz. Esta matriz é atualizada dinamicamente, respeitando o deslocamento dos jogadores durante a partida.
A.1
Regras dos Agentes do SMA do Ambiente Simulado
Nesta seção está o detalhamento das regras de cada agente descrito na Seção 4.2 da C A MADA
A MBIENTE.
A.1.1
Agentes A MBIENTAIS
Agente C ÉLULA
Regra Retornar o Valor de Atributo do Agente
1
metodo tipoAtributo getAtributo ()
retorna celula . atributo
2
3
A Listagem A.1 apresenta o método para obter-se os valores dos atributos dos agentes.
fimmetodo
Listagem A.1: Regra Retornar o Valor de Atributo do Agente.
80
A.1 Regras dos Agentes do SMA do Ambiente Simulado
Regra Alterar o Valor de Atributo do Agente
1
metodo setAtributo ( tipo atributo )
celula . atributo ← atributo
2
3
A Listagem A.2 apresenta o método para alterar os valores dos atributos dos agentes.
fimmetodo
Listagem A.2: Regra Alterar o Valor de Atributo do Agente.
Agente G OL
Regra Determinar Gol
A Listagem A.3 apresenta a regra D ETERMINAR G OL, que tem por objetivo informar ao
agente J UIZ a ocorrência de um gol. A seguir são apresentados os parâmetros necessários para
a identificação de um gol:
1. Se a velocidade da bola for superior a zero, então passa-se para os demais passos. Caso
contrário, nada é feito pelo agente G OL;
2. Enviar a mensagem ao agente J UIZ anunciando o gol:
MULACAO ,
ANUNCIAR G OL ( JUIZ , PASSO S I -
“M ARCACAO G OL”, GOL . TIME , BOLA . ULTIMA P OSSE ), onde:
• O parâmetro JUIZ indica o destinatário da mensagem;
• O parâmetro
PASSO S IMULACAO
indica em qual momento da simulação o gol foi
realizado;
• O parâmetro “M ARCACAO G OL” é um conjunto de caracteres que representa a ontologia da mensagem;
• O parâmetro
TIME
é a referência ao nome do time a que o agente G OL está vincu-
lado;
• O parâmetro
ULTIMA P OSSE
representa o jogador que chutou, ou conduziu, a bola
até o gol.
1
metodo determinarGol ()
quando o agente Bola disparar este método
2
velBola ← bola . velocidadeBola
3
4
s e velBola > 0
5
entao
anunciarGol ( juiz , passoSimulacao , " MarcacaoGol " ,
6
gol . time , bola . ultimaPosse , gol . posX , gol . posY )
7
fimse
8
9
fimmetodo
Listagem A.3: Regra Determinar Gol.
81
A.1 Regras dos Agentes do SMA do Ambiente Simulado
Agente T RAVE
Regra Determinar Bola na Trave
O objetivo da regra D ETERMINAR B OLA
NA
T RAVE, detalhada na Listagem A.4, é de
calcular a nova trajetória da bola que tocou na trave, e depois enviar uma mensagem ao agente
J UIZ informando que a bola bateu na trave. Após o cálculo da nova direção e o envio da
mensagem, a regra D ETERMINAR B OLA
NA
T RAVE chama a regra M OVER B OLA passando a
nova direção e mantendo a velocidade atual. Isto é necessário para que a bola possa deslocar-se
nestas condições.
A nova direção prevê que uma bola que é chutada perpendicularmente será devolvida também perpendicularmente, em sentido contrário. Já a bola que atinge a trave em ângulo será
devolvida em seu ângulo de reflexão, como em um espelho. A direção que a bola pode tomar
é codificada com um valor numérico entre 1 e 8. A Figura 40 ilustra esta codificação, com a
numeração começando na célula da direita em sentido anti-horário.
Figura 40: Direções Possíveis para o Deslocamento da Bola.
A mensagem enviada ao juiz possui os seguintes parâmetros:
• O parâmetro JUIZ indica o destinatário da mensagem;
• O parâmetro
PASSO S IMULACAO
indica em qual momento da simulação a bola bateu na
trave;
• O parâmetro “B OLA NAT RAVE ” é um conjunto de caracteres que representa a ontologia
da mensagem;
• O parâmetro
TRAVE . TIME
é a referência ao nome do time ao qual o agente T RAVE está
vinculado;
• O parâmetro ULTIMA P OSSE representa o jogador que chutou a bola na trave.
A.1 Regras dos Agentes do SMA do Ambiente Simulado
82
1
metodo determinarBolaNaTrave ()
anunciarBolaNaTrave ( juiz , passoSimulacao ,
2
" Bola Na Trave " , trave . time , bola . ultimaPosse )
3
4
// Calculo da nova direção da bola
5
s e l e c i o n e bola . direcao
caso 1
6
// Atual direção da bola
direcao ← 5
7
// Nova direção que a bola deve tomar
caso 2
8
direcao ← 8
9
caso 3
10
// Atual direção da bola
direcao ← 7
11
caso 4
12
// Atual direção da bola
direcao ← 6
13
caso 5
14
// Atual direção da bola
irecao ← 1
15
caso 6
16
// Atual direção da bola
direcao ← 4
17
caso 7
18
// Atual direção da bola
direcao ← 3
19
caso 8
20
direcao ← 2
21
22
fimselecione
23
// Chamada do método de deslocamento da bola
24
// com a nova direção e amesma velocidade
bola . moverBola ( direção , bola . velocidade )
25
26
fimmetodo
Listagem A.4: Regra Determinar Bola na Trave.
Agente L INHA F UNDO
Regra Determinar Saída pela Linha de Fundo
Esta regra envia uma mensagem ao agente J UIZ informando que a bola saiu pela linha
de fundo, com parâmetros suficientes para auxiliar o juiz a decidir se deverá ser cobrado um
escanteio ou reposição do goleiro. A identificação de uma bola fora pela linha de fundo ocorre
pela presença do agente B OLA na superfície da célula especializada L INHA F UNDO, sendo que
a bola deve estar com velocidade superior a zero. Nesta situação, o agente B OLA dispara o
comportamento do agente L INHA F UNDO apresentado na Listagem A.5, que anuncia ao juiz a
saída da bola com os seguintes parâmetros:
• O parâmetro JUIZ indica o destinatário da mensagem;
• O parâmetro PASSO S IMULACAO indica em qual momento da simulação a bola saiu pela
linha de fundo;
• O parâmetro “B OLA P ELO F UNDO ” é um conjunto de caracteres que representa a ontologia da mensagem;
A.1 Regras dos Agentes do SMA do Ambiente Simulado
• O parâmetro
LINHA F UNDO . TIME
83
identifica o nome do time a que o agente L INHA -
F UNDO está vinculado;
• O parâmetro
LINHA F UNDO . POS X
é a posição X do agente L INHA F UNDO na matriz do
LINHA F UNDO . POS Y
é a posição Y do agente L INHA F UNDO na matriz do
campo;
• O parâmetro
campo;
• O parâmetro
ULTIMA P OSSE
representa o jogador que chutou, ou conduziu, a bola até à
linha de fundo.
1
metodo determinarSaidaFundo ()
quando o agente Bola disparar este método
2
velBola ← bola . velocidadeBola
3
4
s e velBola > 0
5
entao
anunciarBolaPeloFundo ( juiz , passoSimulacao ,
6
" BolaPelaLinhaFundo " , bola . ultimaPosse ,
7
linhaLateral . posX , LinhaLateral . posY )
8
fimse
9
10
fimmetodo
Listagem A.5: Regra Determinar Saída pela Linha de Fundo.
Agente L INHA L ATERAL
Regra Determinar Saída pela Linha Lateral
Os agentes L INHA L ATERAL estão posicionados nas laterais do campo, limitando sua largura. O comportamento destes agentes, apresentado na Listagem A.6, tem como objetivo sinalizar a saída da bola pela lateral, passando ao agente J UIZ informações necessárias para a
decisão sobre qual o time fará a reposição da bola, e em qual posição. Para tanto, as seguintes
informações são utilizadas:
• O parâmetro JUIZ indica o destinatário da mensagem;
• O parâmetro PASSO S IMULACAO indica em qual momento da simulação a bola saiu pela
linha lateral;
• O parâmetro “B OLA P ELA L ATERAL” é um conjunto de caracteres que representa a ontologia da mensagem;
• O parâmetro LINHA L ATERAL . LADO C AMPO informa em qual lado do campo (direito ou
esquerdo) está a linha lateral;
A.1 Regras dos Agentes do SMA do Ambiente Simulado
84
• O parâmetro LINHA L ATERAL . POS X é a posição X do agente L INHA L ATERAL na matriz
do campo;
• O parâmetro LINHA L ATERAL . POS Y é a posição Y do agente L INHA L ATERAL na matriz
do campo;
• O parâmetro BOLA . ULTIMA P OSSE representa o jogador que chutou, ou conduziu, a bola
até à linha lateral.
1
metodo determinarSaidaLateral ()
quando o agente Bola disparar este método
2
velBola ← bola . velocidadeBola
3
4
s e velBola > 0
5
entao
anunciarBolaPelaLateral ( juiz , passoSimulacao ,
6
7
" BolaPelaLateral " , bola . ultimaPosse ,
8
linhaLateral . posX , LinhaLateral . posY )
fimse
9
10
fimmetodo
Listagem A.6: Regra Determinar Saída pela Linha Lateral.
A.1.2
Agentes Integrantes do Jogo
Agente B OLA
Regra Perceber Ambiente
Conforme apresentado na Listagem A.7, na regra P ERCEBER A MBIENTE são tratados os
seguintes eventos:
• Se o agente B OLA passou por uma célula do tipo G OL, então é disparado o procedimento
para identificar se houve, ou não, um gol;
• Se o agente B OLA passou por uma célula do tipo T RAVE, então é disparado o procedimento de devolução da bola ao campo pela regra da trave;
• Se o agente B OLA passou por uma célula do tipo L INHA L ATERAL então é disparado o
procedimento para identificar se houve, ou não, a saída pela lateral;
• Se o agente B OLA passou por uma célula do tipo L INHA F UNDO, então é disparado o
procedimento para identificar se houve, ou não, uma saída pela linha de fundo.
A.1 Regras dos Agentes do SMA do Ambiente Simulado
85
1
metodo perceberAmbiente ()
// Para cada passo da simulação
2
3
agenteAmbientalAntigo . setTemBola ( false )
4
// Define qual é o tipo da célula atual
5
agenteAmbiental ←
6
agenteAmbiental . setTemBola ( true )
matrizCampo ( bola . posX , bola . posY )
7
String tipoCelula ← celula . funcao
8
// Define a ação com base na especialização da célula
9
s e l e c i o n e tipoCelula
c a s o " Gol "
10
agenteAmbiental . determinarGol ()
11
c a s o " Trave "
12
agenteAmbiental . determinarBolaNaTrave ()
13
c a s o " LinhaLateral "
14
15
agenteAmbiental . determinarSaidaLinhaLateral ()
16
moverBola ( direção , destino , velAtribuida )
c a s o " LinhaFundo "
17
agenteAmbiental . determinarSaidaFundo ()
18
fimselecione
19
agenteAmbientalAntigo ← agenteAmbiental
20
21
fimmetodo
Listagem A.7: Regra Perceber Ambiente.
Regra Definir Atributo POSSE ATUAL
Sempre que um jogador toca na bola esta regra é disparada, fazendo com que os atributos
POSSE ATUAL
e ULTIMA P OSSE sejam alterados para representar este jogador como detentor da
posse e da última posse da bola, neste passo da simulação.
1
metodo posseAtualBola (){
2
// posição da bola = celula da mesma posição do agente ocupante
3
bola . posseatual
← MatrizJogador ( posX , PosY )
4
bola . ultimaPosse
← MatrizJogador ( posX , PosY )
5
fimmetodo
Listagem A.8: Regra Definir Atributo POSSE ATUAL.
Regra Definir Atributo ULTIMA P OSSE
Quando um jogador chuta a bola esta regra é disparada, fazendo com que o atributo
SE ATUAL
POS -
seja alterado para nulo. Isto porque quando um jogador chutar a bola, durante seu
deslocamento, a posse da bola é indefinida. E para efeito de saída de bola ou gol marcado, o
atributo ULTIMA P OSSE não é alterado pois deve referir-se ao jogador que fez o chute em passos
anteriores da simulação.
1
2
3
4
metodo ultimaPosseBola (){
// posição da bola = celula da mesma posição do agente ocupante
bola . posseAtual
fimmetodo
← nulo
86
A.1 Regras dos Agentes do SMA do Ambiente Simulado
Listagem A.9: Regra Definir Atributo ULTIMA P OSSE.
Regra Mover Bola
A simulação do deslocamento do agente B OLA ocorrerá em duas situações: quando um
agente J OGADOR chuta a bola ou quando a bola bate na trave. Em ambos casos, será necessário
definir a direção e a velocidade da bola. A direção da bola é codificada em oito (8) posições,
conforme detalhado na Figura 40. A velocidade da bola é informada pelo agente J OGADOR ou
pelo agente T RAVE, e representa o número de metros que a bola percorre em um segundo.
O agente C ÉLULA ocupa uma área de um quadrado de 50cm, como definido na Seção 4.2.1.
A regra
MOVER B OLA
usa a entrada
VELOCIDADE
em metros para definir o deslocamento da
bola em um chute. Logo, faz-se necessária a adequação destas unidades. Como em um (1) metro
há 100cm e cada célula equivale a um quadrado com 50cm de lado, as distâncias percorridas
dadas em metros deverão ser multiplicadas por dois (2) para representar o número de células
que serão percorridas em um segundo.
A movimentação da bola ocorre em duas etapas para permitir o tratamento de conflitos, tais
como:
• a bola pode ser interceptada por outro jogador;
• pode acontecer a marcação de um gol;
• a bola pode sair de campo.
Por exemplo, se um jogador chutar a bola à 20 metros por segundo a sequência de tratamento da movimentação da bola será:
• a bola percorre 20 células, o que representa a metade do caminho. A distância equivalente
em células para os 20 metros é de 40 células;
• os jogadores são reposicionados em campo;
Todas as etapas descritas para a movimentação da bola são apenas internas à simulação.
Logo, não são apresentadas na tela da C AMADA O BSERVAÇÃO. Apenas a situação final dos
agentes é apresentada, após o tratamento dos conflitos.
Para a criação das duas etapas de movimentação, sempre que o agente J OGADOR chutar
a bola o parâmetro da bola
CHUTE N OVO
é alterado para verdadeiro. A regra M OVER B OLA
A.1 Regras dos Agentes do SMA do Ambiente Simulado
87
percebe que um jogador realizou um novo chute, realiza a simulação do deslocamento e altera
este parâmetro para falso. Na próxima execução da regra M OVER B OLA, a bola realizará a
movimentação da segunda parte do deslocamento, e o parâmetro velocidade será alterado para
zero (0). A alteração da velocidade para zero (0) desabilita a movimentação da bola nos passos
seguintes.
Nesta simulação considera-se que um passo de simulação equivale a um (1) segundo de um
jogo de futebol.
1
metodo moverBola ( direção , velocidade )
2
// Quando o jogador chutar ou conduzir a bola
3
// primeira movimentação da bola
4
s e l e c i o n e direcao
5
caso 1
7
// direção do deslocamento
bola . PosX ←
6
bola . posX + velocidade
8
bola . posX ← bola . posX + velocidade
9
bola . posY ← bola . posY + velocidade
10
bola . posY ← bola . posY + velocidade
caso 4
bola . posX ← bola . posX + velocidade
13
bola . posY ← bola . posX - velocidade
14
15
caso 5
bola . posX ← bola . posX - velocidade
16
17
caso 6
bola . posX ← bola . posX - velocidade
18
bola . posY ← bola . posY - velocidade
19
20
caso 7
bola . posY ← bola . posY - velocidade
21
22
caso 8
bola . posX ← bola . posX + velocidade
23
bola . posY ← bola . posY - velocidade
24
25
// Deslocamento na diagional
caso 3
11
12
// Desclocamento horizontal
caso 2
fimselecione
26
27
// Solução de conflitos
28
s e bola . posX >200 ou bola . posX <0
29
s e bola . posY entre (54 e 46)
anunciarGol ( juiz , passoSimulacao , " MarcacaoGol " ,
30
gol . time , bola . ultimaPosse , gol . posX , gol . posY )
31
32
senao
anunciarBolaPeloFundo ( juiz , passoSimulacao ," BolaPelaLinhaFundo " , bola . ultimaPosse ,
33
linhaLateral . posX , LinhaLateral . posY )
34
35
36
fimse
velocidade ← 0
37
fimse
38
s e bola . posY >100 ou bola . posY <0
39
42
43
// Fora dos limites no eixo y
anunciarBolaPelaLateral ( juiz , passoSimulacao ," BolaPelaLateral " ,
bola . ultimaPosse , linhaLateral . posX , LinhaLateral . posY )
40
41
// Fora dos limites no eixo x
velocidade ← 0
fimse
88
A.1 Regras dos Agentes do SMA do Ambiente Simulado
s e ( bola . chutenovo = verdadeiro )
44
// Controle das duas etapas de movimentação
bola . chutenovo ← falso
45
senao
46
velocidade ← 0
47
fimse
48
49
50
fimmetodo
Listagem A.10: Regra Mover Bola.
Regra Definir Direção da Bola
Esta regra devolve um valor verdadeiro se a bola se move em direção ao ataque, ou falso se
a bola se move na direção do gol defendido.
1
método direçãoBola ()
s e ( posX > posXant )
2
retorna verdadeiro
3
senao
4
retiorna falso
5
fimse
6
7
fimmétodo
Listagem A.11: Regra Definir Direção da Bola.
Agente E STATÍSTICA
Regra Armazenar Eventos Ocorridos Durante uma Partida
A regra A RMAZENAR E VENTOS O CORRIDOS D URANTE
UMA
PARTIDA recebe a mensa-
gem do agente J UIZ, classifica e grava esta mensagem conforme descreve a Listagem A.12.
1
2
3
4
metodo vazio receberDado ( DadosEstatisticos . lista )
p a r a toda mensagem recebida do juiz
s e l e c i o n e juiz . ontologia
c a s o " MarcacaoGol "
5
evento
6
passoSimulacao ← juiz . passoSimulacao
7
time
← juiz . time
8
posX
← nulo
9
posY
← nulo
jogador
← juiz . ultimaPosse
10
11
12
← " gol "
c a s o " BolaNaTrave "
evento
← " trave "
13
passoSimulacao ← juiz . passoSimulacao
14
time
← juiz . time
15
posX
← nulo
16
posY
← nulo
17
jogador
← juiz . ultimaPosse
18
c a s o " BolaPeloFundo "
19
evento
20
passoSimulacao ← juiz . passoSimulacao
← " fundo "
A.2 Regras do Módulo de Agregação
21
time
← juiz . time ,
22
posX
← juiz . posX
23
posY
← juiz . posy
24
jogador
← juiz . ultimaPosse
89
c a s o " BolaPelaLateral "
25
26
evento
27
passoSimulacao ← juiz . passoSimulacao
← " lateral "
28
time
← juiz . time ,
29
posX
← juiz . posX
30
posY
← juiz . posy
31
jogador
← juiz . ultimaPosse
32
fimselecione
33
gravarBase ( evento , passoSimulacao , time , posX , posY , jogador )
34
35
fimmetodo
Listagem A.12: Regra Armazenar Eventos Ocorridos Durante uma Partida.
A.2
Regras do Módulo de Agregação
Regra Inicializar Matriz Campo
A regra I NICIALIZAR M ATRIZ C AMPO define uma matriz com os agentes ambientais
que representam o campo de jogo, sendo que os elementos desta matriz são os agentes C É LULA
e suas especializações. Estes agentes ocupam suas posições relativas do campo de jogo
com o endereçamento da matriz. Por exemplo: os agentes E SCANTEIO ocupam o endereços
(0, 0), (0, 200), (100, 0), (100, 200), que são os quatros vértices do retângulo do campo de jogo,
e também a posição de cobrança do escanteio. A regra I NICIALIZAR M ATRIZ C AMPO define a
posição do agentes na matriz, apresentada na Listagem A.13.
A.2 Regras do Módulo de Agregação
90
1
metodo inicializarMatriz ()
2
// definir a matriz campo do tipo célula com a dimensão 200 x100
3
Célula campo [200][100]
4
p a r a cada linha da matriz campo
p a r a cada coluna da matriz campo
5
// Cargo ao agente célula na matriz
6
7
campo [ linha ][ coluna ] ← célula
8
// Definição da especialização
9
s e l e c i o n e linha e coluna
c a s o ( linha = 0 ou linha = 100) e ( coluna > 0 e coluna < 200)
10
campo [ linha ][ coluna ]. setESpecialização (" linhaLateral ")
11
c a s o ( linha = 0 ou linha = 100)
12
campo [ linha ][ coluna ]. setESpecialização (" linhaFundo ")
13
c a s o ( linha = 50 e coluna = 100)
14
campo [ linha ][ coluna ]. setESpecialização (" MeioCampo ")
15
.....
16
fimselecione
17
fim coluna
18
fim linha
19
20
fimmetodo
Listagem A.13: Regra Inicializar Matriz Campo.
91
APÊNDICE B -- Regras dos Agentes da Camada
Modelo
B.1
Regras do Agente Técnico
Regra Criar Jogador
Esta regra recebe como parâmetros o sistema tático, cria e posiciona o jogador no campo,
segunda a definição do sistema tático informado.
1
metodo criarJogador ( tabela )
2
lerTabela ( tabela )
3
p a r a toda linha da tabela
jog ← adicionaJogador ( nome , LimInfX , LimSupX , LimInfY , LimSupY , nascX , nascY ,
4
tec .a1 , tec . a2 , tec . a3 )}
5
jog . posicionarJogador ( nascX , nascY )
6
fimparatodo
7
8
fimmetodo
Listagem B.1: Regra Criar jogador.
Regra Definir Sistema Tático 4-3-3
Quando da definição dos sistemas táticos, o agente T ÉCNICO considera os seguintes atributos a serem definidos para os agentes JOGADORES:
•
NOME:
nome presente na camisa do jogador, representando sua função na estratégia des-
crita na tabela;
• L IM I NF X: valor no eixo x do limite inferior da região de atuação do jogador;
• L IM S UP X: valor no eixo x do limite superior da região de atuação do jogador;
• L IM I NF Y: valor no eixo y do limite inferior da região de atuação do jogador;
• L IM S UP Y: valor no eixo y do limite superior da região de atuação do jogador;
92
B.1 Regras do Agente Técnico
•
NASC X:
valor no eixo x da coordenada de nascimento do jogador;
•
NASC Y:
valor no eixo y da coordenada de nascimento do jogador.
A Tabela 1 apresenta a definição dos atributos dos jogadores para o sistema tático 4-4-3. A
unidade dos valores está definida por células. Para a coluna N OME cada linha representa um
jogador: G para goleiro, Zi para os zagueiros, Mi para os Meio Campo, Ai para os Atacantes.
NOME
G
L1
L2
Z1
Z2
M1
M2
M3
A1
A2
A3
L IM I NF X
0
0
0
0
0
50
50
50
100
100
100
L IM S UP X
27
150
150
100
100
170
170
170
200
200
200
L IM I NF Y
25
0
26
51
76
0
34
67
0
34
67
L IM S UP Y
75
25
50
75
100
33
66
99
33
66
99
( NASC X, NASC Y)
(10, 50)
(30, 12)
(87, 47)
(40, 87)
(40, 62)
(12, 16)
(47, 49)
(63, 82)
(100, 16)
(100, 49)
(100, 82)
Tabela 1: Limite de Atuação dos Jogadores para o Sistema Tático 4-3-3.
1
A regra D EFINIR S ISTEMA TÁTICO 4-3-3 é detalhada na Listagem B.2.
metodo posicionarJogador433 ()
2
tabela433 ← lerTabela ( tabela433 )
3
p a r a toda linha da tabela433
// Obtenção do arquivo com os dados da tabela
4
jog .( tabela433 . nome ). limInfX ← tabela433 . linInfX
5
jog .( tabela433 . nome ). limSupX ← tabela433 . linSupX
6
jog .( tabela433 . nome ). limInfX ← tabela433 . linInfY
7
jog .( tabela433 . nome ). limInfX ← tabela433 . linSupY
8
jog .( tabela433 . nome ). posX ← tabela433 . nascX
9
jog .( tabela433 . nome ). posY ← tabela433 . nascY
10
jog . posicionarJogador ( nascX , nascY )
11
fimpara
12
13
fimmetodo
Listagem B.2: Regra Definir Sistema Tático 4-3-3.
Regra Definir Sistema Tático 4-4-2
A Tabela 2 apresenta a definição dos atributos dos jogadores para o sistema tático 4-4-2. A
unidade dos valores está definida por células. Para a coluna N OME cada linha representa um
jogador: G para goleiro, Zi para os zagueiros, Mi para os Meio Campo, Ai para os Atacantes.
A regra D EFINIR S ISTEMA TÁTICO 4-4-2 é detalhada na Listagem B.3.
93
B.1 Regras do Agente Técnico
NOME
G
L1
L2
Z1
Z2
M1
M2
M3
M4
A1
A2
L IM I NF X
0
0
0
0
0
50
50
50
50
100
100
L IM S UP X
27
150
150
100
100
170
170
170
170
200
200
L IM I NF Y
25
0
26
51
76
0
26
51
76
0
100
L IM S UP Y
75
25
50
75
100
25
50
75
99
99
199
( NASC X, NASC Y)
(50, 10)
(30, 12)
(87, 47)
(35, 87)
(35, 62)
(12, 12)
(47, 47)
(63, 62)
(45, 87)
(50, 47)
(50, 53)
Tabela 2: Limite de Atuação dos Jogadores para o Sistema Tático 4-4-2.
1
metodo posicionarJogador442 ()
2
tabela433 ← lerTabela ( tabela442 )
3
p a r a toda linha da tabela442
// Obtenção do arquivo com os dados da tabela
4
jog .( tabela433 . nome ). limInfX
5
jog .( tabela433 . nome ). limSupX ← tabela442 . linSupX
6
jog .( tabela433 . nome ). limInfY ← tabela442 . linInfY
7
jog .( tabela433 . nome ). limSupY ← tabela442 . linSupY
8
jog .( tabela433 . nome ). posX ← tabela442 . nascX
9
jog .( tabela433 . nome ). posY ← tabela442 . nascY
fimpara
10
11
← tabela442 . linInfX
fimmetodo
Listagem B.3: Regra Definir Sistema Tático 4-4-2.
Regra Definir Sistema Tático 3-5-2
A Tabela 3 apresenta a definição dos atributos dos jogadores para o sistema tático 3-5-2. A
unidade dos valores está definida por células. Para a coluna N OME cada linha representa um
jogador: G para goleiro, Zi para os zagueiros, Mi para os Meio Campo, Ai para os Atacantes.
94
B.1 Regras do Agente Técnico
NOME
G
L1
L2
Z1
M1
M2
M3
M4
M5
A1
A2
L IM I NF X
0
0
0
0
0
0
0
0
50
100
100
L IM S UP X
15
150
150
100
170
150
150
170
100
200
200
L IM I NF Y
18
0
33
67
0
21
41
61
81
0
100
L IM S UP Y
31
33
66
99
20
40
65
80
99
99
199
( NASC X, NASC Y)
(14, 25)
(30, 12)
(87, 47)
(40, 87)
(60, 10)
(70, 30)
(70, 50)
(70, 70)
(60, 90)
(50, 47)
(50, 53)
Tabela 3: Limite de Atuação dos Jogadores para o Sistema Tático 3-5-2.
1
A regra D EFINIR S ISTEMA TÁTICO 3-5-2 é detalhada na Listagem B.4.
metodo posicionarJogador352 ()
2
tabela433 ← lerTabela ( tabela352 )
3
p a r a toda linha da tabela352
// Obtenção do arquivo com os dados da tabela
4
jog .( tabela433 . nome ). limInfX
5
jog .( tabela433 . nome ). limSupX ← tabela352 . linSupX
6
jog .( tabela433 . nome ). limInfY ← tabela352 . linInfY
7
jog .( tabela433 . nome ). limSupX ← tabela352 . linSupY
8
jog .( tabela433 . nome ). posX ← tabela352 . nascX
jog .( tabela433 . nome ). posY ← tabela352 . nascY
9
fimpara
10
11
← tabela352 . linInfX
fimmetodo
Listagem B.4: Regra Definir Sistema Tático 3-5-2.
Regra Definir Áreas do Campo
As áreas são regiões que dividem o campo em blocos imaginários em seu sentido vertical.
A Tabela 4 apresenta os valores limites do eixo x. As medidas são referenciadas em células. A
Listagem B.5 apresenta o detalhe da regra.
Área
De Até
(A1) Área da defesa
0
66
(A2) Área do meio campo 67 132
(A3) Ataque
133 200
Tabela 4: Definição das Áreas do Campo.
95
B.1 Regras do Agente Técnico
1
metodo texto areasCampo ()
2
tabelaAreas ← lerTabela ( areas )
3
tecnico . A1 ←
areas . A1
4
tecnico . A2 ←
areas . A2
5
tecnico . A3 ←
areas . A3
6
// Obtenção do arquivo com os dados da tabela
fimmetodo
Listagem B.5: Regra Definir Áreas do Campo.
Regra Posicionar Jogadores no Campo
O agente T ÉCNICO cria o agente jogador, com a regra C RIAR J OGADOR, detalhada na
Listagem B.1. Após a criação posiciona este agente no campo com regra P OSICIONAR
NO
C AMPO, que é apresentada na Listagem B.8. Os atributos que são requeridos para a criação dos
jogadores são:
•
NOME:
nome da camisa do jogador;
•
POS X:
valor de seu posicionamento em campo no eixo X;
•
POS Y:
valor de seu posicionamento em campo no eixo Y;
•
NASC X:
valor do posicionamento de nascimento no eixo X;
•
NASC Y:
valor do posicionamento de nascimento no eixo Y;
•
LIM S UP X, LIM S UP Y, LIM I NF X, LIM I NF Y:
valores de limite da área de atuação da po-
sição;
•
A 1:
limite do primeiro terço do campo, atributo do técnico;
•
A 2:
porção central do campo, atributo do técnico;
•
A 3:
terço final do campo, atributo do técnico.
O posicionamento dos jogadores e os limites de atuação dependem do sistema tático adotado.
96
B.2 Regras do Agente Juiz
B.2
Regras do Agente Juiz
Regra Tratar Eventos J UIZ
A regra T RATAR E VENTOS J UIZ, detalhada na Listagem B.6, trata os eventos informados
pelos agentes especializados: o agente L INHA L ATERAL, o agente
LINHA F UNDO
e o agente
G OL. Em cada situação o agente J UIZ decide por uma ação específica:
• Saída pela lateral: neste caso o juiz comanda a reposição da bola em jogo na posição de
saída da bola. A reposição é feita pelo time cujo o jogador causador do evento seja do
time adversário. Este jogador é identificado pelo atributo ULTIMA P OSSE;
• Saída pela linha de fundo: neste caso o juiz comanda a reposição em escanteio, quando a
última posse é da defesa, ou tiro de meta se a última posse for do ataque;
• Marcação de um Gol: neste caso o juiz define o reinício da partida com a posse da bola
para o time que sofreu o gol.
1
2
3
4
metodo juiz ( juiz , passoSimulacao , ontologia , time , ultimaPosse , posX , posY )
s e l e c i o n e mensagem . ontologia
c a s o " MarcacaoGol "
gravarEstatistica ( juiz , passoSimulacao , ontologia , time , ultimaPosse , posX , posY )
5
s e ( ultimaPosse é do jogador dversário )
6
entao
7
8
9
10
reinicar ( time )
senao
reinicar ( adversário )
fimse
11
12
13
c a s o " lateral "
gravarEstatistica ( juiz , passoSimulacao , ontologia , time , ultimaPosse , posX , posY )
14
s e ( ultimaPosse é de jogador adversário )
15
entao
16
17
18
19
cobrarLateral ( time )
senao
cobrarLateral ( adversário )
fimse
20
21
case " BolaPelaLinhaFundo "
22
gravarEstatistica ( juiz , passoSimulacao , ontologia , time , ultimaPosse , posX , posY )
23
s e ( ultimaPosse é de jogador adversário )
24
entao
25
26
27
28
29
30
cobrarTiroMeta ()
senao
cobrarEScanteio ( adversário )
fimse
fimselecione
97
B.3 Regras Comuns aos Agentes Jogadores
31
fimmetodo
Listagem B.6: Regra Tratar Eventos J UIZ.
Regra Iniciar e Reiniciar Jogo
A regra I NICIAR
E
R EINICIAR J OGO, apresentada na Listagem B.7, promove o início ou
reinício de um partida. O juiz avisa ao técnico, através de uma mensagem, a necessidade do time
reposicione-se em campo. Ao receber a confirmação do reposicionamento dos dois técnicos, o
agente J UIZ promove o zeramento do cronômetro e ordena início, ou reinício, do jogo.
1
metodo inicioPartida ()
2
mensagem ( tecnicoUm ," Reposicionar ")
3
mensagem ( tecnicoDois , " Reposicionar ")
4
5
espere confirmação ( tecnicoUm )
6
espere confirmação ( tecnicoDois )
7
8
zerarCronometro ()
9
iniciarPartida ()
10
11
fimmetodo
Listagem B.7: Regra Iniciar e Reiniciar Jogo.
B.3
Regras Comuns aos Agentes Jogadores
Regra Posicionar no Campo
A regra P OSICIONAR NO C AMPO recebe a posição do jogador em dois parâmetro:
POS Y.
POS X
e
Sua função é atribuir estes valores aos atributos de posicionamento do jogadores, como
descreve a Listagem B.8.
1
metodo
jogador . posY ← posY
3
4
posicionarJogador ( posX , posY )
jogador . posX ← posX
2
fimmetodo
Listagem B.8: Regra Posicionar no Campo.
Regra Mover Jogador
A regra M OVER J OGADOR faz a movimentação dos agentes J OGADORES no campo de
jogo. Os atributos necessários para sua execução são a
DIREÇÃO
e o número de células do
deslocamento do jogador. O atributo DIREÇÃO é um valor inteiro entre 1 e 8, que dá a direção
do deslocamento. O atributo DESLOCAMENTO é um valor inteiro, que representa o número de
B.3 Regras Comuns aos Agentes Jogadores
98
células que o agente se deslocará. O atributo RESPEITA, impede que o deslocamento do jogador
seja feito fora de sua área de atuação, conforme descreve a Listagem B.9. Para o valor falso
do parâmetro RESPEITA o jogador não respeita os limites do campo de atuação da posição. Tal
situação pode acontecer apenas quando o jogador está de posse da bola, e ao deslocar-se em
direção ao gol adversário, não sofrendo bloqueio. Desta forma seu avanço desrespeita o limite
de sua área de atuação para aproximar-se e chutar.
Esta regra é executada pelo jogador quando este deseja deslocar-se em campo. Este desejo
é comandado pelo comportamento do jogador. A movimentação do jogador ocorre em duas
etapas. A variável CAMINHA controla a executar de cada uma das etapas. Na primeira etapa o
deslocamento é calculado e na segunda são resolvidos os conflitos. Os possíveis conflito que
podem ocorrer na movimentação são:
• a posição destino está ocupada por outro jogador do seu time;
• a posição destino está ocupada por outro jogador do time adversário;
• a posição destino tem a bola.
Para ilustrar a movimentação do jogador, temos o exemplo a seguir. Suponha que o desejo
do jogador seja de caminhar em direção do gol do adversário:
• O comportamento do jogador decide por acionar a regra M OVER J OGADOR com os parâmetros ”(1,1,verdadeiro)“;
– Estes parâmetros representam o deslocamento da esquerda para direita de uma célula respeitando seu limite de atuação;
– Este deslocamento mantém a relação de 50cm no mundo real, ou seja, uma célula
do campo;
– A velocidade com que o jogador se move pode ser controla com o aumento do
parâmetro de deslocamento da rega M OVER J OGADOR. Nesta simulação estima-se
que cada passo tem a duração de 1 segundo. Se o parâmetro deslocamento fosse
alterado para 2, no mesmo tempo de 1 segundo o jogador se deslocaria duas células;
• enquanto este desejo permanecer, ou seja, enquanto as condições do jogo mantiverem-se,
a regra será disparada continuamente.
Em cada deslocamento do jogador a posse da bola pode ser disputada entre os adversários,
ou seja, podem ocorrer situações de conflito que devem ser tratados. A variável caminha alterna
99
B.3 Regras Comuns aos Agentes Jogadores
os valores verdadeiro e falso de forma a fazer a regra M OVER J OGADOR alternar o comportamento em mover o jogador, ou resolver os conflitos. A Definição da posse da bola acontece de
seguinte forma:
• a posição atual do jogador tem bola:
– e também tem jogador adversário, então a bola decide pela posse BOLA . DISPUTAR B OLA ();
– e também tem jogador do mesmo time, então a posse permanece com o jogador que
estava na célula;
– não tem jogador, então a posse é deste jogador.
• a posição atual não tem jogador, então a posse é deste jogador.
1
2
metodo
moverJogador ( direção , deslocamento , respeita )
s e ( caminha )
3
posXant = posX
4
posYant = posY
5
s e l e c i o n e ( direcao ) {
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Salva posição anterior de posX
// S alva posição anterior de posY
c a s o 1:
posX += deslocamento
c a s o 2:
posX += deslocamento
posY += deslocamento
c a s o 3:
posY ++;
c a s o 4:
posX -= deslocamento
posY += deslocamento
c a s o 5:
posX -= deslocamento
c a s o 6:
posX -= deslocamento
posY -= velocidade ;
c a s o 7:
posY -= deslocamento
c a s o 8:
posX += deslocamento
posY -= deslocamento }
26
// Controle do posicionamento do jogador em sua área de atuação
27
s e ( posX > LimInfX e posX < LimSupX e respeita )
28
29
30
senao
posX = posXant
31
fimse
32
s e ( posY > LimInfY e posY < LimSupY e respeita )
33
34
35
36
// intervalo em X
posXant = posX
posYant = posY
senao
posY = posYant
fimse
// ingtervalor em Y
100
B.3 Regras Comuns aos Agentes Jogadores
caminha ← falso
37
senao
38
// Definição da posse da bola
39
// Verifica se na posição atual do jogador tem bola
40
41
s e (( campoMatriz [ posX ][ posY ]). TemBola ()= verdadeiro )
42
/ Em havendo bola também verifica s e tem jogador
43
s e (( campoMatriz [ posX ][ posY ]). Jogador () nao n u l o )
// Em havendo jogador promove a disputa da bola através da regra da bola
44
bola . disputarBola ( campoMatriz [ posX ][ posY ]. getJogador ())
45
senao
46
// Com célula vazia faz a posse deste jogador
47
bola . setPosseAtual ← este jogador
48
senao
49
// Coloca o jagador na célula sem a bola
50
campoMatriz [ posX ][ posY ] ← este jogador
51
fimse
52
caminha ← verdadeiro
53
fimse
54
55
fimmetodo
Listagem B.9: Regra Mover Jogador.
Regra ATACAR
A regra ATACAR é utilizada para a disputa da posse da bola com outro jogador. A Listagem
B.10 detalha a regra. Por esta regra, o jogador que vai disputar a bola avança diretamente para
a bola, disputando sua posse com o outro jogador. A direção do deslocamento é calculada em
relação à posição da bola:
• Se o atributo
POS X
da bola tiver um valor menor ou igual ao valor do atributo
POS X
do
jogador, as direções de avanço na referência de 8 valores, podem ser: 2, 1 ou 8; A escolha
de um dos três valores de direção vai depender da comparação entre os atributos
POS Y
do jogador e da bola:
– Se forem iguais o avanço é na horizontal, ou seja, para a direção 1;
– Se o atributo do jogador for menor que o da bola a escolha é para a direção 8;
– Se o atributo do jogador for maior que o da bola a escolha é para a direção 2.
• Se o atributo da bola
POS Y
tiver um valor menor ou igual ao seu atributo
POS Y,
as
direções de avanço, na referência de 8 valores, podem ser: 4, 5 ou 6; A escolha de um dos
três valores de direção vai depender da comparação entre os atributos POS Y do jogador e
da bola:
– Se forem iguais o avanço é na vertical, ou seja, para a direção 4;
– Se o atributo do jogador for menor que o da bola, a escolha é para a direção 6;
B.3 Regras Comuns aos Agentes Jogadores
101
– Se o atributo do jogador for maior que o da bola, a escolha é para a direção 5.
• Uma vez definida a direção o jogador avança toda a distância entre sua posição e a bola,
na direção calculada. O avanço é feito pela regra M OVER J OGADOR.
A Figura 41, ilustra o jogador da direita entrando na área de atuação do adversário. Nesta
situação a posse da bola é disputada pelo disparo da regra ATACAR, e a decidida pelo agente
B OLA.
Figura 41: Invasão da Área de Ação do Adversásio.
1
atacar ()
metodo
s e ( bola . posX > jogador . posX )
2
s e ( bola . posY≥jogador . posY )
3
s e ( bola . posY = jogador . posY )
4
direcao ← 1
5
senao
6
direcao ← 2
7
8
fimse
9
direcao ← 8
senao
10
s e ( bola . posY = jogador . posY )
11
direcao ← 5
12
senao
13
direcao ← 4
14
fimse
15
direcao ← 6
16
17
fimse
18
delocamento ← distancia ( jogador . posX , jogador . posY , bola . posX , bola . posY )
moverJogador ( direcao , delocamento , verdadeiro )
19
20
fimmetodo
Listagem B.10: Regra Atacar.
Regra Devolver Distância da Bola
1
método distanciaBola ()
retorna Raiz (( elevado ( bola . getX () - posX ,2) + elevado ( bola . getY () - posY ,2)))
2
3
Esta regra devolve um valor inteiro positivo com a distância atual do jogador até à bola.
fimmétdo
Listagem B.11: Regra Devolver Distância da Bola.
B.3 Regras Comuns aos Agentes Jogadores
102
Regra Identificar Bloqueio
Com esta regra o agente verifica se existe outro jogador caminho. A regra olha exclusivamente para a célula (x + 1) da posição atual.
1
método bloquado ()
s e ( campoMatriz [ posx +1][ posY ] não nula )
2
retorna verdadeiro
3
senao
4
retorna falso
5
fimse
6
7
fimmetodo
Listagem B.12: Regra Identificar Bloqueio.
Regra Passar a Bola
Encontrar o jogador mais próximo de seu time, e definir a direção do passe. A Listagem
B.13 detalha este comportamento:
1. A regra inicia com a busca do jogador mais próximo. Para cada jogador do time é calculada a distância entre eles. O mais próximo, é então, escolhido para o passe. O atributo
PERTO
contém o jogador escolhido para o passe;
2. A direção do passe com base na 8 direções é decidida;
3. O chute propriamente dito é feito pela regra M OVER B OLA. Os parâmetros da regra
MOVER B OLA
são a variável perto que foi calculada, e contém a menor distância entre os
jogadores, e a DIREÇÃO aproximada do passe.
B.4 Regras do Agente G OLEIRO
103
1
método passarBola ()
2
// Encontrar o jogador mais próximo
3
double dist ← maiorValor ;
4
p a r a todo jogador da listaJogador
s e ( distanciaBola () < jogador . distanciaBola ())
5
perto ← jogador
6
fimse
7
fimpara
8
9
10
// Encontrar a direção do passe
11
s e ( perto . posX > posX ){
s e ( perto . posY > posY ){
12
direção ← 2
13
senao
14
direção ← 8
15
fimse
16
senao
17
s e ( bola . posY > posY )
18
direção ← 4
19
senao
20
direção ← 6
21
fimse
22
23
fimse
24
moverBola ( perto , direção )
25
fimmetodo
Listagem B.13: Regra Passar a Bola.
B.4
Regras do Agente G OLEIRO
Regra Jogar do Agente G OLEIRO
Esta regra define o comportamento do agente G OLEIRO. Este comportamento subdivide-se
em três outros:
• Com a bola em direção ao gol defendido e com a bola dentro da pequena área, o agente
G OLEIRO avança em direção ao agente B OLA;
• Com a bola nas laterais do campo, bem próximo à marca de escanteio, o agente G OLEIRO
posiciona-se na trave mais próxima à posição da bola;
• Com a bola na direção do adversário, o goleiro posiciona-se na mesma linha da bola.
A Listagem B.14 apresenta o pseudo código da regra J OGAR DO AGENTE G OLEIRO.
B.4 Regras do Agente G OLEIRO
104
1
metodo compGoleiro ()
s e ( bola . direcaoBola =0)
2
s e ( bola . posy < pequenaArea . limSupY e bola . posy > pequenaArea . limInfY )
4
atacar ()
5
// A bola está dentro da área
senao
6
posicionaTrave ()
7
fimse
8
fimse
9
// Bola em direção ao gol adversário e fora da área
senao
10
alinharComBola ()
11
fimse
12
13
// Bola em direção ao gol defendido
s e ( bola . posX < pequenaArea . limX )
3
fimmetodo
Listagem B.14: Regra Jogar do Agente G OLEIRO.
Regra Posicionar ao Lado do Agente T RAVE
A regra P OSICIONAR
AO
L ADO
DO AGENTE
T RAVE verifica qual é a trave mais próxima
da bola e posiciona o goleiro em frente a ela, distanciado de três células. A Listagem B.15
detalha o comportamento.
1
metodo
posicionarTrave ()
2
a= distanciaBola ( traveA . posX , TraveA . posy , bola . posX , bola . posY )
3
b= distanciaBola ( traveB . posX , TraveB . posy , bola . posX , bola . posY )
4
s e (a < b)
jogador . posX +3 ← TraveA . posX
5
jogador . posY +3 ← TraveA . posY
6
senao
7
jogador . posX +3 ← TraveB . posX
8
jogador . posY +3 ← TraveB . posY
9
fimse
10
11
fimmetodo
Listagem B.15: Regra Posicionar ao Lado do agente T RAVE.
B.5 Regras do Agente Z AGUEIRO
B.5
105
Regras do Agente Z AGUEIRO
Regra Jogar do Agente Z AGUEIRO
A regra J OGAR DO AGENTE Z AGUEIRO, apresentada na Listagem B.16 detalha o comportamento:
• Se o Zagueiro está com a posse da bola, ele avança rapidamente para aborda de sua área
de atuação faz o passe;
• Se o jogador não está com a posse da bola, a distância até a bola é calculada com a regra
D ETERMINAR D ISTÂNCIA DA B OLA e Para as distancia maiores que 10 células:
– Se a bola está no ataque, o que é percebido pela regra D ETERMINAR D IREÇÃO
DA
B OLA, o defensor avança lentamente para o ataque até o meio do campo e na
direção da bola;
– Se a bola está na direção do gol defendido, o que é percebido pela regra D ETERMI NAR
D IREÇÃO DA B OLA, o defensor recua lentamente para a defesa até sua posição
de nascimento e na direção da bola.
• Com a bola próxima ao jogador (menos de 10 células), este se lança em direção à bola
com a regra ATACAR;
• No avanço com a posse da bola, se outro jogador bloquear seu avanço, o jogador faz o
passe com a regra PASSAR A B OLA.
B.6 Regras do Agente M EIO C AMPO
106
1
defensores ()
metodo
s e ( bola . posseAtual != jog ){
2
s e ( jog . distanciaBola () < 10) {
3
// Atacar a bola
jog . moverJogador ( atacar () , 1, true );
4
senao
5
// Marcação da bola
s e ( bola . getY () > jog . getY ()) {
6
jog . moverJogador (3 , 1 , true );
7
senao
8
jog . moverJogador (7 , 1 , true );
9
fimse
10
fimse
11
senao
12
s e ( direcaoBola ())
13
14
jog . moverJogador (1 , 1, true )
15
s e ( posX≥limSupX ) moverBola ( maxChute ,1)
16
s e ( bloqueado ())
fimse
17
fimse
18
19
passar ()
fimmétodo
Listagem B.16: Regra Jogar do Agente Z AGUEIRO.
B.6
Regras do Agente M EIO C AMPO
Regra Jogar do Agente M EIO C AMPO
A regra J OGAR
DO
AGENTE M EIO C AMPO, apresentada na Listagem B.17, detalha os
comportamentos deste tipo de agente:
• A regra inicia com a verificação da distância da bola ao jogador atual com a regra D E VOLVER
D ISTÂNCIA DA B OLA;
• Quando a bola está próxima ao jogador (menos de 15 células), este se lança em direção à
bola coma a regra ATACAR;
• Se o jogador obtiver a posse da bola, então, avança rapidamente para a borda de sua área
de atuação e faz o chute para o gol adversário. Neste modelo os jogadores chutam com
força constante MAX C HUTE;
• Com a bola no ataque (em direção ao gol adversário) e distante (mais de 15 células), estes
se lançam ao ataque. Neste caso, movem-se lentamente em direção ao gol adversário,
fazendo a marcação da bola;
• Com a bola em direção ao gol defendido os jogadores retornam para a defesa até sua
posição de nascimento, fazendo a marcação da bola;
B.7 Regras do Agente ATACANTE
107
• No avanço com a posse da bola, se outro jogador bloquear seu avanço, o jogador faz o
passe com a regra PASSAR A B OLA.
1
método meioCampo ()
s e ( bola . posseAtual != jog ){
2
s e ( jog . distanciaBola () < 15) {
3
// Atacar a bola
jog . moverJogador ( atacar () , 1, true )
4
senao
5
// Marcação da bola
6
s e ( bola . getY () > jog . getY ()) {
7
jog . moverJogador (3 , 1 , true )
senao
8
jog . moverJogador (7 , 1 , true )
9
fimse
10
fimse
11
senao
12
s e ( direcaoBola ())
13
jog . moverJogador (1 , 1, true )
14
senao
15
jog . moverJogador (5 , 1, true )
16
17
fimse
18
s e ( posX≥limSupX )
chutar ()
19
20
fimse
21
s e ( bloqueado ())
passar ()
22
fimse
23
fimse
24
25
fimmétodo
Listagem B.17: Regra Jogar do Agente M EIO C AMPO.
B.7
Regras do Agente ATACANTE
Regra Jogar do Agente ATACANTE
A regra J OGAR
DO
AGENTE ATACANTE, apresentada na Listagem B.18, detalha o com-
portamento:
• A regra inicia com a verificação da distância da bola ao jogador atual;
• Com a bola no ataque em direção ao gol adversário os jogadores lançam-se no ataque
para se tornarem uma possibilidade de passe;
• Com a bola em direção ao gol defendido os jogadores retornam lentamente para a sua
posição de nascimento;
B.7 Regras do Agente ATACANTE
108
• Com a bola próxima ao jogador (menos de 15 células), o jogador tenta obter a posse da
bola com a regra ATACAR;
• Estando o jogador bloqueado, ele faz o passe através da regra PASSAR A B OLA;
• Estando o jogador próximo ao gol (menos de 20 Células), ele faz o chute ao gol.
1
método atacante ()
s e ( bola . posseAtual != jog ){
2
s e ( jog . distanciaBola () < 30) {
3
jog . moverJogador ( jog . buscaBola () , 1, true )
4
senao
5
// Marcação da bola
s e ( bola . getY () > jog . getY ()) {
6
jog . moverJogador (3 , 1 , true )
7
senao
8
jog . moverJogador (7 , 1 , true )
9
fimse
10
fimse
11
senao
12
s e ( direcaoBola ())
13
jog . moverJogador (1 , 1, true )
14
senao
15
jog . moverJogador (5 , 1, true )
16
17
fimse
18
s e ( posX≥limSupX )
jog . posseAtual ← n u l o
19
bola . moverBola ( chutar , 1, true )
20
21
fimse
22
s e ( bloqueado ())
jog . posseAtual ← n u l o
23
bola . moverBola ( passar () , 1, true )
24
fimse
25
fimse
26
27
// Atacar a bola
fimmétodo
Listagem B.18: Regra Jogar do Agente ATACANTE.
109
APÊNDICE C -- Regras dos Agentes da Camada
Observação
Regra Inicialização do Sistema
A regra I NICIALIZAÇÃO
DO
S ISTEMA, carrega os módulos do simulador, cria os agentes
das camadas A MBIENTE , M ODELO e carrega a interface gráfica do jogo. A Listagem C.1
apresenta os detalhes.
1
método rodar ()
// Criação do ambiente formalmente modelado
2
3
criarCampo ()
4
// Criação da bola
5
criarBola ()
6
// Criação e registro dos jogadores do time vermelho
7
criarJogadoresA ( " src / jogadoresA / posicaoBaseA . properties ")
8
// Criação e registro dos jogadores do time preto
criarJogadores (" src / jogadores / posicaoBase . properties ")
9
// Carca da interface gráfica
10
interfaceGrafica ()
11
12
fimmétodo
Listagem C.1: Regra Inicialização do Sistema.
Regra Inicializar Campo
A regra I NICIALIZAR C AMPO detalhada na Listagem C.2 cria os agentes células e suas
especializações, na seguinte ordem:
• A regra tem inicio com a estruturação da rotina de duplo loop, representando as linhas e
coluna das matriz MATRIZ C AMPO (200x100);
• A seguir para cada célula, conforme a posição representar um agente especializado, o
valor da função do agente recebe um valor numérico que está associado a especialização
que será usada;
• Finalmente a regra C RIAR AGENTE é executada, o que cria o agente especializado.
Apêndice C -- Regras dos Agentes da Camada Observação
110
1
método criarCampo (){
2
funcao =0
3
p a r a toda lin de 0 até 100 {
p a r a todo col de a até 200 {
4
5
// Criação das células e suas especializações nas devidas posições do campo
6
funcao =0;
7
if ( col = 0 e ( lin≥46 e lin≤54))
8
// gol esquerdo
funcao =4
9
s e n a o s e ( col = 199 ( lin≥46 e lin≤54))
10
// gol direito
funcao = 5
11
s e n a o s e ( lin = 0 ou lin = 99)
12
// linhas laterais
funcao = 1
13
s e n a o s e ( col = 0)
14
// fundo esquerdo
funcao =2
15
s e n a o s e ( col = 199)
16
// fundo direito
funcao =3
17
........................ demais agentes ........
18
19
campoMatriz [ col ][ lin ] ← CriarAgente ()
20
fimse
21
f i m p a r a t o d o ( col )
22
f i m p a r a t o d o ( lin )
23
24
fimmétodo
Listagem C.2: Regra Inicializar Campo.
Regra Inicializar Modelo
A regra I NICIALIZAR M ODELO lê a tabela de posicionamento selecionada pelo Técnico e
faz a alteração dos valores de posicionamento dos jogadores:
• O parâmetro POSICIONAMENTO define qual tática deve ser usada;
• Cada jogador é reposicionado em campo conforme o valor lido da tabela de tática selecionada.
Apêndice C -- Regras dos Agentes da Camada Observação
111
1
método inicializarModelo ( posicionamento )
2
3
lerTabelaTática ( posicionamento )
4
// Goleiro
5
args1 ←
{" GoleiroA " , jogs . get (" j1posX "), jogs . get (" j1posY "), jogs . get (" j1nascX ") ,
6
jogs . get (" j1nascY ") , jogs . get (" j1velMaxChute "), jogs . get (" j1LimSupX "),
7
jogs . get (" j1LimSupY "), jogs . get (" j1LimInfX "), jogs . get (" j1LimInfY "),
campoMatriz , listaJogador };
8
criaJogador . addAgent ( " GoleiroA " , " jogadoresA . JogadorA " , args1 );
9
10
11
// Zagueiro1
12
args2 ←
{" Zagueiro1 " , jogs . get (" j1posX ") , jogs . get ( " j1posY "), jogs . get (" j1nascX " ),
13
jogs . get (" j1nascY ") , jogs . get (" j1velMaxChute "), jogs . get (" j1LimSupX "),
14
jogs . get (" j1LimSupY "), jogs . get (" j1LimInfX "), jogs . get (" j1LimInfY "),
campoMatriz , listaJogador };
15
criaJogador . addAgent ( " Zagueiro1 " , " jogadoresA . JogadorA " , args2 );
16
17
.......................
18
Demais jogadores
19
20
fimmétodo
Listagem C.3: Regra Inicializar Modelo.
Regra Registrar Jogador
Para que a C AMADA O BSERVAÇÃO possa encontrar os objetos que respondem como jogadores é necessário que cada agente se registre, este processo é feito pela regra de Registrar
Jogador apresentada na Listagem C.4. O registro dos jogadores cria uma coleção de objetos
(jogadores do time Preto, Jogadores do time Vermelho e a Bola), com os valores do atributos
carregados inicialmente pelo sistema. A etapa do registro cria a infraestrutura operacional da
funcionalidade do técnico de reposicionar o time em campo. As próximas alterações destes
valores de posicionamento e limite de atuação, serão de responsabilidade do técnico. Além
das características de posicionamento e limites da posição do jogador, o registro disponibiliza
para o jogador o endereço da MATRIZ C AMPO e o endereço da LISTA J OGADOR. Estes elemento
permitem para o jogador, reconhecer seu posicionamento no campo em relação aos demais
jogadores.
Apêndice C -- Regras dos Agentes da Camada Observação
112
1
método registroTimePreto (){
2
3
// Goleiro
4
timePreto ←
{" Goleiro " , jogs . get (" j1posX "), jogs . get (" j1posY "),
5
jogs . get (" j1nascX ") , jogs . get (" j1nascY "),
6
jogs . get (" j1velMaxChute " ), jogs . get ( " j1LimSupX " ),
7
jogs . get (" j1LimSupY "), jogs . get (" j1LimInfX "),
jogs . get (" j1LimInfY "), campoMatriz , listaJogador }
8
criaJogador . addAgent ( " Goleiro " , " jogadores . Jogador " , args1 )
9
10
11
// Zagueiro1
12
timePreto
=
{" Zagueiro1 " ,
13
jogs . get (" j2nascX ") , jogs . get (" j2nascY "),
14
jogs . get (" j2velMaxChute " ), jogs . get ( " j2LimSupX " ),
15
jogs . get (" j2LimSupY "), jogs . get (" j2LimInfX "),
16
jogs . get (" j2LimInfY "), campoMatriz , listaJogador }
criaJogador . addAgent ( " Zagueiro1 " , " jogadores . Jogador " , args2 )
17
18
19
....................
}
Listagem C.4: Regra Registrar Jogador.
Regra Converter Posição
O Jogador e a bola apresentam seus métodos de conversão de endereçamento na razão de
1/5 conforme descreve a Listagem C.5. Isto se faz necessário para que a imagem apresentada
na tela tenha uma resolução que não mostre serrilhados nas bordas das imagens.
1
// Metodos da Bola e Jogadores que devolvem
2
// a posição relativa do agente para a camada observação
3
4
método int getPosX ()
return posX * 5;
5
6
fimmetodo
7
8
método int getPosY ()
return posY * 5;
9
10
fimmetodo
Listagem C.5: Regra Regra Converter Posicao.
Regra Aproximar Agentes
A regra R EGRA A PROXIMAR AGENTES, detalhada na listagem C.6 faz a conversão da
matriz, 200x100 do posicionamento dos jogadores, para a matriz 1000x500 da imagem da C A MADA
O BSERVAÇÃO. Esta conversão permite que os jogadores se desloquem com suavidade
no campo de jogo.
A regra incrementa ou decrementam as variáveis temporárias X e Y, à razão de 1/5, devol-
Apêndice C -- Regras dos Agentes da Camada Observação
113
vendo a posição relativa para a C AMADA O BSERVAÇÃO.
Em testes com máquinas de menor performance a dinâmica do jogo foi melhorada ajustandose o atributo passo, com pequenos incrementos (1/4, 1/3, ..., 1). Com estes ajustes o processamento das imagens tem ciclos de apresentação menores e a velocidade do jogo aumenta consideravelmente.
1
método aproximaR (x1 ,x2 ,y1 , y2 ) {
if ( x1 > x2 ) {
2
retorna x1 - passo
3
} else {
4
retorna x1 + passo
5
}
6
7
if ( y1 > y2 ) {
8
retorna y1 - passo
9
} else {
10
retorna y1 + passo
11
}
12
13
}
Listagem C.6: Regra Aproximar Agentes.
Regra Desenhar Campo
A regra R EGRA D ESENHAR C AMPO é uma rotina que está em loop constante. A função
desta regra de representar qualquer variação de posicionamento dos agentes que estão registrados. Este loop é gerado com o uso do Slick Framework. Este processo cíclico, mais conhecido
como Game Container, está detalhado na Seção 5.1. A Listagem C.7 detalha esta rotina. . A
sequencia da apresentação do Game Container é a seguinte:
• Inicialmente a regra carrega as imagens previamente gravadas no formato JPG;
• As imagens são sobreposta na ordem que aparecem na listagem, desta forma o campo é
o primeiro a ser apresentado;
• os agentes jogadores são então plotados em suas posições;
• finalmente a bola é plotada.
Nesta regra é detalhada a funcionalidade que habilita e desabilita o comportamento do
jogador de forma a sincronizar seu comportamento com a apresentação:
• Inicialmente tem-se a conversão de tipos, já que, o IDE Slick exige float no endereçamento
da imagem e os jogadores usam int;
Apêndice C -- Regras dos Agentes da Camada Observação
114
• Sendo diferentes, o valor do posicionamento do jogador na Camada Observação e sua
representação na C AMADA M ODELO, o comportamento do jogador é desabilitado. Isto
permite que os valores sejam sincronizados.
• Sendo iguais os valores de posição do jogador e da imagem, o comportamento do jogador
fica habilitado.
1
2
método inicialização ()
3
land ← imagems do cmapo
4
goleiro ← imagem do goleiro
5
zaguiero ← imagem do zageuiro
............
6
7
fimmetodo
8
9
método desenhar ()
10
| Loop de apresentação da imagem ( frequência do FPS )
11
|
// Apresentação do campo
12
|
land . desenhar
13
|
14
|
// Apresentação da bola
15
|
(x ,y) = aproximaR ( bolaAnt , bolaAtual )
16
|
bola . desenhar (x , y)
17
|
18
|
// Apresentação do goleiro
19
|
s e ( posição da bola != posição do jogador ){
20
|
21
|
22
|
23
|
24
|
}
25
|
goleiro . desenhar (x , y )
26
|
27
|
28
fimmetodo
desabilitarComportamento ( jogador )
(x ,y ) = aproximaR ( goleiroAnt , goleiroAtual ){
senao {
HabilitarComportamento ( jogador )
..........
Listagem C.7: Regra Desenhar Campo.
115
Referências
[Adler e Blue 1998]ADLER, J. L.; BLUE, V. J. Emergent fundamental pedestrian flows from
cellular automata microsimulation. Journal of the Transportation Research Board, Transportation Research Record 1644, 1998.
[Agents 2008]AGENTS, F. for I. P. FIPA. Foundation for Intelligent Physical Agents, Dec.
2008. Disponível em: <http://www.pa.org>.
[Albert e Barabási 2002]ALBERT, R.; BARABáSI, A.-L. Statistical mechanics of complex
networks. Rev. Mod. Phys., v. 74, n. 1, p. 47–97, January 2002.
[Angelis 2005]ANGELIS, A. F. d. Tutorial redes complexas. Projeto Kyatera, 2005.
[Axelrod 1997]AXELROD, R. Advancing the art of simulation in the social sciences. Complexity, Citeseer, v. 3, n. 2, p. 16–22, 1997.
[Axelrod e Tesfatsion 2006]AXELROD, R.; TESFATSION, L. S. A Guide for Newcomers
to Agent-Based Modeling in the Social Sciences. [S.l.], mar. 2006. Disponível em:
<http://ideas.repec.org/p/isu/genres/12515.html>.
[Banks 1999]BANKS, J. Introduction to simulation. In: ACM. Proceedings of the 31st conference on Winter simulation: Simulation—a bridge to the future-Volume 1. [S.l.], 1999. p.
7–13. ISBN 0780357809.
[Batista et al. 2010]BATISTA, A. F. d. M. et al. Principles of Agent-Oriented Programming.
[S.l.]: Federal University of ABC (UFABC) - Brazil, 2010. ISBN 0000000000.
[Bellifemine et al. 2008]BELLIFEMINE, F. et al. Jade: A software framework for developing
multi-agent applications. lessons learned. Information and Software Technology, Elsevier,
v. 50, n. 1-2, p. 10–21, 2008.
[Bellifemine e Greenwood 2007]BELLIFEMINE, G. C. F. L.; GREENWOOD, D. Developing
Multi-Agent Systems with JADE. [S.l.]: John Wiley and Sons, 2007.
[Bittencourt 2006]BITTENCOURT, G. Distributed artificial intelligence. 2006.
[Bordini et al. 2004]BORDINI, R. et al. The mas-soc approach to multi-agent based simulation.
Regulated Agent-Based Social Systems, Springer, p. 70–91, 2004.
[Bratman 1987]BRATMAN, M. E. Intention, Plans, and Practical Reason. [S.l.]: Harvard University Press, Cambridge, Massachusetts and London, 1987.
[Braz e Borin 2009]BRAZ, T.; BORIN, J. Análise quantitativa dos jogos de uma equipe profissional da elite do futebol mineiro-doi: 10.4025/reveducfis. v20i1. 5840. Revista da Educação
Física/UEM, v. 20, n. 1, p. 33–42, 2009.
Referências
116
[Carson e John 2004]CARSON, I.; JOHN, S. Introduction to modeling and simulation. In:
WINTER SIMULATION CONFERENCE. Proceedings of the 36th conference on Winter simulation. [S.l.], 2004. p. 9–16. ISBN 0780387864.
[Castelfranchi, Falcone e Marzo 2009]CASTELFRANCHI, C.; FALCONE, R.; MARZO, F.
Trust and Relational Capital. In: CITESEER. Social Networks and Multi-Agent Systems Symposium (SNAMAS-09). [S.l.], 2009.
[Caughlin 2000]CAUGHLIN, D. An integrated approach to verification, validation, and accredition of models and simulations. In: SOCIETY FOR COMPUTER SIMULATION INTERNATIONAL. Proceedings of the 32nd conference on Winter simulation. [S.l.], 2000. p.
872–881.
[Cerqueira et al. 2006]CERQUEIRA, A. et al. A versao 2006 da equipe poti de futebol de robos
o. II JRI-Jornada de Robótica Inteligente, 2006.
[Chang et al. 2005]CHANG, P. et al. From reality to mind: A cognitive middle layer of environment concepts for believable agents. Environments for Multi-Agent Systems, Springer, p.
57–73, 2005.
[Costa e Pegoraro 2000]COSTA, A.; PEGORARO, R. Construindo robôs autônomos para partidas de futebol: O time Guaraná. SBA Controle & Automação, v. 11, n. 3, p. 141–149, 2000.
[D e E 1996]D, A. J.; E, N. R. Independent verification and validation: A missing link in simulation methodology? Virginia Polytechnic Institute & State University, 1996.
[David et al. 2004]DAVID, N. et al. The structure and logic of interdisciplinary research in
agent-based social simulation. Journal of Artificial Societies and Social Simulation, Citeseer,
v. 7, n. 3, 2004.
[David et al. 2004]DAVID, N. et al. The structure and logic of interdisciplinary research in
agent-based social simulation. Journal of Artificial Societies and Social Simulation, 2004.
Disponível em: <http://jasss.soc.surrey.ac.uk/7/3/4.html>.
[David, Sichman e Coelho 2001]DAVID, N.; SICHMAN, J.; COELHO, H. Agent-based social
simulation with coalitions in social reasoning. Lecture Notes in Computer Science, Springer,
p. 244–266, 2001.
[Dennett 1987]DENNETT, D. The Intentional Stance. [S.l.]: MIT Press, 1987.
[Elfes 1989]ELFES, A. Using occupancy grids for mobile robot perception and navigation.
Computer, IEEE, v. 22, n. 6, p. 46–57, 1989.
[Fennel e Lesser 1977]FENNEL, R. D.; LESSER, V. Parallelism in artificial intelligence problem solving: A case study of gearsay ii. IEEE Transactions on Computers, v. 26, n. 2, p.
98–111, 1977.
[Ferber 2012]FERBER, J. MadKit User’s Guide? 2012. [Online; acessado em 10-Março-2012].
Disponível em: <http://www.madkit.org/>.
[Ferber, Michel e Baez 2005]FERBER, J.; MICHEL, F.; BAEZ, J. AGRE: Integrating environments with organizations. Environments for Multi-agent Systems, Springer, p. 48–56, 2005.
Referências
117
[França et al. 2009]FRANçA, R. dos S. et al. An agent-based simulation model for pedestrian
unidirectional movement. Second International Conference on the Applications of Digital Information and Web Technologies, Londres - UK, 2009.
[Gottifredi et al. 2010]GOTTIFREDI, S. et al. A bdi architecture for high level robot deliberation. Asociacicion Espanola para la Inteligencia Artificial (AEPIA), 2010. Disponível em:
<http://dialnet.unirioja.es/servlet/oaiart?codigo=3214348>.
[Hearn e Baker 2004]HEARN, D.; BAKER, M. Computer graphics with open gl, 3/e. ISBN:
0-13-015390-7, Prentice Hall, 2004.
[Helleboogh et al. 2007]HELLEBOOGH, A. et al. Modeling dynamic environments in multiagent simulation. Autonomous Agents and Multi-Agent Systems, Springer, v. 14, n. 1, p. 87–
116, 2007.
[Hewitt 1977]HEWITT, C. Viewing control structures as patterns of passing messages. Artificial Inteligence, v. 8, p. 323–364, 1977.
[Hubner e Sichman 2003]HUBNER, J.; SICHMAN, J. Aplicação de Organização de Sistemas
Multiagentes em Futebol de Robôs. São Paulo, p. 1–19, 2003.
[IPEM 2012]IPEM. Almanaque IPEM - São Paulo - Medidas Oficiais do Campo
de Futebol. 2012. [Online;
acessado em 10-Março-2012]. Disponível em:
<http://ipemsp.wordpress.com/2011/09/26/medidas-do-campo-de-futebol/>.
[Jr e Bianchi 2001]JR, L. M.; BIANCHI, R. Usando programação genética para evoluir agentes
jogadores de futebol de robôs. Revista FEI, 2001.
[Kraetzschmar et al. 2010]KRAETZSCHMAR, G. et al. The Ulm Sparrows: Research into sensorimotor integration, agency, learning, and multiagent cooperation. RoboCup-98: Robot Soccer World Cup II, Springer, p. 452–457, 2010.
[LUCENA et al. 2006]LUCENA, C. et al. Grandes desafios da pesquisa em computação no
brasil–2006–2016. Relatório. Porto Alegre: SBC, 2006.
[Lumosity 2011]LUMOSITY.
Slick
2D
Game
Library
based
LWJGL.
2011.
[Online;
accessed
15-março-2011].
Disponível
<http://slick.cokeandcode.com/static.php?page=about>.
on
em:
[Marietto et al. 2002]MARIETTO, M. et al. Em direção a uma nova classificação para a área
de inteligência artificial distribuída e sistemas computacionais relacionados. Proc. VIII Iberoamerican Conference on Artificial Intelligence (IBERAMIA), p. 229–238, 2002.
[Melo e Romero 2009]MELO, D.; ROMERO, R. O simulador 3d para futebol de robôs USPDS.
ICMCUSP. Relatório Técnico, 2009.
[Melo 1999]MELO, R. Sistemas e táticas para o Futebol. Editora Sprint, 1999.
[NetLogo]NETLOGO. Web site available at : http://ccl.northwestern.edu/netlogo/,
acessed in 10/17/2009. Disponível em: <http://ccl.northwestern.edu/netlogo/>.
[Odell 2002]ODELL, J. Objects and agents compared. J. of Object Technology, v. 1, n. 1, p.
41–53, 2002.
Referências
118
[Okuyama, Bordini e Costa 2005]OKUYAMA, F.; BORDINI, R.; COSTA, A. da R. Elms: An
environment description language for multi-agent simulation. Environments for Multi-Agent
Systems, Springer, p. 91–108, 2005.
[Penharbel et al.]PENHARBEL, E. et al. Time de futebol de robôs y04 do centro universitário
da fei.
[Pinto e Garganta 1996]PINTO, J.; GARGANTA, J. Contributo da modelação da competição e
do treino para a evolução do nível de jogo no futebol. Estratégia e táctica nos jogos desportivos colectivos, p. 83–94, 1996.
[Recuero et al. 2006]RECUERO, C. et al. Dinâmicas de redes sociais no Orkut e capital social.
Razón y palabra, n. 52, p. 11, 2006.
[Reis 2003]REIS, L. P. Coordenação em Sistemas Multi-Agentes: Aplicações na Gestão Universitária e Futebol Robótico. Tese (Doutorado) — FEUP, Portugal, 2003.
[Sargent 2005]SARGENT, R. Verification and validation of simulation models. In: WINTER
SIMULATION CONFERENCE. Proceedings of the 37th conference on Winter simulation.
[S.l.], 2005. p. 130–143.
[Sawyer 2003]SAWYER, R. K. Artificial societies: Multiagent systems and the micro-macro
link in sociological theory. Sociological Methods and Research, v. 31, p. 325–363, 2003.
[Shoham 1993]SHOHAM, Y. Agent oriented programming. Artif. Intell., Elsevier Science Publishers Ltd., Essex, UK, v. 60, n. 1, p. 51–92, 1993. ISSN 0004-3702.
[Silva 2011]SILVA, T. L. R. M. das Graças Bruno Marietto; André Filipe de Moraes
Batista; Robson dos Santos Francça; Alexandre Heideker; Emerson Aguiar Noronha;
Faábio Aragão da. Modeling artificial life through multi-agent based simulation. Faisal
Alkhateeb, Eslam Al Maghayreh and Iyad Abu Doush (Ed.), InTech, 2011. Disponível
em: <http://www.intechopen.com/articles/show/title/modeling-artificial-life-through-multiagent-based-simulation>.
[Sng, Gupta e Messom 2002]SNG, H.; GUPTA, G.; MESSOM, C. Strategy for collaboration in
robot soccer. delta, Published by the IEEE Computer Society, p. 347, 2002.
[Sun 2]SUN, J. Platform. Standard Edition, v. 1, p. 1, 2.
[Woo et al. 1999]WOO, M. et al. OpenGL programming guide. [S.l.]: Addison-Wesley Reading, MA, 1999.
[Wooldridge e Jennings 1995]WOOLDRIDGE, M.; JENNINGS, N. R. Intelligent agents: Theory and practice. The Knowledge Engineering Review, v. 10, n. 2, p. 51, 1995.
[Wooldrigde e Jennings 1995]WOOLDRIGDE, M.; JENNINGS, N. Intelligent agents: theories, architectures, and languages. Lecture Notes in Artificial Intelligence, v. 880, p. 1–22,
1995.
[Xavier, Barbosa e Matsuura 2006]XAVIER, R.; BARBOSA, R.; MATSUURA, J. O time de
futebol simulado itandroids 2d. In: Anais do XXVI Congresso da SBC, III Encontro de Robótica Inteligente (ENRI). [S.l.: s.n.], 2006.
Referências
119
[Yamamoto 2005]YAMAMOTO, M. Planejamento cooperativo de tarefas em um ambiente de
futebol de robôs. Tese (Doutorado) — Dissertaçao de mestrado, UFRN, Natal, RN, 2005.
Download

Simulador Multiagentes para a Coordenação de Agentes