VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO

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

Download "VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO"

Transcrição

1 VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO LONDRINA PR 2013

2

3 VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Computação da Universidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Computação. Orientador: Profa. Ms. Helen C. de Mattos Senefonte LONDRINA PR 2013

4 VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Computação da Universidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Computação. BANCA EXAMINADORA Profa. Ms. Helen C. de Mattos Senefonte Universidade Estadual de Londrina Orientador Profa. Dra. Cinthyan Renata Sachs C. de Barbosa Universidade Estadual de Londrina Prof. Dr. Jacques Duílio Brancher Universidade Estadual de Londrina Londrina PR, 21 de novembro de 2013 LONDRINA PR 2013

5 Dedico este trabalho à Rosângela Gomes Quaglio, minha mãe, pelo exemplo de vida, amor e fé.

6

7 AGRADECIMENTOS Primeiramente agradeço a Deus por tudo. Por ter me abençoado, me dado força e sabedoria, me guiado até aqui e ajudado nos momentos difíceis. Aos meus pais Rosângela e Luis, pelo apoio e incentivo. Por toda dedicação e imensuráveis esforços para me proporcionar o melhor. À minha esposa Stephane pelo amor, carinho, apoio e por estar ao meu lado todos os dias. Meus sinceros agradecimentos aos amigos da computação, com os quais eu vivi grande parte desses últimos anos e que foram como uma verdadeira família para mim. Foram muitas risadas, bagunças, estudos, trabalhos, provas, sono, gordices, nerdices e companheirismo, dia e noite, todo dia. À Helen C. de Mattos Senefonte, por quem tive a honra de ser orientado, pelos conselhos, confiança, paciência e sabedoria em mim depositados. Aos professores do Departamento de Computação que contribuíram para a minha graduação, transmitindo conhecimento e dando exemplos de profissionalismo. Aos meus amigos, que sempre desempenharam papel fundamental em minha vida, estando ao meu lado na alegria e na tristeza. Também àqueles que estão mais distantes, mas que são verdadeiros amigos. À minha irmã Larissa e à toda minha família pelo amor, incentivo e por acreditarem em mim. A todos os professores que durante minha vida contribuíram para a minha educação e formação, sem os quais essa conquista não seria possível. À família da minha esposa, que me acolheu como próprio filho e irmão.

8

9 A fé na vitória tem que ser inabalável. (Marcelo Falcão)

10

11 QUAGLIO, V. G.. Técnicas de Inteligência Artificial aplicadas ao Jogo Othello: Um estudo comparativo. 48 p. Trabalho de Conclusão de Curso (Graduação). Bacharelado em Ciência da Computação Universidade Estadual de Londrina, RESUMO Othello é um jogo determinístico soma-zero de dois jogadores com informação perfeita, jogado em um tabuleiro 8 X 8. Este trabalho ter por objetivo implementar um agente inteligente jogador de Othello, a fim de investigar o uso e desempenho de técnicas de inteligência artificial aplicadas à jogos, disponibilizando um estudo comparativo prático para futuros testes de agentes inteligentes de jogos. Para realizar este estudo, algumas técnicas serão implementadas e observadas através de partidas simuladas assim como a extração de informações obtidas por meio de testes. Palavras-chave: othello. inteligência artificial. q-learning.

12

13 QUAGLIO, V. G.. Artificial Intelligence techniques applied to the Othello game: a comparative study. 48 p. Final Project (Undergraduation). Bachelor of Science in Computer Science State University of Londrina, ABSTRACT Othello is a deterministic zero-sum game of two players with perfect information, played on an 8 X 8 board. This work aims to implement an intelligent agent Othello player in order to investigate the usage and performance of artificial intelligence techniques applied to games, providing a comparative study for future practical tests of intelligent agents in games. To conduct this study, some techniques are implemented and observed through simulated matches as well as the attainment of information acquired during performance of tests. Keywords: othello. artificial intelligence. q-learning.

14

15 LISTA DE ILUSTRAÇÕES Figura 1 Início da Árvore de Jogo 8-puzzle Figura 2 Aprendizado por Reforço Figura 3 Configuração Inicial do Otthelo Figura 4 Ambiente Padrão Othello Figura 5 Período de Treinamento Figura 6 Tempo Médio Figura 7 Desvio Padrão do Tempo Figura 8 Reforço Médio Figura 9 Desvio Padrão do Reforço

16

17 LISTA DE TABELAS Tabela 1 Avanços em Programas para Othello Tabela 2 MiniMax x Poda Alfa Beta - Profundidade Tabela 3 MiniMax x Poda Alfa Beta - Profundidade Tabela 4 Comparação antes e depois do treinamento Tabela 5 Q-Learning x MiniMax Tabela 6 Q-Learning x Poda Alfa Beta

18

19 LISTA DE ALGORITMOS 1 MiniMax Poda Alfa Beta Q-Learning

20

21 LISTA DE ABREVIATURAS E SIGLAS AR GB IA IDE ms σ Aprendizado por Reforço Gigabyte Inteligência Artificial Integrated Development Environment Milisegundo Desvio Padrão

22

23 SUMÁRIO 1 Introdução Fundamentação Teórica Inteligência Artificial em Jogos Árvores de Jogos Algoritmo Minimax Algoritmo Poda Alfa-Beta Aprendizado de Máquina Q-Learning O Jogo Othello Regras Othello e IA Ambiente Othello e técnicas de Inteligência Artificial Ambiente Padrão Othello Jogador Artificial de Teste MiniMax e Poda Alfa Beta Q-Learning Resultados e Considerações MiniMax x Poda Alfa-Beta Q-Learning Indicadores de Tempo Indicadores de Reforço Número de vitórias Torneio de Algoritmos Conclusão Dificuldades Encontradas Trabalhos Futuros Referências

24

25 23 1 INTRODUÇÃO Em meados do século XX, começaram as primeiras tentativas científicas para inventar máquinas inteligentes [1]. Entre os pioneiros, estão Shannon [2] que, em seu artigo de 1950, propõe um programa capaz de jogar xadrez, Turing [3] em 1953 também abordou o xadrez e busca em árvore de jogos. Pesquisadores da área de Inteliência Artificial, desde então, utilizam jogos populares em todo mundo, tais como Xadrez, Damas, Othello, Go, Poker, entre outros, como alvo de pesquisas, sempre no intuito de superar a supremacia humana [1]. Um dos jogos explorados na literatura de IA é o Othello, que consiste em um jogo de dois jogadores, com um tabuleiro 8 x 8 e 64 discos que são brancos de um lado e pretos no outro. Em cada movimento, o jogador deve necessariamente fazer com que pelo menos uma peça adversária seja cercada dos dois lados pelas suas peças, transformando a peça cercada em peça própria. O objetivo é terminar o jogo possuindo maior número de peças que o adversário. Utilizado no jogo Othello por Eck e Wezel [4], em 2008 e por Kim et al [5] em 2007, o aprendizado por reforço é um dos paradigmas de aprendizado de máquina disponíveis entre as técnicas de Inteligência Artificial. Um estudo comparativo de dois algoritmos de aprendizado para aquisição de funções de avaliação para o jogo Othello foi feito por Lucas e Runarsson [6]. Esse trabalho tem como objetivo investigar o uso de técnicas de inteligência artificial aplicado a jogos, realizando um estudo comparativo através de implementações e testes práticos no jogo Othello. No Capítulo 2 são descritos os principais conceitos de Inteligência Artificial utilizados em jogos, características e funcionamento do jogo Othello, bem como os avanços da área de IA relacionados ao Othello. No Capítulo 3 são descritos o desenvolvimento do Ambiente Padrão Othello e as implementações das técnicas de IA. As análises e resultados são apresentados no Capítulo 4 e, por fim, a conclusão no Capítulo 5.

26

27 25 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo são apresentados os principais conceitos de Inteligência Artificial (IA) necessários para o desenvolvimento deste trabalho. Inicialmente são abordados os conceitos de IA com relação aos jogos e algumas técnicas utilizadas, em seguida, o aprendizado de máquina, suas classificações e uma técnica pertencente a esse paradigma. Ao final, é apresentado o jogo Othello, suas regras e os avanços de IA relacionados. 2.1 Inteligência Artificial em Jogos Uma das primeiras tarefas empreendidas em Inteligência Artificial foi a participação em jogos [7]. Por anos tem sido um tópico fascinante para IA, rendendo, nas últimas duas décadas, grandes avanços em jogos clássicos de tabuleiro [8]. De acordo com Mandziuk [8], algumas questões ainda podem ser exploradas, na área de IA em relação aos jogos, tais como: a implementação de mecanismos autônomos capazes de descobrir conhecimento com o propósito de criar novas estratégias de jogo; a melhoria do comportamento do jogador artificial baseado apenas no conhecimento obtido através de jogos anteriores; a implementação de mecanismos que simulem a intuição humana. O objetivo final, no uso de técnicas de IA em jogos é a construção de um agente jogador de vários jogos, verdadeiramente autônomo, como o ser humano [8]. As diversas técnicas de IA aplicadas em jogos podem variar e apresentar desempenhos diferentes, de acordo com as características do problema. Por exemplo, considerando a classe dos jogos com dois jogadores, em que um faz o primeiro movimento, seguido do outro jogador, e revezam-se até o jogo terminar, Russell e Norvig [7] definem um jogo como um problema de busca com os componentes a seguir: Estado Inicial - Determina a posição das peças no tabuleiro e o jogador que fará o movimento inicial. Função Sucessor - Retorna uma lista de pares com as ações válidas e o respectivo estado resultante. Teste de Término - Indica quando o jogo acabou.

28 26 Capítulo 2. Fundamentação Teórica Estados terminais - São os estados onde o jogo é encerrado. Função Utilidade - Retorna o resultado do jogo. Pode ser vitória, derrota ou empate em alguns jogos, ou mais variedade de resultados em outros. Através destes componentes é possível construir uma árvore, estrutura de dados comumente utilizada para representar o conjunto de estados de um jogo Árvores de Jogos A configuração inicial e os movimentos válidos para dois jogadores definem uma árvore, em que as folhas são os estados terminais e a raiz é o estado inicial. Essa árvore é chamada árvore do jogo. Os dois jogadores podem ser chamados de MIN e MAX 1, sendo que o último faz o primeiro movimento e prosseguem com turnos alternados. Cada folha possui um valor associado que representa o resultado do jogo pelo ponto de vista de MAX. [7] Na figura 1, são mostrados os primeiros níveis da árvore de jogo do quebra cabeça 8-puzzle, que consiste em um jogo de tabuleiro com blocos deslizáveis. O objetivo do jogo é mover as peças a partir de um estado inicial até que esteja em seu estado final. Só é permitido deslizar os blocos em direção ao bloco vazio e em movimentos ortogonais. Figura 1 Início da Árvore de Jogo 8-puzzle. Uma estratégia ótima é aquela em que o estado terminal alcançado represente um estado objetivo, uma vitória. Portanto, para o jogo, a estratégia deve especificar o 1 O motivo dos nomes MIN e MAX dos jogadores ficarão mais claros na seção

29 2.1. Inteligência Artificial em Jogos 27 movimento inicial de MAX e seus movimentos seguintes a cada possível resposta de MIN. [7] O valor minimax em cada nó, dada uma árvore de jogo, é a utilidade de se encontrar no estado que leve ao melhor estado final, ou seja, uma pontuação. Através do valor minimax é possível definir uma estratégia ótima Algoritmo Minimax O algoritmo minimax utiliza computação recursiva dos valores de minimax de cada estado sucessor para calcular a decisão minimax a partir do estado corrente [7]. A estratégia é, em cada nível da árvore, tentar maximizar a pontuação do jogo (para MAX) e minimizar a pontuação do adversário (MIN). Por isso, o algoritmo é denominado MiniMax. O algoritmo percorre em profundidade a árvore completa do jogo. A complexidade de tempo é O(b m ), onde m é a profundidade máxima e b o número de movimentos válidos em cada ponto [7]. O código do Minimax é apresentado no Algoritmo 1. Algoritmo 1: MiniMax begin minimax (no_corrente) if ehfolha(no_corrente) then return pontuacao(no_corrente); end if ehnomin(no_corrente) then return min(minimax(filhosde(no_corrente))); end if ehnomax(no_corrente) then return max(minimax(filhosde(no_corrente))); end end Apesar da utilização do algoritmo MiniMax garantir a estratégia ótima, a busca pela árvore completa do jogo pode não ser viável para a maioria dos jogos, pois o número de estados que a busca tem que examinar é exponencial em relação ao número de movimentos Algoritmo Poda Alfa-Beta Através da Poda Alfa-Beta, é possível tornar a busca por um bom movimento mais eficiente removendo seções da árvore de jogo que não compensam examinar [9], ou seja, aquelas seções onde sabemos que o melhor movimento já não pode mais ser encontrado. Esse artifício pode reduzir o expoente de tempo do algoritmo MiniMax, retornando o mesmo movimento [7].

30 28 Capítulo 2. Fundamentação Teórica Segundo Coppin [9], o algoritmo é implementado da seguinte forma: a árvore de jogo é percorrida em profundidade. Para cada nó que não seja um folha, é armazenado um valor, chamado α para nós Max e β para nós Min; α é o valor máximo encontrado até o momento entre os descendentes dos nós Max; β é o valor mínimo encontrado até o momento entre os descendentes dos nós Min. Os parâmetros α e β dão nome à técnica, que atualiza os valores de α e β e encerra a chamada recursiva de um nó corrente se o valor deste for pior que o valor de α para Max ou pior que β para Min [7]. O código pode ser encontrado no Algoritmo 2. Algoritmo 2: Poda Alfa Beta begin alfabeta (no_corrente, alfa, beta) if ehraiz(no_corrente) then alfa = ; beta = ; end if ehfolha(no_corrente) then return pontuacao(no_corrente) end if ehnomax(no_corrente) then alfa = max(alfa, alfabeta(filhos, alfa, beta)); if alfa >= beta then cortarbuscaabaixo(no_corrente); end end if ehnomin(no_corrente) then beta = min(beta, alfabeta(filhos, alfa, beta)); if beta <= alfa then cortarbuscaabaixo(no_corrente); end end end 2.2 Aprendizado de Máquina O objetivo do aprendizado de máquina é que o agente utilize as percepções ou interações com o ambiente para, além de agir ou tomar decisões, melhorar sua habilidade de realizar essas atividades no futuro. O aprendizado pode variar desde a memorização trivial da experiência até a criação de teorias científicas inteiras. O aprendizado de máquina é

31 2.2. Aprendizado de Máquina 29 útil quando não é possível ou não é viável descrever detalhadamente todo o ambiente e decisões do agente [7]. A adaptação do jogo para ações do jogador e a capacidade de um personagem do jogo melhorar de acordo com a experiência são alguns benefícios ou razões para a utilização do aprendizado de máquina em jogos. Em alguns problemas de aprendizado de máquina, a tarefa é aprender a classificar entradas, para isso, o sistema de aprendizado possui um conjunto de dados de treinamento. Então, a partir dos dados de treinamento, o sistema tenta aprender a classificar estes mesmos dados e também novos dados não observados [9]. O aprendizado de máquina normalmente é classificado de três formas: aprendizado supervisionado, aprendizado não supervisionado e aprendizado por reforço [7]. A investigação deste trabalho será no contexto do aprendizado por reforço. Aprendizado Supervisionado Aprendizado supervisionado consiste na aprendizagem de uma função a partir de exemplos de entradas e saídas. Em ambientes completamente observáveis, o agente poderá observar os efeitos causados por suas ações, e poderá utilizar métodos de aprendizado supervisionado para aprender a prevê-los. Em ambientes parcialmente observáveis, os efeitos imediatos podem não ser visualizados pelo agente, dificultando o problema [7]. Alguns exemplos de utilização são o diagnóstico de casos médicos e a avaliação de risco de crédito de candidatos a empréstimos. Aprendizado Não Supervisionado No aprendizado não supervisionado, o problema consiste em aprender padrões quando não são fornecidos valores de saídas específicos, ou seja, os métodos de aprendizado não supervisionado aprendem sem a intervenção de um supervisor [9, 7]. Um exemplo é o mapa de Kohonen, uma rede neural capaz de aprender a classificar um conjunto de dados de entrada sem receber dados de treinamento e sem ter conhecimento de quais são as classificações [9]. Aprendizado por Reforço No aprendizado por reforço (AR), a aprendizagem é realizada através de tentativa e erro, em interações do agente com o meio ambiente. [10] O agente observa o ambiente e toma uma ação. O ambiente então responde com um reforço e segue para um próximo estado. Em seguida, com o ambiente em um novo estado, o agente deve tomar outra ação,

32 30 Capítulo 2. Fundamentação Teórica recebendo do ambiente outro reforço, constituindo um ciclo. A tarefa do agente é aprender de acordo com os reforços recebidos [4]. A Figura 2 exemplifica este processo. O reforço é uma medida de desempenho utilizado para avaliar a qualidade da ação realizada pelo agente. Este pode ser positivo ou negativo, conhecido também como recompensa ou punição, respectivamente [11]. Figura 2 Aprendizado por Reforço. De acordo com [11], os principais elementos do aprendizado por reforço são: Agente - é a entidade que percebe o mundo à sua volta, aprende e decide qual ação tomar em cada estado. Ambiente - tudo que é exterior ao agente. Reforço - é a medida de desempenho dada ao agente em forma de punição ou recompensa por executar um ação. Estado - representa o ambiente em determinado instante. Ação - ato realizado pelo agente. Infelizmente, a convergência de qualquer algoritmo AR só pode ser alcançado após grande exploração do espaço de estado-ação, que pode ser muito demorado. [10] Um exemplo de algoritmo de AR é o Q-learning, proposto por Watkins [12], que será abordado na próxima seção Q-Learning Q-Learning é um algoritmo de AR em que um agente aprendiz qualifica pares estado-ação de acordo com seu objetivo. Esta qualificação é atualizada a cada iteração com o ambiente [11].

33 2.3. O Jogo Othello 31 Segundo Mitchell [13], para calcular essa qualificação é utilizada uma função de avaliação Q, o valor de Q (x,a) é a avaliação recebida imediatamente após a execução de uma ação a do estado x, mais o valor do próximo par estado-ação seguindo uma política ótima. Cada par estado-ação é atualizado com base na equação 2.1 [12]: Q (x,a) = Q (x,a) + α[r + γ.max b Q(y, b) Q (x,a) ] (2.1) Onde: r - é o reforço dado pelo ambiente. γ - é o fator de desconto, utilizado para manter os valores de Q finitos. α - é o fator de aprendizado, que pode ser calculado através da equação: α = visitas(x, a) (2.2) em que visitas(x,a) é o número de vezes que a ação a foi escolhida e executada no estado x. [11] A parte max b Q(y, b) da equação 2.1 é o valor do melhor par estado-ação seguinte, portanto, para atualizar o valor de uma determinada jogada, o algoritmo considera valor das jogadas possíveis no futuro e não apenas o reforço imediato. [13]. Para treinamento e atualização dos pares estado/ação é utilizado o Algoritmo 3 Algoritmo 3: Q-Learning foreach x, a do Inicialize a tabela Q (x,a) ; end Observe o estado atual x; repeat Selecione uma ação a e execute; Receba um reforço imediato; Observe o novo estado x ; Atualize a tabela Q (x,a) de acordo com a equação 2.1; x x ; until Critério de parada satisfeito; 2.3 O Jogo Othello Othello é um jogo de tabuleiro determinístico soma-zero de dois jogadores com informação perfeita [14]. Um jogo soma-zero é aquele em que o placar final para cada

34 32 Capítulo 2. Fundamentação Teórica jogador pode ser uma vitória, derrota ou empate. Jogos com informação perfeita são aqueles em que é possível visualizar completamente o estado do jogo, diferente de jogos como o pôquer onde os jogadores escondem informações de seus oponentes [9]. Existe um Campeonato Mundial de Othello que é realizado anualmente desde 1977, onde o japonês Hiroshi Inoue foi o primeiro campeão. A sede é alternada e a primeira edição foi em Tókio. Em 1987 passou a ocorrer simultaneamente o campeonato entre equipes e em 2005 começou a premiação para a categoria feminina [15]. A 37 a edição, em 2013 aconteceu em Estocolmo, na Suécia, e o vencedor foi Kazuki Okamoto. Em 2004 foi realizado o primeiro campeonato oficial no Brasil, o Circuito Brasileiro de Othello. O campeão foi Daniel Dantas, que se tornou o primeiro brasileiro a representar o Brasil no Campeonato Mundial de Othello. O Campeonato Brasileiro de Othello é realizado desde a criação da Federação Brasileira de Othello, e é o evento mais importante de Othello do país. O vencedor da última edição, em 2013, foi Lucas Cherem [15] Regras Othello é jogado em um tabuleiro 8 x 8 com 64 discos que são brancos de um lado e pretos no outro. Enquanto um jogador coloca os discos no lado branco, o outro coloca no lado preto.[4] O jogo se inicia com dois discos de cada cor, assim como na Figura 3. Figura 3 Configuração Inicial do Otthelo. Em cada movimento, o jogador deve necessariamente fazer com que pelo menos uma peça adversária seja cercada dos dois lados pelas suas peças. As peças adversárias cercadas são transformadas em peças próprias. O objetivo dos jogadores nesse jogo é deixar no tabuleiro o maior número de fichas com sua cor Othello e IA Em 1997, o então campeão mundial Takeshi Murakami foi derrotado pelo programa de Michael Buro, o Logistello. Em seu discurso durante o evento, o Sr. Murakami disse

35 2.3. O Jogo Othello 33 que não se sentiu em uma partida contra um simples programa de computador, mas sim contra gerações de engenheiros e matemáticos [16]. Buro [17], em 2002, descreve a evolução dos principais programas de Othelo, desde simples algoritmos até sistemas de aprendizado que superaram a habilidade humana de jogar. A tabela 1 sintetiza os avanços descritos por Buro. Ano Programa Característica 1982 Iago Função de avaliação manual 1990 Bill Padrão baseado em partes, utilização de pesos 1994 Logistello 1 Aprendizagem independente de valores padrão 1997 Logistello 2 Aprendizagem conjunta de valores padrão Tabela 1 Avanços em Programas para Othello Gunawan et al [18] publicaram em 2012, um trabalho sobre Othello que une Redes Neurais e Algoritmos Genéticos formando Redes Neurais Evolutivas. Redes Neurais também podem ser encontradas em [14]. O uso do aprendizado por reforço no jogo Othello é abordado por Eck e Wezel [4], em 2008 e por Kim et al [5] em Estudo comparativo de dois algoritmos de aprendizado para aquisição de funções de avaliação para o jogo Othello pode ser encontrado em [6], de 2006.

36

37 35 3 AMBIENTE OTHELLO E TÉCNICAS DE IN- TELIGÊNCIA ARTIFICIAL Neste capítulo são descritas as implementações do ambiente de testes e das técnicas que este trabalho comtempla. 3.1 Ambiente Padrão Othello O ambiente padrão Othello foi desenvolvido utilizando a linguagem Java, e tem sua lógica principal na classe "Tabuleiro", onde o tabuleiro propriamente dito é uma matriz 8 x 8 que, em cada posição, existe uma instância da classe "Casa", podendo estar nos estados "Vazio", "Disponível", "Branco"ou "Preto". O ambiente padrão Othello durante uma partida é mostrado na figura 4. Figura 4 Ambiente Padrão Othello. Durante as partidas, só é permitido executar um movimento se a casa em que pretende-se jogar estiver no estado "Disponível", portanto, é possível afirmar que todas as jogadas executadas são válidas. Feito um movimento, a primeira rotina é a de captura que, a partir da casa onde o movimento foi realizado, percorre o tabuleiro em todos os sentidos e direções à procura de uma casa com um disco da mesma cor que a do jogador atual. Ao encontrar uma casa com um disco do jogador adversário, a busca continua, se a casa possuir um disco do jogador atual, todas as casas que possuíam discos adversários entre essa casa e a casa de partida passam a ser do jogador atual e, encontrando uma casa vazia ou a borda do tabuleiro, a busca para nessa direção e começa a próxima. Após a conclusão da captura, é feita a verificação de casas disponíveis para o próximo movimento. Para cada casa vazia do tabuleiro são feitas buscas similares à de

38 36 Capítulo 3. Ambiente Othello e técnicas de Inteligência Artificial captura, marcando a casa como disponível, se na próxima jogada um movimento leve à captura de alguma peça adversária. Se no tabuleiro não houver nenhuma casa disponível, o jogador perderá a vez e a verificação é feita novamente. Se não houver nenhuma casa disponível mais uma vez, o jogo acabou e vence o jogador que possuir mais discos no tabuleiro. Para um jogador humano, é possível executar uma jogada clicando em uma casa disponível, onde será disparado um evento que ativará a lógica do jogo. Os jogadores artificiais são executados em threads, e ficam esperando sua vez para realizar um movimento. 3.2 Jogador Artificial de Teste Com o objetivo de testar os algoritmos implementados sem a necessidade da intervenção humana, foi desenvolvido um jogador de teste que simplesmente executa uma jogada aleatória dentre as jogadas disponíveis. Utilizando uma função Java que gera um valor booleano aleatoriamente, o algoritmo pode percorrer o tabuleiro de cima para baixo ou no sentido contrário, de acordo com o valor booleano gerado, e executa a primeira jogada que encontrar disponível. Como o tabuleiro é fixo e possui apenas 64 posições, a complexidade desse algoritmo é baixa, de modo que facilita os testes e simulações, quase não acrescentando mais tempo à execução dos outros algoritmos que serão testados. 3.3 MiniMax e Poda Alfa Beta Foi implementado um jogador artificial que chama a técnica MiniMax a cada rodada. Como o algoritmo em si retorna apenas a pontuação de um movimento, foi desenvolvida uma função que verifica todas as jogadas disponíveis e chama o MiniMax para cada uma delas, comparando e escolhendo a jogada de maior pontuação. O algoritmo é recursivo e o tempo de resposta foi muito grande ao analisar o tabuleiro até o fim, sendo necessário estabelecer um limite de profundidade, onde o algoritmo retornaria o resultado parcial, mesmo não terminando de analisar todas as possibilidades. O método principal é constituído de uma sequência de regras que, dependendo da ocasião, chama o mesmo método recursivamente passando os parâmetros necessários ou retorna a pontuação. Os parâmetros utilizados para cada chamada são, o estado atual do tabuleiro, um indicador de qual é o jogador da vez e a profundidade, que a cada chamada é incrementada. Alguns métodos foram necessários para a execução do algoritmo, conforme mostrado no Algoritmo 1. Foram implementados então, um método que verifica se o nó atual

39 3.4. Q-Learning 37 é um nó folha ou a profundidade limite foi atingida, um que verifica se é o nó Min, outro que verifica se é o no Max e um que retorna a pontuação do movimento, dada pelo número de discos da cor do jogador que chamou o método minimax. O algoritmo da Poda Alfa-Beta é um aperfeiçoamento do MiniMax, a diferença está justamente na poda. Então, a experiência obtida na implementação do MiniMax foi aproveitada, concentrando os esforços na implementação da poda e da manipulação dos parâmetros necessário para tal. Além disso, também foi implementado um jogador que chama o algoritmo e executa a ação retornada por este. A poda consiste em parar a busca quando já se sabe que não é possível encontrar um resultado melhor. À chamada da função são adicionados dois parâmetros: α e β. α é inicializado com um valor que representa infinito negativo e atualizado a cada chamada sempre com o valor máximo encontrado até o momento, enquanto β é inicializado com infinito positivo e atualizado com o valor mínimo encontrado até o momento. No momento em que α passa a ser maior que β, a busca é terminada nesta árvore. 3.4 Q-Learning Assim como nos outros algoritmos, foi implementado um jogador, que chama o método qlearning e depois executa uma jogada de acordo com o resultado retornado pelo método. Quando o método é chamando pelo jogador, em primeiro lugar, é feito uma busca no banco de dados para obter o id do atual estado do tabuleiro. Caso o estado não seja encontrado no banco, é adicionado e inicializado. Logo após, é feita outra busca no banco, que de maneira gulosa, selecionando qual é a ação que possui um melhor valor para esse estado. A ação é tomada e recebe um reforço como resposta, esse reforço é utilizado junto com outros parâmetros para calcular o valor em que essa ação será atualizada na matriz Q (x,a). Esse cálculo é feito baseado na equação 2.1. Em seguida, Q (x,a) é atualizada no banco de dados e o tabuleiro também é atualizado com a nova jogada. Reforço O reforço dado ao agente, a cada jogada, foi baseado na posição do tabuleiro em que foi feita esta jogada e em quantos discos foram convertidos. Inicialmente para posição do tabuleiro, foram utilizados como base os mesmos valores utilizados por Eck e Wezel [19]. Mas como várias posições no tabuleiro possuem um mesmo valor, para valorizar mais a individualidade de cada jogada, foi acrescentado o número de peças convertidas, fazendo com que em determinado momento, uma jogada na mesma posição tenha um maior valor que em outro.

40 38 Capítulo 3. Ambiente Othello e técnicas de Inteligência Artificial Após alguns testes observou-se que, como o valor inicial para todo par estadoação foi configurado como zero, bastava que o reforço para um par fosse positivo para que nenhum outro par estado-ação fosse escolhido, pois os outros pares eram 0 e nunca seriam mais vantajosos que o primeiro. Sendo assim, o algoritmo teria um comportamento semelhante a um jogador que escolhe uma ação aleatória, pois no começo todas as ações tem o mesmo valor e, ao tomar a primeira ação, não seria possível escolher outra. Devido a isso, o valor inicial de todas as posições do tabuleiro foi alterado para 100. Desta forma, na primeira jogada, o resultado seria menor que 100, então na próxima jogada o algoritmo escolheria outro valor, até que todas as ações fossem tomadas e pudessem ser comparadas devidamente. Base de dados Para o funcionamento correto do algoritmo é necessário ter uma base de dados com todos os possíveis pares estado-ação do tabuleiro. Para o tabuleiro do jogo Othello, esse número é muito grande, então foi implementada uma solução que atualiza a base de dados conforme os estados são conhecidos. Inicialmente, o algoritmo não terá nenhum estado disponível, mas sempre que buscar no banco de dados um estado e não encontrar, este estado é adicionado e todas as ações deste estado são configuradas com o valor 0. Essa adição de estados em tempo real influencia no tempo de resposta do algoritmo, mas após certo treinamento, essas inserções não são mais necessárias, pois os estados já estarão armazenados no banco.

41 39 4 RESULTADOS E CONSIDERAÇÕES Todas as simulações e testes foram executados em um mesmo computador, para que o ambiente não influenciasse e fosse possível fazer comparações. O computador utilizado foi um notebook Dell, com processador Intel Core i3, sistema operacional Windows 7 e 4GB de memória. O banco de dados empregado foi o PostgreSQL e o IDE foi o NetBeans. 4.1 MiniMax x Poda Alfa-Beta Para o algoritmo MiniMax, o número de estados a serem examinados é exponencial em relação ao número de movimentos, comprometendo o funcionamento do algoritmo para jogos com amplo número de movimentos possíveis. A Poda Alfa-Beta diminui o número de estados, mas esse número ainda é muito grande. As tabelas 2 e 3 mostram indicadores de desempenho durante competições entre o MiniMax e o Poda Alfa Beta utilizando limites de profundidade 2 e 3, respectivamente. Algoritmo Maior Tempo Menor Tempo Tempo Médio N o Discos MiniMax 6587ms 0ms 2154ms 38 Poda Alfa Beta 1590ms 0ms 550ms 26 Tabela 2 MiniMax x Poda Alfa Beta - Profundidade 2 Algoritmo Maior Tempo Menor Tempo Tempo Médio N o Discos MiniMax ms 0ms ms 38 Poda Alfa Beta ms 0ms ms 26 Tabela 3 MiniMax x Poda Alfa Beta - Profundidade Q-Learning Com a finalidade de medir o desempenho do algoritmo implementado, foram adotados indicadores de de tempo e reforço, além de analisar o número de vitórias. Foram colhidas amostras das 200 primeiras partidas, ou seja, iniciando com a base de dados vazia, e 200 partidas após um treinamento de 2000 partidas, conforme a Figura 5. Todas as partidas foram realizadas utilizando o Jogador Artificial de Teste.

42 40 Capítulo 4. Resultados e Considerações Figura 5 Período de Treinamento Indicadores de Tempo Antes do treinamento, o tempo médio de execução de uma jogada foi de 88,62ms, e depois foi coletado um tempo médio de 388ms, conforme a Figura 6. O tempo médio está relacionado com o número de estados armazenados no bando de dados, e conforme foram adicionadas novas tuplas, este aumentou proporcionalmente. Figura 6 Tempo Médio. Figura 7 Desvio Padrão do Tempo. A medida que o algoritmo se aproxima do total de estados possíveis para o jogo, o tempo de resposta tende a convergir e estabilizar. Essa afirmação pode ser embasada

43 4.2. Q-Learning 41 no fato de que o desvio padrão do tempo diminuiu de 10,6 para 6,46, mostrando que a diferença entre os tempos foi menor na segunda sequência de testes, pois a descoberta de novos estados foi menor que no início do treinamento. A comparação do desvio padrão pode ser visualizada na Figura Indicadores de Reforço No primeiro conjunto de dados analisado, o reforço médio obtido durante as partidas foi 3,88 e seu desvio padrão foi 0,93. Nos dados coletados após o treinamento, o reforço médio foi 7,3 e o desvio padrão 0,89. A evolução do reforço médio e do desvio padrão do reforço são apresentadas nas Figuras 8 e 9, respectivamente. Figura 8 Reforço Médio. Figura 9 Desvio Padrão do Reforço. Baseado no aumento do reforço médio, é possível concluir que, com o treinamento, o algoritmo passou a tomar decisões melhores, rendendo um reforço maior. Com a diminuição do desvio padrão, entende-se que após o treinamento, grande parte das decisões do

44 42 Capítulo 4. Resultados e Considerações algoritmo, já convergiram para as melhores ações, explorando menos caminhos diferentes e, desta forma, variando menos o reforço recebido Número de vitórias O número de vitórias subiu de 62, antes do treinamento, para 113, depois do mesmo. Esse aumento reflete o aprendizado do algoritmo, e confere com o aumento do reforço, reafirmando que depois do treinamento o algoritmo optou por estratégias mais vantajosas. Levando em consideração que o adversário utilizado foi o Jogador Artificial de Teste, e que ele sempre toma decisões aleatórias, é possível afirmar que o desempenho do Q-Learning pode ser otimizado se for treinado por um número maior de partidas, aproximando-se de um aproveitamento de 100 A tabela 4 apresenta um resumo dos indicadores de tempo, reforço e vitórias antes e depois do treinamento: Tempo Médio σ Tempo Reforço Médio σ Reforço Vitórias Antes do treinamento 88,62ms 10,6 3,88 0,93 62 Após o treinamento 388ms 6,46 7,3 0, Tabela 4 Comparação antes e depois do treinamento 4.3 Torneio de Algoritmos Embora os algoritmos MiniMax e Poda Alfa-Beta tenham uma ótima acurácia, o custo de processamento é muito alto, tornando a utilização desses algoritmos menos vantajosa em relação ao Q-Learning que depois de treinado, pode alcançar excelentes resultados em tempo muito menor. Nas tabelas 5 e 6 são apresentadas comparações entre Q-Learning e MiniMax e entre Q-Learning e Poda Alfa Beta, sendo que a execução dos algoritmos MiniMax e Poda Alfa Beta foi com limite de profundide 3, diminuindo tanto o tempo quanto a acurácea destes. Algoritmo Maior Tempo Menor Tempo Tempo Médio N o Discos Q-Learning 2872ms 0ms MiniMax ms 0ms ms 50 Tabela 5 Q-Learning x MiniMax

45 4.3. Torneio de Algoritmos 43 Algoritmo Maior Tempo Menor Tempo Tempo Médio N o Discos Q-Learning 2091ms 0ms 1128ms 15 Poda Alfa Beta ms 0ms 27529ms 49 Tabela 6 Q-Learning x Poda Alfa Beta Verifica-se que mesmo estando limitados, os algoritmos MiniMax e Poda Alfa Beta venceram o Q-Learning. Isso se deve ao fato de que o Q-Learning não foi treinado contra esses adversários e, como constatado na Seção 4.2.3, ainda não foi treinado o suficiente.

46

47 45 5 CONCLUSÃO Desde o surgimento da Inteligência Artificial, jogos servem de incentivo e motivação para seu desenvolvimento e aperfeiçoamento. Atualmente, existem várias técnicas utilizadas em jogos e raramente são encontrados jogos em desenvolvimento que não usufruam de IA. O jogo Othello é alvo de pesquisas e implementações e, embora os algoritmos de Othello já tenham superado a inteligência humana, estes ainda podem ser aperfeiçoados, pois o jogo Othello pode ser jogado em tabuleiros diferentes, como 10 x 10 ou até N x N. O algoritmo MiniMax possui a vantagem de analisar todas as possibilidades da árvore de jogo, porém, seu tempo de execução pode ser muito alto. Ainda que o algoritmo Poda Alfa-Beta reduza o número de nós a serem analisados, mantendo o mesmo aproveitamento, para uma árvore muito grande, essa redução não é suficiente. Durante os testes e simulações realizadas, os algoritmos MiniMax e Poda Alfa- Beta se mostraram inviáveis para aplicação no jogo Othello pois, para que pudessem ser executados em um tempo aceitável, foi necessário limitar à profundidade a no máximo três, enquanto o algoritmo completo ultrapassaria trinta níveis. A técnica de aprendizado por reforço Q-Learning é interessante, pois não necessita de tanto processamento para tomar uma decisão. Ao passo que o MiniMax e Poda Alfa-Beta precisam refazer todos os cálculos a cada jogada, o Q-Learning reaproveita o resultado obtido em jogadas passadas para tomar uma decisão rápida e ainda melhor. Destaca-se a necessidade do treinamento, sem o qual, o algoritmo não apresenta bons resultados, tomando decisões próximas a aleatórias. O Q-Learning apresentou nos testes um tempo de resposta muito menor que os outros algoritmos estudados, mesmo tendo grande número de estados armazenados na base. Os resultados obtidos após o treinamento mostraram que algoritmo aprendeu e melhorou suas decisões, bastando apenas que seja treinado o suficiente. Considerando custo como o tempo de processamento e benefício como a decisão tomada, a relação custo x benefício foi satisfatória, mostrando que esse algoritmo é apropriado para utilização no jogo Othello. 5.1 Dificuldades Encontradas Durante o desenvolvimento do ambiente padrão Othello houve uma dificuldade com sincronização, pois para executar um movimento era necessário clicar na casa e ativar um evento que executaria a jogada, mas um evento iniciava antes que o outro terminasse,

48 46 Capítulo 5. Conclusão fazendo uma leitura errada de qual era o jogador da vez. Essa dificuldade foi superada com algumas verificações a mais, não sendo necessário o uso de semáforos. Houve dificuldade em analisar o funcionamento do algoritmo minimax devido à grande ramificação e profundidade da árvore de jogo do Othelo. Durante a implementação do Q-Learning, mesmo tendo executado corretamente toda a partida, foi verificado que sempre após a última jogada, era reportado um erro de estado não encontrado. Isso se deve ao fato de que o algoritmo ao analisar a jogada atual, tenta visualizar o estado do tabuleiro uma jogada depois, tal estado não existe após o final da partida, ocasionando uma exceção de banco de dados. 5.2 Trabalhos Futuros Como sugestão de trabalhos futuros, é possível destacar a investigação de outras técnicas de IA para utilização no jogo Othello, a implementação de melhorias que possam maximizar o desempenho das técnicas abordadas e o desenvolvimento de uma técnica híbrida.

49 47 REFERÊNCIAS 1 MANDZIUK, J. Computational intelligence in mind games. In: Challenges for Computational Intelligence. [S.l.: s.n.], p SHANNON, C. E. XXII. Programming a computer for playing chess. Philosophical Magazine (Series 7), Taylor & Francis, v. 41, n. 314, p , TURING, A. M. Digital computers applied to games. Faster than thought: a symposium on digital computing machines, ed. B. V. Bowden, Pitman, London, UK, ECK, N. J. van; WEZEL, M. van. Application of reinforcement learning to the game of othello. Computers & Operations Research, v. 35, n. 6, p , Part Special Issue: OR Applications in the Military and in Counter-Terrorism. 5 KIM, K.-J.; CHOI, H.; CHO, S.-B. Hybrid of evolution and reinforcement learning for othello players. In: Computational Intelligence and Games, CIG IEEE Symposium on. [S.l.: s.n.], p LUCAS, S.; RUNARSSON, T. Temporal difference learning versus co-evolution for acquiring othello position evaluation. In: Computational Intelligence and Games, 2006 IEEE Symposium on. [S.l.: s.n.], p RUSSELL, S.; NORVIG, P. Inteligência Artificial. Elsevier, MANDZIUK, J. Some thoughts on using computational intelligence methods in classical mind board games. In: Neural Networks, IJCNN (IEEE World Congress on Computational Intelligence). IEEE International Joint Conference on. [S.l.: s.n.], p ISSN COPPIN, B. Inteligência Artificial. [S.l.]: LTC, ISBN BIANCHI, R. A.; RIBEIRO, C. H.; COSTA, A. H. Accelerating autonomous learning by using heuristic selection of actions. Journal of Heuristics, Kluwer Academic Publishers, Hingham, MA, USA, v. 14, n. 2, p , abr ISSN SENEFONTE, H. C. M. Aceleração do aprendizado por reforço em sistemas com múltiplos objetivos. Dissertação (Mestrado) Instituto Tecnológico de Aeronáutica, ITA, WATKINS, C. J. C. H. Learning from Delayed Rewards. Tese (Doutorado) King s College, Cambridge, UK, May MITCHELL, T. M. Machine Learning. 1. ed. New York, NY, USA: McGraw-Hill, Inc., ISBN , CHONG, S.; TAN, M.; WHITE, J. Observing the evolution of neural networks learning to play the game of othello. Evolutionary Computation, IEEE Transactions on, v. 9, n. 3, p , june ISSN X.

50 48 Referências 15 Federação Brasileira de Othello. Campeonatos Data de Acesso: 31 oct Disponível em: < 16 BURO, M. Takeshi murakami vs. logistello. ICCA Journal 20(3), p , BURO, M. The evolution of strong othello programs. In: IWEC-2002 Workshop on Entertainment Computing. [S.l.: s.n.], GUNAWAN et al. Evolutionary neural network for othello game. Procedia - Social and Behavioral Sciences, v. 57, n. 0, p , International Conference on Asia Pacific Business Innovation and Technology Management. 19 WEZEL, M. v.; ECK, N. v. Reinforcement learning and its application to Othello. [S.l.], Disponível em: < /RePEc:dgr:eureir: >.

VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO

VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO LONDRINA PR 2013 VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

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

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

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

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

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

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

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

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

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

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

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

Sumário. Decisões óptimas em jogos (minimax) Cortes α-β Decisões imperfeitas em tempo real

Sumário. Decisões óptimas em jogos (minimax) Cortes α-β Decisões imperfeitas em tempo real Jogos Capítulo 6 Sumário Decisões óptimas em jogos (minimax) Cortes α-β Decisões imperfeitas em tempo real Jogos vs. Problemas de Procura Adversário imprevisível" necessidade de tomar em consideração todas

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

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

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

Exemplo de aprendizagem máquina

Exemplo de aprendizagem máquina (Primeiro exemplo) Jogo de damas c/ aprendizagem Tom Mitchell, Machine Learning, McGraw-Hill, 1997 chapter 1 17-Jul-13 http://w3.ualg.pt/~jvo/ml 12 1 Exemplo de aprendizagem máquina 1. Descrição do problema

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 24 Aprendizado Por Reforço Formas de Aprendizado Aprendizado Supervisionado Árvores de Decisão. K-Nearest Neighbor (KNN).

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

Aprendizado por Reforço

Aprendizado por Reforço Aprendizado por Reforço Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Aprendizado por Reforço 2. Q-Learning 3. SARSA 4. Outras ideias 1 Aprendizado por Reforço Problemas de decisão

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCENS UFES Departamento de Computação Aprendizado de Máquina Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 18 Aprendizado Por Reforço Edirlei Soares de Lima Formas de Aprendizado Aprendizado Supervisionado Árvores de Decisão. K-Nearest Neighbor (KNN).

Leia mais

Inteligência Artificial (SI 214) Aula 6 Busca com Adversário. Prof. Josenildo Silva

Inteligência Artificial (SI 214) Aula 6 Busca com Adversário. Prof. Josenildo Silva Inteligência Artificial (SI 214) Aula 6 Busca com Adversário Prof. Josenildo Silva jcsilva@ifma.edu.br 2015 2012-2015 Josenildo Silva (jcsilva@ifma.edu.br) Este material é derivado dos slides de Hwee Tou

Leia mais

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Resolução de problemas por meio de algoritmos de busca Aula II Algoritmos básicos de busca

Leia mais

Alternativamente pode ser pensado como uma forma de maximizar o minimo ganho possível.

Alternativamente pode ser pensado como uma forma de maximizar o minimo ganho possível. Inteligência Artificial Algoritmo i com cortes Alfa-Beta Ana Saraiva 050509087 Ana Barbosa 050509089 Marco Cunha 050509048 Tiago Fernandes 050509081 FEUP - MIEIC 3ºAno/ºSemestre 1 Introdução O algoritmo

Leia mais

Jogos com Oponentes. espaço de busca muito grande tempo para cada jogada

Jogos com Oponentes. espaço de busca muito grande tempo para cada jogada Jogos com Oponentes 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 e não por

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

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

Jogos com Oponentes. Problemas de busca: não assumem a presença de um oponente

Jogos com Oponentes. Problemas de busca: não assumem a presença de um oponente Sistemas Inteligentes, 13-14 1 Jogos com ponentes 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 e não

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Fabrício Olivetti de França 07 de Junho de 2018 1 Agentes 2 Agente, Ambiente e Sensores Um agente é definido pelo ambiente que ele consegue perceber através de seus sensores e as

Leia mais

Buscas Informadas ou Heurísticas - Parte II

Buscas Informadas ou Heurísticas - Parte II Buscas Informadas ou Heurísticas - Parte II Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Graduação em Ciência da Computação / 2006 FUNÇÕES HEURÍSTICAS - 1/7 FUNÇÕES HEURÍSTICAS - 2/7 Solução

Leia mais

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas)

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas) Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: horas) Nome: Data: 7 de Abril de 016 1) Considere a aplicação da busca em profundidade

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

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

PMR Computação para Mecatrônica

PMR Computação para Mecatrônica PMR3201 - Computação para Mecatrônica Prof. Thiago de Castro Martins Prof. Newton Maruyama Prof. Marcos de S.G. Tsuzuki Monitor: Pietro Teruya Domingues Exercício Programa 2 - Versão 2017 Resolvendo o

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

Jogos com Oponentes. Problemas de busca: não assumem a presença de um oponente

Jogos com Oponentes. Problemas de busca: não assumem a presença de um oponente istemas Inteligentes, 10-11 1 Jogos com ponentes 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 e não

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

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

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

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

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins

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

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

Jogos em Teoria dos Jogos e em

Jogos em Teoria dos Jogos e em 3 Jogos em Teoria dos Jogos e em Computação A Teoria dos Jogos pode ser entendida como a análise matemática de qualquer situação que envolva um conflito de interesses com o intuito de indicar as melhores

Leia mais

INTELIGÊNCIA ARTIFICIAL 2008/09

INTELIGÊNCIA ARTIFICIAL 2008/09 INTELIGÊNCIA ARTIFICIAL 2008/09 JOGOS Ex. 1) ( Teste 2005/06) Considere a seguinte árvore de procura de dois agentes. Reordene as folhas de modo a maximizar o número de cortes com uma procura da esquerda

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

Redes Neurais (Inteligência Artificial)

Redes Neurais (Inteligência Artificial) Redes Neurais (Inteligência Artificial) Aula 03 Resolução de Problemas por Meio de Busca Edirlei Soares de Lima Introdução Agentes Autônomos: Entidades capazes de observar o ambiente

Leia mais

Fundamentos de Teoria dos jogos

Fundamentos de Teoria dos jogos Fundamentos de Teoria dos jogos A Teoria dos Jogos é um ramo da matemática aplicada que estuda situações estratégicas em que jogadores escolhem diferentes ações na tentativa de melhorar seu retorno. Na

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

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas) Primeiro Trabalho de IA/SI: Buscas Entrega: 03/03/2019 (2 semanas) 18 de Fevereiro de 2019 Este trabalho é para ser submetido via Moodle. Será desenvolvido principalmente durante as aulas práticas, mas

Leia mais

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

Leia mais

Aprendizado por Árvores de Decisão

Aprendizado por Árvores de Decisão Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Disciplina de Programação de Jogos 3D E-mail: pozzer@inf.ufsm.br Período: 2006/01 Aprendizado por Árvores

Leia mais

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

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

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

OTIMIZAÇÃO DE PORTFÓLIO PARA UMA CARTEIRA DE CRIPTOMOEDAS: UMA ABORDAGEM EM REINFORCEMENT LEARNING

OTIMIZAÇÃO DE PORTFÓLIO PARA UMA CARTEIRA DE CRIPTOMOEDAS: UMA ABORDAGEM EM REINFORCEMENT LEARNING OTIMIZAÇÃO DE PORTFÓLIO PARA UMA CARTEIRA DE CRIPTOMOEDAS: UMA ABORDAGEM EM REINFORCEMENT LEARNING Daniel Barra Ciências Econômicas Centro Sócio Econômico Tópicos Introdução ao trabalho Uma breve introdução

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Aprendizagem de Máquina Apresentação da Disciplina Alessandro L. Koerich 2008 Mestrado e Doutorado em Informática Pontifícia Universidade Católica do Paraná (PUCPR) Mestrado/Doutorado em Informática Aprendizagem

Leia mais

Estudo comparativo de Inteligência Artificial em jogos

Estudo comparativo de Inteligência Artificial em jogos Estudo comparativo de Inteligência Artificial em jogos Jonas de Carvalho Felinto 1, Helen Cristina de Mattos Senefonte 1 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Plano da Apresentação Aprendizagem de Máquina Alessandro L. Koerich 2007 Mestrado e Doutorado em Informática Pontifícia Universidade Católica do Paraná (PUCPR) Professor & Experiência Acadêmica Horários

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

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1 COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1 Márcia Da Silva 2, Eldair Fabricio Dornelles 3, Rogério S. M. Martins 4, Édson L. Padoin 5. 1 Pesquisa desenvolvida

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

1/ 36. Computação 1 - Python Aula 1 - Teórica: Introdução

1/ 36. Computação 1 - Python Aula 1 - Teórica: Introdução 1/ 36 Computação 1 - Python Aula 1 - Teórica: Introdução Conhecendo a turma Experiência com programação e uso do computador Quantos já programaram antes? Quais linguagens? Quantos tem computador em casa

Leia mais

Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: Luiz Fernando Ranghetti

Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: Luiz Fernando Ranghetti Albert Astals Cid Eugene Trounev Tradução: Luiz Fernando Ranghetti 2 Conteúdo 1 Introdução 5 2 Como jogar 6 3 Regras do jogo, estratégias e dicas 8 3.1 Regras do jogo........................................

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 3 Métodos de Busca para Resolução de Problemas Busca Informada Heurísticas Busca Gulosa Busca A* Busca Local Prática #2 Prof. Ricardo M. Marcacini ricardo.marcacini@ufms.br

Leia mais

Técnicas Inteligência Artificial

Técnicas Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas Inteligência Artificial Aula 03 Métodos de Busca Prof. Max Pereira Solução de Problemas como Busca Um problema pode ser considerado

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

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 01 Resolução de problemas por meio de Busca Edirlei Soares de Lima Introdução Agentes Autônomos: Entidades autônomas capazes de observar o ambiente

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Primeiro Teste 28 de Outubro de 2013 18:00-19:30 Este teste é composto por 10 páginas contendo 6 grupos de perguntas. Para perguntas com resposta de escolha mu ltipla, respostas

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

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Apresentação da Disciplina Edirlei Soares de Lima O que é Inteligência Artificial? O que é Inteligência Artificial? Área de pesquisa que tem como

Leia mais

Campeonato de Gamão. 1. Regras. 2. Servidor

Campeonato de Gamão. 1. Regras. 2. Servidor Campeonato de Gamão 1. Regras O campeonato de gamão será disputado de acordo com as regras tradicionais do jogo, facilmente encontradas na Internet. As duas cores tradicionais das pedras do jogo serão

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Aprendizado de Máquina Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Introdução 1 Introdução Aprendizado de Máquina Extração de conhecimento. Automatização de tarefas. Tomada de Decisões.

Leia mais

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação Resolução de problemas por meio de busca Capítulo 3 Inteligência Artificial Sistemas de Informação Conteúdo Um exemplo Resolução de problemas por meio de busca Exemplos de problemas Em busca de soluções

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Aprendizado de Máquina Árvores de Decisão Luiz Eduardo S. Oliveira Universidade Federal do Paraná Departamento de Informática http://lesoliveira.net Luiz S. Oliveira (UFPR) Aprendizado de Máquina 1 / 28

Leia mais

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

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: ssvenske@unicentro.br

Leia mais

Aprendizagem a partir de observações

Aprendizagem a partir de observações Aprendizagem a partir de observações Aprendizagem é essencial para ambientes desconhecidos, i.e., quando o projetista não prevê tudo Útil como um método de construção de sistemas i.e., expor o agente à

Leia mais

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Eros Moreira de Carvalho Gabriel Silva Ramos CI209 - Inteligência Artificial BCC - Bacharelado em Ciência da Computação DInf - Departamento

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Professor Rafael Stubs Parpinelli E-mail: rafael.parpinelli@udesc.br udesc.academia.edu/rafaelstubsparpinelli www.researchgate.net/profile/rafael_parpinelli www.joinville.udesc.br/portal/professores/parpinelli/

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

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2 LERCI/LEIC Tagus 2005/06 Inteligência Artificial Exercícios sobre Minimax: Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: Max Min f=4 f=7

Leia mais

meio de busca Seções 3.1, 3.2 e 3.3

meio de busca Seções 3.1, 3.2 e 3.3 Resolução de problemas por meio de busca Capítulo 3 Russell & Norvig Seções 3.1, 3.2 e 3.3 Agentes de resolução de problemas Agentes reativos não funcionam em ambientes para quais o número de regras condição

Leia mais

Técnicas Inteligência Artificial

Técnicas Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas Inteligência Artificial Aula 03 Métodos de Busca Parte 1 Prof. Max Pereira Solução de Problemas como Busca Um problema pode ser considerado

Leia mais

Busca com informação e exploração. Inteligência Artificial

Busca com informação e exploração. Inteligência Artificial Busca com informação e exploração (Capítulo 4 - Russell) Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura Busca pela melhor escolha Busca gulosa pela melhor escolha Busca

Leia mais

Busca em Espaço de Estados a

Busca em Espaço de Estados a Busca em Espaço de Estados a Fabrício Jailson Barth BandTec Agosto de 2012 a Slides baseados no material do Prof. Jomi F. Hübner (UFSC) Introdução 2 Agente orientado a meta O projetista não determina um

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

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 5 Algoritmos de Busca 2 de 27 Sumário Introdução Gerar e Testar Busca

Leia mais

1. Computação Evolutiva

1. Computação Evolutiva Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 1.7. Outras Metaheurísticas Populacionais 1.7.1. Metaheurísticas Populacionais

Leia mais

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A * Inteligência Artificial Aula 6 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia Busca com informação e exploração Capítulo 4 Russell & Norvig Seção 4.2 e 4.3 Revisão da aula passada: Busca A * Idéia:

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Métodos de resolução de problemas Prof. Angel Alberto Vazquez Sánchez Objetivos Caracterizar a busca como um método para resolver problemas a partir de seus elementos fundamentais

Leia mais

7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS

7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS 7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS Autor(es) LIDIA MARTINS DA SILVA Orientador(es) ANA ESTELA ANTUNES DA SILVA 1. Introdução

Leia mais

Aprendizado por Reforço

Aprendizado por Reforço Aprendizado por Reforço SCC5865-Robótica Roseli A F Romero Introdução O modelo padrão de aprendizado por reforço Aprendizado por Reforço Formalmente, o modelo consiste de: Um conjunto discreto de estados

Leia mais