ANÁLISE DO DESEMPENHO DE ARQUITETURAS DE AGENTES INTELIGENTES NA RESOLUÇÃO DE PROBLEMAS ESTRATÉGICOS EM TEORIA DOS JOGOS

Tamanho: px
Começar a partir da página:

Download "ANÁLISE DO DESEMPENHO DE ARQUITETURAS DE AGENTES INTELIGENTES NA RESOLUÇÃO DE PROBLEMAS ESTRATÉGICOS EM TEORIA DOS JOGOS"

Transcrição

1 Anais do 15 O Encontro de Iniciação Científica e Pós-Graduação do ITA XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, ANÁLISE DO DESEMPENHO DE ARQUITETURAS DE AGENTES INTELIGENTES NA RESOLUÇÃO DE PROBLEMAS ESTRATÉGICOS EM TEORIA DOS JOGOS Roger Vinícius Garcia ITA - Instituto Tecnológico de Aeronáutica Rua H8-B, nº224, Campus do CTA, São José dos Campos - SP, Brasil, CEP Bolsista PIBIC-CNPq rogergarcia@aluno.ita.br Paulo Marcelo Tasinaffo ITA - Instituto Tecnológico de Aeronáutica Divisão de Ciência da Computação Pç. Marechal Eduardo Gomes, nº 50, São José dos Campos SP, Brasil, CEP tasinaffo@ita.br Resumo. O objetivo deste trabalho é utilizar técnicas de Inteligência Artificial para desenvolver um agente capaz de jogar o jogo Mancala, mas cujo algoritmo pode ser aproveitado e expandido para qualquer outro jogo iterativo. Para tanto, utiliza-se o algoritmo Minimax, que busca a árvore de jogadas da partida e tenta estimar a melhor jogada a partir de uma heurística de avaliação dos estados encontrados. Uma otimização no tempo da busca é feita com a Poda a-b, que organiza de maneira inteligente a busca. A problemática da patologia do Minimax é analisada. Por fim, utiliza-se um Algoritmo Genético para tentar resolver a patologia do Minimax e para otimizar a heurística de avaliação, resultando em um agente com jogadas melhores e mais rápidas. Palavras-chave: Mancala, Minimax, Algoritmos Genéticos, Teoria dos Jogos. 1. Introdução Os agentes inteligentes programados segundo técnicas da Inteligência Artificial são capazes de executar inúmeras tarefas; entre elas, está a capacidade de jogar jogos iterativos, buscando o resultado que o favoreça ao máximo. Há muito o campo da Teoria dos Jogos estuda esses jogos, e um de seus principais frutos para a programação de agentes inteligentes foi o algoritmo Minimax, que possibilita ao agente prever jogadas boas e ruins, em uma árvore de busca. Os resultados obtidos em Teoria dos Jogos são, geralmente, aplicados em simulações e previsões no ramo da Economia, mas também podem ser utilizados para trabalhar planejamentos estratégicos em caso de guerra. O algoritmo Minimax é então aplicado ao jogo de tabuleiro Mancala, de origem africana. A simplicidade do jogo, em comparação a outros jogos de tabuleiro, reduz algumas complicações específicas, sendo possível o foco majoritário das atenções sobre as técnicas do Minimax em si. O objetivo do trabalho é buscar uma otimização do algoritmo Minimax, tanto em tempo de processamento quanto em qualidade do agente jogador. Para tanto, são utilizadas as técnicas Poda a-b (tempo) e Algoritmos Genéticos (qualidade), em conjunto com o Minimax. 2. Modelagem do jogo Neste trabalho, aborda-se o caso de jogos nos quais os jogadores alternam-se em movimentos, em um número finito deles, até ser atingido um estado final. Nesta categoria, enquadram-se diversos estilos populares de jogos, como Xadrez, Damas, Gamão, Othello, entre outros. Aqui, será abordado o jogo Mancala, cuja simplicidade nos permite focar mais em aspectos próprios do Minimax. 2.1 Definição formal de um jogo Um jogo pode ser definido formalmente como uma busca, que apresenta um estado inicial, um conjunto de operadores capazes de levar um estado a outro, um teste que identifica quando o jogo termina, e uma função utilidade, que atribui pontuações a cada um dos jogadores (Russel, 2003). Estendendo-se essa definição e utilizando a notação adequada, são identificados os seguintes elementos de um jogo: i. Um conjunto de jogadores P = {p 1, p 2,..., p n }; ii. Um conjunto S de estados, sendo dado um s 0 e S como estado inicial; iii. Um subconjunto S F Õ S, contendo os estados terminais;

2 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, iv. Um conjunto de ações a ij e A i, permitidas a cada jogador p i, em um dado estado s; v. Uma função mudança de estado T: SäAöS, que aplica a ação de um jogador em um estado, levando o jogo para o estado seguinte: T(s,a) = s ; vi. Uma estratégia g i :SöA de cada jogador p i, sendo esta uma função que associa um estado s (completamente ou parcialmente observável pelo jogador p i ) a uma de suas ações a ij ; vii. Uma função utilidade aproximada u i :Sö, que avalia o quão favorável é um estado intermediário do jogo, do ponto de vista do jogador p i ; viii. Uma função utilidade U i :S F ö, que atribui pontuações a cada um dos jogadores ao final do jogo; 2.2 Definição do jogo Mancala A denominação Mancala abrange uma categoria de jogos de tabuleiro de origem africana, com regras ligeiramente diferentes, mas todos baseados em um mesmo esquema de jogo: a semeadura de grãos em cavidades. O tabuleiro é composto de 14 cavidades, sendo 2 maiores, denominadas Kahalas; as outras 12 cavidades menores são divididas em 2 grupos, sendo 6 pertencentes a cada jogador. A Kahala de cada jogador fica ao lado direito das cavidades menores, e o número de pedras contidas nela define a pontuação do jogador. No início do jogo, são dispostas 4 pedras, em cada uma das cavidades menores. Nessa configuração, as pedras não pertencem a nenhum jogador em especial, mas sim ao tabuleiro. A Fig. 1 exemplifica a configuração inicial. Figura 1. Esquema da disposição inicial das peças no tabuleiro de Mancala. Uma jogada é realizada quando um jogador escolhe uma de suas 6 cavidades menores com número de pedras diferente de zero, e semeia seu conteúdo, em sentido anti-horário, depositando uma pedra em cada cavidade subsequente. A sua própria Kahala deve ser contemplada na semeadura, mas a Kahala adversária deve ser ignorada. Caso a última cavidade a ser semeada seja sua própria Kahala, o jogador deve jogar novamente. A captura se dá quando a última pedra semeada cai em uma cavidade vazia, pertencente ao jogador que efetuou a semeadura. Neste caso, tanto a pedra em questão como todas as pedras da cavidade adversária oposta a essa são recolhidas para a Kahala do jogador. O final da partida se dá quando não houver mais pedras em um dos lados do tabuleiro. As peças que sobraram são recolhidas para a Kahala do jogador dono das cavidades onde se encontram. Vence o jogador que possuir o maior número de pedras em sua Kahala, ao final do jogo. O jogo Mancala é de implementação simples, do ponto de vista computacional, pois cada um de seus estados pode ser descrito como um vetor de 14 elementos, cada elemento representando o número de pedras em sua respectiva cavidade. Por essa simplicidade, o desenvolvimento da árvore de jogadas é facilitado, economizando processamento com o jogo em si, e focando mais no desempenho do agente jogador. A ausência de especialização das peças, como ocorre no Xadrez, e a limitação dos movimentos de cada jogador (no máximo 6) também simplificam a realização dos cálculos. Apesar de ter sido escolhido o Mancala, outras plataformas de jogos podem ser utilizadas, utilizando-se a mesma teoria na implementação dos agentes (como Othello, Damas e Xadrez). No entanto, jogos que incluem um elemento de

3 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, sorte (como Gamão e outros jogos que incluam dados) devem ser adaptados, a fim de incluir pesos probabilísticos no desenvolvimento da árvore de jogadas. 2.3 Assimetria da primeira jogada Um problema detectado no jogo Mancala foi uma assimetria no tocante à primeira jogada da partida. Depois de implementada a plataforma Mancala no ambiente MATLAB, foi executada uma simulação em que dois jogadores executam, ao longo da partida, movimentos aleatórios, dentre os permitidos. Após 10 6 partidas da simulação, observou-se que o jogador que inicia a partida (efetua a primeira jogada) tem mais chances de ser o vencedor da partida, como mostra a Tab. 1: Tabela 1: Porcentagens de vitórias para o agente da primeira jogada. Resultados obtidos pelo agente da jogada inicial Vitórias 48,36% Derrotas 45,35% Empates 6,29% Essa assimetria estatística revela que o jogador que inicia a partida é uma variável relevante, quando se considera o desempenho dos agentes. Por isso, quando são rodados testes e simulações (mostrados mais à frente), realiza-se duas vezes a mesma partida, comutando-se o jogador que a inicia, para que haja maior homogeneidade e fidelidade ao desempenho real do agente, cancelando os efeitos da assimetria estatística. 2.4 Aplicação do modelo ao Mancala As correspondências entre o modelo apresentado na seção 2.1 e o jogo Mancala são descritas a seguir: i. Dois jogadores perfazem P = {p 1, p 2 }; ii. Cada estado do jogo pode ser descrito como um vetor s e 14, s = (c 1, c 2, c 3, c 4, c 5, c 6, K 1, c 7, c 8, c 9, c 10, c 11, c 12, K 2 ), sendo o valor de c i o número de pedras contidas na cavidade i, e K j o número de pedras contidas na Kahala do jogador j (contudo, notar que S 14 ). O estado inicial é s 0 = (4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 0); iii. O conjunto de estados terminais é aquele em que 6 0 i 1 c i = ou 12 0 = i 7 c i = = (um dos jogadores fica sem peças); iv. A ação permitida a cada jogador é escolher uma de suas cavidades não vazias e semear as pedras contidas nela, totalizando um máximo de 6 opções a cada instante; v. A função mudança de estado é a própria semeadura das pedras, levando a um novo estado s ; vi. A estratégia de cada jogador é definida por ele mesmo. No caso deste trabalho, a função do agente jogador desenvolvido é aplicar uma estratégia que o leve à vitória; vii. A utilidade aproximada de cada estado também é dependente do jogador. No caso do agente jogador, ela é dada por uma heurística de avaliação, que leva em conta diferentes características do jogo para chegar a um veredicto sobre a utilidade do estado; viii. As funções utilidades são U 1 (s) = K 1 e U 2 (s) = K 2, para um s e S F. Assim, dado s 0 e S, o jogador p 1 dá como input ao jogo uma ação a = g 1 (s 0 ), de acordo com sua estratégia g, levando o jogo a um estado s = T(s 0, a). O jogador p 2 realiza o mesmo procedimento, e assim sucessivamente, até que seja alcançado um estado s f e S F. Então, o resultado do jogo são as pontuações U 1 (s f ) e U 2 (s f ), e o ganhador é aquele com a maior pontuação final. Caso sejam iguais, há um empate.

4 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Desenvolvimento do agente jogador com Minimax Uma abordagem clássica para problemas de Teoria dos Jogos é a utilização do algoritmo Minimax. Nesse algoritmo, o jogador denominado MAX tenta obter o maior resultado possível no jogo, enquanto MIN tenta minimizá-lo. O algoritmo Minimax desenvolve a árvore de jogadas da partida, atribuindo um estado para cada um de seus nós, a partir do estado inicial. Em cada nó, o jogador da vez tem um conjunto de jogadas que pode realizar, e cada uma delas leva a um nó diferente, formando a árvore de jogadas até os estados finais. Nos estados finais, ou seja, nas folhas da árvore, a utilidade dos estados é calculada, e são atribuídos pontos a cada um dos jogadores. A função de MAX é escolher a melhor jogada, dado um ponto da árvore correspondente ao estado atual, supondo que MIN executará sempre sua melhor jogada. Esse cálculo é realizado desde as folhas até o nó da árvore que representa o estado atual do jogo, sempre admitindo que MIN escolherá a jogada que o leva a nós com função utilidade menor. Matematicamente: seja A o conjunto de ações do jogador que executa o Minimax, e B o conjunto de ações do jogador adversário. A estratégia Minimax é a resolução de γ () s = a tal que o termo indicado na Eq. (1) seja máximo. O raciocínio é análogo para jogos com mais de uma ação de cada jogador: basta iterar o algoritmo para profundidades maiores da árvore de jogadas. [ ] max min U T( s', b), s' = T( s, a) a Ab B (1) Um exemplo pode ser dado no jogo trivial de 2 jogadas descrito pela Tab. 2: o jogador A (MAX) deve escolher uma linha, e somente depois disso o jogador B (MIN) deve escolher uma coluna. O resultado do jogo é o elemento da matriz que corresponde à linha e à coluna escolhidas pelos jogadores. Prevendo que a melhor escolha de MIN seja a coluna que contém o menor elemento da linha escolhida, MAX tentará maximizar a jogada de MIN, escolhendo a linha 3. Dessa forma, o melhor resultado para MIN será a escolha da coluna 3, resultando o valor -1 no jogo. Tabela 2. Exemplo de jogo em matriz. B escolhe 1 B escolhe 2 B escolhe 3 A escolhe A escolhe A escolhe Em forma de árvore, o jogo de 2 movimentos acima seria descrito como na Fig. 2: Figura 2. Árvore do jogo. Na árvore, pode-se perceber que o agente espera que MIN faça sempre a melhor jogada, indo para o estado de menor valor. Prevendo isso, MAX pode basear sua escolha aplicando valores -2, -4 e -1, respectivamente, às jogadas A1, A2 e A3. Escolhe, portanto, a de maior valor: A3. No entanto, na maioria dos jogos (incluindo o Mancala), não é possível descrever uma árvore de possibilidades em sua totalidade, dado que a característica exponencial do desenvolvimento dos nós produziria um número muito grande de estados, sendo admitido infinito na maioria dos jogos. Nesses casos, a função utilidade dos nós não pode ser calculada, e portanto deve ser estimada segundo uma heurística de avaliação.

5 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Poda a-b Um método de otimizar a busca do algoritmo Minimax é a Poda a-b. Nela, o algoritmo elimina galhos da árvore que comprovadamente não podem trazer resultados melhores para o agente, interrompendo a busca naquele trecho da árvore. Desta forma, o tempo de processamento é reduzido, mas o resultado da busca é o mesmo nas duas técnicas (Korf, 2996). Um exemplo pode ser dado na Fig. 3. Na árvore da Fig. 3, o agente MAX faz a avaliação dos três primeiros estados, determinando a A1 o valor -2. Ao analisar A2-B1, encontra o valor -4. Assim, assumindo que MIN fará sempre a melhor jogada, pode esperar que MIN escolha -4 (ou um número menor, dependendo da avaliação das outras 2 opções) se sua escolha for A2. Portanto, pode podar a busca nesse galho da árvore, pois não encontrará valores mais favoráveis do que encontrou em A1. Passando para o nó A3, faz normalmente a avaliação, encontrando o valor -1, não havendo poda. Há, portanto, uma economia no tempo de processamento da árvore, especialmente para buscas de profundidade maior. Figura 3. Árvore com Poda a-b. A implementação da Poda a-b no algoritmo Minimax otimizou consideravelmente o tempo de processamento durante a busca. A Fig. 4 mostra tempos de agentes a profundidades diferentes na árvore de jogadas: Figura 4. Gráfico comparativo entre o algoritmo Minimax com e sem Poda a-b.

6 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Portanto, a utilização da Poda a-b no algoritmo Minimax revelou-se de grande utilidade para a otimização do tempo de processamento. 3.2 Patologia do Minimax Em jogos cuja árvore de jogadas pode ser completamente explorada, utiliza-se o resultado do jogo como função utilidade, geralmente +1 para o ganhador e -1 para o perdedor. Contudo, devido ao problema da extensão da árvore de busca do Mancala, o algoritmo Minimax teve de ser programado utilizando uma heurística como função utilidade aproximada, utilizando a diferença da pontuação nas Kahalas dos dois jogadores. Em jogos de agentes que utilizam essa heurística de diferença de pontuação (doravante denominado agente canônico) para avaliar os estados, observou-se que, em certos jogos, agentes com profundidade de busca menor conseguiam melhor desempenho do que agentes com busca mais profunda. Por exemplo, em uma partida entre um agente com busca de profundidade de 2 jogadas contra um agente de profundidade de 6 jogadas, o placar final obtido foi de 29x19, com vitória do primeiro, cuja procura na árvore de busca foi mais rasa. A literatura explica esse comportamento como Patologia do Minimax, que ocorre quando a heurística de avaliação não é próxima o suficiente da função utilidade. Isto é, fazendo uma avaliação errônea dos estados do jogo, o agente é levado a acreditar que está fazendo uma boa escolha, quando na verdade acontece o contrário. Como agravante, quanto maior a profundidade da busca, maior é o ruído que esse erro causa na escolha do agente, na raiz da árvore, levando-o a executar jogadas ruins. (Abramson, 1986). Para contornar o problema, deve-se utilizar uma heurística que aproxime com maior exatidão o valor de utilidade de cada estado do jogo. Para determinar essa heurística, foram combinadas as técnicas de Minimax (com Poda a-b) e de Algoritmos Genéticos, apresentada na seção seguinte. Melhorando a precisão das jogadas do agente, espera-se que o efeito da patologia seja minimizado, indicando que a avaliação de uma heurística otimizada se aproxima mais da função utilidade do que o agente canônico. 4. Algoritmos Genéticos Algoritmos Genéticos são uma subclasse de algoritmos evolucionários cujo objetivo principal é a otimização de processos, através da determinação de pontos quase-ótimos de máximos ou mínimos de uma função de avaliação. A teoria por trás dos Algoritmos Genéticos é baseada na Teoria da Evolução de Darwin, que leva à afirmação de que indivíduos mais adaptados a um meio tendem a sobreviver nele por mais tempo e perpetuar seu código genético através das gerações. Nesse sentido, o Algoritmo Genético deve atuar sobre uma população de indivíduos, sendo cada indivíduo um candidato a máximo ou mínimo global da função que se deseja analisar. Através de restrições feitas aos indivíduos, análogas à hostilidade do meio para indivíduos biológicos, os melhores entre eles vão sendo naturalmente classificados para transmitir suas informações genéticas para as próximas gerações, onde se busca a convergência para um indivíduo quase perfeito, ou seja, uma solução quase ótima para o problema de maximização ou minimização da função analisada. O algoritmo é interrompido quando é atingida uma condição de parada. As vantagens desse tipo de algoritmo sobre outras arquiteturas de busca são sua capacidade estocástica de analisar os pontos do domínio da função, evitando máximos e mínimos locais, e sua capacidade de economizar processamento (em relação a uma busca exaustiva), por selecionar apenas uma pequena amostra do domínio para análise. Além disso, por ser um algoritmo de busca de ordem zero, não envolve derivadas na modelagem do problema, o que permite a ele ser aplicado a funções descontínuas ou até discretas. Por outro lado, o algoritmo não garante a determinação exata de um ponto de máximo global, mas sim pontos de valor muito próximo a ele. A implementação do algoritmo requer uma função de avaliação, ou função fitness, para a qual se deseja determinar um ponto quase-ótimo de máximo ou mínimo. Essa função deve atribuir, a cada ponto do domínio, um valor real. Analogamente à Biologia, essa função representa as imposições do meio sobre os indivíduos. Sobrevivem e perpetuam suas características apenas os indivíduos bem adaptados a esse meio, ou seja, apenas indivíduos com altos valores de função fitness (seu fenótipo biológico). Os pontos do domínio são usualmente codificados segundo a base binária, transformando cada um em uma cadeia de números 1 ou 0. Analogamente à Biologia, essa cadeia representa o código genético do indivíduo (ou o seu genótipo biológico).o algoritmo inicia sua busca escolhendo um número pré-determinado de indivíduos do domínio. Essa escolha pode ser feita através da simples geração aleatória de cadeias de números 1 e 0, para domínios sem restrições. Caso haja mais restrições para o domínio, outras técnicas de escolha de candidatos pode ser usada, como a iteração aleatória, que produz indivíduos estocasticamente até que um deles satisfaça as restrições do problema e possa ser considerado um candidato válido para a execução do algoritmo. Depois de escolhidos os indivíduos (ou candidatos) iniciais, cada um deles é testado segundo a função fitness, e seus desempenhos são armazenados em um vetor. Segundo a Teoria de Darwin, os mais adaptados tem mais probabilidade de perpetuar seu código genético. Assim, alguns desses indivíduos são escolhidos estocasticamente, com probabilidade proporcional ao seu desempenho da função fitness, para se reproduzirem e gerarem descendentes. Indivíduos de baixo desempenho na função fitness têm baixa probabilidade de transmitir seu código genético para gerações futuras, o que

7 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, garante que o algoritmo caminhe sempre no sentido correto da busca (aumento da avaliação fitness dos indivíduos). Entretanto, é necessário que os indivíduos de baixo desempenho também tenham alguma probabilidade de ser escolhidos, para prevenir o algoritmo de uma convergência precoce para um ponto de máximo ou mínimo local da função. Computacionalmente, atribui-se a cada indivíduo uma probabilidade de ser escolhido para a reprodução, baseada no desempenho deste na função avaliadora. Assim, seja uma população de p indivíduos, e f(x i )=d i, com i=1,2,...,p, o desempenho de cada um. A probabilidade P de escolha de um indivíduo é definida como sendo: P i d = i p d k = 1 k (2) Escolhidos os indivíduos, dá-se início ao processo de reprodução. Assim como na Biologia, a reprodução se dá combinando-se os códigos genéticos dos pais, num processo chamado Crossover. Nesse processo, o código genético de cada um dos pais é dividido em um mesmo ponto, escolhido aleatoriamente, entre o i e o (i+1)-ésimo bit de sua representação binária. A seguir, os trechos de código são trocados, gerando dois novos indivíduos. Esses indivíduos contêm uma mistura de características dos pais, e se aproximam de uma combinação das características que mais se adaptam ao meio, isto é, se aproximam de um valor de máximo ou mínimo global da função analisada. Computacionalmente, se são escolhidos dois pais x e y de uma representação com m bits: x= ( b, b, b,..., b ) m 1 y = ( c, c, c,..., c ) m 1 (3) Então, após o Crossover, são gerados dois novos indivíduos: w= ( b 0, b 1, b 2,..., b i, c i+ 1, c i+ 2,..., c m 1 ) z = ( c, c, c,..., c, b, b,..., b ) i i+ 1 i+ 2 m 1 (4) Antes de serem proclamados novos candidatos do algoritmo de busca, os indivíduos da nova geração devem passar por uma operação de mutação, que varre todos os bits dos novos indivíduos, alterando-os de 1 para 0 ou de 0 para 1, segundo uma pequena probabilidade (geralmente entre 2% e 5%). Como no correspondente biológico, esse processo busca novas características, contempladas ou não por outros indivíduos já existentes, que possam ser relevantes para a determinação de um quase-ótimo. Além disso, a mutação ajuda a desviar o algoritmo de uma convergência a um máximo ou mínimo locais. Depois de sofrerem uma pequena taxa de mutação, os indivíduos da nova geração tem seu valor fitness calculado e armazenados em um vetor. Esses desempenhos são comparados com os da população inicial, e os melhores deles (incluindo a população inicial) são selecionados para formarem a população da próxima iteração do algoritmo. A Fig. 5 exemplifica o processo. População inicial aleatória Seleção da nova geração Avaliação Fitness Condição de parada? SIM FIM NÃO Avaliação Fitness dos filhos Escolha probabilística dos pais Mutação Crossover Figura 5. Esquema do Algoritmo Genético

8 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Dessa forma, o algoritmo busca convergência para pontos do domínio que sejam quase-máximos ou quase-mínimos globais da função analisada. 4.1 Otimização da heurística de avaliação com Algoritmos Genéticos Como explicado, a heurística da função utilidade aproximada empregada pelo agente canônico era simplesmente a diferença de pontuação nas Kahalas. Para refinar essa heurística, de modo a criar um agente otimizado, foram elaboradas sub-heurísticas de avaliação, sendo cada uma delas uma condição ou característica do estado analisado. Assim, a heurística geral foi definida como uma combinação linear do valor dessas sub-heurísticas ξ, que são: 1. Diferença de pontuação na Kahala; 2. Possibilidade de jogar novamente: 1 unidade para cada oportunidade; 3. Mobilidade própria: 1 unidade para cada cavidade não vazia; 4. Mobilidade do adversário: 1 unidade para cada cavidade não vazia do adversário; 5. Aglutinação de pedras em uma das cavidades: 1 unidade para cada cavidade com número de pedras maior que 6; 6. Número total de peças em sua parte do tabuleiro; 7. Número de peças opostas a cavidades vazias do adversário (propensas a ser capturadas); A cada uma dessas n características foi atribuído um peso λ, sendo a avaliação do estado do ponto de vista do jogador p i definida como a heurística H i (s): u () s = H () s =, s S i i λ ξ j j n (5) Os pesos λ das característica foram determinados através da utilização de um Algoritmo Genético. Contudo, no entendimento de que o jogo é dividido em fases, nas quais o objetivo do agente se altera, a heurística de avaliação foi dividida em três partes: - Início: até 25% das peças capturadas - Desenvolvimento: de 25% até 75% das peças capturadas - Finalização: mais que 75% das peças capturadas Essa estratégia de resolução do problema acaba por triplicar o número de variáveis envolvidas. Na utilização de Algoritmos Genéticos, observa-se que problemas de dimensão grande (maior que 10) geralmente são de difícil convergência. De fato, depois de vários testes, observou-se que o desempenho dos agentes mistos obtidos era pouco satisfatório. Para lidar com essa questão, elaborou-se um novo esquema: cada uma das sub-heurísticas (a partir da 2ª) foi testada em conjunto com a heurística 1, separadamente das outras e com peso unitário isso porque a heurística 1 foi considerada como extremamente relevante em testes prévios. Assim, o número de variáveis foi reduzido a três por vez, e os resultados destes testes puderam mostrar quais das sub-heurísticas se destacavam na avaliação dos estados. A função fitness utilizada nestes teste foi a pontuação do agente de características mistas contra o agente canônico (cuja heurística é simplesmente a diferença de pontuação na Kahala), em jogos de profundidade 1, 2, 3, 4, 5 e 6 jogadas (iguais para ambos os agentes). Como explicado anteriormente (na seção 2.3), os jogos foram efetuados duas vezes, comutando-se o agente que fazia a jogada inicial, a fim de cancelar os efeitos da assimetria estatística da primeira jogada. Depois de selecionados os melhores indivíduos de cada sub-heurística, foi realizado um outro teste, ainda efetuando partidas contra o agente canônico, mas agora cobrindo todas as combinações de profundidades agente canônico e agente misto com profundidades de 1 a 6, totalizando 36 jogos. Repetindo as partidas, trocando-se o jogador inicial, totalizaram-se 72 jogos por teste. A Tab. 3 mostra o desempenho de alguns dos melhores indivíduos dos agentes de heurística mista, sendo combinados com a sub-heurística 1 com peso unitário. A exceção é o desempenho da própria sub-heurística 1: neste caso, ela foi implementada pura, com o objetivo de determinar a relação de pesos ótima nos três estágios do jogo. Nota-se uma discrepância no desempenho dos agentes entre o primeiro e o segundo teste. Isso ocorre porque a avaliação utilizada em cada teste foi diferente, como explicado: o teste 1 foi rápido para fazer uma triagem, enquanto o teste 2 foi mais preciso e, por isso, mais demorado.

9 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Tabela 3. Valores encontrados para os melhores desempenhos das sub-heurísticas Sub-heurística testada Média da pontuação do melhor indivíduo (teste 1) 1 24,875 50% 2 26,25 50% 3 28,25 36% 4 27,25 50% 5 30,5 36% % % Vitórias contra o agente canônico (teste 2) Fazendo-se testes sobre combinações utilizando os pesos das sub-heurísticas 1, 2, 4, 6 e 7, chegou-se à conclusão de que a combinação com o melhor desempenho envolvia os parâmetros 1, 2 e 7, respectivamente: diferença de pontuação na Kahala, possibilidade de jogar novamente e peças propensas a ser capturadas. De posse dessa informação, utilizou-se novamente a técnica dos Algoritmos Genéticos para determinar qual o melhor peso multiplicativo para cada uma dessas características, em cada um dos momentos do jogo. A função fitness utilizada foi o esquema de 72 jogos citados anteriormente. Isso elevou enormemente o tempo de processamento, mas entregou resultados bastante otimizados. Empregando-se uma população de 16 candidatos, com fator de mutação de 5% e 10 gerações, o algoritmo demorou 10h30min para rodar em um computador trabalhando com clock de 2,2GHz. Isso demonstra o fato de que esse tipo de algoritmo não é adequado para aplicações de tempo real. 5. Resultados Depois de definido o melhor dos indivíduos entre os dois algoritmos, realizaram-se testes entre ele e o agente canônico, com profundidades variando de 1 a 8. As pontuações são mostradas nas Tabelas 4 (canônico joga primeiro) e 5 (misto joga primeiro). Os placares mostram a pontuação do agente misto, seguida pela pontuação do agente canônico. As partidas em que o agente misto perde ou empata estão em destaque. Tabela 4. Placares dos testes em que o agente canônico joga primeiro. A coluna da esquerda indica as profundidades utilizadas para o jogador misto, enquanto a primeira linha indica as profundidades utilizadas para o jogador canônico. Misto\Can (34, 14) (34, 14) (34, 14) (38, 10) (32, 16) (25, 23) (25, 23) (25, 23) 2 (34, 14) (34, 14) (34, 14) (31, 17) (27, 21) (38, 10) (41, 7) (40, 8) 3 (26, 28) (28, 20) (31, 17) (31, 17) (38, 10) (32, 16) (33, 15) (28, 20) 4 (28, 20) (28, 20) (31, 17) (27, 21) (25, 23) (32, 16) (33, 15) (28, 20) 5 (41, 7) (41, 7) (14, 34) (30, 18) (30, 18) (30, 18) (26, 22) (33, 15) 6 (21, 27) (22, 26) (22, 26) (20, 28) (20, 28) (28, 20) (26, 22) (21, 27) 7 (32, 16) (33, 15) (9, 39) (7, 41) (14, 34) (14, 34) (14, 34) (32, 16) 8 (39, 9) (39, 9) (40, 8) (30, 18) (30, 18) (30, 18) (26, 22) (41, 7) Observa-se que, na segunda tabela (agente misto jogando primeiro), o número de vitórias do agente misto é maior, ilustrando o fenômeno causado pela assimetria estatística discutida anteriormente. De todos os jogos realizados neste último teste, o agente misto, otimizado com Algoritmos Genéticos, obteve vitória sobre o agente canônico em 89% das partidas. Isso mostra que o algoritmo proporcionou uma melhora expressiva no desempenho do agente.

10 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Tabela 5. Placares dos testes em que o agente misto joga primeiro. A coluna da esquerda indica as profundidades utilizadas para o jogador misto, enquanto a primeira linha indica as profundidades utilizadas para o jogador canônico. Mis\Can (34, 14) (34, 14) (34, 14) (38, 10) (38, 10) (38, 10) (33, 15) (37, 11) 2 (34, 14) (34, 14) (34, 14) (43, 5) (40, 8) (40, 8) (33, 15) (23, 25) 3 (35, 13) (34, 14) (27, 21) (43, 5) (42, 6) (42, 6) (40, 8) (34, 14) 4 (36, 12) (40, 8) (36, 12) (37, 11) (33, 15) (33, 15) (33, 15) (18, 30) 5 (43, 5) (40, 8) (35, 13) (37, 11) (37, 11) (37, 11) (33, 15) (42, 6) 6 (42, 6) (40, 8) (30, 18) (37, 11) (37, 11) (37, 11) (33, 15) (42, 6) 7 (38, 10) (40, 8) (38, 10) (34, 14) (38, 10) (38, 10) (31, 17) (33, 15) 8 (38, 10) (40, 8) (38, 10) (34, 14) (38, 10) (38, 10) (37, 11) (33, 15) A eficiência do agente ainda apresentou alguns problemas em grandes profundidades (6 e 7) quando este não era o jogador inicial, mas recuperou-se na profundidade de 8 jogadas. Como o tempo de processamento para análises mais profundas do que 8 são inviáveis, pode-se dizer que o efeito da patologia do Minimax foi reduzido neste caso. Já nas partidas em que o agente era o jogador inicial, observou-se eficiência em todas as profundidades. Isso é um sinal de que a heurística chegou tão próxima de uma avaliação exata, que a patologia não se faz presente a esse nível. Talvez haja sinais da patologia a níveis mais profundos; contudo, como esses níveis não são utilizáveis na prática (por requererem elevado tempo de processamento), pode-se considerar a heurística do agente como muito próxima à função de avaliação real do jogo. Como sugestão de trabalhos futuros, podem-se procurar novas sub-heurísticas relevantes à otimização do agente, bem como refazer a otimização, considerando-se somente o caso em que o agente joga em segundo. Assim, criar-se-iam duas heurísticas separadas, agindo quando o agente realiza a jogada inicial ou não. 6. Conclusões Do trabalho realizado, conclui-se que os Algoritmos Genéticos são eficientes na otimização de processos, mas que sua implementação exige correções empíricas dos parâmetros utilizados, como tamanho da população, taxa de mutação e função fitness. Seu tempo de processamento é proporcional à dimensão do problema estudado, podendo ter tempo de processamento inviável para dimensões muito grandes. Pôde-se observar que o algoritmo Minimax procura jogadas boas à medida que a heurística de avaliação utilizada esteja próxima do valor real do estado. Para heurísticas ruins, evidencia-se ruído na tomada de decisão quando o agente procura a grandes profundidades da árvore de busca, fenômeno ao qual dá-se o nome de Patologia do Minimax. A Poda a-b revelou-se de grande utilidade no algoritmo Minimax, uma vez que traz os mesmos resultados em menor tempo de processamento. Isso é uma otimização crítica quando se utilizam esses cálculos como fitness em um Algoritmo Genético, no qual o Minimax tem que ser efetuado inúmeras vezes. A otimização da heurística do Minimax através de Algoritmos Genéticos mostrou-se eficaz, gerando um agente otimizado capaz de derrotar um agente simples na maioria das partidas realizadas. A amenização do efeito da patologia do Minimax e o desempenho melhorado do agente nas partidas mostra que se alcançou de fato uma heurística muito mais próxima à função de avaliação exata do jogo, gerando jogadas mais inteligentes por parte do agente. Portanto, como visto, alcançou-se o objetivo de otimizar o algoritmo Minimax em questão de tempo de processamento e de qualidade das decisões. 7. Agradecimentos Agradeço ao Prof. Dr. Paulo Marcelo Tasinaffo pelo imenso apoio e ensinamentos, que tornaram possível não só a conclusão deste trabalho, como também um grande aprendizado na área de Inteligência Artificial. Agradeço também ao CNPq que, através do suporte financeiro, torna possível a execução deste e de outros trabalhos, contribuindo para a formação de jovens pesquisadores brasileiros.

11 Anais do XV ENCITA 2009, ITA, Outubro, 19-22, Referências Bibliográficas Abramson, B. An explanation and cure for minimax pathology. In: Proc. of First Conf. on Uncertainty of Artificial Intelligence, North-Holland Publishers, 1986, pp Alves, C. Planejamento online para robô móvel baseado em amostragem esparsa e macro-operadores. Tese de Mestrado Instituto Tecnológico de Aeronáutica, São José dos Campos Alves da Silva, A. P. Tutorial Genetic Algorithms. Learning and Nonlinear Models. Vol. 1, No. 1, pp , Fritzsche, H. Programação Não-Linear análise e métodos. São Paulo: Edgard Blücher: Ed. da Universidade de São Paulo, Haurie, A; Krawczyc, J. An Introduction to Dynamic Games Disponível on-line em Acesso em 23/01/2009. Korf, E. Artificial Intelligence Search Algorithms. University of California, Mitchell, M. An Introduction to Genetic Algorithms. The MIT Press: Massachusetts Institute Technology, Nascimento Jr., C. L.; Yoneyama, T. Inteligência Artificial em Controle e Automação. 1. ed., São Paulo: Edgard Blucher Ltda., Fapesp, Russell, S.; Norvig, P. Artificial Intelligence A Modern Approach. Second Edition, New Jersey: Pearson Education, Wismer, D. A.; Chattergy R. Introduction to Nonlinear Optimization A Problem Solving Approach. Second Printing, New York: Elsevier North Holland, Inc., 1978.

3. Resolução de problemas por meio de busca

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

Leia mais

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

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

Leia mais

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

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

Leia mais

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2017.html Inteligência Artificial Resolução de problemas por meio de algoritmos

Leia mais

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

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

Leia mais

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010 Inteligência Artificial Busca Competitiva Aula 5 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia-pos Capítulo 6 Russell & Norvig Seção 6.1 a 6.5 2 Até aqui... Problemas sem interação com outro agente.

Leia mais

Árvore de Jogos Minimax e Poda Alfa-Beta

Árvore de Jogos Minimax e Poda Alfa-Beta Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Árvore de Jogos Minimax e Poda Alfa-Beta Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

3 Algoritmos Genéticos

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

Leia mais

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

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.

Leia mais

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

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.

Leia mais

Tópicos Especiais em Informática Fatec Indaiatuba

Tópicos Especiais em Informática Fatec Indaiatuba Prof. Dilermando Piva Jr. ((Compilação de diversas fontes na Internet)) Principal motivação para o estudo da computação evolutiva Otimização de processos complexo e que possuem um grande número de variáveis

Leia mais

Fundamentos de Inteligência Artificial [5COP099]

Fundamentos de Inteligência Artificial [5COP099] Fundamentos de Inteligência Artificial [5COP099] Dr. Sylvio Barbon Junior Departamento de Computação - UEL 1 o Semestre Assunto Aula 7 Algoritmos de Busca Competitiva 2 de 20 Sumário Introdução Busca Competitiva

Leia mais

Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado

Leia mais

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

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.

Leia mais

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. 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

Leia mais

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa Prof. Paulo André Castro pauloac@ita.br www.comp.ita.br/~pauloac Sala 110, IEC-ITA Sumário Busca Competitiva Para Ambientes multiagentes...

Leia mais

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO Prof. Msc. Saulo Popov Zambiasi (saulopz@gmail.com) Informação - ICPG - Criciuma - SC 1 Características Gerais, operadores, algoritmo.

Leia mais

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 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

Leia mais

Modelos Evolucionários e Tratamento de Incertezas

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,

Leia mais

Técnicas de Inteligência Artificial

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

Leia mais

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

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/

Leia mais

Max Pereira. Inteligência Artificial

Max Pereira. Inteligência Artificial Max Pereira Inteligência Artificial Algoritmos Genéticos Algoritmos Genéticos São técnicas de busca e otimização. Uma metáfora da teoria da evolução das espécies iniciada pelo Naturalista inglês Charles

Leia mais

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02 . CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02 Créditos: alguns itens desta lista são adaptados do material da disciplina CS188 - Artificial Intelligence

Leia mais

6 Estudos de Casos Porta Lógica OU de 4 Entradas

6 Estudos de Casos Porta Lógica OU de 4 Entradas 6 Estudos de Casos Com o objetivo de avaliar a síntese automática de circuitos de QCA usando técnicas de Hardware Evolucionário (EHW), alguns circuitos foram sintetizados e serão apresentados a seguir.

Leia mais

Técnicas de Inteligência Artificial

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

Leia mais

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. 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

Leia mais

Problema de Satisfação de Restrições

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 para PSRs Problema de Satisfação

Leia mais

5 VNS com Filtro e Reconexão por Caminhos

5 VNS com Filtro e Reconexão por Caminhos 5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da

Leia mais

Introdução aos Algoritmos Genéticos

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

Leia mais

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

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

Leia mais

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

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

Leia mais

Técnicas para Implementação de Jogos

Técnicas para Implementação de Jogos Técnicas para Implementação de Jogos Solange O. Rezende Thiago A. S. Pardo Considerações gerais Aplicações atrativas para métodos de IA Formulação simples do problema (ações bem definidas) Ambiente acessível

Leia mais

Inteligência Artificial. 3º Quadrimestre de 2018

Inteligência Artificial. 3º Quadrimestre de 2018 Inteligência Artificial Prof. Fabrício Olivetti de França Prof. Denis Fantinato 3º Quadrimestre de 2018 1 Busca Competitiva 2 Busca Competitiva Quando falamos sobre agentes mencionamos alguns cenários

Leia mais

Otimização com Algoritmos Evolutivos

Otimização com Algoritmos Evolutivos Otimização com Algoritmos Evolutivos Francisco Pereira (xico@dei.uc.pt) ELBCE 2016 (Setembro 2016) Resumo Problem Optimization Method Solution } Algoritmos Evolutivos } Propriedades e funcionamento } Exemplos

Leia mais

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL Miquéias Augusto Ferreira Nantes 1, Douglas Peixoto de Carvalho 1 (Alunos do Curso de Matemática da Universidade Anhanguera - Uniderp)

Leia mais

1. Computação Evolutiva

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

Leia mais

Inteligência Artificial

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

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

3. Resolução de problemas por meio de busca

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

Leia mais

3 Algoritmos Genéticos

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

Leia mais

Algoritmos Genéticos

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

Leia mais

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers Jhonny Moreira Introdução Introdução Na área da inteligência artificial (IA), a motivação é conseguir colocar os computadores

Leia mais

Jogos. Geralmente o oponente tentará, na medida do possível, fazer o movimento menos benéfico para o adversário.

Jogos. Geralmente o oponente tentará, na medida do possível, fazer o movimento menos benéfico para o adversário. Jogos Os jogos tem atraído a atenção da humanidade, às vezes de modo alarmante, desde a antiguidade. O que o torna atraente para a IA é que é uma abstração da competição (guerra), onde se idealizam mundos

Leia mais

3. Resolução de problemas por meio de busca

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

Leia mais

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden GA Conceitos Básicos Capítulo 3 Prof. Ricardo Linden Algoritmos Evolucionários Algoritmos evolucionários usam modelos computacionais dos processos naturais de evolução como uma ferramenta para resolver

Leia mais

Jogos com Oponentes. March 7, 2018

Jogos com Oponentes. March 7, 2018 Jogos com Oponentes March 7, 2018 Jogos com Oponentes ˆ Problemas de busca: não assumem a presença de um oponente ˆ Jogos: oponente INCERTEZA! ˆ Incerteza porque não se conhece as jogadas exatas do oponente

Leia mais

Algoritmos de retrocesso

Algoritmos de retrocesso Algoritmos de retrocesso Algoritmos em que se geram escolhas que vão sendo testadas e eventualmente refeitas Problemas para os quais não existem algoritmos eficientes: retrocesso é melhor que pesquisa

Leia mais

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Enunciados dos Exercícios Cap. 2 Russell & Norvig Enunciados dos Exercícios Cap. 2 Russell & Norvig 1. (2.2) Tanto a medida de desempenho quanto a função de utilidade medem o quanto um agente está desempenhando bem suas atividades. Explique a diferença

Leia mais

Busca competitiva. Inteligência Artificial. Profª. Solange O. Rezende

Busca competitiva. Inteligência Artificial. Profª. Solange O. Rezende Profª. Solange O. Rezende 1 O que vimos até agora... Busca não informada Baseada somente na organização de estados e a sucessão entre eles Busca informada Utiliza, também, informações a respeito do domínio

Leia mais

Introdução à Inteligência Artificial. Procura em contextos competitivos jogos (cont.)

Introdução à Inteligência Artificial. Procura em contextos competitivos jogos (cont.) Introdução à Inteligência Artificial Procura em contextos competitivos jogos (cont.) Sumário n Vimos Jogos de 2 jogadores n Determinísticos, soma nula, informação perfeita Estratégia óptima minimax Algoritmos

Leia mais

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Figura 3.1: Fluxograma do algoritmo da Programação Genética. 3 Programação Genética O termo Programação Genética passou a ser utilizado em 1990 nos trabalhos publicados por Koza [30] e De Garis [31]. A definição de Koza para este termo passou a predominar após a

Leia mais

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid 1 Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid Luciana Conceição Dias Campos Resumo Este trabalho consiste da aplicação de um algoritmo genético ao método

Leia mais

Algoritmos Evolutivos Canônicos

Algoritmos Evolutivos Canônicos Algoritmos Evolutivos Canônicos Como representar os indivíduos Vetor de comprimento fixo com L características escolhidas previamente. Ex.: Definição

Leia mais

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 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

Leia mais

4 Implementação Computacional

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)

Leia mais

Algoritmos de retrocesso

Algoritmos de retrocesso Algoritmos de retrocesso Algoritmos em que se geram escolhas que vão sendo testadas e eventualmente refeitas Problemas para os quais não existem algoritmos eficientes: retrocesso é melhor que pesquisa

Leia mais

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 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

Leia mais

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 cear.ufpb.br/juan Exemplo de Aplicação de Algoritmos Genéticos Prof. Juan Moisés Mauricio Villanueva jmauricio@cear.ufpb.br cear.ufpb.br/juan Estrutura do Algoritmo Genético Algoritmo genético Inicio t = 0 inicializar P(t)

Leia mais

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

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

Leia mais

Introdução a Algoritmos Genéticos

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

Leia mais

3 Aprendizado por reforço

3 Aprendizado por reforço 3 Aprendizado por reforço Aprendizado por reforço é um ramo estudado em estatística, psicologia, neurociência e ciência da computação. Atraiu o interesse de pesquisadores ligados a aprendizado de máquina

Leia mais

Buscas Informadas ou Heurísticas - Parte III

Buscas Informadas ou Heurísticas - Parte III Buscas Informadas ou Heurísticas - Parte III Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Mestrado em Ciência da Computação / 2006 BUSCA SMA* (Simplified Memory-Bounded A*) BUSCA SMA* (Simplified

Leia mais

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas Wrapper Filtros Muitos algoritmos de AM são projetados de modo a selecionar os

Leia mais

CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra Lista de exercícios 03

CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra Lista de exercícios 03 . CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra (ebezerra@cefet-rj.br) Lista de exercícios 03 Créditos: essa lista de exercícios contém a tradução dos exercícios disponibilizados

Leia mais

APLICAÇÃO DE REDES NEURAIS RECORRENTES EM AMBIENTES PARCIALMENTE OBSERVÁVEIS 1

APLICAÇÃO DE REDES NEURAIS RECORRENTES EM AMBIENTES PARCIALMENTE OBSERVÁVEIS 1 APLICAÇÃO DE REDES NEURAIS RECORRENTES EM AMBIENTES PARCIALMENTE OBSERVÁVEIS 1 Eldair Fabrício Dornelles 2, Henrique Augusto Richter 3, Márcia Da Silva 4, Rogério Samuel De Moura Martins 5, Sandro Sawicki

Leia mais

Jogo de Damas. Alunos: Sávio Mendes de Figueiredo Sômulo Nogueira Mafra

Jogo de Damas. Alunos: Sávio Mendes de Figueiredo Sômulo Nogueira Mafra Jogo de Damas Alunos: Sávio Mendes de Figueiredo (savio@cos.ufrj.br) Sômulo Nogueira Mafra (somulo@cos.ufrj.br) Prof.: Inês dutra Inteligência artificial Coppe sistemas - UFRJ 1. Algumas Frases 2. Origens

Leia mais

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP Gilson Rogério Batista, Gideon Villar Leandro Universidade Regional do Noroeste do Estado do Rio

Leia mais

Algoritmos Genéticos e Evolucionários

Algoritmos Genéticos e Evolucionários Algoritmos Genéticos e Evolucionários Djalma M. Falcão COPPE/UFRJ PEE e NACAD falcao@nacad.ufrj.br http://www.nacad.ufrj.br/~falcao/ http://www.nacad.ufrj.br/~falcao/ag/ag.htm Resumo do Curso Introdução

Leia mais

Algoritmos Genéticos

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

Leia mais

5 Estudo de Caso e Resultados

5 Estudo de Caso e Resultados 5 Estudo de Caso e Resultados 5.1. Introdução Finalizado o desenvolvimento da ferramenta, é indispensável testar suas funcionalidades e a eficácia da aplicação conjunta dos seus módulos de geração de experimentos

Leia mais

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Inteligência Artificial - IA. Resolução de problemas por meio de busca Resolução de problemas por meio de busca 1 Agente reativo - definido por ação reação Agente de resolução de problemas (ou baseado em objetivos) encontra sequencias de ações que leva ao estado desejável.

Leia mais

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

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

Leia mais

Otimização de horários Seminário. Clarisse Resende 25/01/2013

Otimização de horários Seminário. Clarisse Resende 25/01/2013 Otimização de horários Seminário Clarisse Resende 25/01/2013 O problema dos horários consiste numa sequência de atividades de programação, satisfazendo um conjunto de restrições de recursos. Pretende-se

Leia mais

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 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

Leia mais

INTELIGÊNCIA ARTIFICIAL

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

Leia mais

3 Otimização Evolucionária de Problemas com Restriçã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

Leia mais

IF-705 Automação Inteligente Algoritmos Evolucionários

IF-705 Automação Inteligente Algoritmos Evolucionários IF-705 Automação Inteligente Algoritmos Evolucionários Aluizio Fausto Ribeiro Araújo Universidade Federal de Pernambuco Centro de Informática - CIn Departamento de Sistemas da Computação aluizioa@cin.ufpe.br

Leia mais

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa Prof. Paulo André Castro pauloac@ita.br www.comp.ita.br/~pauloac Sala 110, IEC-ITA Sumário Busca Competitiva Para Ambientes multiagentes...

Leia mais

3. Otimização sob Incerteza

3. Otimização sob Incerteza 3. Otimização sob Incerteza Os problemas de otimização tentam resolver, de forma eficiente, situações do mundo real por meio de modelos matemáticos que utilizam parâmetros incertos. Pode-se encontrar na

Leia mais

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia Elétrica INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL Aula 06 Prof. Vitor Hugo Ferreira Representação por cromossomos Codificação

Leia mais

3 Trabalhos Relacionados

3 Trabalhos Relacionados 3 Trabalhos Relacionados Este capítulo apresenta, em linhas gerais, dois trabalhos relacionados que contribuíram de alguma forma para a concepção e desenvolvimento do método de verificação de sistemas

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 06 Algoritmos Genéticos Edirlei Soares de Lima Algoritmos Genéticos Método de busca local. Boa abordagem para lidar com espaços de busca muito

Leia mais

Aprendizado por Reforço usando Aproximação

Aprendizado por Reforço usando Aproximação Aprendizado por Reforço usando Aproximação de Funções Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Aproximação de Funções 2. Do the evolution 1 Aproximação de Funções Função Utilidade

Leia mais

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 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

Leia mais

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Anatomia do motor de um programa de xadrez Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Conteúdo Objetivo O que é um motor de xadrez? Arquitetura Entrada e saída Representação do tabuleiro

Leia mais

Instituto de Informática. Departamento de Informática Aplicada

Instituto de Informática. Departamento de Informática Aplicada UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Instituto de Informática Departamento de Informática Aplicada INF01048 Inteligência Artificial Prof. Paulo Martins Engel Trabalho Prático - Relatório Final Carlos

Leia mais

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 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

Leia mais

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

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

Leia mais

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 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...]

Leia mais

3 Computação Evolucionária

3 Computação Evolucionária 34 3 Computação Evolucionária Computação Evolucionária compreende diversos algoritmos inspirados no princípio Darwiniano da evolução das espécies e na genética. São algoritmos probabilísticos, que fornecem

Leia mais

UTILIZAÇÃO DE APRENDIZADO POR REFORÇO PARA APRENDER A ESTRATÉGIA DO JOGO DA VELHA

UTILIZAÇÃO DE APRENDIZADO POR REFORÇO PARA APRENDER A ESTRATÉGIA DO JOGO DA VELHA Anais do 12 O Encontro de Iniciação Científica e Pós-Graduação do ITA XII ENCITA / 2006 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 16 a19 2006 UTILIZAÇÃO DE APRENDIZADO

Leia mais

Estrutura comum dos AEs

Estrutura comum dos AEs Estrutura comum dos AEs Os algoritmos estudados seguem o seguinte padrão para modelagem dos sistemas evolutivos: Uma população de tamanho constante m evolui sobre o tempo A população atual é utilizada

Leia mais

3. Resolução de problemas por meio de busca

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

Leia mais

3 Otimização Aplicada a Reconstituição de Acidentes

3 Otimização Aplicada a Reconstituição de Acidentes 27 3 Otimização Aplicada a Reconstituição de Acidentes 3.1. Otimização A otimização é uma metodologia empregada para minimizar ou maximizar uma função e geralmente são utilizados em problemas onde existam

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

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 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

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula #2: Resolução de Problemas Via Busca Prof. Eduardo R. Hruschka 1 Agenda Tipos de Problemas Estados únicos (totalmente observável) Informação parcial Formulação do Problema

Leia mais

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos 46 4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos Para definir a representação de um modelo para problemas de planejamento

Leia mais

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético 61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser

Leia mais