XIII Encontro Nacional de Inteligência Artificial e Computacional Controle Fuzzy-Genético para Agentes Autônomos em Jogos Eletrônicos Ive dos S. Tourinho1 ,Tatiane M. Nogueira1 Departamento de Ciência da Computação Universidade Federal da Bahia (UFBA) – Brasil 1 {ive cc,tatianenogueira}@dcc.ufba.br Abstract. This paper proposes, implements and evaluates a novel approach to automatic control integrating a control approach based on Fuzzy Sets Theory with a decision system based on genetic approach. The control model proposed is used as artificial intelligence system of an autonomous agent for a video game whose goal is to mimic human agent actions generating equivalent outcomes. This work was developed in the light of a systematic literature review which provided necessary grants to carry it out. Resumo. Neste trabalho é proposta, implementada e avaliada uma nova abordagem para controle automático que integra a abordagem de controle baseada na Teoria dos Conjuntos Fuzzy com um sistema de decisão baseado na abordagem genética. O modelo de controle proposto é utilizado como sistema de inteligência artificial de um agente autônomo de um jogo de computador, cujo objetivo é mimetizar ações de um agente humano. O trabalho foi desenvolvido à luz de uma revisão sistemática da literatura que forneceu o ferramental necessário para a sua realização. 1. Introdução Nos últimos anos, a área da Teoria de Conjuntos Fuzzy (TCF) introduzida por Lotfi A. Zadeh em 1965 [Zadeh 1965] tem ganhado maior evidência e atraı́do a atenção de muitos pesquisadores ao redor do mundo, não só pelo poder de representação, como também pelos resultados alcançados comprovadamente satisfatórios nas áreas de controle industrial, automotivo e robótica. Dispositivos que utilizam a TCF apresentam maior tolerância à ruı́dos e incertezas inerentes ao mundo real. Além disso, técnicas de controle que utilizam a teoria dos conjuntos fuzzy também vêm sendo aplicadas aos jogos e simuladores eletrônicos para inserir inteligência artificial e controle automático nas aplicações. Assim, neste trabalho é proposta, implementada e avaliada uma abordagem de controladores para uma aplicação real em um sistema de inteligência artificial de Non-Player Character (NPC) para um jogo de computador no estilo Computer Role-Playing Game (CRPG). Um sistema de inteligência artificial para jogos eletrônicos deve possuir requisitos básicos como boa precisão, curto tempo de resposta, entre outros. Deste modo, um jogo de computador provê um ambiente competitivo, adequado para implementação, teste e avaliação da abordagem proposta. Neste trabalho é apresentado o jogo OrbFactor utilizado como caso de uso para a aplicação de um sistema de controle autônomo, autoajustável, cujo objetivo é superar o desempenho de um ajuste manual provido por um especialista. SBC ENIAC-2016 Recife - PE 361 XIII Encontro Nacional de Inteligência Artificial e Computacional A abordagem de controle proposta pode ser usada tanto em sistemas de inteligência artificial de jogos de computador, como também em sistemas inteligentes de controle autoajustável de variáveis fisico-quı́micas e gerência de recursos na área industrial, controle de sistemas autônomos para combate a desastres naturais, e neutralização de impactos decorrentes de incidentes, como, por exemplo, vazamentos e incêndios. Para o desenvolvimento da abordagem de controle proposta, foi conduzida uma pesquisa à luz do método Systematic Literature Review (SLR) [Kitchenham et al. 2009][Rios e Mello 2012] com o propósito de identificar técnicas e métodos utilizados em aplicações de controladores fuzzy em jogos eletrônicos, auxiliando o desenvolvimento da aplicação proposta. Entre os muitos trabalhos encontrados por meio da SLR, grande parte aborda integração de sistemas fuzzy com outras técnicas computacionais como em [Chiou e Wang 2009], [Wu e Wang 2008] e [Cheng et al. 2010]. Adicionalmente, foram identificados outros trabalhos diretamente relacionados ao controle automático de personagens autônomos em jogos eletrônicos como em [Font 2012] e [Acampora et al. 2010] que combinam controle fuzzy com algoritmos genéticos e máquinas de estados finitos com autômatos temporais, respectivamente. As técnicas presentes nos documentos obtidos pela SLR serviram de base para solucionar o problema de decisão explorado por meio deste trabalho. Entre as várias alternativas de implementação de integração de técnicas para controle verificadas pela SLR, a abordagem fuzzy-genética mostrou-se a mais compatı́vel com o desafio em questão. Desta forma, o sistema de decisão proposto neste trabalho integra um controlador fuzzy a um sistema de decisão baseado em algoritmos genéticos [Holland 1992], que tenta mimetizar as entradas providas por um especialista sobre um sistema de controle. Na próxima seção, serão apresentados os trabalhos relacionados aos métodos de controle fuzzy para jogos eletrônicos, retornados pela revisão sistemática da literatura. Em seguida, na seção 3, a aplicação desenvolvida é apresentada, seguida pela seção 4 que apresenta os resultados obtidos para diferentes configurações do sistema. Por fim, na seção 5 são expostas conclusões acerca dos resultados, dificuldades encontradas e possibilidades de melhorias. 2. Trabalhos Relacionados Com o intuito de identificar as principais tendências em aplicação de controle fuzzy em jogos eletrônicos, foi conduzida uma pesquisa à luz do método Systematic Literature Review (SLR). A SLR define uma metodologia de pesquisa rigorosa e bem estruturada para coleta e avaliação de evidências de um tema. A principal vantagem da SLR é realizar uma busca masi abrangente, recuperando não somente os trabalhos já bastante citados pela comunidade cientı́fica que pesquisa no tema deste trabalho como também outros trabalhos relacionados que não são comumente citados [Rios e Mello 2012]. Com a SLR busca-se identificar o estado da arte, selecionando e analisando os trabalhos obtidos de acordo com critérios e aspectos relevantes para a pequisa no tema escolhido. Dentre os documentos retornados pela SLR, foram considerados úteis tanto documentos referentes à aplicações como estudos primários. Documentos cujos conceitos SBC ENIAC-2016 Recife - PE 362 XIII Encontro Nacional de Inteligência Artificial e Computacional apresentados se relacionam diretamente com a proposta apresentada neste trabalho, contendo avaliações dos resultados obtidos em relação aos resultados de outros trabalhos, apresentando melhorias obtidas e alguma aplicabilidade no contexto de jogos eletrônicos, foram selecionados como úteis para este trabalho. Por outro lado, documentos sobre aplicações muito especı́ficas, relatórios técnicos, pesquisas antigas (já superadas), pesquisas de áreas dissimilares e documentos estritamente teóricos foram descartados. A pesquisa realizada retornou o montante de 158 publicações entre os quais notase forte presença de estudos e aplicações em robótica como robot soccer (robôs de futebol), controle de braços mecânicos em jogos de pingue pongue e jogos de bilhar. Também há presença de pesquisas em teoria dos conjuntos fuzzy e teoria dos jogos, abordando regras de inferência, especificação de conjuntos fuzzy, ajuste e parametrização, além da forte presença de técnicas de aprendizado de máquina. De acordo com o propósito deste trabalho, 18 trabalhos foram selecionadas pelo processo de análise e seleção da revisão sistemática de literatura. Por meio de uma leitura criteriosa dos trabalhos remanescentes, uma seleção mais rı́gida foi procedida classificando cada trabalho em relação à qualidade das referências, reprodutibilidade dos resultados, qualidade dos resultados, descrição do trabalho, formalismos e análise dos métodos propostos, [Rios e Mello 2012]. Os resultados obtidos apontam trabalhos envolvendo melhorias em propostas anteriores, integração de diferentes métodos e abordagens, resolução de falhas de trabalhos anteriores, novas abordagens e identificação de novos desafios. A seguir, são apresentados os trabalhos melhor classificados pela fase de análise da SLR, respondendo desta forma a questão principal que a norteia: ”Quais abordagens presentes na área de Controle Fuzzy são utilizadas nos jogos de computador que fazem uso de inteligência artificial?”. Em [Jones et al. 2011] são estudados os efeitos da simplificação de formas dos conjuntos fuzzy, transformando-os em formas geométricas mais simples e comparando o seu desempenho com o controlador com seus conjuntos em sua forma original. Em [Figueroa et al. 2005] são investigados sistemas fuzzy tipo-2 e os ganhos obtidos comparados com sistemas fuzzy tipo-1. [Chiou e Wang 2009], [Wu e Wang 2008] e [Cheng et al. 2010] dedicam-se ao estudo de otimização de movimentação e velocidade de robôs para robot soccer utilizando técnicas como Ant Colony Algorithm combinado com controlador fuzzy (ACA-FLC), controle com auto-ajuste para desvio de obstáculos e Genetic Algorithms - Particle Swarm Optimization (GA-PSO) para otimização de movimento e velocidade de robôs. Há também diversas aplicações em ambientes de jogos de pingue pongue, bilhar, sinuca e air hockey como investigado em [Wu e Wang 2008],[Cheng et al. 2004], [Hirota et al. 1989], [Chua et al. 2005] e [Chua et al. 2007] os quais utilizam diversas técnicas como controle fuzzy simples, redes neurais com back-propagation e tipos Takagi-Sugeno de ordem zero. Também notase forte presença de aplicações em jogos de tabuleiro como em [Heinze et al. 2005] que propõe o método Fuzzeval no ambiente de um jogo de gamão. Entre os trabalhos relacionados, foram observados ainda estudos relacionados à teoria dos jogos como em [Xiangping e Huaguang 2000] que aborda o problema de guarding territory (proteger território) através de uma aplicação prática da Teoria dos Movimentos (TOM), problemas de Homicidal Chauffeur (Motorista Homicida) SBC ENIAC-2016 Recife - PE 363 XIII Encontro Nacional de Inteligência Artificial e Computacional através da técnica de aprendizado de máquina Q(λ)-learning combinado com controlador fuzzy [Faiya e Schwartz 2012] e jogos de persuit evasion (perseguição-evasão) utilizando Q(λ)-learning combinado com algoritmos genéticos e sistemas de inferência fuzzy [Desouky e Schwartz 2011]. Observou-se também aplicações relacionadas à sistemas de inteligência artificial de personagens autônomos para jogos de computador como em [Font 2012] e [Acampora et al. 2010] que combinam controle fuzzy com algoritmos genéticos baseado em gramáticas, máquinas de estados finitos e autômatos temporais, respectivamente. Dos resultados desta revisão identificou-se a presença de trabalhos que utilizam o paradigma fuzzy tanto em áreas da tecnologia como automação industrial e robótica, como também em áreas dissimilares como psicologia, educação, economia, educação, polı́tica, entre outros. De maneira geral, entre os trabalhos retornados pela utilização do método SLR, foi observada pouca presença de abordagens fuzzy aplicadas especificamente para jogos eletrônicos, evidenciando a necessidade de abrangência deste campo de estudo e a importância da abordagem proposta. A partir dos resultados da SLR foi possı́vel propor uma abordagem diferenciada para construção de um controlador fuzzy cujo papel é gerenciar o sistema de inteligência artificial de um NPC, integrando controle fuzzy à técnica de algoritmos genéticos [Holland 1992], assim como em diversos trabalhos apreciados durante a SLR que utilizam a combinação de paradigmas para a resolução de determinado problema. A abordagem fuzzy-genética proposta neste trabalho tem como objetivo resolver um problema de controle que busca, por meio do incremento de iterações, aumentar o desempenho do controlador produzindo resultados que convergem para um valor ideal. A abordagem genética foi escolhida pelo seu caráter evolutivo, o qual detém a propriedade de que a cada iteração do algoritmo sobre um grupo de indivı́duos, é capaz de aprimorar estes indivı́duos, obtendo assim resultados cada vez mais adequados para determinado ambiente. 3. Abordagem Proposta A abordagem de controle proposta neste trabalho é apresentada sob um sistema cujo objetivo é mimetizar as ações de um agente humano sobre determinado ambiente de controle. O sistema proposto considera como referência o valor de saı́da de um sistema similar manipulado por um agente humano e, a partir deste valor, tenta reproduzir as entradas que o geraram. Tal abordagem é aplicada ao sistema para o NPC do jogo de computador OrbFactor, desenvolvido para este trabalho. O jogo OrbFactor possui um sistema de batalha por turno inspirado em jogos CRPG, no qual cada personagem, em seu turno, executa uma ação de ataque ou defesa por meio da combinação de elementos. No modo para um jogador, após o jogador humano desferir seu ataque, o NPC ”percebe”a força do ataque e tenta predizer como o ataque foi concebido, produzindo entradas que supostamente gerem uma saı́da similar, produzindo assim uma boa defesa. Na Figura 1 é apresentado o esquema geral do fluxo principal da aplicação. Na perspectiva de implementação, tem-se dois sistemas de controle P1 e P2 (referentes ao jogador e NPC, respectivamente) providos por sistemas de inferência fuzzy SBC ENIAC-2016 Recife - PE 364 XIII Encontro Nacional de Inteligência Artificial e Computacional Figura 1. Fluxo principal da aplicação no contexto OrbFactor. Ataque do jogador humano e defesa do NPC. similares, os quais tomam três parâmetros de entrada e geram uma única saı́da. No entanto, P2 possui, além do sistema de inferência fuzzy, um sistema genético integrado, que toma como entrada a saı́da gerada por P1 e produz três valores capazes de gerar uma saı́da semelhante à saı́da gerada por P1 . 3.1. O Jogo Na perspectiva do sistema para o jogo OrbFactor, tem-se três tipos de elementos: água, fogo e ar. Tais elementos são combinados pelo jogador para gerar um ataque raio. O valor (magnitude) de cada elemento na combinação pode variar de forma que o somatório de suas forças não excedam um determinado valor limite. Na Tabela 1 a relação entre os valores linguı́sticos das variáveis linguı́sticas que representam os três elementos supracitados e o valor linguı́stico da variável de saı́da raio para cada relação é apresentada. Essas são as relações básicas usadas como referência para a construção da base de regras utilizada pelo sistema de inferência fuzzy deste trabalho. Tabela 1. Regras básicas para composição da habilidade raio Ar muito médio pouco Fogo médio médio – Água pouco muito – Raio forte médio fraco O tempo que o jogador utiliza para produzir um ataque é usado como referência para determinar o tempo de raciocı́nio do NPC. Partindo do pressuposto que o processo de raciocı́nio humano para uma tomada de decisão é mais eficiente quando tem-se mais tempo disponı́vel para tal, o mesmo espera-se do sistema de inteligência artificial do NPC, de modo que, quanto mais tempo disponı́vel, melhor será a reação esperada. A cada ataque ou reação produzida por um agente (jogador humano ou computador), os seus pontos de magia são reduzidos. Deste modo, é essencial que o NPC, ao produzir uma reação ao ataque recebido, tenha a capacidade de controlar os recursos despendidos para tal ação. O NPC não deve gastar mais que o necessário ou menos que o suficiente, de modo que ele minimize o desperdı́cio dos pontos de magia disponı́veis para produzir uma ação eficiente. SBC ENIAC-2016 Recife - PE 365 XIII Encontro Nacional de Inteligência Artificial e Computacional 3.2. Controlador fuzzy-genético De forma a prover autonomia ao jogo proposto, foi desenvolvido um controlador fuzzygenético, o qual é capaz de gerenciar o sistema de inteligência artificial de um NPC. Em [Pontes et al. 2013] diversas ferramentas para modelagem de sistemas de inferência fuzzy são avaliadas e comparadas sob diversos aspectos como a linguagem de programação utilizada, o padrão implementado para representação do sistema de inferência fuzzy, licença de uso, entre outros. O referido trabalho serviu como base para a escolha da ferramenta utilizada para construção dos sistemas de inferência fuzzy desenvolvidos neste trabalho. A ferramenta utilizada para a modelagem do sistema de inferência fuzzy, assim como os demais aspectos relevantes sobre a sua arquitetura, detalhes sobre o sistema genético e a abordagem de integração fuzzy-genética serão expostos nas proximas seções. 3.2.1. Sistema de Inferência Fuzzy Dentre as ferramentas avaliadas por [Pontes et al. 2013], optou-se pela biblioteca desenvolvida na linguagem Java chamada jFuzzyLogic [Cingolani e Alcalá-Fdez ] [Cingolani e Alcala-Fdez 2012] por estar sob licença livre e implementar a linguagem para sistemas de inferência fuzzy Fuzzy Control Language (FCL) que, por sua vez implementa o padrão IEC 61131-7 [Iec 1997] que especifica os conjuntos fuzzy, funções de pertinência, método de defuzzificação e regras de inferência. A aplicação desenvolvida utiliza três entradas representando os elementos ar, fogo e água e gera um único valor de saı́da representando a habilidade raio. Para os conjuntos fuzzy das variáveis de entrada e saı́da, definiu-se funções triangulares para valores extremos e funções trapezoidais para valores médios, de forma a dificultar a obtenção de valores extremos e ”relaxar”a obtenção de valores médios. Os valores de entrada e saı́da podem variar de 0 a 9. Estes valores foram escolhidos empiricamente. O método de defuzzificação utilizado é o ”Centro de Gravidade”(Center of Gravity - COG). Neste método, o valor defuzzificado obtido é o valor dentro do intervalo da variável de saı́da, o qual divide a área da saı́da fuzzy em duas subáreas de valores iguais. Este método foi escolhido com o intuito de obter o valor crisp que melhor representasse um valor médio ponderado pela “topologia” do conjunto de saı́da final. A Figura 2 demonstra através da variável de saı́da raio, os seus conjuntos fuzzy ou valores linguı́sticos, os graus de pertinência associados e a faixa de valores que a variável pode assumir. 3.2.2. Sistema Genético Para o sistema desenvolvido neste trabalho, o algoritmo genético proposto tem como objetivo combinar um conjunto de parâmetros de forma que estes gerem uma saı́da semelhante a um valor referência. O algoritmo cria uma população de indivı́duos de tamanho fixo, cada um composto por três caracterı́sticas (atributos). Cada atributo é representado por um número real, e a soma deles respeitam um limite preestabelecido. Cada indivı́duo é chamado de cromossomo e seus atributos de genes. SBC ENIAC-2016 Recife - PE 366 XIII Encontro Nacional de Inteligência Artificial e Computacional Figura 2. Conjuntos fuzzy para a variável de saı́da raio. A cada iteração, o algoritmo seleciona os indivı́duos mais aptos de acordo com determinado teste avaliativo. Os selecionados passam então pela operação genética crossover, que divide os cromossomos separando seus genes, recombinando-os com os demais, formando novos indivı́duos, contudo sempre obedecendo os limites estabelecidos para os somatórios de genes em um indivı́duo e quantidade de indivı́duos por população. Desta forma, surgem novos cromossomos que farão parte de uma nova geração de indivı́duos mais aptos. Além disso, cada cromossomo é submetido a uma probabilidade de 10% de sofrer uma mutação (rearranjo aleatório de genes) para garantir a diversidade de caracterı́sticas na população. Este processo é repetido uma quantidade de vezes (iterações) determinada pela aplicação. A tendência é que quanto maior o número de iterações, mais aptos são os indivı́duos gerados. Essa abstração é usada para o sistema de batalha implementada no jogo OrbFactor. O algoritmo inicia tomando como valor de referência a saı́da do ataque gerado pelo agente humano. Em seguida, é calculada a função de desempenho (fitness) de cada cromossomo, o que determina quais cromossomos possuem caracterı́sticas ou genes mais aptos a gerar um valor próximo ou semelhante ao valor de referência. Para calcular o valor do fitness, o cromossomo é submetido ao sistema de inferência fuzzy que determina uma saı́da tomando como valores de entrada os genes do cromossomo. O valor obtido como saı́da é comparado com o valor referência – pela diferença entre seus valores - fornecendo, deste modo, o valor de fitness do cromossomo. A Figura 3 ilustra este processo de calculo da função fitness. Figura 3. Arquitetura de avaliação do valor fitness de um cromossomo. Para esta aplicação, cada cromossomo simboliza uma possı́vel combinação, ou SBC ENIAC-2016 Recife - PE 367 XIII Encontro Nacional de Inteligência Artificial e Computacional habilidade, composta por três atributos - representados pelos genes - cada um com seu valor de força, que somados obedecem a um limite superior. A cada iteração do algoritmo, há o surgimento de uma nova geração simbolizando um “ciclo de pensamento”. Seguindo a premissa básica das abordagens evolutivas, cujo objetivo é obter melhores resultados através do incremento de iterações, do algoritmo genético proposto neste trabalho, esperase que quanto mais ciclos forem executados, melhor será o raciocı́nio obtido, que neste caso é a melhor das hipóteses ou melhor cromossomo pertencente à população obtida ao final dos ciclos. O indivı́duo com melhor fitness ao final das iterações é a decisão ou combinação escolhida pelo NPC como reação ao ataque recebido do jogador. 3.2.3. Fluxo Principal O fluxo principal de execução é composto por dois sistemas: P1 , sistema de inferência fuzzy do jogador cujo objetivo é produzir o valor referência e P2 , controlador fuzzygenético do NPC. O jogo inicia quando o jogador humano elabora sua habilidade. Seja e1,1 , e1,2 e e1,3 as entradas para tal habilidade, as mesmas são submetidas à P1 gerando como saı́da sp1 . Seja px,i uma população da execução x na iteração i, o modulo genético de P2 ao ”perceber”o ataque, gera a primeira população p0,0 – para x = i = 0, p é gerada aleatoriamente, caso contrário, px,0 = px−1,n . Em posse de p0,0 , o algoritmo realiza n iterações onde n representa o tempo disponı́vel para o NPC raciocinar (quantidade de iterações do algoritmo genético). Seja gc,1 , gc,2 e gc,3 os genes de um cromossomo c de determinada população, a cada iteração ou geração, cada cromossomo pertencente à população atual px,i é avaliado através do cálculo de seu fitness. O fitness f(c) é obtido submetendo os genes do cromossomo ao módulo fuzzy de P2 que gera como saı́da sc,p2 . Assim, tem-se que f(c) = [sp1 sc,p2 ]. Após identificar os indivı́duos mais aptos (aqueles com melhor valor de fitness), as operações genéticas (crossover e mutação) são aplicadas sobre estes, obtendo assim uma nova população px,i+1 . Após as n iterações, os genes do melhor cromossomo de px,n são utilizados por P2 gerando a saı́da definitiva do NPC sp2 , que é comparado com a saı́da gerada pela entrada do jogador. A diferença absoluta entre as saı́das geradas pelo jogador e NPC (P1 e P2 , respectivamente), representa o quão eficiente foi a tentativa de P2 em mimetizar a ação do jogador, indicando o quanto a reação do NPC é eficiente - quanto menor esta diferença, mais eficiente foi a ação do NPC. 4. Resultados De acordo com o fluxo principal apresentado na seção anterior, o resultado de um experimento para o sistema executado em 100 iterações do algoritmo genético, com 10 cromossomos por população e 3 genes por indivı́duo, é apresentado na Tabela 2. Os resultados expostos foram obtidos a partir de diferentes configurações da aplicação, a fim de avaliar o seu desempenho e confiabilidade para diferentes estados e configurações. Neste sentido, os testes aplicados aos controladores fuzzy têm o intuito de avaliar SBC ENIAC-2016 Recife - PE 368 XIII Encontro Nacional de Inteligência Artificial e Computacional Tabela 2. Exemplo de entradas e saı́da do controlador no contexto OrbFactor. ar fogo Jogador Humano 3.0 1.5 NPC 5.2 2.8 água raio 0.5 7.61 0.99 7.88 a base de regras através da adição de entradas conhecidas e verificação das saı́das obtidas. Já o algoritmo genético é avaliado quanto à sua eficiência em produzir saı́das compatı́veis com um valor referência, também utilizando diferentes configurações. O conjunto de todas as regras possı́veis de serem construı́das com três variáveis sem repetições na parte antecedente é composto por 27 regras. Sua construção foi baseada nas regras de produção da habilidade raio da aplicação OrbFactor, conforme a Tabela 3. Utilizando a abstração OrbFactor e partindo do pressuposto de que o personagem em questão possui ao seu dispor os elementos fogo, água e ar, a base de regras foi elaborada sob os seguintes critérios: Os elementos estão dispostos em cada regra de acordo com seu grau de relevância para a obtenção da habilidade raio e a ordem de precedência dos elementos é: ar, seguido de fogo e água; quando a variável ar recebe o valor linguı́stico muito, os valores linguı́sticos para a saı́da raio apenas recebem forte e medio e obedecem a seguinte regra: raio é forte se fogo é medio e agua é pouco ou se fogo é muito e agua é pouco ou medio; raio é medio, para os demais casos. Regras as quais o elemento ar é medio, os critérios para atribuição de valores linguı́sticos para a saı́da raio, se dão como segue: raio é forte se fogo é medio e agua é pouco; raio é medio se fogo e agua são equivalentes ou o primeiro supera o segundo; raio é fraco para os demais casos. Para todas as regras em que a variável ar tem valor linguı́stico pouco, a saı́da raio é fraco. Entre as 27 combinações possı́veis, percebe-se que, para algumas regras, alguns elementos que a compõem não influenciam na saı́da obtida. Para evitar inconsistências, foi utilizado o método de simplificação através de Mapas de Karnaugh [Karnaugh 1953], reduzindo assim a base de regras de 27 para as 15 regras mostradas na Tabela 3. Tabela 3. Base de regras do controlador fuzzy IF ar IS muito AND fogo IS muito AND agua IS muito THEN raio IS medio IF ar IS muito AND fogo IS muito AND agua IS medio THEN raio IS forte IF ar IS muito AND fogo IS muito AND agua IS pouco THEN raio IS forte IF ar IS muito AND fogo IS medio AND agua IS muito THEN raio IS medio IF ar IS muito AND fogo IS medio AND agua IS medio THEN raio IS medio IF ar IS muito AND fogo IS medio AND agua IS pouco THEN raio IS forte IF ar IS muito AND fogo IS pouco THEN raio IS medio IF ar IS medio AND fogo IS muito THEN raio IS medio IF ar IS medio AND fogo IS medio AND agua IS muito THEN raio IS fraco IF ar IS medio AND fogo IS medio AND agua IS medio THEN raio IS medio IF ar IS medio AND fogo IS medio AND agua IS pouco THEN raio IS medio IF ar IS medio AND fogo IS pouco AND agua IS muito THEN raio IS fraco IF ar IS medio AND fogo IS pouco AND agua IS medio THEN raio IS fraco IF ar IS medio AND fogo IS pouco AND agua IS pouco THEN raio IS medio IF ar IS pouco THEN raio IS fraco SBC ENIAC-2016 Recife - PE 369 XIII Encontro Nacional de Inteligência Artificial e Computacional Após a elaboração da base de regras fuzzy, foi utilizado um conjunto de entradas cujos valores de saı́da produzidos foram comparados com valores esperados. O critério para a avaliação da base de regras é o mesmo utilizado para sua construção: a proporção entre os elementos e seus efeitos na saı́da obtida. O conjunto de entradas X e saı́da Y são tais que X = ({x1 , x2 , x3 } |x1 + x2 + x3 <= 9) e Y = ({y} |y <= 9). O método de defuzzyficação escolhido têm grande importância nas saı́das providas pelo controlador fuzzy. Portanto, conforme mencionado anteriormente, foi utilizado o método Centro de Gravidade A Tabela 4 apresenta as saı́das providas pelo algoritmo genético proposto, em 3 execuções (runs), para diferentes quantidades de iterações (rate). As saı́das são comparadas com um valor de referência, com a finalidade de avaliar seu desempenho e confiabilidade. As entradas utilizadas nos testes são ar = 5.0, fogo = 2.0, agua = 2.0 que produzem a saı́da raio = 3.753301 tomada como valor de referência. A cada três runs é tomada a média aritmética dos valores obtidos, o desvio padrão e a diferença absoluta entre a média e o valor de referência. Tabela 4. Resultados de três execuções (runs) para diversas quantidades de iterações (rate), o desvio padrão e diferença absoluta entre a média das execuções e o valor de referência. run/rate 1 2 3 desvio padrão |média - referência| 5 3.42 3.79 4.47 0.53 0.14 10 3.87 4.44 3.29 0.57 0.11 50 3.71 4.06 3.51 0.28 0.00 100 3.77 3.57 3.55 0.12 0.12 200 3.89 3.67 3.96 0.15 0.08 500 3.75 3.9 4.03 0.14 0.14 Observando a Tabela 4 é possı́vel observar que para as runs com 5, 10, 50 e 100 iterações, há um decréscimo de desvio padrão, indicando a redução de distanciamento dos valores obtidos em relação ao valor médio desejado. Já para valores de iterações acima de 100 esta redução não é observada, indicando a existência de um limiar para o ganho de precisão através do aumento de runs. Além disso, observa-se que a diferença absoluta entre a média dos valores obtidos e o valor de referência não diferem substancialmente. 5. Conclusão Por meio dos resultados e análise expostos, é possı́vel afirmar que a abordagem utilizada alcança o objetivo proposto, representando de forma satisfatória uma abstração de uma das caracterı́sticas do raciocı́nio humano no que diz respeito à qualidade da decisão relacionada ao tempo disponı́vel para elaborar e deliberar sobre uma ação crı́tica sob um tempo limitado. Os resultados apresentados permitem concluir que o ganho de precisão por acréscimo de iterações é observado até determinado limite, onde eles tendem a estabilizar sob um limiar de variação. Portanto, o aspecto inovador da abordagem proposta é evidenciado pelo limite para ganho substancial de desempenho através do aumento das runs. SBC ENIAC-2016 Recife - PE 370 XIII Encontro Nacional de Inteligência Artificial e Computacional Este trabalhado abre margem para diversas melhorias a serem procedidas em trabalhos futuros. No que diz respeito a avaliação da técnica, seu desempenho poderá ser avaliado comparando-o com outras técnicas bem conhecidas na área de estudo, assim como avaliação em diferentes configurações de ambiente e domı́nio. Um estudo acerca de agentes inteligentes pode ser relevante para ampliar a abordagem para uma abordagem multiagentes, como por exemplo numa aplicação com múltiplos NPCs. Há espaço também para melhorias no que diz respeito da obtenção e refinamento da base de regras pela inserção de técnicas de aprendizado de máquina, tornando o sistema dinâmico e adaptável, além do refinamento e acréscimo de desempenho do sistema de decisão através da integração de outras técnicas como redes neurais, swarm intelligence [Beni 2005] ou outras dentre as diversas técnicas apontadas pela revisão de literatura realizada neste trabalho. Referências Acampora, G., Loia, V., e Vitiello, A. (2010). Enhancing transparent fuzzy controllers through temporal concepts: An application to computer games. In 2010 International Conference on Technologies and Applications of Artificial Intelligence, páginas 405– 412. Beni, G. (2005). From swarm intelligence to swarm robotics. In Proceedings of the 2004 International Conference on Swarm Robotics, SAB’04, páginas 1–9, Berlin, Heidelberg. Springer-Verlag. Cheng, B. R., Li, J. T., e Yang, J. S. (2004). Design of the neural-fuzzy compensator for a billiard robot. In Networking, Sensing and Control, 2004 IEEE International Conference on, volume 2, páginas 909–913 Vol.2. Cheng, S. W., Chiou, J., Hu, Y., Wang, K., e Shieh, M. Y. (2010). Application of the ga-pso with the fuzzy controller to the robot soccer. In SICE Annual Conference 2010, Proceedings of, páginas 2083–2087. Chiou, J. S. e Wang, K. Y. (2009). Aca-based fuzzy controller design for robot soccer. International Journal of Fuzzy Systems, 11(3):164–173. Chua, S. C., Wong, E. K., e Koo, V. C. (2005). Intelligent pool decision system using zero-order sugeno fuzzy system. J. Intell. Robotics Syst., 44(2):161–186. Chua, S. C., Wong, E. K., e Koo, V. C. (2007). Performance evaluation of fuzzy-based decision system for pool. Appl. Soft Comput., 7(1):411–424. Cingolani, P. e Alcalá-Fdez, J. jfuzzylogic: a java library to design fuzzy logic controllers according to the standard for fuzzy control programming. Cingolani, P. e Alcala-Fdez, J. (2012). jfuzzylogic: a robust and flexible fuzzy-logic inference system language implementation. In Fuzzy Systems (FUZZ-IEEE), 2012 IEEE International Conference on, páginas 1–8. IEEE. Desouky, S. F. e Schwartz, H. M. (2011). Self-learning fuzzy logic controllers for pursuit–evasion differential games. Robotics and Autonomous Systems, 59(1):22 – 33. Faiya, B. M. A. e Schwartz, H. M. (2012). Q(λ)-learning fuzzy controller for the homicidal chauffeur differential game. In Control Automation (MED), 2012 20th Mediterranean Conference on, páginas 247–252. SBC ENIAC-2016 Recife - PE 371 XIII Encontro Nacional de Inteligência Artificial e Computacional Figueroa, J., Posada, J., Soriano, J., Melgarejo, M., e Rojas, S. (2005). A type-2 fuzzy controller for tracking mobile objects in the context of robotic soccer games. In The 14th IEEE International Conference on Fuzzy Systems, 2005. FUZZ ’05., páginas 359– 364. Font, J. M. (2012). Evolving third-person shooter enemies to optimize player satisfaction in real-time. In Proceedings of the 2012T European Conference on Applications of Evolutionary Computation, EvoApplications’12, páginas 204–213, Berlin, Heidelberg. Springer-Verlag. Heinze, M., Ortiz-Arroyo, D., Larsen, H. L., e Rodriguez-Henriquez, F. (2005). Fuzzeval: A fuzzy controller-based approach in adaptive learning for backgammon game. In Proceedings of the 4th Mexican International Conference on Advances in Artificial Intelligence, MICAI’05, páginas 224–233, Berlin, Heidelberg. Springer-Verlag. Hirota, K., Arai, Y., e Hachisu, S. (1989). Fuzzy controlled robot arm playing twodimensional ping-pong game. Fuzzy Sets Syst., 32(2):149–159. Holland, J. H. (1992). Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence. MIT Press, Cambridge, MA, USA. Iec, I. E. C. (1997). International electrotechnical commission (iec) technical committee no. 65: Industrial process measurement and control sub-committee 65 b: Devices iec 1131 - programmable controllers part 7 - fuzzy control programming. Technical report. Jones, L., Cox, R., e Alghowinem, S. (2011). A computationally efficient fuzzy logic parameterisation system for computer games. In Proceedings of the 15th International Conference on Knowledge-based and Intelligent Information and Engineering Systems - Volume Part I, KES’11, páginas 377–386, Berlin, Heidelberg. Springer-Verlag. Karnaugh, M. (1953). The map method for synthesis of combinational logic circuits. Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics, 72(5):593–599. Kitchenham, B., Pearl Brereton, O., Budgen, D., Turner, M., Bailey, J., e Linkman, S. (2009). Systematic literature reviews in software engineering - a systematic literature review. Inf. Softw. Technol., 51(1):7–15. Pontes, F. A., Arruda, D. M., Abud, G. M. D., M., P. R., e de Oliveira, B. B. F. (2013). Análise comparativa de ferramentas computacionais para modelagem de lógica fuzzy. In SEGET Simpósio de Excelência em Gestão e Tecnologia, página 16. Rios, R. A. e Mello, R. F. (2012). A systematic literature review on decomposition approaches to estimate time series components. INFOCOMP Journal of Computer Science, 11:31–46. Wu, Y. e Wang, H. (2008). Application of fuzzy self-tuning pid controller in soccer robot. In Knowledge Acquisition and Modeling Workshop, 2008. KAM Workshop 2008. IEEE International Symposium on, páginas 14–17. Xiangping, M. e Huaguang, Z. (2000). Fuzzy differential games and optimal guarding&mdash;invading a territory strategies. Syst. Anal. Model. Simul., 38(2):325–337. Zadeh, L. (1965). Fuzzy sets. Information and Control, 8(3):338 – 353. SBC ENIAC-2016 Recife - PE 372