• Nenhum resultado encontrado

2.4 Inteligência Artificial para Jogos

2.4.3 Reinforcement Learning

Para além das duas técnicas apresentadas acima, uma das técnicas que começou a ser mais utilizada é a criação de IA através de aprendizagem, mais concretamente aprendizagem reforçada ou reinforcement learning [27]. Como o nome indica, consiste resumidamente em ensinar um sistema com base em algum tipo de feedback relativamente a uma ação por si tomada.

A técnica mais comum de reinforcement learning em jogos é Q-Learning e funciona de certa forma como máquinas de estado. Cada estado representa o estado do jogo a determinada iteração. Tal como nas técnicas vistas anteriormente é necessário analisar e definir todas as variáveis ou fatores que influenciam o estado de jogo e que queiramos que sejam vítimas de aprendizagem e arranjar uma função que transforme cada estado de jogo num valor numérico. Variáveis não incluídas nessa função não afetam nem a aprendizagem nem a tomada de decisão.

Depois de escolhida e efetuada uma ação por parte do agente, o estado de jogo é analisado e averiguado por uma função de avaliação se a jogada for boa ou má (normalmente valores compre- endidos entre -1 e 1, sendo -1 a pior jogada possível, 1 a melhor jogada possível e 0 impossibili- dade de averiguação do carácter da jogada) e guardado o resultado. Desta forma, quando o agente se encontrar num estado em que já esteve anteriormente pode decidir se deve efetuar alguma das jogadas que já tentou anteriormente ou tentar outra jogada se os resultados anteriores não forem positivos.

Assim, a chamada regra de aprendizagem ou learning rule é a função que relaciona o valor guardado por aprendizagens passadas do conjunto de um certo estado e respetiva ação com o quão bom foi a ação e quão bom será o próximo estado. Esta regra depende das variáveis de taxa de aprendizagem que define quanto é que certa ação influencia a aprendizagem e fator de desconto que valoriza mais as ações tomadas anteriormente do que as ações tomadas recentemente.

Capítulo 3

Soluções propostas para melhoramento

do PiTank

3.1

Simulação

Tendo em conta os objetivos do projeto é importante definir as técnicas e ferramentas analisa- das no Capítulo 2 que serão mais relevantes para o projeto.

Relativamente ao simulador, os fatores com maior importância são:

• Capacidade de importação de modelos criados externamente ao simulador.

Devido à falta de existência de um modelo do robô 3pi utilizado no sistema real do Pi- Tank, será necessário a criação do mesmo. Desta forma, é crucial que o simulador utilizado permita a criação e importação de modelos externos.

• Garantia de RTF superior ou igual a 1 para simulações de até 4 robôs.

Real Time Factor, ou RTF, corresponde ao quociente entre tempo simulado e tempo real. Quanto mais perto de 1 for este valor, mais próxima da realidade será a simulação.

Visto o PiTank se tratar de um jogo em tempo real é importante que a simulação ocorra aproximadamente com um fator de tempo igual ao real (RTF = 1), porque de outra forma os resultados obtidos no sistema real seriam diferentes dos obtidos no sistema simulado. • Simples integração com ROS.

Tendo em conta que todo o trabalho relacionado com PiTank efetuado até à data foi feito sobre o framework ROS é importante que o simulador escolhido permita uma simples inte- ração com o mesmo, principalmente criação de um nó a si associado que comunique com os restantes nós do projeto.

• Desenvolvimento futuro

22 Soluções propostas para melhoramento do PiTank

É certo que após a elaboração desta dissertação mais alunos irão trabalhar e melhorar o PiTank. Assim é importante que o simulador escolhido nunca seja considerado depreciado ou outdated e permita sempre um desenvolvimento fácil.

Existem outros fatores menos importantes como motores de física extremamente precisos e UI bem estruturada que são pouco relevantes para o trabalho em causa apesar de serem um ponto forte de alguns dos simuladores.

Enumerados e analisados os principais requisitos foi escolhido o Gazebo como simulador para este projeto devido a responder melhor a todos os requisitos, principalmente os dois últimos pontos.

O facto da sua integração com ROS e de serem desenvolvidos simultaneamente tornam-no no melhor candidato pois não só é garantido que o seu desenvolvimento futuro estará a par com ROS, tal como a sua comunicação e interação é feita de forma intuitiva.

Segundo [22] o Gazebo apresenta o melhor resultado de RTF com 5 robôs e sempre garantido que o seu valor não baixe de 1, como é necessário. Adicionalmente é também possível importar modelos externos e utiliza-los no Gazebo sobre o formato .SDF ou .URFD.

3.2

Inteligência Artificial para Jogos

Como foi analisado no Capítulo 2, a técnica de IA mais utilizada em jogos do tipo shooter é a utilização de máquinas de estado finitas. Isto deve-se principalmente ao facto de sendo jogos em tempo real, existir sempre uma restrição de tempo do algoritmo utilizado, o que não acontece com outros tipos de jogos, como jogos por turnos, sendo que se cada iteração for demorada, não só as informações de decisão poderão estar desatualizadas, bem como o adversário se pode aproveitar desse tempo de processamento o que potencialmente torna o jogo menos divertido.

No entanto, apesar de poderosa e relevante para o trabalho em causa, esta técnica é relativa- mente fácil de implementar e pode tornar o jogo um pouco linear e consequentemente aborrecido sendo que as transições de estado são algo bem definido e dependem diretamente da forma como são implementadas.

Assim, achou-se interessante experimentar utilizar técnicas normalmente usadas em tabuleiro, nomeadamente Negamax, e potencialmente integra-las de alguma forma com a técnica de máqui- nas de estado, comparando-as com a mesma. Deste modo, o jogo poderá tornar-se mais dinâmico pois não será definido por transições de estado lineares mas sim pela análise da melhor jogada para uma certa profundidade da árvore de pesquisa.

Importante referir que é crucial escolher uma profundidade adequada que mantenha o equilí- brio entre tempo de processamento e nível de inteligência. Este fator será revisto num Capítulo posterior.

Documentos relacionados