monografia-iedadonada-aframendivil

17
Aprendizagem por reforço em times de robôs Afra Shirley Mendivil, Ieda Maria de Lima Donada Curso de Especialização em Inteligência Computacional Pontifícia Universidade Católica do Paraná Curitiba, dezembro de 2005 Resumo A aplicação de inteligência em jogos de entretenimento é muito util para tornar o jogo mais interresante e prender a atenção do jogador. Este artigo vem demostrar a utilização de Aprendizagem por reforço(AR) em um robô desenvolvido no ambiente Robocode, que pode combater sozinho ou em time. O uso de AR pôde ampliar a estratégia de movimentação e combate do robô. 1. Introdução Em jogos de entretenimento a qualidade da interação com usuário é de suma importância, isso pode ser medido através da capacidade do jogo em divertir o jogador. Com esse propósito é cada vez mais comum o desenvolvimento de sistemas que se adaptam aos objetivos, comportamentos, preferenciais e hábitos de cada usuário. Fatores como jogabilidade, enredo e em especial, a inteligência artificial dos jogadores não- humanos, também chamados de agentes, podem proporcionar ao jogador uma experiência divertida e muito mais interessante. Muitas técnicas podem ser utilizadas para ter a ilusão de inteligência em um jogo, abordaremos aqui o uso de multiagentes, e o algoritmo de aprendizagem por reforço (RL), por ser muito utilizado quando se deseja dar total autonomia ao agente tornando-o capaz de aprender com base em informações captadas no ambiente com o qual está interagindo. Este trabalho tem como objetivo desenvolver um robô no ambiente Robocode da IBM, ultilizando aprendizado por reforço. Nesse ambiente é possível a criação de robôs tanques e simular batalhas, com o uso de aprendizagem por reforço prentende-se que o robô adquira uma melhor estratégia de luta, além de torná-lo capaz de reconhecer as modificações do ambiente e adaptar-se a elas. Isso se dá com o uso de um sistema de recompensas e punições (reforço), onde o objetivo do agente é aprender a escolher ações que tendem a aumentar a soma de valores de reforço. Este artigo mostra algumas das vantagens da utilização da aprendizagem por reforço em uma estrutura multiagentes no ambiente robocode. O artigo está organizado da seguinte maneira: a seção 2 apresenta um breve relato sobre inteligência artificial distribuída, e uma introdução aos sistemas multiagentes, enquanto que a seção 3 trata o aprendizagem por reforço. Na seção 4 é descrito o ambiente a ser utilizado. Na seção 5 é descrito o método proposto e uma explicação sobre a implementação do robô. A seção 6 traz a análise dos resultados obtidos e por fim a seção 7 apresenta as conclusões.

Upload: cristiano-marcal-toniolo

Post on 13-Dec-2015

3 views

Category:

Documents


0 download

DESCRIPTION

Robotica, IA, jogos...

TRANSCRIPT

Page 1: Monografia-IedaDonada-AfraMendivil

Aprendizagem por reforço em times de robôs

Afra Shirley Mendivil, Ieda Maria de Lima Donada

Curso de Especialização em Inteligência ComputacionalPontifícia Universidade Católica do Paraná

Curitiba, dezembro de 2005

Resumo

A aplicação de inteligência em jogos de entretenimento é muito util para tornar ojogo mais interresante e prender a atenção do jogador. Este artigo vem demostrar autilização de Aprendizagem por reforço(AR) em um robô desenvolvido no ambienteRobocode, que pode combater sozinho ou em time. O uso de AR pôde ampliar aestratégia de movimentação e combate do robô.

1. Introdução

Em jogos de entretenimento a qualidade da interação com usuário é de sumaimportância, isso pode ser medido através da capacidade do jogo em divertir o jogador.Com esse propósito é cada vez mais comum o desenvolvimento de sistemas que seadaptam aos objetivos, comportamentos, preferenciais e hábitos de cada usuário. Fatorescomo jogabilidade, enredo e em especial, a inteligência artificial dos jogadores não-humanos, também chamados de agentes, podem proporcionar ao jogador umaexperiência divertida e muito mais interessante.

Muitas técnicas podem ser utilizadas para ter a ilusão de inteligência em um jogo,abordaremos aqui o uso de multiagentes, e o algoritmo de aprendizagem por reforço(RL), por ser muito utilizado quando se deseja dar total autonomia ao agente tornando-ocapaz de aprender com base em informações captadas no ambiente com o qual estáinteragindo.

Este trabalho tem como objetivo desenvolver um robô no ambiente Robocode daIBM, ultilizando aprendizado por reforço. Nesse ambiente é possível a criação de robôstanques e simular batalhas, com o uso de aprendizagem por reforço prentende-se que orobô adquira uma melhor estratégia de luta, além de torná-lo capaz de reconhecer asmodificações do ambiente e adaptar-se a elas. Isso se dá com o uso de um sistema derecompensas e punições (reforço), onde o objetivo do agente é aprender a escolher açõesque tendem a aumentar a soma de valores de reforço.

Este artigo mostra algumas das vantagens da utilização da aprendizagem porreforço em uma estrutura multiagentes no ambiente robocode.

O artigo está organizado da seguinte maneira: a seção 2 apresenta um breve relatosobre inteligência artificial distribuída, e uma introdução aos sistemas multiagentes,enquanto que a seção 3 trata o aprendizagem por reforço. Na seção 4 é descrito oambiente a ser utilizado. Na seção 5 é descrito o método proposto e uma explicaçãosobre a implementação do robô. A seção 6 traz a análise dos resultados obtidos e por fima seção 7 apresenta as conclusões.

Page 2: Monografia-IedaDonada-AfraMendivil

2. Inteligência Artificial Distribuída

A Inteligência Artificial Distribuída (IAD) é um subcampo da inteligênciaartificial que tem investigado modelos de conhecimento e técnicas para resolução deproblemas, em um ambiente composto por varias entidades que colaboram entre si. AIAD enfatiza o estudo das ações e interações entre estas entidades.

A IAD está dividida em: Solução distribuída de problemas (SDP) e Sistemasmultiagentes (SMA), ambos usam o termo “agente” para as entidades que participam daresolução dos problemas. A diferença é que o primeiro está focado no problema e seuprincipal objetivo é usar os recursos e tecnologia disponível para solucioná-los e osegundo foca o meio, ou seja, os agentes, como possibilitar que esses pratiquem açõescooperativas em sociedade. Segundo (Correa apud Oliveira, 1996), um agente é uma entidade autônoma quefunciona de um modo contínuo num ambiente formado por vários processos. Como essesagentes são autônomos, não haverá intervenção humana contínua em seu processamento.Além disso, esse agente deve possuir autodeterminação em relação ao meio ambiente emque vive, que é real e dinâmico[1].

Graças a capacidade de interação entre agentes estes podem ser influenciadosentre si ou por alguma interação humana, quando estão realizando seus objetivos. Essainteração pode ser direta através da utilização de linguagens de comunicação,proporcionando assim troca de informações ou de modo indireto através do ambienteonde está inserido como, por exemplo, quando observa outros agentes ou por modificar oseu ambiente.

Na Resolução Distribuída de Problemas (RDP), Distributed Problem-Solving, osagentes são projetados para resolver tarefas específicas não podendo ser utilizados paraoutras atividades mesmo que similares. Desta maneira, o número de agentes será fixo,sendo que cada agente possui uma visão específica e incompleta do problema. Então,para a resolução de um problema, os agentes devem cooperar entre si, compartilhandoconhecimento sobre o problema e sobre o processo de obter uma solução.

A RDP surge como um estudo do “fim” para solucionar, através dos recursosdisponíveis, os problemas distribuídos.

2.1 Agente

Em um determinado sistema, denomina-se “agente” cada entidade dita ativa, esseconjunto de agentes forma uma sociedade. Um agente recebe informações e raciocinasobre o ambiente, sobre outros agentes e decide quais ações deve realizar e quaisobjetivos devem seguir. Um agente é uma ente ativo ou seja, capaz de controlar suasações, diferentemente das noções estáticas, tais como conjuntos de regras e bases deconhecimento.

Um agente pode ainda ser definido por meio de suas propriedades fundamentais edeve possuir um certo grau de autonomia para raciocinar e tomar suas próprias decisõesalém de interagir com outros agentes. É preciso que um agente possua independênciapara resolver um problema ou parte dele.

Muitas são as definições para agentes, a escolha de uma delas dependerar emmuito do domínio da aplicação, formas de cooperação e níveis de autonomia.

Em jogos de entretenimento e no jogo em questão o termo “agente” pode serdefinido como entidades com objetivos (no caso desta aplicação destruir o adversário),que podem detectar certas propriedades do ambiente (o radar fornece ao robô alocalização do adversário) e que podem executar ações específicas (atirar no inimigo,recuar, desviar do adversário etc).

Algumas das propriedades de um agente são:

Page 3: Monografia-IedaDonada-AfraMendivil

• Autonomia: tem suas tomadas de decisões baseadas mais em experiênciaspassadas do que em conhecimento prévio inserido pelo programador.

• Temporabilidade: pode optar ou não por permanecer no ambiente.• Comunicabilidade: há troca de informação com outros agentes ou com o

próprio ambiente.• Reatividade: capaz de reagir a mudanças do ambiente.• Mobilidade: capaz de se deslocar para ambientes diferentes do original.• Flexibilidade: aceita a intervenção de outros agentes.• Pró-atividade: capaz de além de responder aos estímulos do ambiente,

exibir um comportamento orientado a objetivos, tendo iniciativa.

Os agentes podem ser classificados em dois grupos: reativos e cognitivos. Oprimeiro considera as informações do ambiente para a tomada de decisão, não possuimemória para armazenar experiências, não planejam suas ações futuras, não secomunicam com outros agentes, percebem as ações de outros membros do grupo atravésdas mudanças do ambiente agindo simplesmente por instinto, são baseados em modelosde organização biológica como por exemplo as sociedades de abelhas e formigas. Já osegundo grupo pode aprender através de experiências e utilizar conhecimento adquiridopara auxiliar na tomada de decisão.

Os agentes cognitivos são baseados no modelo de comportamento social humano,esses agentes possuem uma representação explicita do ambiente e dos membros dacomunidade e podem raciocinar sobre as ações tomadas no passado e planejar suasfuturas ações. Agentes cognitivos podem comunicar-se entre si diretamente, isto é, seussistemas de percepção e de comunicação são distintos, o que não acontece nos reativos.Podem interagir com os outros agentes através de linguagem e protocolos decomunicação complexos. Esses agentes possuem um comportamento inteligente e podemagir tanto em grupo como isoladamente.

2.2 Sistemas Multiagentes

Os sistemas multiagentes fornecem princípios para a construção de sistemascomplexos que envolvem agentes múltiplos e com mecanismos para a coordenação decomportamentos dos agentes independentes. Nos sistemas multiagentes, os agentes sãoentidades autônomas que têm conhecimento da sua própria existência e da existência deoutros agentes e, portanto, colaboram uns com os outros para atingirem um objetivocomum dentro de um ambiente. (Demazeau e Müller, 1990) e (Sichman et al., 1992)colocam algumas considerações importantes para a abordagem SMA:

• Os agentes devem ser capazes de decompor as tarefas baseadas noconhecimento que eles possuem de si próprios e dos outros agentes.

• Como os agentes são autônomos, eles podem possuir metas próprias e decidiro que fazer, a qualquer momento.

• Os agentes possuem capacidade para resolver seus problemas e os problemasque 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 quepossuem dos outros agentes do ambiente.

• Os agentes devem ser capazes de reconhecer modificações no ambientequando estas ocorrerem, alterando sua representação interna do ambiente.

Page 4: Monografia-IedaDonada-AfraMendivil

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

Sistema Multiagentes Reativos: Formado por um conjunto de agentes reativosseu modelo de funcionamento é formado por um par estímulo-resposta. As principaiscaracterísticas são:

• Representação implícita do conhecimento do ambiente e dos outros agentes.• Não há representação do ambiente: o comportamento (resposta) de cada

agente é baseado no que ele percebe (estímulo) a cada instante.• Não há memória das ações: os agentes reativos não mantêm nenhum tipo de

histórico de suas ações, ou seja, o resultado de uma determinada ação passadanão influencia diretamente na decisão de uma ação futura.

• Organização biológica: a forma de organização dos SMA reativos é similar àobservada por animais que vivem em grandes comunidades.

• Grande número de membros: em geral, os SMA reativos possuem um grandenúmero de agentes, com populações que podem chegar à ordem de milharesde membros.

Sistema Multiagentes Cognitivos: formado por um conjunto de agentescognitivos são baseadas em organizações sociais humanas como grupos, hierarquias,mercados. As principais características são:

• Representação explicita do ambiente e dos outros agentes.• Podem manter um histórico de interações e ações passadas e assim, são

capazes de planejar ações futuras.• Comunicação é realizada de modo direto através do envio e recebimento de

mensagens.• Mecanismo de controle deliberativo. Raciocinam e decidem em conjunto

sobre quais ações devem ser executadas, que planos seguir e que objetivosdevem ser alcançados.

• Seus modelos de de organização são sociológicos com da organizaçãohumana.

• Um SMA cognitivos é composto por poucos agentes.

3. Aprendizagem por reforço

A aprendizagem por reforço é o aprendizado do mapeamento de estados em açõespara maximizar uma recompensa ou um sinal de reforço. O aprendizado deve descobrirque ações resultam no maior retorno. O algoritmo de aprendizado é baseado na teoria derecompensa/punição, ou seja, o conhecimento é formado por tentativa e erro através dainteração com o ambiente e, principalmente, sem ser necessário especificar como astarefas devem ser executadas[2] .

Em outras palavras consiste em aprender o que fazer, como mapear situações emações, para maximizar uma recompensa (sinal de ganho). Ao aprendiz não é dito queações tomar, como na maioria das formas de aprendizagem de máquina, mas cabe a estedescobrir que ações rendem maior recompensa por interação. Em alguns casos as açõespodem afetar não somente recompensas imediatas, mas também as futuras e, com ela,todas as recompensas subseqüentes. Estas duas características, aprendizado porinteração (tentativa e erro) e retorno atrasado, são as duas características maisimportantes da aprendizagem por reforço.

Page 5: Monografia-IedaDonada-AfraMendivil

Aprendizagem por reforço não é caracterizada por métodos de aprendizagem, maspor meio de um problema de aprendizagem. Todo método que serve bem para resolveresse problema é considerado como um método de Aprendizagem por reforço, mas a idéiabásica é simplesmente capturar os aspectos mais importantes do problema realenfrentado por um agente de aprendizagem que interage com seu ambiente paraconseguir um objetivo. Claramente, tal agente deve poder detectar o estado do ambientee deve poder examinar as ações que afetam o estado. O agente também deve ter um oumais objetivos que se relacionam ao estado do ambiente. A formulação inclui osaspectos percepção, ação, e objetivo para interagir com o ambiente.

A aprendizagem por reforço diferencia-se da aprendizagem supervisionada pornão possuir um supervisor externo que lhe forneça exemplo para a aprendizagem, o quenão é adequado quando se deseja que o agente aprenda a interagir sozinho. Emproblemas interativos é pouco prático obter os exemplos do comportamento desejado quesão correções e representações de todas as situações em que o agente tem que agir. Emterritórios desconhecidos -- onde se espera uma aprendizagem mais benéfica -- umagente deve poder aprender com sua própria experiência. [3]

O modelo padrão da aprendizagem por reforço consiste de um agente que éconectado ao seu ambiente por meio de sensores e motores (percepções e ações). A cadapasso da interação, através dos sensores o agente recebe a entrada i, que determina oestado atual s do ambiente, o agente então escolhe uma ação a para gerar uma saída que égerada pelos atuadores (figura).

Figura1. Agente.

O estado é alterado com a execuções de uma ou mais ações e o estado atual éavaliado e comunicado ao agente através de um reforço. O módulo B determina ocomportamento do agente, este escolhe qual ação aumenta o valor de reforço.

Então desse modo o modelo consiste de:

• Um conjunto de estados S, onde s ∈ S.• Um conjunto de ações A, onde a ∈ A.• Os reforços escalares, valores entre [0 e 1].

O agente deve encontrar a política ππππ, que é definida como o mapeamento deestados em ações, que maximizam as medidas de reforço.

Page 6: Monografia-IedaDonada-AfraMendivil

3.1 Características da Aprendizagem por Reforço

Como descrito acima a aprendizagem por reforço possui duas característicasfundamentais: o aprendizado por interação e o retorno atrasado. Segue algumas dascaracterísticas do AR.

Aprendizado por Interação

Principal característica que define um problema de AR. O agente age no ambientee aguarda o valor de reforço que o ambiente retorna de acordo com a ação tomada essevalor deve ser guardado para a tomada de decisões posteriores.

Retorno Atrasado

Nem sempre o agente de posse do valor de reforço máximo toma a melhordecisão, pois uma ação é produto de uma decisão local do ambiente e o AR buscaalcançar objetivos globais. Assim as ações tomadas devem maximizar o retorno total, ouseja a qualidade das ações tormadas é medida pelo retorno á longo prazo.

Orientado a Objetivo

O problema tratado é considerado como um ambiente que dá respostas em funçãodas ações efetuadas, não sendo necessário conhecer detalhes da modelagem desseambiente. O agente interage com um ambiente incerto tentando alcançar um objetivo quegeralmente é otimizar algum comportamento dentro do ambiente.

Exploration X Exploitation

Um dos desafios da AR é o dilema exploration-exploitation ou a escolha entreexplorar outras possibilidades ou tomar uma ação que traga um maior retorno imediato.Para obter recompensa um agente deve preferir as ações que tentou no passado e que lhepareça eficaz. Mas para descobrir tais ações deve tentar as que já selecionou antes. Oagente deve explorar para obter recompensa mais também deve selecionar as melhoresações futuras. O dilema é que tanto o explotation quanto o exploration não pode serseguida sem que o agente falhe muitas vezes, visto que o agente precisa experimentaruma variedade de ações e progressivamente favorecer as que lhe parecerem melhores.

O dilema da exploration-exploitation é bem conhecido na área de AlgortimosGéneticos(Goldberg, 1989), e é carcacterizado como o conflito entre tirar proveito dasboas informações já descobertas (cruzamento) e buscar novas informações (mutação)(Holland, 1975).

3.2 Elementos da Aprendizagem por Reforço

Basicamente um sistema de AR é constituido de um agente interagindo com oambiente como indicado na figura 2, durante a interação o agente seleciona as ações aserem tomadas de acordo com suas percepções do ambiente, essas ações de algumaforma acabam mudando o ambiente, e essas mudanças são comunicadas ao agente pormeio de um sinal de reforço.

Page 7: Monografia-IedaDonada-AfraMendivil

Figura 2. Diagrama de um sistema básico de Aprandizado por Reforço

Além do agente e do ambiente podemos identificar quatro sub-elementosprincipais de um sistema de aprendizagem por reforço: uma política, uma função dereforço, uma função de valor e opcionalmente um modelo do ambiente.

Política

Expressa o comportamento seguido pelo sistema para alcançar um determinadoobjetivo ou seja é a maneira como o agente de aprendizado comporta-se em um dadoestado. Em termos de AR, uma política ππππ é o mapeamento de estados s em ações a,tomadas naquele estado, em valor ππππ(s,a) que representa a probabilidade de tomar a açãoa quando no estado s. Assim sendo o sistema sofrerá variações de acordo com aspolíticas empregadas pelo agente; um sistema de AR deve procurar por uma políticaótima afim de encontrar a solução do problema de forma ótima. A política ótima éexpresa por π π π π ∗∗∗∗(s,a).

Em termos da psicologia correspode ao chamado jogo de regras ou associação deestímulos-respostas. Em alguns casos a política pode ser uma tabela simples ou umafunção extensiva, ou como em outros casos pode envolver um processo computacionalmais complexo como algortimos de busca. A política pode ser vista como o núcleo deum agente na Aprendizagem por Reforço visto que sozinho é sufientemente capaz dedeterminar o comportanmento.

Função de Reforço

O reforço é um sinal do tipo escalar representado por r t+1 que é devolvido peloambiente ao agente, assim que uma ação tenha sido efetuada e uma trasição de estadosst −>−>−>−> s t+1 tenha ocorrido. Este reforço pode ser definido de diferentes formas para cadaestado do ambiente, gerando funções de reforço que expressam o objetivo que o sistemadeve alcançar.

O uso de um sinal de reforço é uma características que distiguem os métodos deaprendizagem por reforço.

Em outras palavras uma funções de reforço traça cada estado ou par de estado-ação percebido no ambiente a um único número, uma recompensa (reforço) indicando avantagem desse estado. Como o objetivo de um agente de aprendizagem por reforço émaximizar o valor de recompensa total recebida a longo prazo, a função de reforço vempara definir quais são os eventos positivos e negativos para o agente. A função de reforçodeve necessariamente ser inalterada pelo agente. No entanto pode servir como base paraalterar a política. Exemplo, se uma ação selecionada pela política for seguida por uma

Page 8: Monografia-IedaDonada-AfraMendivil

recompensa baixa, então esta pode ser mudada para selecionar alguma outra ação nessasituação no futuro.

Função de valor

Visto que uma função de reforço define o que é positivo em um sentido imediato,uma função de valor especifica o que é positivo a longo prazo. O valor de um estado é aquantidade total de recompensa que um agente espera acumular sobre o futuro, partindodesse estado. Os reforços determinam vantagens imediatas, intrinsecas de estadosambientais, já os valores indicam vantagens a longo prazo do estado após tomado emconsideração os estados que são prováveis seguir, e dos reforços disponíveis nestesestados. Por exemplo, um determinado estado pode sempre gerar uma recompensa baixamais ainda assim ter um valor elevado devido ser seguido por outros estados que rendemrecompensas elevadas. Valores e reforços estão interligados pois não poderia havernenhum valor se não houvesse antes reforços, e a única finalidade de estimar valores éconseguir recompensa. No entanto, ao se fazer e avaliar decisões são os valores o quemais interessa, pois as escolhas das ações são realizadas tomando como base ojulgamento do valor. Deve-se avaliar quais ações causam valores mais elevados e não osreforços mais elevados, pois estas ações em um funcionamento a longo prazo obteriamuma quantidade maior de recompensa.

É de suma importância a escolha de um método eficiente para estimar valorespois infelizmente, é muito mais difícil determinar valores do que reforço, visto que osreforços são dados diretamente pelo ambiente, enquanto que os valores devem serestimados pela seqüências das observações do agente durante toda a sua existência.

Modelo do ambiente

Um modelo do ambiente nada mais é do que uma simulação do comportamentodo ambiente. Por exemplo, dado um par estado-ação o modelo pode predizer o estado e oreforço seguintes. Os modelos são usados para o planejamento de todas as posíveismaneiras de decisão em um curso de ação considerando situções futuras antes destasserem experimentadas. A incorporação de um modelo do ambiente e do planejamento emsistemas de aprendizagem por reforço é um processo relativamente novo.

3.3 Q-Learning

Um sistema que utiliza aprendizagem por reforço constitui-se basicamente de umagente interagindo em um ambiente através de percepção e ação, ou seja, o agentepercebe as situações dadas no ambiente e executa uma ação que de alguma formatransforma esse ambiente e seu estado, a cada ação é atribuída uma recompensa. Oalgoritmo Q-learning [3] tenta estimar as recompensas que o agente recebe se executaruma ação específica em um estado específico. Estas estimativas são computadasenquanto o agente interage no ambiente e a AR pode ser usada para especificar quando oagente deve aprender durante essa interação. Supondo que o agente execute a ação a noestado s, recebe as recompensas r, observa que o ambiente se move para um novo estadose o agente estimar as recompensas para executar a ação a no estado s, pode melhoraressa estimativa atualizando o novo estado, isso se da pela equação:Q(at ,st) = Q(at ,st) + αααα[rt+1 + γγγγ maxa [Q( st+1 ,αααα)]-Q(st ,at) onde:

• Q(at ,st) representa a função de valor do estado atual,• rt+1 valor de reforço imediato,

Page 9: Monografia-IedaDonada-AfraMendivil

• αααα é a taxa de parâmetro de aprendizagem que controla como o agente atualizasuas estimativas e,

• γγγγ é um fator de desconto.• maxa [Q( at+1 ,αααα)]-Q(st ,at) é a diferença entre a maxima função de valor no

estado seguinte e o valor de função do estado atual.

Ao selecionar a ação que maximize a função de valor seguinte, permite que seencontre de uma maneira simples a função de valor estimada.

A equação anterior representa a propagação das informações sobre asrecompensas que podem ser alcançadas na atualização do novo estado em relação aoestado precedente, onde é associada a ação a qual foi executado pelo agente.

O parâmetro da taxa de aprendizagem encontra-se na escala [0 e 1], e quantomaior é o seu valor, mais rapidamente o agente aprende. No entanto, se o agente aprendede forma mais lenta maior será seu desempenho tendo em vista, que este tenha querevisar cada estado e examinar cada ação inúmeras vezes antes que possa associar asrecompensas recebidas a cada ação em um determinado estado. O fator de descontoencontra-se na mesma escala e controla em quanto tempo o agente visualizará asrecompensas de acordo com suas ações.

O algoritmo Q-learning de forma seqüencial é descrito a seguir:Para cada s,a inicialize Q(s,a)=0Observe sRepita• Selecione ação a usando a política de ações atual• Execute a ação a• Receba a recompensa imediata r(s,a)• Observe o novo estado s’• Atualize o item Q(s,a) de acordo com a equação:Q(at ,st) = Q(at ,st) + αααα[rt+1 + γγγγ maxa [Q( st+1 ,αααα)]-Q(st ,at)• s → s’Até que o critério de parada seja satisfeito.

Segundo Watkins[3], se cada par estado-ação for experimentado um númerosuficientemente grande de vezes e αααα decrescer apropriadamente, as funções de valores-Qirão convergir com probabilidade um para Q* e a política irá convergir para uma políticaótima. Infelizmente, a convergência dos algoritmos de AR só pode ser atingida após umaextensiva exploração do espaço de estados-ações, que é geralmente demorada.Entretanto, a velocidade de convergência de um algoritmo de AR pode ser acelerada aose utilizar funções heurísticas para guiar a exploração do espaço de estados-ações.

4. Ambiente Robocode

Trata-se de um jogo estratégico para computador sobre guerras de robôs, ondevocê cria e projeta tanques virtuais que batalham até a morte. O Robocode foidesenvolvido pela AlphaWorks uma divisão da IBM voltada a difusão de novastecnologias de desenvolvimento para ser uma maneira divertida de se aprender alinguagem de programação JAVA.

O ambiente é fácil de usar e pode rodar em qualquer plataforma que suporte Java2. O jogador pode utilizar as classes bases disponíveis no ambiente para criar seu robôpermitindo a movimentação do robô, a localização e extermínio do adversário, podeainda criar algoritmos mais complexos para predizer a posição do inimigo e assim torna-

Page 10: Monografia-IedaDonada-AfraMendivil

lo mais feroz. Nessa aplicação usaremos o algoritmo de aprendizagem por reforço paraintroduzir inteligência ao robô.

O ambiente Robocode possui algumas regras básicas que nesse projeto foramutilizadas para atribuição do reforço no algoritmo de aprendizado. São elas:

• A batalha pode ser configurada: o jogador decide a quantidade de rounds, otamanho da arena em pixels e com quais robôs lutar. Pode ainda visualizar onome dos robôs (o nome aparece na parte de baixo do robô), a quantidade deenergia, seus radares e permite a mudança da cor do robô.

• O robô pode movimentar-se para frente ou para trás e pode fazer curva. Ocanhão(Gun) pode virar no sentido horário e anti-horário em 360 graus, e dartiros(Bullet) de força >0 e <=3. O robô é inicializado com energia igual a 100,quando esta chega a 0 o robô torna-se desabilitado (Disabled), perde seusmovimentos e é facilmente destruído. O robô é "cego", a única coisa que ele vêsão os robôs adversários scaneados pelo radar (Radar), que não pode enxergar ostiros.

• Todos os robôs que jogam em batalhas individuais começam cada round comenergia igual a 100, e os que ficarem com energia abaixo de 0 vão sendoeliminados (explodem) restando apenas um, e então começa um novo round. Nofim de todos os rounds a batalha acaba e aparece uma tabela mostrando apontuação e a colocação.

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_advesário).

O robô ganha energia quando:

• Acerta um tiro no adversario: (energia) + (2 * (energia perdida do adversário– poder do tiro).

5. Método de desenvolvimento do RLRobot

Esse trabalho tem como objetivo desmostrar o funcionamento do algoritmo deaprendizagem por reforço. Para isso foi desenvolvido o robô RLRobot no ambienteRobocode, o uso desse algoritmo propicia que o agente interaja com o ambiente e apartirdaí possa extrair conhecimento para melhor tomada de decisão.

Um agente de Aprendizagem por reforço interage em um ambiente e aprendeatravés de experimentação-e-erro para que este possa chegar a política ótima éimportante que seus estados, ações e recompensas estejam bem definidos.

5.1 Estados

O RLRobot possui as seguintes variáveis que caracterizam os estados:

5.1.1 DistanciaInimigo

Este estado indica a distância do robô em relação ao adversário foi feito umatabela onde os valores foram discretizados em uma escala de 0 – 19 conforme a tabela 1.

Page 11: Monografia-IedaDonada-AfraMendivil

DistânciaContínuo Discreto

d<30 030 ≤ d < 60 160 ≤ d < 90 2

... ...570 ≤ d 19

Tabela 1: Valores discretizados da distância do inimigo

5.1.2 AnguloAlvo

Define a direção em que o robô deve atirar, esta é definida em valores discretosde 0 – 3 e representam ângulos de 0° a 360°, como demostrado na figura 3.

Figura 3: Representação dos valores discretizados do ângulo.

5.1.3 DirecaoRobo

Indica a direção do robô em relação a arena, está definido em valores discretosentre 0 e 3, conforme mostrado acima na figura 3.

5.1.4 Perigo

Define se existem ou não adversários na batalha, foram definidos dois valores, 0indica que não possui adversários e 1 que possui.

5.1.5 AtingeParede

Indica se o robô atingiu a parede representado por 0 (não atingiu) e 1(atingiu).

5.1.6 AtingidoPorBala

Indica se o robô foi atingido por bala, este estado possui dois valores, 0 (não foiatingido) e 1 (foi atingido);

5.1.7 ColisaoRobo

Indica se o robô colidiu com outro robô, possui dois valores, 0 ( não colidiu) e 1(colisão).

90°

180°

270° 1

2

03

Page 12: Monografia-IedaDonada-AfraMendivil

5.1.7 PosicaoArena

Indica a posição da arena em que o robô se encontra, esta arena foi dividida em 9partes conforme figura 4;

6 5 4

7 8 3

0 1 2

Figura 4: Representação da arena

No final de cada round é gravado em um arquivo os valores de reforçosconseguidos referente a cada par estado-ação utilizado no round. Para o robô há um totalde 46080 (20 x 2 x 2 x 2 x 2 x 4 x 9 x 4) estados possíveis, dando um total de 368.640(46080 x 8 estados) entradas no arquivo.

A discretização dos estados DistanciaInimigo, AnguloAlvo e DirecaoRobo foibaseada em [11].

5.2 Ações

O RLRobot possui as seguintes ações de movimentação do robô:

• MovFrente - movimenta-se para frente.• MovTraz - movimenta-se para trás.• 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 trás e gira a direita.• MovTrazGiraEsquerda - movimenta-se para trás 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 ações referentes a este trabalho.

5.3 Recompensas

Para o aprendizado foram estabelecidas recompensas nos seguintes casos:

Positivas

Page 13: Monografia-IedaDonada-AfraMendivil

• Quando RLRobot atingir um adversário há uma mudança em sua energia, suarecompensa é 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 é atribuída;• Em casos em que os tiros são perdidos, tanto quando atingir a parede ou quando

atingir outro tiro.• Quando o robô for atingido por tiro também recebe uma recompensa negativa.

6. Implementação

Para o desenvolvimento do RLRobot foram utilizadas as classes:• Acao – Classe onde estão definidas as ações do robô• Estado – Classe onde estão definidos os estados do robô• Alvo – Classe onde estão definidas as informações do alvo• Aprendizagem – Classe onde está definido o algoritmo Q-learning e todos os

métodos que necessitamos para aprendizagem.• Tabela – Classe que possui todos os métodos 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 heurísticas, é através desta classe que todas as outras são chamadas.

Todos os movimentos do robô são definidos através do aprendizado por reforço,para isso no método principal do robô foi criado um loop que chama a funçãomovimentoRobo, esta passa para a classe de aprendizagem o estado e retorna a ação quedeve ser executada. A cada robô adversário detectado é chamada a função de tiro. Paraque o robô tivesse uma melhor performance no momento do combate foi incluída umaverificação de energia do robô e a distância com relação ao inimigo para estabelecer opoder de tiro, desta forma evita-se o desperdício de energia. Quando jogando em time orobô necessita reconhecer seus integrantes, para impedir que este atire em umcompanheiro, foi utilizada uma função do ambiente robocode que identifica integrantesdo time. Para auxiliar na decisão foi criado o estado perigo quer identifica se o robôscaneado faz parte ou não do mesmo time.

O RLRobot grava a tabela de aprendizado em um arquivo, quando em time oscomponentes gravam em arquivos separados, a fim de evitar desperdício de aprendizado,foi criado um programa auxiliar para unificar os aprendizados em um único arquivo.

7. Resultados Alcançados

Após o treinamento o robô pode aprender a não colidir com as paredes e com outrosrobôs. Este tentou também desviar-se dos adversários e evitou ser atingido por bala.Quando jogando em time o robô procurou não atirar em um robô pertecente ao mesmotime, pode-se notar ainda que sua performece pôde ser muito superior com relação aosrobôs 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 roundsutilizando o robô “Jointstrike“, adquirido no site repositório do robocode, este robô foiescolhido devido as suas boas táticas de combate, este não possuí técnicas deaprendizado. Os gráficos abaixo demostram o desempenho do robô utilizando a base seme com treinamento.

Page 14: Monografia-IedaDonada-AfraMendivil

Gráfico 1: Desempenho dos robôs com a base sem treinamento

Em um total de 100 rounds o RLRobot obteve o score final de 43.453 contra29.711 do robô JoinStrike.

Gráfico 2: Desempenho dos robôs com a base treinada

Já com a base treinada o RLRobot obteve o score final de 45.077 contra 23.628do robô JoinStrike.

A seguir é apresentado os resultados de 500 rounds com base não treinadautilizando o robô JoinStrike e o robô Blindman, este com táticas de ataque inferiores astáticas do JoinStrike.

Resultado com a base treinada

05000

100001500020000250003000035000400004500050000

JoinStrike RLRobot

Robôs

Sco

re

100 Rounds

Resultado com a base sem treinamento

05000

10000150002000025000

3000035000400004500050000

JoinStrike RLRobot

Robôs

Sco

re100 Rounds

Page 15: Monografia-IedaDonada-AfraMendivil

Gráfico 3: Desempenho contra o JoinStrike em 500 rounds.

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

Gráfico 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.308do Blindman.

O RLRobot perdeu os primeiros rounds devido a uma tática de movimentaçãodiferente do Blindman, mas com o passar dos rounds superou o Blindman.

Os Resultados mostraram que o RLRobot obteve melhores resultados com a basetreinada, para treinar a base foram executados 12.000 rounds contra o robô JoinStrike.

8. Conclusão e trabalhos futuros

Neste trabalho desmostrou-se o funcionamento do algoritmo de aprendizagem porreforço(AR) dentro ambiente Robocode. Esta é uma técnica muito interessante parasolucionar uma variedade de problemas de controle e planejamento quando não existemmodelos disponíveis a priori, já que seus algoritmos têm a convergência para umasituação de equilíbrio garantida, além de permitirem o aprendizado de estratégias decontrole adequadas. Em jogos de entreterimento esta técnica pode ser empregada comsucesso, pois simulando inteligência ao agente o jogo fica muito mais interessante e

Resultado com a base sem treinamento

0

50000

100000

150000

200000

250000

JoinStrike RLRobot

Robôs

Sco

re500 Rounds

Resultado com a base sem treinamento

0

50000

100000

150000

200000

250000

300000

Blindman RLRobot

Robôs

Sco

re

500 Rounds

Page 16: Monografia-IedaDonada-AfraMendivil

atrativo. A fim de aprimorar este trabalho podem ser utilizados outros algoritmos deaprendizado por reforço que possam acelerar o aprendizado, como por exemplo oalgoritmo SARSA.

9. Bibliografia

[1] Jaques, Praticia Augustin. Agentes de software na monitoração da colaboração emambiente telemáticos de ensino. Disponivél 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, Reinforcementlearning: A survey. - Int. J. of Artificial Intelligence Research, pages 237-285,1996

[3] Sutton ,Richard S; Barto ,Andrew G. Reinforcement Learning: AnIntroduction. Disponivél emhttp://www.cs.ualberta.ca/%7Esutton/book/ebook/the-book.html Acesso em15/09/05.

[4] Watkins,C. J. C. H. Learning from Delayed Rewards - PhD thesis, King'sCollege, Cambridge, UK, 1989.

[5] Santos, Alexandre Denes dos; Júnior, Eduardo Carlos Hamerski. Robocode: Umamaneira simples e divertida de aprender Java. Disponivél emhttp://www.ppgia.pucpr.br/~denes/ftp/artigos/robocode1.pdf. Acesso em30/10/2005

[6] Figueiredo, Karla. Reiforcement Learning. Disponivél emhttp://www.ica.ele.puc-rio.br/cursos/download/TAIC-apostila_RL.pdf Acessoem 15/09/05.

[7] Bianchi, Reinaldo A. C.; Costa,Anna H. R. Uso de Heurísticas para aAceleração do aprendizado por reforço.http://www.unisinos.br/_diversos/congresso/sbc2005/_pdf/arq0179.pdf. Acessoem 23/11/05

[8] http://paginas.fe.up.pt/~eol/MARSiMA/RELATORIO/Teoria.html. Acesso em30/10/05

[9] Hang,Tsang Hin. Reinforcement Learning in Robocode. Disponivél emhttp://cs7132.comp.hkbu.edu.hk/~jiming/SCI3740/PROJECT2002-2003/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. Disponivél em.http://www.cs.cmu.edu/afs/cs/usr/pstone/public/papers/97MAS-survey/revised-survey.html . Acesso em 10/10/2005

Page 17: Monografia-IedaDonada-AfraMendivil

Anexo I

AçõesMovFrente MovTraz GiraDireita GiraEsquerda MovFrenteGiraDi

reitaMovFrenteGira

EsquerdaMovTrazGiraD

ireitaMovTrazGiraE

squerdaPedirAjuda Ajudar

DistanciaInimigo

PerigoAtingeParedeAtingidoPorBala

ColisaoRoboAnguloAlvoPosicaoArena

EStados

DirecaoRobo

Tabela 2: Estados X Ações