• Nenhum resultado encontrado

Inteligência Artificial

N/A
N/A
Protected

Academic year: 2021

Share "Inteligência Artificial"

Copied!
64
0
0

Texto

(1)

Inteligência Artificial

Estratégias de Resolução de

Problemas Considerando Adversários

(Jogos)

Agenda

z

Parte 1

z

Introdução à procura adversária

z

Algoritmo Mini-Max

z

Poda Alpha-Beta

z

Parte 2

z

Decisões imperfeitas

(2)

Motivação

z Os procedimentos de procura cega e procura heurística apenas resultam em problemas (eventualmente jogos) de um único agente, dado que:

z Não existe a noção de turno, se existir mais de um agente envolvido, estes actuam de forma cooperativa.

z Não se considera a possibilidade de jogadas do adversário.

Utilidade dos jogos em Problemas

Considerando Adversários

z

Os jogos são ideais para estudar o uso de

estratégias adversárias, dado que:

z São aplicações atractivas para métodos de IA: zFormulação simples do problema (acções bem definidas);

zAmbiente acessível;

zAbstracção (representação simplificada de problemas reais);

zSinónimo de inteligência;

(3)

Utilidade dos jogos em Problemas

Considerando Adversários

z

Conduzem aos seguintes desafios:

zTamanho + limitação de tempo (35100 nós para xadrez);

zIncerteza devido ao outro jogador;

zProblema de “contingência”: o agente deve agir antes de completar a procura (busca).

Características dos Jogos

z

Ambientes competitivos, nos quais os

agentes têm objectivos que estão em conflito.

z

Os jogos são normalmente classificados

como de habilidade, e/ou de sorte.

(4)

Tipos de Jogos

z

Tipos de Jogos:

z Informação:

zPerfeita: Xadrez, Damas, Go, Othello

zImperfeitas: Poker, Bridge, Bisca, Copas

z Sorte ou Determinísticos:

zDeterminísticos: Xadrez, Damas, Go, Othello.

zJogos de Sorte: Gamão, Monopólio, Poker

z

Plano de “Ataque”:

zAlgoritmo para o jogo perfeito

zHorizonte finito, avaliação aproximada

zCortes na árvores para reduzir custos

Jogos e IA

z Quando os computadores se tornaram programáveis, em 1950, Claude Shannon e Alan Turing programaram o primeiro jogo de Xadrez.

z Prova que uma máquina pode, de facto, fazer algo que se pensava requerer inteligência.

z As regras são simples, mas o jogo é complexo.

z Mundo totalmente acessível ao agente.

z Factor de ramificação médio é de 35, partida com 50 jogadas => 35100 folhas numa árvore de pesquisa (embora só existam 1040

posições legais).

z Algumas das características que tornaram o xadrez atractivo computacionalmente são partilhadas por outros jogos.

(5)

Jogos e IA

z

No xadrez, o jogo desenvolve-se entre dois

agentes rivais.

z

O jogo é completamente acessível para ambos

os agentes.

z

Isto faz com que seja possível pensar o

desenvolvimento do jogo como uma procura

num espaço formado pelas posições do mesmo,

as quais são controladas alternativamente por

cada um dos rivais.

Jogos e IA

z

Como dizíamos, o jogo desenvolve-se entre

dois jogadores que são oponentes aquando os

seus objectivos.

z

Tradicionalmente, estes jogadores recebem os

nomes de max e min por motivos que veremos a

seguir.

z

Max começa o jogo e a partir dali move em

forma alternada até o fim do jogo.

(6)

Jogos e IA

Um jogo pode definir-se formalmente como um problema de procura, com as seguintes características:

z Um estado inicial que inclui a posição do tabuleiro e a indicação de quem deve jogar.

z Um conjunto de operadores que definem os movimentos válidos á disposição dos jogadores.

z Um teste de terminação que estabelece quando o jogo está

finalizado. Os estados onde o jogo acaba chamam-se finais.

z Uma função de utilidade que atribui um valor numérico ao estado final do jogo, que representa os pontos que max pode ganhar no jogo. Sendo que usualmente os valores são 1 (ganha max), 0 (empate), -1 (ganha min).

Jogos e IA

z Num problema de procura, é suficiente que max,

que começa o jogo, expandisse a árvore das jogadas e encontrasse o caminho até há meta, no qual seria um estado onde max ganhava.

z Porém,

o jogador min também quer ganhar o jogo!

z Isto obriga a max a encontrar uma estratégia que

(7)

x x x x x x x x x max min

x o ox x o

Utilidade para max -1 0 +1 x o o o x x o o o xx x o o o x x x o x x x Terminais

x o x oxx ox x max

Max e Min

z

Vamos utilizar uma convenção para representar

graficamente as situações do jogo em forma de

árvore.

z

O quadrado e o triângulo representam as

jogadas do max e o círculo e o triângulo

invertido as jogadas do min.

ou e

max min

e

(8)

Max e Min

max min max min Capa ou ply

Max e Min

max min max min Capa ou ply

(9)

O Algoritmo Minimax

z

Este algoritmo está desenhado para determinar

uma estratégia óptima para que max ganhe.

z

Dessa forma pode decidir qual é a melhor

escolha a cada turno onde tem que jogar.

z

As suposições fundamentais são duas:

z max vá realizar sempre a sua melhor jogada.

z min vá realizar sempre a pior jogada para max.

O Algoritmo Minimax

1. Gerar a árvore completa até aos estados terminais. 2. Aplicar a função utilidade a esses estados.

3. Propagar o valor da utilidade da seguinte forma: O

melhor valor para Min (ou seja, o pior para Max).

4. Escolher o movimento com o valor mais elevado.

5. O valor no nó raiz é o valor máximo que max pode

obter.

(10)

Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1

Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1 3 4 2 7

(11)

3 2

Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1 3 4 2 7 3 2

Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1 3 4 2 7 3

(12)

Exemplo 2

-1 1 -1 1 1 1 1 -1 -1 -1

Exemplo 2

-1 1 -1 1 1 1 -1 1 -1

(13)

Exemplo 2

-1 -1 1 -1 1 1 1 1 -1 -1 -1 1 1 -1

Exemplo 2

-1 -1 1 -1 1 1 1 1 -1 -1 -1 1 1 1 -1

(14)

Exemplo 2

-1 -1 1 -1 1 1 1 1 -1 -1 -1 1 1 1 -1 1 -1

Exemplo 2

-1 -1 1 -1 1 1 1 -1 1 1 1 -1 1 -1 1

(15)

Algoritmo Minimax

function MIN-VALUE(state) returns a utility value if TERMINAL-TEST(state) then return UTILITY(state)

v  ∞

for a, s in SUCESSORS(state) do v  MIN(v,MAX_VALUE(s)) return v

function MAX-VALUE(state) returns a utility value if TERMINAL-TEST(state) then return UTILITY(state)

v  -∞

for a, s in SUCESSORS(state) do v  MAX(v,MIN_VALUE(s)) return v

function MINIMAX-DECISION(state) returns an action inputs: state, current state in game

r  MAX-VALUE(state)

return the action in SUCESSORS(state) with value r

Propriedades do Minimax

z Completo? Sim, se a árvore for finita!

Pode existir uma estratégia finita mesmo numa árvore infinita!

z Óptimo? Sim, contra um adversário óptimo! z E se o adversário não for óptimo?

O Max vai jogar ainda melhor!

z Complexidade no Tempo? O (b m)

Onde: b = factor de ramificação (movimentos válidos) m = profundidade

z Complexidade no Espaço? O (b m) (exploração primeiro em profundidade).

z Problema: Inviável para qualquer jogo minimamente complexo.

(16)

Exercício

z

Dados 5 palitos cada jogador pode retirar

1, 2 ou 3 por turno.

z

Perde o jogador que retira o último palito.

z

Será que max pode ganhar o jogo?

5 4 3 2 3 2 1 2 1 0 1 0 1 1 2 1 0 0 0

(17)

1 -1 1 -1 1 -1 1 1 1 -1 -1 5 4 3 2 3 2 1 2 1 0 1 0 1 1 2 1 0 1 0 0 0 -1 -1 1 -1 1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 1 5 4 3 2 3 2 1 2 1 0 1 0 1 1 2 1 0 1 0 0 0 -1 -1

(18)

1 -1 1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 1 5 4 3 2 3 2 1 2 1 0 1 0 1 1 2 1 0 1 0 0 0 -1 -1 -1 -1 -1 -1

O Max perde o jogo

1 -1 1 -1 1 -1 1 1 -1 1 5 4 3 2 3 2 1 2 1 0 1 0 1 1 2 1 0 0 0 -1 -1 -1

Pergunta: Preciso saber o valor de X Para calcular Y?

X Y

(19)

Poda Alpha-Beta

z

O que é a poda (corte)?

z É o processo de eliminar uma ramificação da árvore de pesquisa de forma a que não seja examinada.

z

Porquê podar?

z Para eliminar nós desnecessários à pesquisa.

z Para acelerar o processo de pesquisa.

Poda Alpha-Beta

z A poda Alpha-Beta não afecta o resultado final.

z Boa ordenação melhora a eficiência dos cortes.

z Com ordenação perfeita:

z complexidade no tempo = O (b m/2)

zDuplica a profundidade de pesquisa

z Uma técnica particular para encontrar a solução óptima de acordo com a profundidade limite de pesquisa é usando funções de avaliação.

(20)

Poda Alpha-Beta

z Retorna as mesmas escolhas que o Minimax,

mas examina menos nós.

z O nome deriva das duas variáveis que são

passadas durante o percurso de pesquisa e que restringem o conjunto das soluções possíveis:

z Alpha – representa o valor mais alto encontrado no caminho de Max.

z Beta – representa o valor mais baixo encontrado no caminho de Min.

Implementação

z Ajustar o alpha do nó da raiz á infinidade negativa e beta á infinidade positiva.

z Procurar a profundidade, propagando o alpha e beta para todos os nós visitados até alcançar a profundidade pretendida.

z Aplicar a função de avaliação para começar a utilidade desse nó.

z Se o pai desse nó for um nó Max, e a utilidade calculada for maior do que o valor actual do alpha pai, substitui esse valor do alpha com esta utilidade.

(21)

Implementação

z Se o pai deste nó é um nó MIN, e o valor de utilidade calculado é menor que o valor beta de seus pais, coloca em beta o valor de utilidade obtido.

z Com base nestes valores, compara os valores alpha e beta dos pais deste nó para determinar se deve “olhar” para as outras folhas ou então se deve retornar os valores conseguidos (backtrack up).

z Continua a pesquisa “primeiro em profundidade” desta forma, até que todos os passos com mais potência tenham sido avaliados.

(22)

-∞

Poda Alpha-Beta. Exemplo 1

+∞ -∞

(23)

+∞

-∞

-∞

Poda Alpha-Beta. Exemplo 1

-1

+∞

-∞

-∞

(24)

-1

+∞

max(-1, -∞) = -1

-∞

Poda Alpha-Beta. Exemplo 1

-1 -1

-∞

+∞

(25)

-1 -1

-∞

+∞ +∞

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -∞ +∞ +∞

(26)

-1 1 -1 -∞ +∞ min(1, +∞) = 1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -∞ +∞ 1

(27)

-1 1 -1 -1 -∞ +∞ 1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -1 -∞ +∞ min(1, -1) = -1

(28)

-1 1 -1 -1 -∞ +∞ -1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -1 -∞ +∞ -1

(29)

-1 1 -1 -∞ +∞ -1 max(-1, -1) = -1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -1 -∞ +∞ -1

(30)

-1 1 -1 min(-1, +∞) = -1 -1 -∞ -1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -1 -1 -∞ -1

(31)

-1 1 -1 -1 -1 max(-1, -∞) = -1 -1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 -1 -1 +∞ -1 -1

(32)

-1 1 -1 1 -1 -1 +∞ -1 -1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 1 -1 -1 1 -1 -1

(33)

-1 1 -1 1 -1 -1 1 -1 -1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 1 -1 -1 1 -1 -1 -∞

(34)

-1 1 -1 1 -1 -1 1 -1 -1 -∞ 1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 1 -1 -1 1 -1 -1 1 max(1, -∞) = 1

(35)

-1 1 -1 1 -1 -1 1 -1 -1 1 1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 1 -1 -1 1 -1 -1 1 1

(36)

-1 1 -1 1 -1 -1 1 1 -1 1 1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 1 -1 -1 1 1 -1 1 1

(37)

-1 1 -1 1 -1 -1 1 max(-1, 1) = 1 -1 1 1

Poda Alpha-Beta. Exemplo 1

-1 1 -1 1 -1 -1 1 1 -1 1 1

(38)

-1 1 -1 1 -1 -1 1 1 -1 1 1

Poda Alpha-Beta. Exemplo 1

Poda Alfa-Beta

-1 1 -1 1 1 1 1 -1 -1 -1 Nó max

(39)

Poda Alfa-Beta

Nó min -1

Poda Alfa-Beta

Nó min -0.1 0.03 -0.05

(40)

Poda Alfa-Beta

-0.1 0.03 -0.05 -0.05 Nó min

O valor a propagar será sempre menor ou

igual que –0.05

Algoritmo Alpha-Beta

function MAX-VALUE(state, α, β ) returns a utility value inputs: state, current state in game

α, the value of the best alternative for MAX along the path to state β, the value of the best alternative for MIN along the path to state

if TERMINAL-TEST(state) then return UTILITY(state) v  - ∞

for a, s in SUCESSORS(state) do v  MAX(v, MIN-VALUE(s, α, β)) if v ≥ β then return v

α  MAX(β,v)

function ALPHA-BETA-SEARCH(state) returns an action inputs: state, current state in game

v  MAX-VALUE(state, -∞, +∞)

(41)

Algoritmo Alpha-Beta (cont.)

function MIN-VALUE(state, α, β ) returns a utility value inputs: state, current state in game

α, the value of the best alternative for MAX along the path to state β, the value of the best alternative for MIN along the path to state

if TERMINAL-TEST(state) then return UTILITY(state) v  + ∞ for a, s in SUCESSORS(state) do v  MIN(v, MAX-VALUE(s, α, β,)) if v ≤ α then return v β  MAX(β,v) return v

Eficiência

z A eficiência depende da ordem como é feita a progressão da pesquisa.

z Se b é o factor de ramificação e m é a profundidade da procura, o melhor caso para alpha-beta é O (b m/2),isto é, a mesma quantidade que o Minimax numa árvore com metade da profundidade.

z Comparado com o melhor caso do Minimax que é de O (bm), isto é, examina a mesma quantidade de estados, no pior dos casos.

(42)

Problemas

z Se só existe um movimento válido, este algoritmo continuará a gerar uma árvore inteira de pesquisa.

z Designado para identificar o “melhor” movimento e não para diferenciar entre outros movimentos.

z Menosprezam movimentos que penalizam algo no início para obter melhores posições mais tarde.

z Avaliação da utilidade usualmente não é exacta.

z Assume que o oponente escolherá sempre o melhor movimento possível.

Resumindo…

z Um Jogo é definido pelo seu estado inicial (disposição das peças no tabuleiro), o operador (que define os movimentos válidos), um teste terminal (que nos diz quando um jogo chega ao fim), e uma função de utilidade (que nos diz quem ganhou).

z Em jogos com informação perfeita entre dois jogadores, o

algoritmo minimax pode determinar a melhor jogada

(assumindo que o oponente joga sempre da melhor maneira), enumerando por completo toda a árvore de jogo.

z O algoritmo alpha-beta é mais eficiente que o minimax por causa dos cortes efectuados a árvore.

(43)

Fim Parte 1

Introdução

à

Inteligência Artificial

Estratégias de Resolução de

Problemas Considerando Adversários

(44)

Agenda

z

Parte 1

z

Introdução à procura adversária

z

Algoritmo Mini-Max

z

Poda Alpha-Beta

z

Parte 2

z

Decisões imperfeitas

z

Jogos não Determinísticos

(45)

Na maioria dos jogos…

z

O espaço de procura é muito grande.

z

Existem restrições a nível de tempo.

z

Por exemplo: o factor de ramificação do xadrez

é 35

z Supondo que o nosso agente procura 1000 estados por segundo

z E tem um tempo limite de 150 segundos

z Então pode procurar 150.000 posições por movimento

Na maioria dos jogos…

z Que equivale a olhar 3 ou 4 jogadas em frente z porque 353= 42.875 e 354= 1.500.625

z Um jogador que olha e frente com profundidade 4 não é um grande jogador!

z Profundidade 4 => Jogador Novato

z Profundidade 8 => PC, Jogador humano muito bom

(46)

Críticas ao MiniMax

z

Problemas

z O tempo gasto é totalmente impraticável, porém o algoritmo serve como base para outros métodos mais realísticos.

z Complexidade: O (b m).

z

Para melhorar

Cortar a árvore onde a procura seria irrelevante: poda alfa-beta.

Porém não é suficiente!

Críticas ao MiniMax

z

Para utilizar a função de avaliação preciso de

nós terminais.

z

Será que posso avaliar nós intermédios sem

ter que chegar ao fim da árvore?

(47)

Solução

Alterar o Minimax ou o Alpha Beta de dois modos:

z Substituindo a função de utilidade por uma função

de avaliação heurística EVAL.

zQue dá uma estimativa da utilidade das posições.

z Substituindo o teste terminal por um teste de Cutoff.

zQue decide quando aplicar a função EVAL.

zIsto é, quando vou olhar para a frente.

A função de avaliação

z Retorna uma estimativa do valor de utilidade esperado do jogo, de uma dada posição.

z retorna uma estimativa do valor do próximo movimento.

z O desempenho de um programa de jogo está dependente da qualidade das funções de avaliação.

z As diferentes funções de avaliação estão dependentes da natureza do jogo.

z Função de avaliação simples para o jogo de xadrez: é a soma dos valores das peças brancas em jogo menos a soma dos valores das peças negras em jogo.

(48)

Qualidade da função de avaliação

z As funções de avaliação devem estar de acordo com a função de utilidade, em relação aos estados terminais.

z Não deve demorar muito tempo (equilíbrio entre exactidão e o custo).

z Para estados não terminais, a função de avaliação deve estar fortemente relacionada com a actual hipótese de ganhar.

Função linear

z

Função de peso linear:

z EVAL(S)=w1f1(s)+w2f2(s)+…+wnfn(s)

z wié um peso

z fié uma característica da posição

z

Por exemplo no xadrez:

z wipode ser o valor de cada peça

z fi pode ser o número de peças de cada tipo no tabuleiro

(49)

Exemplo: Xadrez

z Valores:

Peão=1, Cavalo=3, castelo=5, rainha=9

z Peças Pretas:

z 5 peões, 1 cavalo, 2 castelos Pontuação = 1*(5)+3*(1)+5*(2) = 5+3+10 = 18 z Peças Brancas: z 5 peões, 1 castelo Pontuação = 1*(5)+5*(1) = 5 + 5 = 10

z Pontuação total, deste estado de jogo:

pretas = 18-10 = 8 brancas = 10-18 = -8

Cutoff

z Deve usar uma procura heurística.

z Usa uma função de avaliação.

z Faz uma estimativa da pontuação que um estado de jogo garante.

z Desenha o espaço de pesquisa até uma certa profundidade.

z A profundidade é escolhida para limitar o tempo necessário.

z Coloca os valores estimados no fim dos caminhos.

(50)

Como determinar o Cutoff

z

A profundidade é fixada de modo a não exceder

os limites (de custo) impostos pelas regras do

jogo.

z

Utilizando um limite de custo por jogada e/ou

participante pode utilizar-se um algoritmo similar

a profundidade iterada.

Como determinar o Cutoff

z

Porém, este tipo de solução pode não ser

adequada, já que uma jogada decisiva pode

estar no nível seguinte aquele onde a procura

fez o corte.

(51)

Melhorias no Cutoff

Estabilidade (Quiescence)

z É uma propriedade da função de avaliação. Significa que a função de avaliação comporta-se de maneira estável, isto é, sem produzir grandes mudanças no seu valor.

z As funções de avaliação só devem ser aplicadas a posições estáveis.

z São posições em que é improvável haver grandes mudanças de valores no futuro próximo.

z Posições não estáveis devem ser expandidas até um nó estável ser atingido. Esta pesquisa extra é chamada de pesquisa

“quiescente”.

z Disponibiliza mais informação sobre um determinado nó da arvore de pesquisa mas pode resultar em perda de informação sobre os outros nós.

z A esperança é que a função continue com uma variação “leve”, mantendo o seu comportamento além do horizonte.

Melhorias no Cutoff

Estabilidade (Quiescence)

(52)

Jogos não Determinísticos

Jogos que Incluem o Elemento

Sorte

z Existem elementos externos que afectam o jogo, tais como o lançamento de um dado, o tirar de uma carta ao acaso, o lançar uma moeda, etc.

z Existem dois tipos de jogos de azar: z Jogos de Azar com Informação Perfeita

z Ex.: Gamão....

z Jogos de Azar com Informação Imperfeita

z Ex.: Poker...

z Deixa de ser possível construir uma árvore de jogo standard tal como nos jogos deterministas.

(53)

Jogos de Azar com Informação

Perfeita

z O factor sorte passa a ser uma parte integrante do jogo.

z Passamos então a ter que considerar dois factores em comum para definir um bom jogador: a perícia + factor sorte.

Nós de Probabilidades (1)

z A árvore de um Jogo de Azar passa a incluir, conjuntamente com os nós MAX e Min, os nós de Probabilidades.

z Um nó de Probabilidade tem associado estados (ou nós) sucessores, nomeadamente Min ou Max.

z Cada estado sucessor de um nó de probabilidade tem associada uma probabilidade de ser pesquisado.

zEx.: Um nó de probabilidade envolvendo um DADO terá 6 sucessores, cada um deles representando um estado após o lançamento, sendo todos pesquisáveis com a mesma probabilidade de 1/6.

(54)

Nós de Probabilidades (2)

z O Nó de Probabilidade vem mudar a forma como os algoritmos de pesquisa funcionavam anteriormente.

z Como continuar a tomar as decisões correctas ?

z Não é possível obter o conjunto de todos os movimentos válidos que o adversário tem ao seu dispor, portanto não podemos ter a certeza de como evitar certas jogadas por parte do adversário.

z Deixámos então de calcular valores exactos para passarmos a calcular valores esperados baseados em probabilidades.

Introdução de Nós de

Probabilidades

(55)

Cálculo do Valor Esperado

z Põe-se então a questão de saber como continuar a escolher a melhor jogada que nos leve para a melhor posição possível?

z A solução passa por fazer uma generalização do algoritmo Minimax para jogos que incluam nós de probabilidades.

z Essa generalização, denominada de

ExpectiMinimax, em que os Nós Terminais, os Nós

Max e Min continuam a ser avaliados como anteriormente e os Nós de Probabilidades são avaliados com base na média de todas as suas posições possíveis.

(56)

Árvore com nós de probabilidades

MAX Prob. MIN MAX Prob. 2 4 3 23 1 2 3 5 21 7 5 61 2 4 3 3 3 5 7 6 2 3.6 3.0 5.8 4.4 3.0 4.4 3.56 .6 .4 .6 .4 .6 .4 .6 .4 .6 .4

Avaliação de posições em jogos com nós

de probabilidades

z Para o Minimax, qualquer alteração no valor de avaliação nas folhas não afecta qualquer tomada de decisão.

(57)

Complexidade do ExpectiMinimax

z

Enquanto no Minimax tínhamos O(b

m

), no

ExpectiMinimax vamos ter O(b

m

n

m

), onde n é

o número de lançamentos efectuados.

z

O Custo extra torna irrealista olhar muito á

frente.

z

A nossa habilidade de olhar mais á frente

está dependente da quantidade de eventos

aleatórios que possam ocorrer.

Complexidade do ExpectiMinimax

z Em jogos de azar, não existe uma sequência exacta de movimentos, pois para que essa sequência exista é necessário em primeiro lugar, por exemplo, lançar um dado.

z Devido a não existirem sequências exactas de movimentos torna-se impossível aplicar os cortes Alfa-Beta a estes casos.

z Será então possível, com vista a reduzir esta complexidade, transportar a ideia dos cortes Alfa-Beta para jogos que incluam nós com probabilidades? Sim!

(58)

*-Minimax

z Bruce Ballard foi o primeiro a desenvolver esta técnica, chamada *-Minimax, para cortes nos nós de probabilidades. Ele propôs duas versões do seu algoritmo, chamadas de Star1 e Star2 (mais tarde refinada para Star2.5).

z Nos nós Min e Max vamos continuar a aplicar os cortes Alfa-Beta, visto que não foi alterada a definição dos nós Min e Max, apenas foi introduzido um novo tipo de nó.

*-Minimax

z Suponhamos que nos encontrámos num nó de probabilidade.

z Será possível encontrar um limite que nos dê a variação de valores todos os sucessores deste nó, sem ser necessário examinar um por um ?

z A primeira vista pode parecer impossível porque esse limite será a média de todos os nós sucessores.

z Antes de efectuarmos o lançamento do dado essa média poderá ser qualquer valor.

z A solução passa por impor limites aos valores atribuídos pela função de Utilidade.

(59)

*-Minimax: Algoritmo Star1

*-Minimax: Algoritmo Star1

-5 5 -10 -9 0 5 1 3 -10 -1 5 10 [-2,2] Min Chance Max -5 -10 0 1 -10 A = 6 (-2-10) + 10 = -62 B= 6 (2+10) - 10 = 62 [-62,62] Limite inicial: A1= N x (alfa - U) + U B1 = N x (beta - L) + L Próximo limite: Ai+1= Ai+ U - Vi Bi+1= Bi+ L - Vi A = -62 + 10 +5 = -47 B= 62 – 10 + 5 = 57 [-47,57] A = -47 + 10 + 10 = -27 B = 57 -10 + 10 = 57 [-27,57] A = -27 + 10 -0 = -17 B = 57 – 10 – 0 = 47 [-17,47] A = -17 +10 -1 = -8 B = 47 – 10 – 1 = 36 [-8,36] ? 1/6 1/6 1/6 1/6 1/6 1/6

(60)

Jogos de Azar com Informação

Imperfeita

Jogos com informação imperfeita

Ex.: Jogos de cartas, onde inicialmente não são conhecidas as cartas do adversário.

z Tipicamente é possível calcular uma probabilidade para cada mão (de jogo) possível.

z Ideia: calcular o valor do Minimax para cada acção em cada mão, e depois escolher a acção com o maior valor esperado através das várias mãos.

z Caso especial: se uma acção é óptima para todas as mãos, então é a acção óptima!

z GIB, o melhor programa actual de bridge, faz a aproximação desta ideia:

(61)

Exemplo

Mão de quatro cartas de bridge/copas, Max joga primeiro:

Em análise…

* A intuição de que o valor de uma acção é a média dos valores de todos os estados actuais é ERRADA.

z Observando parcialmente, o valor de uma acção

depende do estado de informação ou estado de crença no qual o agente está.

z Pode gerar e pesquisar uma árvore de estados de crença.

z Leva a comportamentos racionais, tais como:

z Agir de forma a obter informação

z Dar sinais ao parceiro

(62)

Sumário

z Trabalhar com jogos é extremamente engraçado (e perigoso).

z Fácil testar novas ideias!

z Fácil comparar agentes com outros agentes e com humanos!

z Jogos ilustram diversos pontos interessantes de IA: z Perfeição é inatingível => é necessário aproximar!

z É boa ideia pensar sobre o que pensar!

z A incerteza restringe a atribuição de valores aos estados!

z Jogos funcionam para a IA como a Fórmula 1 para a construção de automóveis!

Questões Pertinentes

z Q1. Será a forma como os computadores jogam xadrez mais essencial do que a forma como as pessoas o jogam?

z Q2. Se os extraterrestres viessem á terra e nos desafiassem para um torneio de xadrez…

z Quem enviaria: o Deep Blue ou o Kasparov?

z Drew McDermott:

z “Dizer que o Deep Blue não pensa realmente sobre o xadrez é o mesmo que dizer que os aviões não voam, só porque não batem as asas”.

(63)

Fontes Consultadas

z

Russel, Norvig, Artificial Intelligence: A Modern

Approach, Cap. 6.

z

Acetatos Prof. Guillermo Simari. Universidad

Nacional del Sur, Argentina

z

Acetatos Alunos IIA semestre 2004/2005.

z

Acetatos Prof. Geber

Ramalho. CIN.

Universidade Federal de Pernambuco, Brasil.

Leituras

LIVROS

z Russel, Norvig, Artificial Intelligence: A Modern Approach, Cap. 5.

(64)

Referências

Documentos relacionados

1.Prioridade 1 Combater a pobreza das crianças, idosos e das famílias através de medidas que assegurem os seus direitos básicos de cidadania 1.1.. Objectivo Geral Reforçar a Rede

Enquanto na acção social ut singuli, figura(m) como autor(es) o(s) sócio(s), mas estes fazem valer não um direito próprio, mas um direito da própria sociedade.. Isto

6ª Exposição Internacional de Artes Plásticas 6ª Exposição Internacional de Artes Plásticas 6ª Exposição Internacional de Artes Plásticas 6ª Exposição Internacional de

A aprendizagem da leitura do mundo recorrendo à Matemática é um processo social com exigências para os professores como novas competências relacionadas com

• Os sobreviventes da Violência Baseada no Género não têm acesso fácil ao tratamento médico / acção psicológica / serviços de saúde sexual e reprodutiva e correm o risco

Para saber mais sobre o ECDC e as suas actividades, consulte o nosso sítio web, onde pode encontrar, por exemplo, informações pormenorizadas sobre as prin- cipais doenças

O SECRETÁRIO MUNICIPAL DE EDUCAÇÃO, no uso de suas atribuições, APROVA e HOMOLOGA o Ajuste do Calendário Escolar da Escola Municipal de Educação Fundamental América, contido

revitalização n.º 1022/13.7TBCTB, que então corria a favor da aqui Executada, cumpre assinalar que nos autos está em causa execução motivada pelo não pagamento de coima e, bem