Você está na página 1de 17

Aprendizagem por reforo em times de robs

Afra Shirley Mendivil, Ieda Maria de Lima Donada


Curso de Especializao em Inteligncia Computacional
Pontifcia Universidade Catlica do Paran
Curitiba, dezembro de 2005
Resumo
A aplicao de inteligncia em jogos de entretenimento muito util para tornar o
jogo mais interresante e prender a ateno do jogador. Este artigo vem demostrar a
utilizao de Aprendizagem por reforo(AR) em um rob desenvolvido no ambiente
Robocode, que pode combater sozinho ou em time. O uso de AR pde ampliar a
estratgia de movimentao e combate do rob.
1. Introduo
Em jogos de entretenimento a qualidade da interao com usurio de suma
importncia, isso pode ser medido atravs da capacidade do jogo em divertir o jogador.
Com esse propsito cada vez mais comum o desenvolvimento de sistemas que se
adaptam aos objetivos, comportamentos, preferenciais e hbitos de cada usurio. Fatores
como jogabilidade, enredo e em especial, a inteligncia artificial dos jogadores nohumanos, tambm chamados de agentes, podem proporcionar ao jogador uma
experincia divertida e muito mais interessante.
Muitas tcnicas podem ser utilizadas para ter a iluso de inteligncia em um jogo,
abordaremos aqui o uso de multiagentes, e o algoritmo de aprendizagem por reforo
(RL), por ser muito utilizado quando se deseja dar total autonomia ao agente tornando-o
capaz de aprender com base em informaes captadas no ambiente com o qual est
interagindo.
Este trabalho tem como objetivo desenvolver um rob no ambiente Robocode da
IBM, ultilizando aprendizado por reforo. Nesse ambiente possvel a criao de robs
tanques e simular batalhas, com o uso de aprendizagem por reforo prentende-se que o
rob adquira uma melhor estratgia de luta, alm de torn-lo capaz de reconhecer as
modificaes do ambiente e adaptar-se a elas. Isso se d com o uso de um sistema de
recompensas e punies (reforo), onde o objetivo do agente aprender a escolher aes
que tendem a aumentar a soma de valores de reforo.
Este artigo mostra algumas das vantagens da utilizao da aprendizagem por
reforo em uma estrutura multiagentes no ambiente robocode.
O artigo est organizado da seguinte maneira: a seo 2 apresenta um breve relato
sobre inteligncia artificial distribuda, e uma introduo aos sistemas multiagentes,
enquanto que a seo 3 trata o aprendizagem por reforo. Na seo 4 descrito o
ambiente a ser utilizado. Na seo 5 descrito o mtodo proposto e uma explicao
sobre a implementao do rob. A seo 6 traz a anlise dos resultados obtidos e por fim
a seo 7 apresenta as concluses.

2. Inteligncia Artificial Distribuda


A Inteligncia Artificial Distribuda (IAD) um subcampo da inteligncia
artificial que tem investigado modelos de conhecimento e tcnicas para resoluo de
problemas, em um ambiente composto por varias entidades que colaboram entre si. A
IAD enfatiza o estudo das aes e interaes entre estas entidades.
A IAD est dividida em: Soluo distribuda de problemas (SDP) e Sistemas
multiagentes (SMA), ambos usam o termo agente para as entidades que participam da
resoluo dos problemas. A diferena que o primeiro est focado no problema e seu
principal objetivo usar os recursos e tecnologia disponvel para solucion-los e o
segundo foca o meio, ou seja, os agentes, como possibilitar que esses pratiquem aes
cooperativas em sociedade.
Segundo (Correa apud Oliveira, 1996), um agente uma entidade autnoma que
funciona de um modo contnuo num ambiente formado por vrios processos. Como esses
agentes so autnomos, no haver interveno humana contnua em seu processamento.
Alm disso, esse agente deve possuir autodeterminao em relao ao meio ambiente em
que vive, que real e dinmico[1].
Graas a capacidade de interao entre agentes estes podem ser influenciados
entre si ou por alguma interao humana, quando esto realizando seus objetivos. Essa
interao pode ser direta atravs da utilizao de linguagens de comunicao,
proporcionando assim troca de informaes ou de modo indireto atravs do ambiente
onde est inserido como, por exemplo, quando observa outros agentes ou por modificar o
seu ambiente.
Na Resoluo Distribuda de Problemas (RDP), Distributed Problem-Solving, os
agentes so projetados para resolver tarefas especficas no podendo ser utilizados para
outras atividades mesmo que similares. Desta maneira, o nmero de agentes ser fixo,
sendo que cada agente possui uma viso especfica e incompleta do problema. Ento,
para a resoluo de um problema, os agentes devem cooperar entre si, compartilhando
conhecimento sobre o problema e sobre o processo de obter uma soluo.
A RDP surge como um estudo do fim para solucionar, atravs dos recursos
disponveis, os problemas distribudos.
2.1 Agente
Em um determinado sistema, denomina-se agente cada entidade dita ativa, esse
conjunto de agentes forma uma sociedade. Um agente recebe informaes e raciocina
sobre o ambiente, sobre outros agentes e decide quais aes deve realizar e quais
objetivos devem seguir. Um agente uma ente ativo ou seja, capaz de controlar suas
aes, diferentemente das noes estticas, tais como conjuntos de regras e bases de
conhecimento.
Um agente pode ainda ser definido por meio de suas propriedades fundamentais e
deve possuir um certo grau de autonomia para raciocinar e tomar suas prprias decises
alm de interagir com outros agentes. preciso que um agente possua independncia
para resolver um problema ou parte dele.
Muitas so as definies para agentes, a escolha de uma delas dependerar em
muito do domnio da aplicao, formas de cooperao e nveis de autonomia.
Em jogos de entretenimento e no jogo em questo o termo agente pode ser
definido como entidades com objetivos (no caso desta aplicao destruir o adversrio),
que podem detectar certas propriedades do ambiente (o radar fornece ao rob a
localizao do adversrio) e que podem executar aes especficas (atirar no inimigo,
recuar, desviar do adversrio etc).
Algumas das propriedades de um agente so:

Autonomia: tem suas tomadas de decises baseadas mais em experincias


passadas do que em conhecimento prvio inserido pelo programador.
Temporabilidade: pode optar ou no por permanecer no ambiente.
Comunicabilidade: h troca de informao com outros agentes ou com o
prprio ambiente.
Reatividade: capaz de reagir a mudanas do ambiente.
Mobilidade: capaz de se deslocar para ambientes diferentes do original.
Flexibilidade: aceita a interveno de outros agentes.
Pr-atividade: capaz de alm de responder aos estmulos do ambiente,
exibir um comportamento orientado a objetivos, tendo iniciativa.

Os agentes podem ser classificados em dois grupos: reativos e cognitivos. O


primeiro considera as informaes do ambiente para a tomada de deciso, no possui
memria para armazenar experincias, no planejam suas aes futuras, no se
comunicam com outros agentes, percebem as aes de outros membros do grupo atravs
das mudanas do ambiente agindo simplesmente por instinto, so baseados em modelos
de organizao biolgica como por exemplo as sociedades de abelhas e formigas. J o
segundo grupo pode aprender atravs de experincias e utilizar conhecimento adquirido
para auxiliar na tomada de deciso.
Os agentes cognitivos so baseados no modelo de comportamento social humano,
esses agentes possuem uma representao explicita do ambiente e dos membros da
comunidade e podem raciocinar sobre as aes tomadas no passado e planejar suas
futuras aes. Agentes cognitivos podem comunicar-se entre si diretamente, isto , seus
sistemas de percepo e de comunicao so distintos, o que no acontece nos reativos.
Podem interagir com os outros agentes atravs de linguagem e protocolos de
comunicao complexos. Esses agentes possuem um comportamento inteligente e podem
agir tanto em grupo como isoladamente.
2.2 Sistemas Multiagentes
Os sistemas multiagentes fornecem princpios para a construo de sistemas
complexos que envolvem agentes mltiplos e com mecanismos para a coordenao de
comportamentos dos agentes independentes. Nos sistemas multiagentes, os agentes so
entidades autnomas que tm conhecimento da sua prpria existncia e da existncia de
outros agentes e, portanto, colaboram uns com os outros para atingirem um objetivo
comum dentro de um ambiente. (Demazeau e Mller, 1990) e (Sichman et al., 1992)
colocam algumas consideraes importantes para a abordagem SMA:

Os agentes devem ser capazes de decompor as tarefas baseadas no


conhecimento que eles possuem de si prprios e dos outros agentes.
Como os agentes so autnomos, eles podem possuir metas prprias e decidir
o que fazer, a qualquer momento.
Os agentes possuem capacidade para resolver seus problemas e os problemas
que surgirem no ambiente.
Os agentes podem entrar e sair do ambiente a qualquer momento. Portanto,
em MAS os agentes devem ser capazes de modificar o conhecimento que
possuem dos outros agentes do ambiente.
Os agentes devem ser capazes de reconhecer modificaes no ambiente
quando estas ocorrerem, alterando sua representao interna do ambiente.

Os SMA podem ser classificados segundo o tipo de agente da seguinte forma:


Sistema Multiagentes Reativos: Formado por um conjunto de agentes reativos
seu modelo de funcionamento formado por um par estmulo-resposta. As principais
caractersticas so:

Representao implcita do conhecimento do ambiente e dos outros agentes.


No h representao do ambiente: o comportamento (resposta) de cada
agente baseado no que ele percebe (estmulo) a cada instante.
No h memria das aes: os agentes reativos no mantm nenhum tipo de
histrico de suas aes, ou seja, o resultado de uma determinada ao passada
no influencia diretamente na deciso de uma ao futura.
Organizao biolgica: a forma de organizao dos SMA reativos similar
observada por animais que vivem em grandes comunidades.
Grande nmero de membros: em geral, os SMA reativos possuem um grande
nmero de agentes, com populaes que podem chegar ordem de milhares
de membros.

Sistema Multiagentes Cognitivos: formado por um conjunto de agentes


cognitivos so baseadas em organizaes sociais humanas como grupos, hierarquias,
mercados. As principais caractersticas so:

Representao explicita do ambiente e dos outros agentes.


Podem manter um histrico de interaes e aes passadas e assim, so
capazes de planejar aes futuras.
Comunicao realizada de modo direto atravs do envio e recebimento de
mensagens.
Mecanismo de controle deliberativo. Raciocinam e decidem em conjunto
sobre quais aes devem ser executadas, que planos seguir e que objetivos
devem ser alcanados.
Seus modelos de de organizao so sociolgicos com da organizao
humana.
Um SMA cognitivos composto por poucos agentes.

3. Aprendizagem por reforo


A aprendizagem por reforo o aprendizado do mapeamento de estados em aes
para maximizar uma recompensa ou um sinal de reforo. O aprendizado deve descobrir
que aes resultam no maior retorno. O algoritmo de aprendizado baseado na teoria de
recompensa/punio, ou seja, o conhecimento formado por tentativa e erro atravs da
interao com o ambiente e, principalmente, sem ser necessrio especificar como as
tarefas devem ser executadas[2] .
Em outras palavras consiste em aprender o que fazer, como mapear situaes em
aes, para maximizar uma recompensa (sinal de ganho). Ao aprendiz no dito que
aes tomar, como na maioria das formas de aprendizagem de mquina, mas cabe a este
descobrir que aes rendem maior recompensa por interao. Em alguns casos as aes
podem afetar no somente recompensas imediatas, mas tambm as futuras e, com ela,
todas as recompensas subseqentes. Estas duas caractersticas, aprendizado por
interao (tentativa e erro) e retorno atrasado, so as duas caractersticas mais
importantes da aprendizagem por reforo.

Aprendizagem por reforo no caracterizada por mtodos de aprendizagem, mas


por meio de um problema de aprendizagem. Todo mtodo que serve bem para resolver
esse problema considerado como um mtodo de Aprendizagem por reforo, mas a idia
bsica simplesmente capturar os aspectos mais importantes do problema real
enfrentado por um agente de aprendizagem que interage com seu ambiente para
conseguir um objetivo. Claramente, tal agente deve poder detectar o estado do ambiente
e deve poder examinar as aes que afetam o estado. O agente tambm deve ter um ou
mais objetivos que se relacionam ao estado do ambiente. A formulao inclui os
aspectos percepo, ao, e objetivo para interagir com o ambiente.
A aprendizagem por reforo diferencia-se da aprendizagem supervisionada por
no possuir um supervisor externo que lhe fornea exemplo para a aprendizagem, o que
no adequado quando se deseja que o agente aprenda a interagir sozinho. Em
problemas interativos pouco prtico obter os exemplos do comportamento desejado que
so correes e representaes de todas as situaes em que o agente tem que agir. Em
territrios desconhecidos -- onde se espera uma aprendizagem mais benfica -- um
agente deve poder aprender com sua prpria experincia. [3]
O modelo padro da aprendizagem por reforo consiste de um agente que
conectado ao seu ambiente por meio de sensores e motores (percepes e aes). A cada
passo da interao, atravs dos sensores o agente recebe a entrada i, que determina o
estado atual s do ambiente, o agente ento escolhe uma ao a para gerar uma sada que
gerada pelos atuadores (figura).

Figura1. Agente.
O estado alterado com a execues de uma ou mais aes e o estado atual
avaliado e comunicado ao agente atravs de um reforo. O mdulo B determina o
comportamento do agente, este escolhe qual ao aumenta o valor de reforo.
Ento desse modo o modelo consiste de:

Um conjunto de estados S, onde s S.


Um conjunto de aes A, onde a A.
Os reforos escalares, valores entre [0 e 1].

O agente deve encontrar a poltica , que definida como o mapeamento de


estados em aes, que maximizam as medidas de reforo.

3.1 Caractersticas da Aprendizagem por Reforo


Como descrito acima a aprendizagem por reforo possui duas caractersticas
fundamentais: o aprendizado por interao e o retorno atrasado. Segue algumas das
caractersticas do AR.
Aprendizado por Interao
Principal caracterstica que define um problema de AR. O agente age no ambiente
e aguarda o valor de reforo que o ambiente retorna de acordo com a ao tomada esse
valor deve ser guardado para a tomada de decises posteriores.
Retorno Atrasado
Nem sempre o agente de posse do valor de reforo mximo toma a melhor
deciso, pois uma ao produto de uma deciso local do ambiente e o AR busca
alcanar objetivos globais. Assim as aes tomadas devem maximizar o retorno total, ou
seja a qualidade das aes tormadas medida pelo retorno longo prazo.
Orientado a Objetivo
O problema tratado considerado como um ambiente que d respostas em funo
das aes efetuadas, no sendo necessrio conhecer detalhes da modelagem desse
ambiente. O agente interage com um ambiente incerto tentando alcanar um objetivo que
geralmente otimizar algum comportamento dentro do ambiente.
Exploration X Exploitation
Um dos desafios da AR o dilema exploration-exploitation ou a escolha entre
explorar outras possibilidades ou tomar uma ao que traga um maior retorno imediato.
Para obter recompensa um agente deve preferir as aes que tentou no passado e que lhe
parea eficaz. Mas para descobrir tais aes deve tentar as que j selecionou antes. O
agente deve explorar para obter recompensa mais tambm deve selecionar as melhores
aes futuras. O dilema que tanto o explotation quanto o exploration no pode ser
seguida sem que o agente falhe muitas vezes, visto que o agente precisa experimentar
uma variedade de aes e progressivamente favorecer as que lhe parecerem melhores.
O dilema da exploration-exploitation bem conhecido na rea de Algortimos
Gneticos(Goldberg, 1989), e carcacterizado como o conflito entre tirar proveito das
boas informaes j descobertas (cruzamento) e buscar novas informaes (mutao)
(Holland, 1975).
3.2 Elementos da Aprendizagem por Reforo
Basicamente um sistema de AR constituido de um agente interagindo com o
ambiente como indicado na figura 2, durante a interao o agente seleciona as aes a
serem tomadas de acordo com suas percepes do ambiente, essas aes de alguma
forma acabam mudando o ambiente, e essas mudanas so comunicadas ao agente por
meio de um sinal de reforo.

Figura 2. Diagrama de um sistema bsico de Aprandizado por Reforo


Alm do agente e do ambiente podemos identificar quatro sub-elementos
principais de um sistema de aprendizagem por reforo: uma poltica, uma funo de
reforo, uma funo de valor e opcionalmente um modelo do ambiente.
Poltica
Expressa o comportamento seguido pelo sistema para alcanar um determinado
objetivo ou seja a maneira como o agente de aprendizado comporta-se em um dado
estado. Em termos de AR, uma poltica o mapeamento de estados s em aes a,
tomadas naquele estado, em valor (s,a) que representa a probabilidade de tomar a ao
a quando no estado s. Assim sendo o sistema sofrer variaes de acordo com as
polticas empregadas pelo agente; um sistema de AR deve procurar por uma poltica
tima afim de encontrar a soluo do problema de forma tima. A poltica tima
expresa por (s,a).
Em termos da psicologia correspode ao chamado jogo de regras ou associao de
estmulos-respostas. Em alguns casos a poltica pode ser uma tabela simples ou uma
funo extensiva, ou como em outros casos pode envolver um processo computacional
mais complexo como algortimos de busca. A poltica pode ser vista como o ncleo de
um agente na Aprendizagem por Reforo visto que sozinho sufientemente capaz de
determinar o comportanmento.
Funo de Reforo
O reforo um sinal do tipo escalar representado por r t+1 que devolvido pelo
ambiente ao agente, assim que uma ao tenha sido efetuada e uma trasio de estados
st > s t+1 tenha ocorrido. Este reforo pode ser definido de diferentes formas para cada
estado do ambiente, gerando funes de reforo que expressam o objetivo que o sistema
deve alcanar.
O uso de um sinal de reforo uma caractersticas que distiguem os mtodos de
aprendizagem por reforo.
Em outras palavras uma funes de reforo traa cada estado ou par de estadoao percebido no ambiente a um nico nmero, uma recompensa (reforo) indicando a
vantagem desse estado. Como o objetivo de um agente de aprendizagem por reforo
maximizar o valor de recompensa total recebida a longo prazo, a funo de reforo vem
para definir quais so os eventos positivos e negativos para o agente. A funo de reforo
deve necessariamente ser inalterada pelo agente. No entanto pode servir como base para
alterar a poltica. Exemplo, se uma ao selecionada pela poltica for seguida por uma

recompensa baixa, ento esta pode ser mudada para selecionar alguma outra ao nessa
situao no futuro.
Funo de valor
Visto que uma funo de reforo define o que positivo em um sentido imediato,
uma funo de valor especifica o que positivo a longo prazo. O valor de um estado a
quantidade total de recompensa que um agente espera acumular sobre o futuro, partindo
desse estado. Os reforos determinam vantagens imediatas, intrinsecas de estados
ambientais, j os valores indicam vantagens a longo prazo do estado aps tomado em
considerao os estados que so provveis seguir, e dos reforos disponveis nestes
estados. Por exemplo, um determinado estado pode sempre gerar uma recompensa baixa
mais ainda assim ter um valor elevado devido ser seguido por outros estados que rendem
recompensas elevadas. Valores e reforos esto interligados pois no poderia haver
nenhum valor se no houvesse antes reforos, e a nica finalidade de estimar valores
conseguir recompensa. No entanto, ao se fazer e avaliar decises so os valores o que
mais interessa, pois as escolhas das aes so realizadas tomando como base o
julgamento do valor. Deve-se avaliar quais aes causam valores mais elevados e no os
reforos mais elevados, pois estas aes em um funcionamento a longo prazo obteriam
uma quantidade maior de recompensa.
de suma importncia a escolha de um mtodo eficiente para estimar valores
pois infelizmente, muito mais difcil determinar valores do que reforo, visto que os
reforos so dados diretamente pelo ambiente, enquanto que os valores devem ser
estimados pela seqncias das observaes do agente durante toda a sua existncia.
Modelo do ambiente
Um modelo do ambiente nada mais do que uma simulao do comportamento
do ambiente. Por exemplo, dado um par estado-ao o modelo pode predizer o estado e o
reforo seguintes. Os modelos so usados para o planejamento de todas as posveis
maneiras de deciso em um curso de ao considerando situes futuras antes destas
serem experimentadas. A incorporao de um modelo do ambiente e do planejamento em
sistemas de aprendizagem por reforo um processo relativamente novo.
3.3 Q-Learning
Um sistema que utiliza aprendizagem por reforo constitui-se basicamente de um
agente interagindo em um ambiente atravs de percepo e ao, ou seja, o agente
percebe as situaes dadas no ambiente e executa uma ao que de alguma forma
transforma esse ambiente e seu estado, a cada ao atribuda uma recompensa. O
algoritmo Q-learning [3] tenta estimar as recompensas que o agente recebe se executar
uma ao especfica em um estado especfico. Estas estimativas so computadas
enquanto o agente interage no ambiente e a AR pode ser usada para especificar quando o
agente deve aprender durante essa interao. Supondo que o agente execute a ao a no
estado s, recebe as recompensas r, observa que o ambiente se move para um novo estado
se o agente estimar as recompensas para executar a ao a no estado s, pode melhorar
essa estimativa atualizando o novo estado, isso se da pela equao:
Q(at ,st) = Q(at ,st) + [rt+1 + maxa [Q( st+1 ,)]-Q(st ,at) onde:

Q(at ,st) representa a funo de valor do estado atual,


rt+1 valor de reforo imediato,

a taxa de parmetro de aprendizagem que controla como o agente atualiza


suas estimativas e,
um fator de desconto.
maxa [Q( at+1 ,)]-Q(st ,at) a diferena entre a maxima funo de valor no
estado seguinte e o valor de funo do estado atual.

Ao selecionar a ao que maximize a funo de valor seguinte, permite que se


encontre de uma maneira simples a funo de valor estimada.
A equao anterior representa a propagao das informaes sobre as
recompensas que podem ser alcanadas na atualizao do novo estado em relao ao
estado precedente, onde associada a ao a qual foi executado pelo agente.
O parmetro da taxa de aprendizagem encontra-se na escala [0 e 1], e quanto
maior o seu valor, mais rapidamente o agente aprende. No entanto, se o agente aprende
de forma mais lenta maior ser seu desempenho tendo em vista, que este tenha que
revisar cada estado e examinar cada ao inmeras vezes antes que possa associar as
recompensas recebidas a cada ao em um determinado estado. O fator de desconto
encontra-se na mesma escala e controla em quanto tempo o agente visualizar as
recompensas de acordo com suas aes.
O algoritmo Q-learning de forma seqencial descrito a seguir:
Para cada s,a inicialize Q(s,a)=0
Observe s
Repita
Selecione ao a usando a poltica de aes atual
Execute a ao a
Receba a recompensa imediata r(s,a)
Observe o novo estado s
Atualize o item Q(s,a) de acordo com a equao:
Q(at ,st) = Q(at ,st) + [rt+1 + maxa [Q( st+1 ,)]-Q(st ,at)
s s
At que o critrio de parada seja satisfeito.
Segundo Watkins[3], se cada par estado-ao for experimentado um nmero
suficientemente grande de vezes e decrescer apropriadamente, as funes de valores-Q
iro convergir com probabilidade um para Q* e a poltica ir convergir para uma poltica
tima. Infelizmente, a convergncia dos algoritmos de AR s pode ser atingida aps uma
extensiva explorao do espao de estados-aes, que geralmente demorada.
Entretanto, a velocidade de convergncia de um algoritmo de AR pode ser acelerada ao
se utilizar funes heursticas para guiar a explorao do espao de estados-aes.
4. Ambiente Robocode
Trata-se de um jogo estratgico para computador sobre guerras de robs, onde
voc cria e projeta tanques virtuais que batalham at a morte. O Robocode foi
desenvolvido pela AlphaWorks uma diviso da IBM voltada a difuso de novas
tecnologias de desenvolvimento para ser uma maneira divertida de se aprender a
linguagem de programao JAVA.
O ambiente fcil de usar e pode rodar em qualquer plataforma que suporte Java
2. O jogador pode utilizar as classes bases disponveis no ambiente para criar seu rob
permitindo a movimentao do rob, a localizao e extermnio do adversrio, pode
ainda criar algoritmos mais complexos para predizer a posio do inimigo e assim torna-

lo mais feroz. Nessa aplicao usaremos o algoritmo de aprendizagem por reforo para
introduzir inteligncia ao rob.
O ambiente Robocode possui algumas regras bsicas que nesse projeto foram
utilizadas para atribuio do reforo no algoritmo de aprendizado. So elas:

A batalha pode ser configurada: o jogador decide a quantidade de rounds, o


tamanho da arena em pixels e com quais robs lutar. Pode ainda visualizar o
nome dos robs (o nome aparece na parte de baixo do rob), a quantidade de
energia, seus radares e permite a mudana da cor do rob.
O rob pode movimentar-se para frente ou para trs e pode fazer curva. O
canho(Gun) pode virar no sentido horrio e anti-horrio em 360 graus, e dar
tiros(Bullet) de fora >0 e <=3. O rob inicializado com energia igual a 100,
quando esta chega a 0 o rob torna-se desabilitado (Disabled), perde seus
movimentos e facilmente destrudo. O rob "cego", a nica coisa que ele v
so os robs adversrios scaneados pelo radar (Radar), que no pode enxergar os
tiros.
Todos os robs que jogam em batalhas individuais comeam cada round com
energia igual a 100, e os que ficarem com energia abaixo de 0 vo sendo
eliminados (explodem) restando apenas um, e ento comea um novo round. No
fim de todos os rounds a batalha acaba e aparece uma tabela mostrando a
pontuao e a colocao.
O rob perde energia quando:

Bate na parede: (energia) 1;


Bate em outro rob (os dois perdem): (energia) 1;
Quando atira: (energia) (poder_do_tiro);
Quando leva um tiro: (energia) - (4 * poder_do_tiro_advesrio).

O rob ganha energia quando:

Acerta um tiro no adversario: (energia) + (2 * (energia perdida do adversrio


poder do tiro).

5. Mtodo de desenvolvimento do RLRobot


Esse trabalho tem como objetivo desmostrar o funcionamento do algoritmo de
aprendizagem por reforo. Para isso foi desenvolvido o rob RLRobot no ambiente
Robocode, o uso desse algoritmo propicia que o agente interaja com o ambiente e apartir
da possa extrair conhecimento para melhor tomada de deciso.
Um agente de Aprendizagem por reforo interage em um ambiente e aprende
atravs de experimentao-e-erro para que este possa chegar a poltica tima
importante que seus estados, aes e recompensas estejam bem definidos.
5.1 Estados
O RLRobot possui as seguintes variveis que caracterizam os estados:
5.1.1 DistanciaInimigo
Este estado indica a distncia do rob em relao ao adversrio foi feito uma
tabela onde os valores foram discretizados em uma escala de 0 19 conforme a tabela 1.

Distncia

Contnuo
Discreto
d<30
0
1
30 d < 60
2
60 d < 90
...
...
19
570 d
Tabela 1: Valores discretizados da distncia do inimigo
5.1.2 AnguloAlvo
Define a direo em que o rob deve atirar, esta definida em valores discretos
de 0 3 e representam ngulos de 0 a 360, como demostrado na figura 3.
0

270

90

2
180
Figura 3: Representao dos valores discretizados do ngulo.
5.1.3 DirecaoRobo
Indica a direo do rob em relao a arena, est definido em valores discretos
entre 0 e 3, conforme mostrado acima na figura 3.
5.1.4 Perigo
Define se existem ou no adversrios na batalha, foram definidos dois valores, 0
indica que no possui adversrios e 1 que possui.
5.1.5 AtingeParede
Indica se o rob atingiu a parede representado por 0 (no atingiu) e 1(atingiu).
5.1.6 AtingidoPorBala
Indica se o rob foi atingido por bala, este estado possui dois valores, 0 (no foi
atingido) e 1 (foi atingido);
5.1.7 ColisaoRobo
Indica se o rob colidiu com outro rob, possui dois valores, 0 ( no colidiu) e 1
(coliso).

5.1.7 PosicaoArena
Indica a posio da arena em que o rob se encontra, esta arena foi dividida em 9
partes conforme figura 4;
6

Figura 4: Representao da arena


No final de cada round gravado em um arquivo os valores de reforos
conseguidos referente a cada par estado-ao utilizado no round. Para o rob h um total
de 46080 (20 x 2 x 2 x 2 x 2 x 4 x 9 x 4) estados possveis, dando um total de 368.640
(46080 x 8 estados) entradas no arquivo.
A discretizao dos estados DistanciaInimigo, AnguloAlvo e DirecaoRobo foi
baseada em [11].
5.2 Aes
O RLRobot possui as seguintes aes de movimentao do rob:

MovFrente - movimenta-se para frente.


MovTraz - movimenta-se para trs.
GiraDireita - gira a direita.
GiraEsquerda gira a esquerda.
MovFrenteGiraDireita - movimenta-se para frente e gira a direita.
MovFrenteGiraEsquerda movimenta-se para frente e gira a esquerda.
MovTrazGiraDireita movimenta-se para trs e gira a direita.
MovTrazGiraEsquerda - movimenta-se para trs e gira a esquerda.
PedirAjuda pede ajuda, envia mensagem para todos os integrantes do time com
as suas coordenadas.
Ajudar desloca-se at o amigo e ajuda a combater o inimigo que est atingindo
amigo.

No anexo I consta uma tabela indicando os estados e aes referentes a este trabalho.
5.3 Recompensas
Para o aprendizado foram estabelecidas recompensas nos seguintes casos:
Positivas

Quando RLRobot atingir um adversrio h uma mudana em sua energia, sua


recompensa representada por esse aumento de energia.
Negativas
Quando o rob bate na parede este recebe uma recompensa negativa;
Se colidir com outro rob uma recompensa negativa lhe atribuda;
Em casos em que os tiros so perdidos, tanto quando atingir a parede ou quando
atingir outro tiro.
Quando o rob for atingido por tiro tambm recebe uma recompensa negativa.

6. Implementao
Para o desenvolvimento do RLRobot foram utilizadas as classes:
Acao Classe onde esto definidas as aes do rob
Estado Classe onde esto definidos os estados do rob
Alvo Classe onde esto definidas as informaes do alvo
Aprendizagem Classe onde est definido o algoritmo Q-learning e todos os
mtodos que necessitamos para aprendizagem.
Tabela Classe que possui todos os mtodos para inicializar e atualizar a tabela
com os dados do aprendizado.
RLRobot Classe principal, que possui tratamento para todos os eventos do rob
e as heursticas, atravs desta classe que todas as outras so chamadas.
Todos os movimentos do rob so definidos atravs do aprendizado por reforo,
para isso no mtodo principal do rob foi criado um loop que chama a funo
movimentoRobo, esta passa para a classe de aprendizagem o estado e retorna a ao que
deve ser executada. A cada rob adversrio detectado chamada a funo de tiro. Para
que o rob tivesse uma melhor performance no momento do combate foi includa uma
verificao de energia do rob e a distncia com relao ao inimigo para estabelecer o
poder de tiro, desta forma evita-se o desperdcio de energia. Quando jogando em time o
rob necessita reconhecer seus integrantes, para impedir que este atire em um
companheiro, foi utilizada uma funo do ambiente robocode que identifica integrantes
do time. Para auxiliar na deciso foi criado o estado perigo quer identifica se o rob
scaneado faz parte ou no do mesmo time.
O RLRobot grava a tabela de aprendizado em um arquivo, quando em time os
componentes gravam em arquivos separados, a fim de evitar desperdcio de aprendizado,
foi criado um programa auxiliar para unificar os aprendizados em um nico arquivo.
7. Resultados Alcanados
Aps o treinamento o rob pode aprender a no colidir com as paredes e com outros
robs. Este tentou tambm desviar-se dos adversrios e evitou ser atingido por bala.
Quando jogando em time o rob procurou no atirar em um rob pertecente ao mesmo
time, pode-se notar ainda que sua performece pde ser muito superior com relao aos
robs com o qual foi treinado, tanto em time quanto em batalhas em que jogou sozinho.
Para o aprendizado do RLRobot foi feito um treinamento com 12.000 rounds
utilizando o rob Jointstrike, adquirido no site repositrio do robocode, este rob foi
escolhido devido as suas boas tticas de combate, este no possu tcnicas de
aprendizado. Os grficos abaixo demostram o desempenho do rob utilizando a base sem
e com treinamento.

Score

Resultado com a base sem treinamento


50000
45000
40000
35000
30000
25000
20000
15000
10000
5000
0

100 Rounds

Jo inStrike

RLRo bo t

Robs

Grfico 1: Desempenho dos robs com a base sem treinamento


Em um total de 100 rounds o RLRobot obteve o score final de 43.453 contra
29.711 do rob JoinStrike.

Score

Resultado com a base treinada


50000
45000
40000
35000
30000
25000
20000
15000
10000
5000
0

100 Rounds

Jo inStrike

RLRo bo t

Robs

Grfico 2: Desempenho dos robs com a base treinada


J com a base treinada o RLRobot obteve o score final de 45.077 contra 23.628
do rob JoinStrike.
A seguir apresentado os resultados de 500 rounds com base no treinada
utilizando o rob JoinStrike e o rob Blindman, este com tticas de ataque inferiores as
tticas do JoinStrike.

Resultado com a base sem treinamento


250000

Score

200000
150000
500 Rounds

100000
50000
0
Jo inStrike

RLRo bo t

Robs

Grfico 3: Desempenho contra o JoinStrike em 500 rounds.


O RLRobot obteve nesta batalha o score final de 212209 contra 152478 do rob
JoinStrike.

Resultado com a base sem treinamento


300000
250000

Score

200000
150000

500 Rounds

100000
50000
0
B lindman

RLRo bo t

Robs

Grfico 4: Desempenho na batalha contra o rob Blindman em 500 rounds.


De acordo com score final o RLRobot obteve nesta batalha 262.002 contra 66.308
do Blindman.
O RLRobot perdeu os primeiros rounds devido a uma ttica de movimentao
diferente do Blindman, mas com o passar dos rounds superou o Blindman.
Os Resultados mostraram que o RLRobot obteve melhores resultados com a base
treinada, para treinar a base foram executados 12.000 rounds contra o rob JoinStrike.
8. Concluso e trabalhos futuros
Neste trabalho desmostrou-se o funcionamento do algoritmo de aprendizagem por
reforo(AR) dentro ambiente Robocode. Esta uma tcnica muito interessante para
solucionar uma variedade de problemas de controle e planejamento quando no existem
modelos disponveis a priori, j que seus algoritmos tm a convergncia para uma
situao de equilbrio garantida, alm de permitirem o aprendizado de estratgias de
controle adequadas. Em jogos de entreterimento esta tcnica pode ser empregada com
sucesso, pois simulando inteligncia ao agente o jogo fica muito mais interessante e

atrativo. A fim de aprimorar este trabalho podem ser utilizados outros algoritmos de
aprendizado por reforo que possam acelerar o aprendizado, como por exemplo o
algoritmo SARSA.
9. Bibliografia
[1]

Jaques, Praticia Augustin. Agentes de software na monitorao da colaborao em


ambiente
telemticos
de
ensino.
Disponivl
em
:
http://www.inf.ufrgs.br/~pjaques/papers/dissertacao/cap3.ht. Acesso em 21/11/05
[2] Kaelbling, Lelie Pack, Michael L. Littman, and Andrew W. Moore, Reinforcement
learning: A survey. - Int. J. of Artificial Intelligence Research, pages 237-285,
1996
[3] Sutton ,Richard S; Barto ,Andrew G. Reinforcement Learning: An
Introduction.
Disponivl
em
http://www.cs.ualberta.ca/%7Esutton/book/ebook/the-book.html
Acesso em
15/09/05.
[4] Watkins,C. J. C. H. Learning from Delayed Rewards - PhD thesis, King's
College, Cambridge, UK, 1989.
[5] Santos, Alexandre Denes dos; Jnior, Eduardo Carlos Hamerski. Robocode: Uma
maneira simples e divertida de aprender Java. Disponivl em
http://www.ppgia.pucpr.br/~denes/ftp/artigos/robocode1.pdf.
Acesso
em
30/10/2005
Karla.
Reiforcement
Learning.
Disponivl
em
[6] Figueiredo,
http://www.ica.ele.puc-rio.br/cursos/download/TAIC-apostila_RL.pdf
Acesso
em 15/09/05.
[7] Bianchi, Reinaldo A. C.; Costa,Anna H. R. Uso de Heursticas para a
Acelerao do aprendizado por reforo.
http://www.unisinos.br/_diversos/congresso/sbc2005/_pdf/arq0179.pdf.
Acesso
em 23/11/05
[8] http://paginas.fe.up.pt/~eol/MARSiMA/RELATORIO/Teoria.html. Acesso em
30/10/05
[9] Hang,Tsang Hin. Reinforcement Learning in Robocode. Disponivl em
http://cs7132.comp.hkbu.edu.hk/~jiming/SCI3740/PROJECT20022003/N00010146/web%20page/Reinforcement%20Learning%20in%20Robocode
%20-%20Final%20Report.pdf . Acesso em 10/07/05.
[10] http://www.robocoderepository.com. Acesso em 01/12/2005.
[11] Stone, Peter; Veloso, Manuela. Multiagent Systems: A Survey from a Machine
Learning
perspective.
Disponivl
em.
http://www.cs.cmu.edu/afs/cs/usr/pstone/public/papers/97MAS-survey/revisedsurvey.html . Acesso em 10/10/2005

Anexo I

MovFrente

E
S
t
a
d
o
s

DistanciaInimigo

MovTraz

GiraDireita

Aes

GiraEsquerda MovFrenteGiraDi MovFrenteGira MovTrazGiraD MovTrazGiraE


reita
Esquerda
ireita
squerda

Perigo
AtingeParede
AtingidoPorBala
ColisaoRobo
AnguloAlvo
PosicaoArena
DirecaoRobo

Tabela 2: Estados X Aes

PedirAjuda

Ajudar