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

Documentos relacionados
Jogos com Oponentes. March 7, 2018

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

Inteligência Artificial. 3º Quadrimestre de 2018

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

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

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

INTELIGÊNCIA ARTIFICIAL 2008/09

Fundamentos de Inteligência Artificial [5COP099]

Algoritmos de retrocesso

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

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

Algoritmos de retrocesso

Técnicas para Implementação de Jogos

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

Algoritmo MiniMax. Minimax

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

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

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

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

PMR Computação para Mecatrônica

Introdução à Inteligência Artificial 2007/08

Inteligência Artificial Taguspark

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

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

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

IA: Busca Competitiva. Ricardo Britto DIE-UFPI

Teoria de Jogos. Algoritmo Minimax e Alfa-Beta AED

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

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

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

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

Exemplo de aprendizagem máquina

BUSCA CEGA OU SEM INFORMAÇÃO (parte 2 Resolução de problemas por busca) *Capítulo 3 (Russel & Norvig)

Técnicas de Desenho de Algoritmos

INTELIGÊNCIA ARTIFICIAL

Árvore de Jogos Minimax e Poda Alfa-Beta

Sociedades de Agentes

Inteligência Artificial 04. Busca Sem Informação (Cega) Capítulo 3 Russell & Norvig; Seções 3.4 e 3.5

Jogos e Busca. Silvio Lago

Jogos em Teoria dos Jogos e em

Inteligência Artificial Alameda e Taguspark

Inteligência Artificial

8 Experimentos. de pelo menos uma solução. 2 Na verdade, poderíamos definir uma função que retorna o conjunto de equilíbrios de

Inteligência Artificial

Manual do Game Analysis Logic Verfier

Jogos vs. Problemas de Procura

Resolução de problemas por meio de busca. Inteligência Artificial. Formulação de problemas. Estratégias de busca

Programação Inteira Resolução por Branch and Bound

Aula 9 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Busca com Adversários: Jogos. Maria Carolina Monard

Busca em Espaço de Estados a

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Apresentação do trabalho Dots-and-Boxes aos alunos de IIA 2007/2008

Jogo King Relatório da Melhoria do Trabalho Inteligência Artificial. Tiago Fonseca, ei02100

Buscas Não Informadas (Cegas) - Parte I

Ernesto Costa e Anabela Simões, Inteligência Artificial: Fundamentos e Aplicações (2ª edição) FCA, Set chapter 9

Aprendizado, minimização do arrependimento e equilíbrio (Learning, Regret Minimization, and Equilibria)

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

J2 Velha. Uma Implementação Java do Jogo da Velha Utilizando o Algoritmo MiniMax. Universidade Federal do ABC ufabc. André Filipe de Moraes Batista

Capítulo 4 Secção 1. Livro

Algoritmo Minimax Russel and Norvig, AIMA slides

Inteligência Artificial Alameda e Taguspark

Local search + Adversarial Search

INTELIGÊNCIA ARTIFICIAL

Inteligência Artificial

INTELIGÊNCIA ARTIFICIAL

Artifical (utilizando o Jogo da Velha)

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

Inteligência Artificial

Algoritmos e Estruturas de Dados 2006/2007

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

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

Estratégias informadas de Busca. February 19, 2018

Todos conhecemos vários tipos de jogos, como xadrez, pôquer, jogo da velha, futebol, truco, jogos de computador a lista pode continuar a gosto.

Big Points: Uma Análise Baseada na Teoria dos Jogos

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Inteligência Artificial

Considerações sobre o Teorema de Zermelo sobre a determinância de jogos assemelhados ao Xadrez

Divisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos

Microeconomia II. Cursos de Economia e de Matemática Aplicada à Economia e Gestão. AULA 1.1 Descrição de Jogos não-cooperativos (forma normal)

Teoria e Algoritmos em Grafos

Teoria dos Grafos Aula 21

Os Problemas de Optimização Combinatória e a Teoria da Complexidade

Técnicas de Concepção de Algoritmos: Branch and Bound

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

Sistemas Baseados em Conhecimento

Uma Ferramenta para Simulação de Leilões

INTRODUÇÃO A BUSCA EXERCÍCIOS

a) Defina em Prolog iguais/1, um predicado que recebe um estado do jogo e que verifica que todas as pilhas têm o mesmo número de peças.

Técnicas Inteligência Artificial

INTRODUÇÃO À PESQUISA OPERACIONAL

Romildo Martins da S Bezerra Julho 2001

Jogos de Tabuleiro e Busca Competitiva

Análise e Complexidade de Algoritmos

Estratégias de Busca: Métodos Informados. March 9, 2015

CAL ( ) MIEIC/FEUP Técnicas de Concepção de Algoritmos, CAL MIEIC/FEUP, Fev. de Técnicas de Concepção de Algoritmos. .

Transcrição:

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 imax é um método da Teoria da Decisão utilizado para minimizar a maior perda possível. Alternativamente pode ser pensado como uma forma de maximizar o minimo ganho possível. 1

Introdução Von Neumann era um brilhante matemático nascido em Budapeste em 1903. Devido à demonstração do teorema minimax, Von Neumann foi considerado o pai da teoria de jogos em 196. 3 Introdução Este algoritmo surgiu a partir da Zero-Sum Game Theory. O teorema imax: Para qualquer jogo para dois jogadores que respeite a teoria zero-sum, existe uma estratégia mista para cada jogador tal que o resultado esperado para os dois é o mesmo valor V quando os jogadores usam esta estratégia. V é o melhor valor que cada um pode esperar de uma jogada. Isto é, estas estratégias mistas são as estratégias óptimas para os dois jogadores. 4

Mas o que é o Zero-Sum? (Para além de um episódio dos X-Files e de uma série Anime) Na teoria dos jogos, Zero-Sum é uma situação onde o ganho de um jogador é exactamente igual à perda de outro. Jogos perfeitamente equilibrados como o Xadrez ou o Go. Apenas um jogador pode ganhar (ou existe um empate). 5 Porquê apenas em jogos lógicos? 6 3

7 8 4

imax Qual o exemplo mais simples para ilustrar o minimax? 9 imax Xadrez? 10 5

imax Damas? 11 imax Go? 1 6

imax Jogo do Galo? 13 imax 14 7

Procedimento básico Determinar SE profundidade limite atingida OU Nivel é imizador OU Nivel é imizador ENTÃO SE profundidade limite Calcular valor do estado corrente Retornar resultado SE Nivel imizador Aplicar minimax aos sucessores Retornar Mínimo SE Nivel imizador Aplicar minimax aos sucessores Retornar Máximo 15 Representação do imax findcompmove findhumanmove findhumanmove... Tabuleiro preenchido 16 8

int TicTacToe: :findcompmove(int & bestmove) { int i, responsevalue; int dc; int value; if (fullboard()) value = DRAW; else if (immediatecompwin(bestmove)) return COMP_WIN; else { value = COMP_LOSS; bestmove = 1; for (i = 1; i <= 9; i++) { if (isempty(i)) { place(i, COMP); responsevalue = findhumanmove(dc); unplace(i); } } } if (responsevalue > value) { value = responsevalue; bestmove = i; } } return value; 17 int TicTacToe: :findhumanmove(int & bestmove) { int i, responsevalue; int dc; int value; if (fullboard()) value = DRAW; else if (immediatecompwin(bestmove)) return COMP_WIN; else { value = COMP_LOSS; bestmove = 1; for (i = 1; i <= 9; i++) { if (isempty(i)) { place(i, COMP); responsevalue = findcompmove(dc); unplace(i); } } } if (responsevalue < value) { value = responsevalue; bestmove = i; } } return value; 18 9

Árvore de pesquisa Jogo do Galo 19 1 3 4 5 6 7 8 9 1 3 4 6 7 8 9 1 4 6 7 8 9 4 6 7 8 9 4 6 7 8 4 7 8 X O O 7 8 O X X 7 X X O 7 0 10

imax Jogo do Galo 46 nós considerando só uma alternativa de ramificação em cada momento. Uma pesquisa completa visitaria 9716 posições. Para um jogo tão simples quanto o jogo do galo! 1 imax E para jogos mais complexos como o Xadrez ou o Go? Estima-se que no Xadrez só para a primeira jogada, 10 100 posições seriam avaliadas. Para jogos mais complexos são necessárias optimizações. 11

Optimizações ao imax Optimizar o algoritmo parece uma boa solução mas é preciso ter cuidado Uma má optimização pode gerar uma má IA O que poderia tornar preferível usar jogadas aleatórias 3 Optimizações ao imax Optimização em profundidade Cortes Alfa-Beta 4 1

Optimização em Profundidade Em vez de analisar toda a árvore de pesquisa, estuda-se apenas até um determinado nível. Ideal para jogos longos com um factor de ramificação muito grande. Ex: Xadrez 5 Optimização em Profundidade Esta redução obviamente compromete a selecção da melhor jogada possível mas em muitos casos é tolerável tendo em conta o tempo de espera. 6 13

Optimizações ao imax Será que o minimax em alguma altura realiza trabalho inútil? 7 Optimizações ao imax 3 3 10?? Será importante saber o valor destes dois nós? 8 14

Optimizações ao imax 3 3 10?? O primeiro nível irá escolher o valor máximo dos sucessores. O segundo nível irá escolher o valor mínimo dos sucessores. 9 Optimizações ao imax 3 3 10?? O valor do ramo do meio nunca será maior que Logo quaisquer que seja o valor dos filhos, ele nunca será escolhido 30 15

Cortes Alfa-Beta São estabelecidos dois valores: Alfa e Beta Alfa é o valor mais alto do jogador Beta é o valor mais baixo do jogador O processamento dos filhos de um nó termina quando a condição Alfa < Beta não se verificar. 31 Cortes Alfa-Beta - Algoritmo int minimaxab(state, player, depth, alpha, beta) if (depth == limit or state is terminal) return the static evaluation of state if (player is min) until all successors, s, are examined or alpha >= beta val=minimaxab(s, max, depth+1, alpha, beta) if (val < beta) beta = val return beta if (player is max) until all successors, s, are examined or alpha >= beta val=minimaxab(s, min, depth+1, alpha, beta) if (val > alpha) alpha = val return alpha 3 16

Cortes Alfa-Beta - Exemplo A B C D E F G H I J K L 7 M 6 N 8 O 5 P Q 3 R 0 S - T 6 U V 5 W 8 X 9 Y 33 Cortes Alfa-Beta trace First call (assume depth limit is 3): minimaxab(a,max,0,-inf,+inf) successors B,C,D B minimaxab(b,min,1,-inf,+inf) successors E,F,G A B C D E minimaxab(e,max,,-inf,+inf) successors L,M minimaxab(l,min,3,-inf,+inf) returns 7 alpha = 7 minimaxab(m,min,3,7,+inf) returns 6 returns 7 beta = 7 L 7 E F G M 6 34 17

Cortes Alfa-Beta trace F minimaxab(f,max,,-inf,7) successors N,O minimaxab(n,min,3,-inf,7) returns 8 alpha = 8 *** CUTOFF alpha>beta *** returns 8 G minimaxab(g,max,,-inf,7) successors P,Q minimaxab(p,min,3,-inf,7) returns alpha = minimaxab(q,min,3,,7) returns 3 alpha = 3 returns 3 beta = 3 returns 3 alpha = 3 N 8 B C D E F G O 5 P Q 3 A 35 Cortes Alfa-Beta trace C minimaxab(c,min,1,3,+inf) successors H,I A H minimaxab(h,max,,3,+inf) successors R,S minimaxab(r,min,3,+inf) returns 0 minimaxab(s,min,3,3,+inf) returns - returns 3 beta = 3 *** CUTOFF alpha>=beta *** B C D H I returns 3 D... R 0 S - 36 18

Cortes Alfa-Beta Apesar de tudo o que foi referido, os cortes Alfa-Beta podem não trazer melhorias. Na prática, se as opções surgirem de uma determinada ordem (crescente no maximizador e decrescente no minimizador), os cortes Alfa-Beta não trazem melhorias. 37 Cortes Alfa-Beta 3 3 10 4 7 3 3 10 7 4 No entanto se a ordem for a oposta a diferença na eficiência é enorme 38 19

Ordem de complexidade Se a profundidade máxima da árvore for m e em cada ponto houver b lances possíveis (factor de ramificação): Complexidade imax Cortes Alfa-Beta Temporal O(b m ) O(b m/ ) (*) Espacial O(bm) O(bm) (*) com uma ordenação perfeita 39 Resumo - imax Baseia-se na suposição de que o adversário escolherá sempre o movimento ideal, e nunca incorrerá ao erro; Gera toda a árvore de busca, dentro do limite permitido; O Algoritmo é completo apenas no caso de a árvore for finita (ex.: Jogo do Galo); 40 0

Resumo - imax O tempo gasto para determinar a decisão óptima é totalmente impraticável para qualquer jogo minimamente complexo, pois gera caminhos cuja possibilidade de serem seguidos é praticamente nula. Serve de base a outros métodos mais realistas, bem como de suporte à análise matemática de jogos. 41 Resumo - Corte Alfa-Beta Eficiente para determinar quais os ramos que não devem ser explorados; Uma boa ordenação dos nós aumenta ainda mais a sua eficiência, no entanto se isso não acontecer este algoritmo pode não trazer qualquer vantagem; Não afecta o resultado final. 4 1

Conclusões Segundo o teorema do imax há sempre uma solução racional para um conflito bem definido entre dois indivíduos. 43 QUESTÕES?? 44