Algoritmos Genticos e Computao Evolutiva em Jogos de


























- Slides: 26
Algoritmos Genéticos e Computação Evolutiva em Jogos de Entretenimento Bruno Campagnolo de Paula bruno@ppgia. pucpr. br IA para Jogos
Objetivo e Sumário Explicar a teoria de Algoritmos Genéticos mais que sucintamente; n Apresentar aplicações de AGs em Jogos de Entretenimento; n Apresentar os principais desafios e aplicabilidade desta técnica; n 9/17/2020 IA para Jogos 2
Algoritmos Genéticos n n Método que imita o processo de evolução; Passos: ¨ Gerar uma codificação para as possíveis parâmetros para a solução do problema; ¨ Criar uma população inicial aleatoriamente; ¨ Calcular a adequabilidade (“fitness”) de cada indivíduo à solução; ¨ Aplicar reprodução ou mutação para gerar novos indivíduos; ¨ Repetir o processo até conseguir uma boa solução. 9/17/2020 IA para Jogos 3
9/17/2020 IA para Jogos 4
Conceitos principais de AGs n n Gene: representação de cada parâmetro de um indivíduo; Cromossomo (genótipo): conjunto de genes, representando uma possível solução para um problema; População: Conjunto de indivíduos no espaço de busca; Geração: Iteração completa que gera uma nova população; 9/17/2020 IA para Jogos 5
Conceitos principais dos AGs n n Adequabilidade (Fitness): Aptidão do indivíduo em resolver um problema; Seleção: Os indivíduos mais aptos de uma geração selecionados. Quanto maior a aptidão, maior a chance de ser selecionado; Cruzamento (60%, geralmente): reprodução entre indivíduos; Mutação (0, 1 a 5%): alteração de um gene de um indivíduo aleatoriamente. 9/17/2020 IA para Jogos 6
Conceitos principais dos AGs n Cruzamento (crossover): 9/17/2020 IA para Jogos 7
Conceitos importantes n Elitismo: ¨ Transferência dos n melhores indivíduos da geração atual para a posterior; n Técnicas de escalonamento: ¨ Quanto mais um indivíduo é adequado mais ele tem chance de ser escolhido; n Tipos de crossover: em quantos pontos o crossover pode ser feito. 9/17/2020 IA para Jogos 8
Exemplo de cálculo de fitness n Ex: 0: 0000, 1: 0001, . . . 9: 1001, +: 1010, -: 1011, *: 1100, /: 1101, 1110 e 1111 ignorados ¨ 2+3*5 -4: ¨ 4+9: n 0010 1010 0011 1100 0101 1011 0100 1010 1001 1111 Ex: Encontrar expressões que forneçam o resultado 42. Fitness = 1 / abs(res - 42) 2+3*5 -4 = 21 fitness: 1/abs(21 -42) = 1/21 ¨ 7*7+1 -6 = 44 fitness: 1/abs(44 -42) = 1/2 ¨ 6*7 = 42 fitness: 1/0! ¨ 9/17/2020 IA para Jogos 9
Exemplos n Evolução de imagens (geração procedural): ¨ http: //www. genarts. com/karl/p apers/siggraph 91. html n Uso de AGs em Pathfinding: ¨ http: //www. shiffman. net/itp/cla sses/nature/week 10_s 06/path finding/ 9/17/2020 IA para Jogos 10
Exemplos n http: //physics. syr. edu/courses/mirror/ biomorph/ Relojoeiro cego; Geração automática de indivíduos; Idéia para o Spore; Gene 1 a 8: Controla a forma; Gene 9: Profundidade da recursão; Gene 10 a 12: Cor; Gene 13: Cor dos segmentos; Gene 14: Tamanho de separação entre os segmentos; ¨ Gene 15: Forma usada para o desenho. ¨ ¨ ¨ ¨ 9/17/2020 IA para Jogos 11
Exemplos n http: //www. genarts. com/karl/evolved-virtualcreatures. html ¨ Uma população de centenas de criaturas virtuais é criada; ¨ Cada criatura se testa sua capacidade de realizar determinadas tarefas: nadar, pular, seguir, competir, etc; ¨ As mais bem sucedidas crescem, são copiadas, combinadas e geram uma nova população; ¨ Surgem comportamentos emergentes. 9/17/2020 IA para Jogos 12
Aplicações em Jogos na Academia ou em Jogos Independentes 9/17/2020 IA para Jogos 13
Jogador automático de Go-Moku n Ver: http: //laseeb. isr. ist. utl. pt/portas_abertas/gomoku/ slide/sld 001. htm n Gene: representa uma jogada, ou seja, uma posição x e y; Cromossomo: seqüência de jogadas, ou seja, uma estratégia; Fitness: calculado a partir do número total de peças à volta de uma posição. n n 9/17/2020 IA para Jogos 14
Pacman n n Aplicação: típico jogo de presapredador; Codificação possível para um indivíduo (fantasma): ¨ Cada gene assume 4 valores possíveis (cima, baixo, esquerda e direita) que indicam o que fazer quando se chega a uma intersecção. 9/17/2020 IA para Jogos 15
GA Racer n n n Demo que permite a visualização gráfica da evolução de um grupo de veículos; Possibilita a alteração de diversos parâmetros referentes a AGs. Genoma é codificado por: ¨ Direção|Aceleração|Direção|Aceleração. . . n A cada iteração, é aplicado um valor de direção e aceleração para o indivíduo. 9/17/2020 IA para Jogos 16
Algoritmos Genéticos em Robocode Usa programação genética; n Terceiro lugar em competição direta robôs contruídos por humanos; n 9/17/2020 IA para Jogos 17
Algoritmos Genéticos em Robocode n Ver monografia em anexo (Eric e Fernando)! 9/17/2020 IA para Jogos 18
Algoritmos genéticos em Jogos de Estratégia em Tempo Real Ver: http: //www. cs. unimaas. nl/p. spronck/Pubs/ Ponsen. CGAIDE. pdf n Usa scripting dinâmico; n Usa o engine aberto Stratagus/Wargus: n ¨ http: //wargus. sourceforge. net/ 9/17/2020 IA para Jogos 19
9/17/2020 IA para Jogos 20
9/17/2020 IA para Jogos 21
Algoritmos genéticos em Jogos de Estratégia em Tempo Real Cada cromossomo possui um conjunto de estados. n Genes para: n ¨ Contrução (B), Pesquisa (R), Economia (E), Combate (C). 9/17/2020 IA para Jogos 22
Warning Forever Jogo de Nave; n Cada vez que o chefe é morto, é gerado um novo indivíduo com características mais eficazes em relação ao ataque feito. n 9/17/2020 IA para Jogos 23
Algoritmos genéticos em jogos comerciais Na realidade não há nenhuma aplicação real e comercial, mas possibilidades de aplicação; n Creatures, The Sims 2, etc. n 9/17/2020 IA para Jogos 24
Bibliografia complementar n AI Game Programming Wisdom 2: ¨ n Kalyanpur, Aditya. PACMAN using Genetic Algorithms and Neural Networks. ¨ n http: //www. ece. umd. edu/~adityak/Pacman. pdf Marc Ponsen and Pieter Spronck (2004). Improving Adaptive Game AI with Evolutionary Learning. Computer Games: Artificial Intelligence, Design and Education (CGAIDE 2004) (eds. Quasim Mehdi, Norman Gough, Stéphane Natkin and David Al-Dabass), pp. 389 -396. University of Wolverhampton. (Presented at the CGAIDE 2004). ¨ n 11. 4 Building Better Genetic Algorithms; http: //www. cs. unimaas. nl/p. spronck/Pubs/Ponsen. CGAIDE. pdf Jogador automático de Go-Moku ¨ http: //laseeb. isr. ist. utl. pt/portas_abertas/gomoku/slide/ sld 001. htm 9/17/2020 IA para Jogos 25
Resumo n n n n De: http: //www. pdj. com. br/trab_academicos/andre_kishimoto. pdf#search=%22%22 algoritmos %20 gen%C 3%A 9 ticos%22%20 jogos%22 3. 2. 5 – Algoritmos genéticos (DALMAU, 2004) cita que um dos usos de algoritmos genéticos em jogos pode ser a geração de uma população, criando diferentes indivíduos de acordo com um DNA virtual, sendo esse representado por um vetor de valores, cada um sendo um parâmetro da espécie a ser modelada. Essa técnica pode ser utilizada para a criação de pedestres em um jogo onde o mundo virtual seja uma cidade. (DALMAU, 2004) e (LAMOTHE, 1999) também citam o uso de algoritmos genéticos para mutação ou evolução de personagens. 9/17/2020 IA para Jogos 26