COMPUTAÇÃO EVOLUTIVA APLICADA A JOGOS ELETRÔNICOS
|
|
|
- Vítor Gabriel Mirandela da Cunha
- 9 Há anos
- Visualizações:
Transcrição
1 COMPUTAÇÃO EVOLUTIVA APLICADA A JOGOS ELETRÔNICOS André Bezerra Lima, Daniel Oliveira Aguiar, Diego de Souza Sarkis Centro Universitário Nove de Julho / Depto. Exatas e Tecnologia, São Paulo, Brasil. [email protected], [email protected], [email protected], Resumo: Este artigo tem como objetivo estudar a viabilidade de aplicação de computação evolutiva em jogos eletrônicos, mais precisamente, a aplicação de Algoritmos Genéticos, que é uma adaptação computacional da teoria de Darwin sobre a evolução natural das espécies, em um jogo que consiste em um mapa com alguns obstáculos, no qual o computador precisa determinar um caminho para que o agente chegue à saída. Tennis (fig.2), e Hockey (fig.3) até o Playstation3, lançado pela Sony em 2006 e que assume 2º lugar nas vendas da sétima geração.[11] Palavras Chaves: Computação Evolutiva, Algoritmos Genéticos, Inteligência Artificial, Jogos Eletrônicos, Movimentação autônoma. 1. Introdução Os jogos eletrônicos evoluíram bastante desde a sua criação. Foram muitas as melhorias tanto na qualidade gráfica, que hoje chega a ser muito próxima da realidade, quanto na forma de processamento. O processamento da Inteligência Artificial em jogos é o foco deste trabalho com a aplicação da Computação Evolutiva em um jogo eletrônico. Implementando um Algoritmo Genético que é uma adaptação computacional da teoria de Darwin sobre a evolução natural das espécies, para movimentação autônoma de agentes. Para explicação de forma mais clara, na introdução são expostos os 3 tópicos abordados neste trabalho. Fig. 1 Odyssey 100, o primeiro console de videogame da história 1.1. Jogos Eletrônicos A Indústria de jogos representa hoje uma grande fatia do mercado, apesar de não ser tão explorado no Brasil quanto em outros países, mesmo apresentando um crescimento na indústria brasileira de jogos. [6] Criada inicialmente como nova forma de redefinição da televisão, ganhou identidade própria e se tornou um dos maiores meios de entretenimento e lazer. O primeiro jogo relatado foi em 1958, criado pelos Estados Unidos simulando um jogo de Tênis, onde um ponto piscando representava a bola e os jogadores controlavam seu movimento por cima de uma linha vertical que representava a rede. Desde então, aprimoramentos e novas idéias não pararam de surgir aliadas com a tecnologia. A história dos games está dividida em sete gerações e vai desde Odyssey 100 (fig.1), lançado em 1972 pela Magnavox que continha somente 2 jogos, Fig. 2 Pessoas jogando Tennis no Odyssey 100 Fig. 3 Jogo de Hockey no Odyssey 100 (jogos muito parecidos, tanto no visual quanto na jogabilidade) 1
2 O surgimento de jogos como Spacewar (fig.4) de Nolan Bushnell, responsável pela criação do Computer Space (fig.5), o primeiro arcade do mundo. Mais tarde Bushnell sai da empresa para fundar a Atari e logo lança o jogo Pong (fig.5), se tornando um fenômeno e campeão de vendas, surge então a primeira geração dos games. É nessa época que surgem as primeiras críticas aos jogos eletrônicos violentos. Como Death Race (fig.6), da Exidy Games, onde o objetivo do jogador é sair atropelando tudo o que vier pela frente. [6] Fig. 7 Death Race, responsável pelas primeiras criticas de violencia A década de 1980 é composta pela segunda e terceira geração. Space Invaders (fig.7) lançado para o Atari foi um marco. Fig. 4 Jogo Spacewar Fig. 8 Space Invaders, considerado um marco para industria de games Empresas como Mattel, Actvision e Nanco e Sega envestem em games e sucessos como Pac Man (fig.9) e Donkey Kong (fig.10) surgem. O meio da década é considerada um marco negro para os video games devido ao surgimento dos computadores como MSX (fig.11) que possuíam um custo quase equivalente. Fig. 5 Computer Space, primeiro arcade do mundo Fig. 9 Pac Man, um dos sucessos da 2º e 3º gerações Fig. 6 Jogo Pong para Atari 2
3 Fig 14 Bomberman Fig. 10 Donkey Kong, outro dos sucessos da 2º e 3º gerações Fig 11 MSX, responsável pelo marco negro dos games Nasce então no japão o console NES (fig.12) e com eles os jogos Star Soldier (fig.13), Bomberman (fig.14) e Adventure Island (fig.15). Fig. 15 Adventure Island Começa a se investir em jogos de computadores e é lançado a segunda versão do MSX, o MSX2, com melhores gráficos e RAM mínima de 64KB. Os jogos eram lançados em cartuchos, mas cópias de programas podiam ser encontradas em fitas cassetes e, depois, em disquetes. Com o aparecimento de jogos maiores que 64KB, os chamados MegaROMs, foram desenvolvidos periféricos específicos para acomodar todos os dados e permitir que as cópias rodassem sem sobressaltos. Mesmo com o surgimento do Master System da Sega, PC Engine da NEC e Atari 7800 da Atari, a Nintendo continuou dominando o mercado com o NES. O game, Super Mario Bros (fig.16) da NES, criado por Shingeru Miyamoto se torna febre. Na quarta geração, começou a guerra dos 16 Bits, são lançados os video games Mega Drive da Sega e Super NES da Nintendo e com eles, jogos como Super Mario World (fig.17), E-Swat, AfterburnerII, Street Fighter II (fig.18), Tartarugas Ninjas e Sonic (fig.19) criando filas gigantescas e rendendo fortunas.[6] Fig. 12 console NES, da Nintendo Fig. 13 Star Soldier Fig. 16 Super Mario Bros, febre responsável pelo inicio da 4º geração Fig. 17 Super Mario World 3
4 Fig. 18 Street Figther II Fig. 21 Tomb Raider Fig. 19 Sonic Acontece a primeira investida da Sony no mercado de videogames. Propondo o lançamento de um CD- ROM, para o console Super NES. O periférico melhoraria as capacidades gráficas e sonoras com o novo formato em CD, mas desfazem o projeto próximos da conclusão. Na quinta geração, com jogos de 32 e 64 bits e o surgimento dos jogos em 3D, juntos são lançados os consoles Playtation, Jaguar, 3DO e Nintendo 64, o sucesso foi inevitável. A quinta geração marcou com os jogos Super Mario 64 (fig.20), Tomb Raider (fig.21) e Final Fantasy VII (fig.22). Além de mais realismo e ação ao invés da fantasia, havia mais velocidade como nos jogos Sonic e Mario. Fig. 22 Final Fantasy VII Outros jogos importantes dessa época foram: Virtua Fighter, Daytona USA, Virtua Cop, Sega Rally Panzer Dragoon, NiGHTS into Dreams, Chrono Cross, Metal Gear Solid, Castlevania: Symphony of the Night, Tekken, Ridge Racer, The Legend of Zelda: Ocarina of Time, F-Zero X,GoldenEye 007, Banjo-Kazooie e Perfect Dark. A sexta geração de 128 bits é composta pelo Dreamcast da Sega, Playstation 2 da Sony, GameCube da Nintendo e um novo competidor que entrava no mercado: a gigante do software Microsoft, com o Xbox. A sexta geração foi marcada por jogos com excessiva violência e sexo como as séries Grand Theft Auto (fig.23), Resident Evil, Manhunt (fig.24), e NARC e pelo abandono do mercado brasileiro com jogos e consoles importados. Em 2005 com o novo console da Microsoft, o Xbox 360, começou a sétima geração e na sequencia foram lançados em 2006 pela Sony o Playstation 3 e Wii da Nintendo. Pela primeira vez na história dos video games, Sonic (SEGA) e Mario (Nintendo) estam juntos num jogo de video game. O jogo chamado Mario & Sonic at the Olympic Games(Nintendo Wii e Dreancast). [6] Fig. 20 Super mario 64 4
5 Fig. 23 Grand Theft Auto - GTA Fig. 24 Manhunt Inteligência Artificial em Jogos Eletrônicos Inicialmente os jogos eletrônicos sempre seguiam certo padrão, tal fato desmotivava os desafiantes, com o passar dos anos, pessoas ligadas à área de Inteligência Artificial demonstraram interesse e até mesmo certa curiosidade em adaptação de melhorias em jogos. Isso ocorreu devido à área de jogos representar um bom domínio para a exploração da Inteligência Artificial, pois esta constitui uma tarefa estruturada (conhecimento de estados iniciais e finais) na qual é fácil medir o sucesso ou fracasso. Inicialmente, tinha-se a idéia de que a implementação de jogos não exigia grande quantidade de conhecimento e que podiam ser solucionados por uma busca direta a partir do estado inicial para a posição vencedora. Realmente os jogos são estruturados, porém de acordo com a complexidade destes a quantidade de conhecimento cresce rapidamente. No início dos anos 60, Arthur Samuel obteve êxito na criação do primeiro programa operacional significativo de jogos com uso de Inteligência Artificial. O programa jogava damas, e além de simplesmente jogar, ele aprendia com seus próprios erros e melhorava seu desempenho [7]. O termo IA em jogos" (ou Game AI ) é geralmente usado de forma muito ampla, variando desde a representação e controle de comportamento de personagens não controlados pelo jogador no jogo (nonplayer characters NPCs) a problemas de controle de mais baixo nível, que geralmente seriam considerados campo da teoria de controle. Os primeiros jogos que tentaram implementar uma certa inteligência" nos personagens controlados pelo computador o faziam de maneiras bastante precárias, através de regras estímuloresposta implementadas por meio de estruturas do tipo if-then-else dentro do código. Esta abordagem causava grandes problemas no caso de necessidade de alterações e não permitia grande flexibilidade. Percebeu-se rapidamente a necessidade de melhores técnicas de modelagem para a representação e controle do comportamento desses personagens, por exemplo, permitindo aos NPCs ter objetivos e incorporarem um estado interno que permita perseguir esses objetivos. [8] Hoje em dia existem diversos jogos que utilizam de técnicas de Inteligência Artificial. Tradicionalmente, desenvolvedores de jogos digitais fazem uso sempre de um mesmo conjunto de técnicas simples na implementação das funcionalidades de inteligência artificial em jogos, algumas das técnicas encontradas são: Máquinas de estado finito (Finite State Machines - FSMs) (Fig. 25) e Máquinas de estado fuzzy (Fuzzy Finite Sate Machines - FuSMs), que são basicamente um conjunto de estados e transições, usadas para representar comportamentos, bastante utilizadas em jogos em 1º pessoa. O algoritmo A* (A-Star) (fig.26), componente de uma técnica conhecida como pathfinding, bastante utilizada em jogos de estratégia, para calcular caminhos, algumas outras técnicas que podem ser chamadas de Artificial Life (A-Life), tais como comportamentos de movimentação que podem dar maior realismo para a movimentação, como exemplo de jogo que utiliza esta técnica, podemos citar Sim City (fig.27) e The Sims (fig.28). Dentre as técnicas mais atuais, podemos citar as redes neurais artificiais, que podem ser exploradas em jogos de futebol e Algoritmos Genéticos, tema desse artigo, que pode ser utilizado em jogos de corrida. Alguns jogos também fazem uso de árvores de decisão e regras de produção quando algum tipo de raciocínio sobre o mundo de jogo é necessário[9]. Fig. 25 Maquina de Estados Finita FSM 5
6 Fig. 26 Algoritmo A-Star em funcionamento Ano Jogo I.A. Utilizada 1952 OXO Busca em árvore 1974 Qwak e Pursuit Padrão de movimentação 1975 Gun Fight Padrão de movimentação 1978 Space Invaders Padrão de movimentação 1980 Pacman Padrão de movimentação com personalidade 1987 Jogos de esporte Sistemas Especialistas 1989 SimCity A-Life 1990 Herzog Wei Máquina de estados finita 1993 Doom Máquina de estados finita 1996 Battlecruiser Redes Neurais 3000AD 1998 Half Life Máquina de estados finita e scripts 2000 The Sims Máquina de estados Fuzzy e A-Life 2001 Black & White Redes Neurais e aprendizado por reforço 2002 Creatures A-Life (DNA digital) Quadro 1: Linha de tempo da IA em jogos. [3] 1.2. Evolução Natural das Espécies Fig. 27 Sim Cyti Fig. 28 The Sims No entanto, com o avanço dos jogos eletrônicos, técnicas mais avançadas vêm também sendo utilizadas. Este artigo explora a utilização de Computação Evolutiva, para resolução do problema de rota (caminhos), implementando um Algoritmo Genético para que o jogador (agente) encontre uma rota (solução) analisando os prós e contras da utilização desta técnica como Inteligência Artificial em Jogos. A teoria da evolução é baseada na idéia de que, especécies sofrem mutações ao longo das gerações levando ao surgimento de novas especies, ou seja, afirma que as espécies de animais e vegetais existentes na Terra não são imutáveis. Até o século XVIII a cultura ocidental entendia que a criação de qualquer espécia era ato Divino e era impossivel adimitir que a espécie humana percentia a ordem dos primatas ao invés de serem criados por sopro Divino. [12] Deus era responsável pela criação e tudo e cabia ao homem apenas dar o nome. [12] As descobertas eram adaptadas as crenças religiosas.[12] Quando começaram a ser descobertos ossos de dinossauros e outros animais extintos, explicações como ossos de animais que não conseguiram embarcar na arca de Noé e morreram no dilúvio foram dadas pelo sábio francês George Cuvier. De acordo com a história, um dos primeiros a discordar dessa idéia, foi o pesquisador francês Jean-Baptiste Lamarck que afirmava que as condições abientais unfluenciavam na modificação nas características dos individuos gerando um novo individuo. Dessa forma, segundo Lamarck, as condições de sobrevivencia de um individuo, faziam com que suas características sofressem alterações e consequentemente em seus descendentes: Os filhos de pessoas que tomassem muito sol, já nasceriam mais morenas ou a necessidade de peixes em respitar na atmosfera teria feito aparecer pulmões, fazendo com que os seu descendentes passassem menos tempo na agua, fazendo com que as brânquias dessaparecesse pela inutilização gerando assim uma nova espécie, diferente da primeira gerada. [12] Em 1859, Charles Darwin gerou grande impacto com a publicação do livro A origem das espécies que pôs em evidência a seleção natural no mecanismo da evolução. Darwin observou que existiam diferenças de 6
7 indivíduos entre a mesma espécie, porém constatou que na luta pela existência havia uma competição de individuos com capacidades diverasas e portanto os mais adaptados deixavam maior o numero de descendentes e assim afirmou que o processo evolutivo se dava por mutações e não por meio de esforços contínuos como acreditava Lamarck. Mutações eram alterações genéticas que surgiam com o acaso em determinados indivíduos de uma espécie. Dessa forma os herdeiros de individuos mais vantajosos, predominam nas gerações sucessivas, fazendo com que os tipos inferiores se existinguissem, ou seja, na evolução, nada se criava ou se reciclava, os organismos estavam sempre em um lento mas constante processo de mutação agindo através de um acúmulo de sucessivas variações favoráveis a sobrevivencia. Segundo Darwin [12], a seleção natural é baseda no fato de que os serem vivos sofrem mutações genéticas e podem passá-las para seus descendentes fazendo com que casa descendente coloque a prova sua herança genécia as condições ambientais em que são obrigadas a viver, e os mais fortes possam viver e passar a diante seus genes. Um exemplo são os peixes primitivos que não posiam tirar oxigênio diretamente da água, alguns passaram por mutações e se adaptaram melhor a vida aquática e hoje dominam os rios, lagos e oceanos Algoritmos Genéticos Os Algoritmos Genéticos são técnicas de busca e otimização que se baseiam na teoria de Darwin sobre a Evolução Natural das Espécies, nos princípios de seleção natural e da genética. [1] Os Algoritmos Genéticos aplicam os princípios de Darwin á modelos computacionais para encontrar soluções [4]. A evolução que as soluções sofrem, dependem de uma codificação entre elas. Na natureza, o cruzamento entre diferentes indivíduos ancestrais pode gerar superindividuos, tendo uma adaptação bem maior que seus pais. Desta forma que as espécies evoluem, tendo características adaptadas ao ambiente em que vive. Os Algoritmos Genéticos trabalham com uma analogia direta com a natureza. Iniciando com uma população de indivíduos, onde cada um representa a possível solução para o problema apresentado. Para cada indivíduo se associa um grau de aptidão, determinando a capacidade de competir com os outros indivíduos da população, quanto maior a sua aptidão mais chances ele tem de ser escolhido pra cruzar com outro individuo escolhido da mesma forma, desse cruzamento será gerado descendentes com as características dos indivíduos que se cruzaram. Quanto menor for à probabilidade do individuo, menor será a possibilidade de propagação das características desse individuo para as gerações futuras. Com isso se produz uma nova população que substitui à antiga atendendo melhor a solução. Assim ao longo das gerações, as melhores características se propagam, facilitando a exploração de áreas do espaço de busca. Quando os Algoritmos Genéticos são bem projetados é grande a possibilidade de encontrar uma solução valida próxima de uma solução ótima, se não uma propria solução ótima. Existem diferentes tipos de Algoritmos Genéticos, Algoritmos Genéticos Convencionais, Não Convencionais, Paralelos, entre outros Características Gerais Segundo [10]. Os Algoritmos Genéticos diferem em quatro pontos principais dos métodos tradicionais de busca e otimização: 1) Trabalham com uma codificação de conjunto 2) Trabalham com população 3) utilizam informações de custo e recompensa 4) utilizam regras probabilísticas Os princípios dos Algoritmos Genéticos são análogos aos princípios da teoria da evolução natural das espécies descritos por Darwin, sendo que o indivíduo mais adaptado (apto) a situação ou problema, tem maior chance de existir e fazer com que sua espécie perpetue, através da reprodução. A utilização de Algoritmos Genéticos como ferramenta para solução de problemas é a representação destes problemas, pois sua finalidade é uma melhor solução para o problema apresentado [10] Codificação Consiste na seleção dos indivíduos para determinado problema. Primeiramente existe o problema a ser resolvido, a partir deste e, a partir de um indivíduo (parâmetro/gene), gera-se uma população aleatória (cromossomos) de indivíduos que podem ser a solução para o problema. As 4 características fundamentais dos Algoritmos Genéticos, são citadas abaixo; Função de avaliação: Para esta característica ntende-se como a avaliação das habilidades e aptidão de cada cromossomo (população) para determinado problema. Após a criação aleatória dos indivíduos são avaliadas suas aptidões e os melhores, têm maiores chances de serem perpetuados através da reprodução. Convergência prematura: conseqüência de má formação do modelo dos genes bem adaptados, mas não ótimos, podem rapidamente dominar a população. Quando isto ocorre, são eliminadas as possibilidades de busca por melhores soluções para o problema, pois o algoritmo se converte ao azar. Finalização lenta: neste acontece ao contrário do anterior, pois ao longo de muitas gerações a população haverá convergido, mas não localizado o máximo local. Reprodução: Escolha dos melhores indivíduos para o cruzamento e reprodução criação da nova população sucessivamente, até se obter a solução satisfatória do problema. Convergência: Progressão uniforme; quando um Algoritmo Genético é devidamente implementado favorece na evolução da população e perpetuação das espécies, resultando numa solução válida. 7
8 Para um Algoritmo Genético ser desenvolvido basicamente os passos são; criação alguns parâmetros, tais como quantidade de gerações, tamanho da população, tamanho da cadeia de bits para cada individuo, taxa de mutação, taxa de permanência na população, quantidade de cruzamentos e condição de parada, a definição da função de avaliação, a forma de reprodução e mutação. Tendo todos esses passos finalizados inicia-se o desenvolvimento do Algoritmo Genético da seguinte forma: uma população inicial é gerada aleatoriamente, após ser criada, a mesma é avaliada, escolhem-se os melhores indivíduos (que obtiveram a melhor nota) para o cruzamento, realizamse as mutações necessárias definidas, gera-se a nova população e o processo de avaliação é realizado novamente, geralmente o programa fica em loop, até que a condição de parada seja satisfeita, geralmente não se usa uma solução válida como condição de parada, mas dependendo da utilização a primeira solução valida é o suficente. A Figura 29 representa o fluxo de funcionamento de um Algoritmo Genético. utilizada uma ferramenta chamada Blitz3D (Fig.30). O Blitz3D é uma ferramenta de desenvolvimento, focada no desenvolvimento de aplicações multimídia em geral (2D e 3D), com uma linguagem de programação derivada do Basic. Fig.30 Ambiente de desenvolvimento do Blitz3D Para efeito de testes, foi utilizado um mapa de 20 x 15 células (Fig.31), onde cada obstáculo assim como a saída, o ponto de partida, o ambiente disponível para movimentação e o próprio jogador (agente) possuíam dimensões de 40 x 40 pixels, assim formando um mapa de 800 x 600 pixels. Fig.31 Mapa de teste 20 x 15 (800 x 600 pixels) Fig. 29 Processo básico de funcionamento de um Algoritmo Genético. 2. Metodologia O mapa de teste é um simples arquivo BMP, confeccionado num editor simples de imagem (Paint Brush). Para as tarefas de movimentação e avaliação dos indivíduos utiliza-se uma matriz (Fig.32), gerada a partir da imagem BMP do mapa. No carregamento do mapa para a matriz, foram armazenados todos os espaços disponíveis para movimentação, mapeado todos os obstáculos, a posição inicial do jogador (agente) e o destino (saída). Com base no conhecimento adquirido em pesquisas, (artigos, dissertações, monografias, entre outros), foi desenvolvido um jogo consistindo num labirinto, onde o computador, através de um jogador (agente), precisa chegar à saída do mapa (ambiente) sem colidir com os obstáculos. Para isso foi utilizada uma técnica fundamentada em Algoritmo Genético como técnica de Inteligência Artificial para conseguir com que o agente chegasse à saída. No desenvolvimento do jogo foi Fig.32 Matriz do mapa gerada pelo programa a partir da imagem que descreve o ambiente. 8
9 Para interpretação da matriz pelo programa, foram definidos alguns números inteiros como representações de elementos do mapa de forma que, onde o programa encontra um inteiro 1 significa que o indivíduo (agente) não pode passar, pois trata-se de um obstáculo. Onde encontra um 0 pode-se realizar movimentos normalmente, o inteiro 5 representa a posição inicial do jogador (agente) e o inteiro 9 representa o destino (meta). Até agora foi abordado o funcionamento inicial do programa, consistindo nas etapas de carregamento do mapa em BMP para uma matriz e reconhecimento do mesmo (obstáculos, espaços disponíveis para movimentação, posição inicial e destino do agente). Para o desenvolvimento do Algoritmo Genético, foi criada uma população inicial, composta por N indivíduos, sendo que cada indivíduo podia realizar P passos, e reproduzirem-se entre si por G gerações. Cada indivíduo possui algumas características próprias que passam de geração para geração. Na genética, as características envolvem genes e cromossomos, os cromossomos são constituídos de alelos. Damos uma importância elevada ao cromossomo e aos seus alelos, pois estes fazem parte de um Algoritmo Genético e como não poderia deixar de ser, também fazem parte do nosso desenvolvimento. Em um Algoritmo Genético, um indivíduo possui um cromossomo representado por um conjunto binário (cadeia de bits) onde cada elemento da cadeia representa um alelo (Fig.33). Utilizamos esta cadeia de bits para representar os passos possíveis para os indivíduos da população. Cada par de alelos representa a direção do passo do individuo, de forma que, quando o par obtido é; 01 entende-se um movimento para baixo, 11 um movimento para cima, 10 um movimento para direita e 00 um movimento para esquerda, desta forma, para que um individuo realize 100 passos, seu cromossomo deve possuir obrigatoriamente 200 alelos. Na criação do cromossomo foi utilizado um mecanismo que sorteia aleatoriamente um número 0 ou 1 para um alelo. A figura 7 ilustra a representação de 1 cromossomo e os passos, separados de 2 em 2 alelos. Passos Filho1 Filho 2 Filho 3 Filho 4 Filho 5 Filho 6 Fig.34 Reprodução utilizada no desenvolvimento do Algoritmo Genético Para cada individuo foi dada uma nota, que foi interpretada pelo programa como nota de aptidão da seguinte forma; usa-se o total de passos validos PV dividido pela Distância Euclidiana DE, que nada mais é que à distância a qual o jogador (agente) ficou do destino ao chegar ao final de sua avaliação, dada pela equação 1. DE = ( x u) ² + ( y v)² Equação 1 Fórmula para cálculo da distância euclidiana Após processar e avaliar todos os indivíduos, são selecionados 6% dos indivíduos que apresentam o melhor desempenho (maior nota) para realizarem o cruzamento, desses 6% os 4 melhores indivíduos permanecem na população para fazerem parte da próxima geração, ou seja, fazem parte da próxima geração os indivíduos Elitistas que são os 4 melhores e os filhos gerados a partir do cruzamento dos 6% dos melhores indivíduos. Após esse processamento, caso a próxima geração ainda não atinja o total de indivíduos da população, realiza-se a mutação de alguns indivíduos. A mutação no Algoritmo Genético consiste na troca aleatória de bits, 1 por 0 e 0 por 1 (Fig.35). A mutação foi realizada da seguinte forma, foi definida uma porcentagem de mutação, onde se multiplicou o tamanho da população pela quantidade de alelos e pela taxa de mutação e dividiu-se por 100. (Equação.2). Antes Depois Antes Depois Fig.33 Representação do cromossomo e os seus alelos (passos) Para reprodução no Algoritmo Genético, foi adaptada uma forma de reprodução, na qual se gera, para cada cruzamento 6 filhos, cada filho apresenta as seguintes características do individuo 1 e do individuo 2 respectivamente 25% e 75%, 50% e 50%, 75% e 25%, e do individuo 2 para o individuo 1 respectivamente, 25% e 75%, 50% e 50%, 75% e 25%, (Fig.34). Antes Depois Fig.35 Ilustração do cromossomo de 3 indivíduos sofrendo mutação TP A TM M = 100 Equação 2 Formula para calculo do total de mutações 9
10 TP Tamanho da população A Quantidade de Alelos TM Taxa de Mutação M Quantidade de Mutações Quadro 2 elementos da Equação 2 Para finalização do Algoritmo Genético (condição de parada do programa), não foi considerado o primeiro individuo solução valido, uma vez que um outro ou alguns outros indivíduos da mesma ou de próximas gerações podiam apresentar um melhor resultado, o funcionamento do Algoritmo Genético foi realizado com um Loop considerando a quantidade de gerações. Inicio Gera a população Inicial Geracao_Atual <- 1 Enquanto Geracao_Atual < Geracoes Avalia os indivíduos Seleciona os Melhores indivíduos Realiza o Cruzamento entre os melhores Realiza a Mutação Geracao_Atual <- Geracao_Atual + 1 Fim enquanto Exiba na tela o tempo utilizado para o....processamento Se houveram indivíduos soluções Exiba as soluções encontradas Fim se Fim Portugol utilizado para representação do Programa (Algoritmo Genético) 3. Análise dos Resultados Após a finalização do desenvolvimento, o Algoritmo Genético foi executado, para obtenção dos resultados, no mesmo computador utilizado para desenvolver o mesmo, o qual apresenta a seguinte configuração: Processador Intel Pentiun 4, CPU 2,66 GHz. Memória 512 MB DDR II Placa de Vídeo G - Force FX 5200 Resolução 800 x 600, 32 Bits de Cor Foram realizados 120 testes variando o tamanho da população, a quantidade de gerações e a quantidade de passos possíveis por individuo. Os resultados dessa simulação podem ser observados na Tabela 1. Tabela 1 Resultados Observados Indivíduos Gerações Passos Solução % % % % % % % % % % % % Através dos resultados obtidos na Tabela 1, pode-se observar que os melhores resultados foram obtidos utilizando-se uma quantidade de 61% a mais de passos alem do necessário para atingir o estado meta (saída), considerando uma solução ótima (31 passos). Para todos os indivíduos solução, em todos os cenários acima testados houve realização de movimentos desnecessários. Tentando resolver esse problema, foram realizadas algumas execuções do programa com quantidade de passos cada vez menor, onde percebeu-se a dificuldade de encontrar solução com uma quantidade de passos inferior a 45. De 45 a 50 passos foi possível encontrar soluções, de 40 a 45 passos, raramente encontrava-se solução. Já com quantidade de passos inferior a 40, pelos nossos testes, foi possível encontrar soluções numa proporção de 1 execução valida, com pelo menos 1 individuo solução para 180 testes, mesmo a quantidade de passos necessários sendo apenas 31. Outro teste foi realizado tentando encontrar mais soluções com 40 passos variando a quantidade de gerações, foram testadas as seguintes quantidades de gerações: 150, 200, 250, 300, 350 e 400. O tempo de processamento foi aumentando a cada teste, no ultimo o tempo de processamento chegou a 2,186 segundos e os resultados foram respectivamente 0,8%, 1,2%, 1,9%, 2,4%, 3% e 5% de sucesso, encontrando pelo menos 1 individuo solução. O Gráfico 1 mostra o aumento na quantidade de indivíduos solução proporcionalmente ao aumento de gerações. Gráfico 1 - % de Soluções x Gerações 10
11 O aumento do tempo de processamento decorrente ao aumento de gerações, também foi algo relevante, para o desenvolvimento do Algoritmo Genético. Gráfico 2 - Tempo x Gerações Alem dos testes mencionados até o momento, foram elaborados mais dois mapas diferentes, com uma necessidade diferenciada de passos para chegar à saída. Para o mapa ilustrado na Figura 36, foram realizados 10 testes utilizando uma quantidade de 61% a mais de passos além do necessário para atingir o estado meta (saída), considerando uma solução ótima, ou seja 36 passos. Para esse teste houve 100% de soluções. Foram também realizados testes com uma quantidade de 45% a mais de passos, porém nesse teste houve um aproveitamento 60%. Fig. 36 Mapa alternativo utilizado para mais testes Para o último mapa (Fig. 37), foram realizados os mesmos tentes anteriores, com 61% e 45% de passos além do necessário e os resultados foram respectivamente, 100% e 70% de soluções. Para o mapa ilustrado na figura 10 apenas 9 passos válidos resolveriam o problema com uma solução ótima, porém com apenas 9 passos (18 alelos/bits na cadeia), não foi encontrada nenhuma solução em 30 testes, algo curioso que pensamos no momento desse teste foi, como o Algoritmo Genético se comportaria com 30, 50, 100 passos?. Com o surgimento dessa questão foram realizados mais testes e os resultados foram como imaginamos. Para 30 passos o processamento conseguiu um único resultado valido, com alguns passos desnecessários. Houve um aproveitamento de 90% e com 50 passos, verificou-se o aumento da quantidade de passos desnecessários. A porcentagem de aproveitamento diminuiu para 30%. Com 100 passos, neste caso foi observado que apesar da quantidade de passos aumentar grandiosamente a porcentagem de aproveitamento caiu para 0%. O Algoritmo Genético se perdeu no mapa. 4. Discussão Para a implementação do Algoritmo Genético, dentre as diversas variações do mesmo, escolhemos para testes o Algoritmo Genético Convencional. Alguns pontos foram explorados e alterados no desenvolvimento, um deles relacionando ao Cruzamento (Crossover). Para efeito de estudo, procuramos aprofundar, um pouco mais na Biologia, utilizando a idéia de que, na reprodução de dois indivíduos existem combinações que determinam algumas características do pai ou da mãe, tal como a cor dos olhos. Essas combinações referem-se aos Genes Recessivos e Genes Dominantes, AA, Aa, aa, aa. Como não encontramos nos materiais pesquisados uma implementação de Algoritmo Genético na qual o cruzamento envolvesse estas combinações biológicas de Genes, escolhemos utilizar esse processo de cruzamento. (Fig. 34) Todo material relacionado a Algoritmo Genético que encontramos nas pesquisas tratava do assunto Reprodução. Alguns tratavam da reprodução de um filho baseado em 50% das características de um indivíduo, que poderia ser entendido como sendo o pai, e 50% do outro indivíduo que poderia ser entendido como sendo a mãe, gerando assim 2 filhos novos (Fig.38). [2] Individuo 1 Individuo 2 Filho 1 Filho 2 Fig.38 Ilustração da reprodução com 50% de características dos pais Fig. 37 Mapa alternativo utilizado para mais testes Outros tratavam da reprodução partindo de um corte aleatório gerando 2 novos indivíduos (Fig.39). Para essa reprodução, selecionava-se um ponto de corte qualquer do cromossomo e a partir deste ponto selecionado 11
12 gerava-se os filhos, até o ponto de corte, copiava-se as características de 1 individuo, do ponto de corte em diante completava-se os bits faltantes com os bits do individuo 2. [5] Individuo 1 Individuo 2 Filho 1 Filho 2 Fig.39 Ilustração da reprodução com ponto de corte aleatório Sobre a mutação, como na natureza, uma mutação qualquer que seja, pode ser benéfica ou maléfica. No Algoritmo Genético isso também acontece. A parte benéfica é que se pode trocar um ou mais bits, de modo que os passos antes inválidos tornam-se válidos. Com uma mutação nesse nível a distância euclidiana diminui, fazendo assim a nota do individuo ser alta. A parte maléfica é que devido ao fato da mutação ser aleatória, pode-se destruir um filho possivelmente bom que poderia ser uma solução válida. Quanto a forma de avaliação, esta foi escolhida para ser realizada através de uma matriz, pois na primeira fase de desenvolvimento, quando foi utilizada diretamente a imagem do mapa para realizar a avaliação dos indivíduos, o tempo de processamento, apesar de não estar demorado, (em torno de 0,167) segundos para resolução do caminho (problema), com uma população de 80 indivíduos, com 100 passos por indivíduo e 100 gerações, com o incentivo, as idéias e alguns desafios propostos pelo nosso professor orientador Sidnei Alves de Araújo, resolvemos então alterar a forma de processamento para a movimentação dos indivíduos. Depois de alterada a programação do Algoritmo Genético para utilizar a matriz do mapa, o mesmo teste apresentou um resultado com 0,037 segundos. Se pararmos para analisar, não há uma diferença tão grande entre as duas soluções para nós, porém num jogo com diversos agentes tendo de ser processados simultaneamente, o tempo de processamento vai aumentando, e num jogo que necessite de respostas imediatas, um processamento demorado torna-se inviável e como o objetivo desse artigo foi estudar a viabilidade de aplicação em jogos eletrônicos, onde puder reduzir o tempo de processamento, faremos o possível e o impossível para reduzir. Para trabalhos futuros, pretendemos adaptar ao Algoritmo Genético mais 4 possibilidades de passos, diagonal superior direita, diagonal superior esquerda, diagonal inferior direita e diagonal inferior esquerda, aumentando o cromossomo (cadeia de bits), mas ficando ainda mais próximo da realidade de um jogo. Juntas com algumas idéias novas quanto às formas de reprodução, avaliação e mutação. Além da implementação num possível cenário tridimensional (3D) com interatividade do jogador (personagem) para com os agentes (inimigos). 5. Conclusão O uso de Algoritmo Genético mostrou-se útil para resolução de alguns tipos de problemas. Observou-se que a variante mais agravante para a solução é a quantidade de gerações necessárias para convergir. Aliado a essa agravante, podemos citar a quantidade de passos necessários para se obter 100% de aproveitamento (soluções), que deve ser 61% a mais da quantidade necessária para solução ótima, mas o Algoritmo Genético mostrou resultados validos com uma porcentagem menor, porém não obteve 100% de aproveitamento (soluções). Outra observação foi a extrapolação de passos, uma quantidade demasiadamente grande ou desnecessária, além de prejudicar o processamento, tende a não conseguir convergir, devido ao fato do Algoritmo Genético se perder no mapa. Dessa maneira, dependendo do tipo do jogo, a utilização do AG como técnica de Inteligência Artificial não é viável, tanto na quantidade de tempo gasto quanto na necessidade de uma solução. Já imaginou um jogo no qual você precisa enfrentar um inimigo, mas ele não chega a você, pois o algoritmo responsável pela Inteligência do jogo não consegue encontrar uma solução? Outra consideração é quanto à utilização. Quando se necessita descrever o caminho percorrido para se chegar ao estado meta o Algoritmo Genético não é a técnica de Inteligência Artificial mais propícia, uma vez que para um Algoritmo Genético diferentemente de outros algoritmos de Inteligência Artificial, (por exemplo, árvores de busca), que criam o caminho no momento de avaliação, já avaliando o caminho, caso encontre uma falha, descarta o resultado. Por outro lado os Algoritmos Genéticos realizam uma busca em feixe os caminhos são providos através dos operadores genéticos, assim sendo, no momento da avaliação, os caminhos já existem (um caminho por individuo), realizando uma busca em feixe, ou seja, varias soluções ao mesmo tempo. 6. Agradecimentos Os autores agradecem a Deus pela sabedoria concedida. Agradecem também às seus familiares, e namoradas pela compreensão e pela ajuda no desenvolvimento desse artigo. Por ultimo, mas não menos importante, alias o mais importante, o Professor orientador, Sidnei Alves de Araujo, pela sua paciência, pelas suas idéias, criticas, sugestões e desafios. 7. Referências [1] LINDEN, Ricardo, Algoritmos Genéticos, Editora Brasport, 2006 [2] UNIDEV, Site Internet: acessado em 10/2007 [3] KISHIMOTO, André Inteligência Artificial em Jogos Eletrônicos,
13 [4] OCHI, Luiz Satoru Algoritmos Genéticos: Origem e Evolução, 2007 [5] APPOLINARIO, Vitor Borgatto, PEREIRA, Thompson Laureano Navegação Autônoma em Jogos utilizando Algoritmos Genéticos [6] ABRAGAMES, Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos, site da internet, acessado em 05/2008 [7 ] Acontecimentos Importantes para Inteligência Artificial, Instituto Superior de Engenharia do Porto A155E E-4C13-803B4CCC4F40E63/37/ Acontecimentos_Importantes_IA.pdf, Acessado em 05/2008 [8] KARLSSON, B. F. F. Um Middleware de Inteligência Artificial para Jogos Digitais, Dissertação de Mestrado - Pontifícia Universidade Católica do Rio de Janeiro, 2005 [9] Perucia, Alexandre Souza; Berthén, Antonio Córdova; Bertschinger, Guilherme Lage; Menezes, Roberto Robeiro Castro. Desenvolvimento de jogos eletrônicos. São Paulo: Novatec, 2005 [10] Algoritmos Genéticos, Site Internet: /index.htm, acessado em 03/2007 [11] HIGH-DEF DISC NEWS, site da internet y_trends/sony/playstation_3/ps3_holiday_sales _Total_1.2_Million/1343 Acessado em 05/2008 [12] Charles Darwin Origem das Espécies - Col. A Obra Prima de Cada Autor - Série Ouro. Martin Claret 1859 /
Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução
Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Algoritmos Genéticos Aula I Introdução Roteiro Introdução Computação Evolutiva Algoritmos
Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva
Computação Evolutiva Algoritmos Genéticos A computação evolutiva (CE) é uma área da ciência da computação que abrange modelos computacionais inspirados na Teoria da Evolução das Espécies, essencialmente
Inteligência Computacional para Jogos Eletrônicos
Inteligência Computacional para Jogos Eletrônicos Papéis da IA em Jogos Adversários Aliados Personagens de apoio NPC s (Non-player Character) Comentaristas Controle de câmera Geração de fases Nivelamento
3 Algoritmos Genéticos
Técnicas de Inteligência Computacional 33 3 Algoritmos Genéticos Este capítulo resume os principais conceitos sobre o algoritmo evolucionário empregado nesta dissertação. É apresentada uma breve explicação
Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:
Algoritmos Genéticos Prof. Luis Otavio Alvares INE/UFSC Características de alguns problemas Tamanho do espaço de busca- Ex. caixeiro viajante: 10 cidades: 181.000 soluções 20 cidades: 10.000.000.000.000
Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial
Algoritmos Genéticos Texto base: Stuart Russel e Peter Norving - Inteligência Artificial junho/2007 Algoritmo Genético Uma variante da busca em feixe estocástica Estado sucessor gerado pela combinação
Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto
Algoritmo Genético Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução 2. Conceitos Básicos 3. Aplicações 4. Algoritmo 5. Exemplo Introdução São técnicas de busca
Introdução aos Algoritmos Genéticos
Introdução aos Algoritmos Genéticos Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana 2 Algoritmos Genéticos: Introdução Introduzidos
Técnicas de Inteligência Artificial
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 9 Algoritmos Genéticos Max Pereira Algoritmos Genéticos Algoritmos Genéticos São técnicas de busca e
Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP
Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP 1 Principais Tópicos Introdução Evolução Natural Algoritmos Genéticos Aplicações Conclusão 2 Introdução http://www.formula-um.com/ Como
Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural
Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP Principais Tópicos Introdução Evolução Natural Algoritmos Genéticos Aplicações Conclusão 1 2 Introdução Evolução natural http://www.formula-um.com/
3. Resolução de problemas por meio de busca
Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por
Algoritmos Genéticos
Algoritmos Genéticos Introdução Um Algoritmo Genético (AG), conceitualmente, segue passos inspirados no processo biológico de evolução natural segundo a teoria de Darwin Algoritmos Genéticos seguem a idéia
Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.
Metahuerísticas: Algoritmos Genéticos Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 8) Meta-heurísticas Classificação de métodos heurísticos: os métodos
Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008
Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Introdução São técnicas de busca e otimização. É a metáfora da teoria da evolução das espécies iniciada pelo Fisiologista e Naturalista inglês Charles Darwin.
Técnicas de Inteligência Artificial
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 9 Algoritmos Genéticos Max Pereira Algoritmos Genéticos São técnicas de busca e otimização. Uma metáfora
História das Consolas de Jogos
FCT-UNL Expressao e Comunicação 2011/2012 1 Origem 2 3 4 5 6 7 8 9 10 Origem Em 1958 Willy Higinbotham e Rovert Dvorak desenvolveram um sistema de simulação de um jogo de ténis virtual ao qual chamaram
Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:
Inteligência Artificial Prof. Ms. Luiz Alberto Contato: [email protected] Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo
Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos
Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos SCC-230 Inteligência Artificial Thiago A. S. Pardo Solange O. Rezende 1 Computação Evolutiva (CE) Trata de sistemas para a resolução de problemas
Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO
Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO AULA 06 Algoritmos Genéticos Sumário Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de
Inteligência Artificial
Inteligência Artificial Aula 6 Algoritmos Genéticos M.e Guylerme Velasco Roteiro Introdução Otimização Algoritmos Genéticos Representação Seleção Operadores Geneticos Aplicação Caixeiro Viajante Introdução
Inteligência Artificial
Inteligência Artificial Prof. Kléber de Oliveira Andrade [email protected] Algoritmos Genéticos Conteúdo Introdução O Algoritmo Genético Binário Noções de Otimização O Algoritmo Genético com Parâmetros
O Mercado de Jogos Eletrônicos no Brasil
O Mercado de Jogos Eletrônicos no Brasil Carlos Eduardo de Andrade [email protected] Instituto de Computação - IC Universidade Estadual de Campinas - UNICAMP 5 de outubro de 2005 Semana Nacional
Algoritmos Genéticos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Algoritmos Genéticos Aluno: Fabricio Aparecido Breve Prof.: Dr. André Ponce de Leon F. de Carvalho São Carlos São Paulo Maio
Algoritmos Genéticos
Algoritmos Genéticos Roteiro Introdução Algoritmos Genéticos Otimização Representação Seleção Operadores Genéticos Aplicação Caixeiro Viajante Introdução Algoritmos Genéticos (AGs), são métodos de otimização
Aplicação da Metaheurística Algoritmos Genéticos na solução do problema das n Rainhas
Aplicação da Metaheurística Algoritmos Genéticos na solução do problema das n Rainhas Resumo Gardiego Luiz da Silva 1 Henrique Faria de Oliveira 2 Faculdade
APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO
APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO Profa. Mariana Cavalca Baseado em: Material didático do Prof. Dr. Carlos Henrique V. Moraes da UNIFEI Curso de verão da Profa. Gisele L. Pappa Material
Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples
Introdução Inspiração biológica Histórico da computação evolutiva Algoritmo evolutivo simples Programação evolutiva Estratégias evolutivas Algoritmos genéticos Abordagem unificada de algoritmos evolutivos
Introdução a Algoritmos Genéticos
Introdução a Algoritmos Genéticos Tiago da Conceição Mota Laboratório de Inteligência Computacional Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Outubro de 2007 O Que São? Busca
Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados
Otimização Jaime Arturo Ramírez Conteúdo 1. Introdução 2. Analogia de mecanismos de seleção natural com sistemas artificiais 3. Algoritmo genético modelo 4. Um GA simples 5. Representação, genes e cromossomos
Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva
Estratégias Evolutivas EEs Prof. Juan Moisés Mauricio Villanueva [email protected] www.cear.ufpb.br/juan Estratégias Evolutivas Desenvolvidas por Rechenberg e Schwefel, e estendida por Herdy, Kursawe
Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)
Paradigma Simbólico Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Revisão da aula anterior: definição de IA Podemos associar o termo IA com: Parte da ciência da computação
3 Otimização Evolucionária de Problemas com Restrição
3 Otimização Evolucionária de Problemas com Restrição 3.1. Introdução Este capítulo resume os principais conceitos sobre os algoritmos evolucionários empregados nesta dissertação. Primeiramente, se fornece
Uso de Algoritmo Genético para a otimização do ponto de corte da probabilidade de sucesso estimada do modelo de Regressão Logística
Uso de Algoritmo Genético para a otimização do ponto de corte da probabilidade de sucesso estimada do modelo de Regressão Logística José Edson Rodrigues Guedes Gondim 1 Joab de Oliveira Lima 2 1 Introdução
SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS
Universidade Federal do Tocantins SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS Diogo Rigo de Brito Guimarães Alexandre Tadeu Rossini da Silva Objetivo Implementar soluções heurísticas para o Jogo de Damas
Teorias evolucionistas
Teorias evolucionistas A vida em evolução Se o problema da origem da vida não tem resposta definitiva, há muitos estudos tentando resolver outra questão levantada pela biogênese: se todo ser vivo se origina
3 Algoritmos Genéticos
Algoritmos Genéticos Algoritmos Genéticos (AGs) constituem um mecanismo de busca adaptativa que se baseia no princípio Darwiniano de seleção natural e reprodução genética [101]. AGs são tipicamente empregados
INTELIGÊNCIA ARTIFICIAL
Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Pearson, 2009. Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Pós-Graduação
ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR
ALGORITMOS GENÉTICOS Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2018 Introdução Algoritmos Genéticos são algoritmos heurísticos de busca, que utilizam regras
DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES
DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: [email protected]
INTELIGÊNCIA COMPUTACIONAL
Rafael D. Ribeiro, M.Sc. [email protected] http://www.rafaeldiasribeiro.com.br A Inteligência Computacional (IC), denominada originalmente de Inteligência Artificial (IA), é uma das ciências
Algoritmos Genéticos. 1 Semestre de Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática
Algoritmos Genéticos 1 Semestre de 2015 Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática 1 2 Introdução Darwin Naturalistas: cada espécie havia sido criada separadamente
Inteligência Computacional Aplicada. O que é Inteligência Computacional? Áreas de Aplicação Algoritmos Genéticos
Inteligência Computacional Aplicada Resumo O que é Inteligência Computacional? Áreas de Aplicação Algoritmos Genéticos O que é Inteligência Computacional? Técnicas e sistemas computacionais que imitam
OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS
OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS C. de O. GONÇALVES 1, E. M. QUEIROZ 2, F. L. P. PESSOA 2, F. S. LIPORACE 3, S. G. OLIVEIRA 3 e A. L. H. COSTA 1
IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU
IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU Ana Cláudia M. SILVEIRA 1 ; Renato Machado PEREIRA 2 RESUMO A história da equação de segundo
Um Middleware de Inteligência Artificial para Jogos Digitais 105
6 Conclusão Este capítulo apresenta alguns comentários e considerações gerais sobre o trabalho de pesquisa realizado durante o desenvolvimento desta dissertação, as contribuições alcançadas e sugestões
Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ
Otimização com Algoritmos Genéticos no MATLAB Prof. Rafael Saraiva Campos CEFET-RJ Conteúdo do Mini-Curso PARTE 1 Teoria PARTE 2 Prática Conteúdo do Mini-Curso PARTE 1 Teoria 1.1. Conceitos Básicos de
Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR
Problema de Satisfação de Restrições Problema de Satisfação de Restrições Exemplos de PSR (CSP, Constraint Satisfaction Problem) Busca genérica aplicada a PSRs Backtracking Verificação forward Heurísticas
Oi, Ficou curioso? Então conheça nosso universo.
Oi, Somos do curso de Jogos Digitais da Universidade Franciscana, e esse ebook é um produto exclusivo criado pra você. Nele, você pode ter um gostinho de como é uma das primeiras aulas do seu futuro curso.
GT-JeDi - Curso de Desenv. de Jogos IA para Jogos. Gustavo Pessin 2007
GT-JeDi - Curso de Desenv. de Jogos IA para Jogos Gustavo Pessin 2007 Cronograma Base conceitual Exemplo: Achando o máximo de uma função... Como criar uma pequena aplicação: Exercício-Exemplo [Animal selvagem...]
O primeiro jogo para computadores é inventado nos Estados Unidos pelo físico Willy Higinbotham, mais exatamente no laboratório de pesquisas militares
Cronologia 1958 O primeiro jogo para computadores é inventado nos Estados Unidos pelo físico Willy Higinbotham, mais exatamente no laboratório de pesquisas militares Brooknaven National Laboratory. O programa
Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,
1 Introdução Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, os desafios encontrados durante o desenvolvimento
1. Computação Evolutiva
Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Programa de Pós-Graduação Em Computação Aplicada Depto. de Computação e Matemática (FFCLRP/USP) 2 Computação Bioinspirada
Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.
Resumo Inteligência Artificial Russel e Norvig Capítulos 3,4 e 5 Prof. MsC Ly Freitas UEG Resolução de problemas por meio de busca Como um agente busca de seqüência de ações para alcançar seus objetivos.
Organização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução
11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados
Agenda PCS / PCS 09 Inteligência Artificial Prof. Dr. Jaime Simão Sichman Profa. Dra. Anna Helena Reali Costa Busca Local e Problemas de Otimização. Introdução. Busca Local I. Subida da Encosta (Hill-Climbing)
C o m p u t a ç ã o M ó v e l. André Siqueira Ruela
C o m p u t a ç ã o M ó v e l André Siqueira Ruela Sumário Revisão sobre AGs. Codificação de uma Rede Neural. AG em treinamento supervisionado. AG em treinamento não supervisionado. Revisão: Algoritmos
Implementação De Um Algoritmo Genético Codificado Para A Solução do Problema do Caixeiro Viajante
Implementação De Um Algoritmo Genético Codificado Para A Solução do Problema do Caixeiro Viajante 1 Resumo Neste trabalho será realizada a codificação do algoritmo genético para a solução do problema do
Inteligência Artificial. Conceitos Gerais
Inteligência Artificial Conceitos Gerais Inteligência Artificial - IA IA é um campo de estudo multidisciplinar e interdisciplinar, que se apóia no conhecimento e evolução de outras áreas do conhecimento.
Introdução à Engenharia ENG1000
Introdução à Engenharia ENG1000 Aula 02 Introdução ao Game Design 2016.1 Prof. Augusto Baffa Introdução O que é um jogo? Jogar uma bola contra uma parede pode ser considerado um
Aula 1: A Evolução dos Sistemas Computacionais
Aula 1: A Evolução dos Sistemas Computacionais O primeiro computador digital foi projetado pelo matemático Charles Babbage (1792-1871). Embora Babbage tenha dispendido muito de sua vida e de sua fortuna
Modelos Evolucionários e Tratamento de Incertezas
Ciência da Computação Modelos Evolucionários e Tratamento de Incertezas Aula 01 Computação Evolucionária Max Pereira Motivação Se há uma multiplicidade impressionante de algoritmos para solução de problemas,
Introdução. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Estrutura de Dados II Prof Jairo Francisco de Souza Conteúdo Programático Parte 1 Manipulação de arquivos Ordenação, arquivos em série e sequências, classificação externa, arquivos de acesso
Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan
Exemplo de Aplicação de Algoritmos Genéticos Prof. Juan Moisés Mauricio Villanueva [email protected] cear.ufpb.br/juan Estrutura do Algoritmo Genético Algoritmo genético Inicio t = 0 inicializar P(t)
UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS
UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS Uma visão geral dos GAs Um algoritmo genético é uma classe de algoritmo de busca. O algoritmo procura uma solução dentro de um espaço para um problema de otimização.
4 Implementação Computacional
4 Implementação Computacional 4.1. Introdução Neste capítulo é apresentada a formulação matemática do problema de otimização da disposição das linhas de ancoragem para minimizar os deslocamentos (offsets)
Algoritmos Evolutivos Aplicados no Aprendizado em Jogos de Estratégia em Tempo Real
Algoritmos Evolutivos Aplicados no Aprendizado em Jogos de Estratégia em Tempo Real Rodrigo de Freitas Pereira Claudio Fabiano Motta Toledo Marcio Kassouf Crocomo Eduardo do Valle Simões Sumário Trabalhos
Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações
AG Simples/Canônico (AGS) AG introduzido por Holland Funciona bem para problemas de otimização simples e/ou de pequenas dimensões A maior parte da teoria dos AGs está baseada no AGS Utilidade didática
Inteligência Artificial (Lista 1) Prof. Alex F. V. Machado
Ministério da Educação Instituto Federal de Educação, Ciência e Tecnologia Sudeste de Minas Gerais - Campus Rio Pomba Bacharelado em Ciência da Computação 1) Considere os termos abaixo e complete. Inteligência
Algoritmos Genéticos. Indivíduos em uma população competem por recursos e parceiros. Os indivíduos mais bem sucedidos em cada competição vão produzir
Algoritmos Genéticos Algoritmos Genéticos (GA) são algoritmos de busca heurística baseados em ideias de seleção natural e genética. Dessa forma, eles representam uma forma inteligente de se fazer uma busca
4 Metáforas de Optimização
4 Metáforas de Optimização O gigantesco avanço tecnológico que vem sofrendo os sistemas de computação, mais precisamente as unidades de processamento, criou a base para o uso efetivo da Inteligência Computacional,
