Controle Fuzzy-Genético para Agentes Autônomos em Jogos

Propaganda
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—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
Download