Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

DECSI - UFOP, CSI 457
Notas de Aula
Busca Competitiva
Inteligência Arti�cial
Prof. Dr. Talles Henrique de Medeiros
Talles Medeiros
2021/1
Conteúdo
Conteúdo
1 Busca Competitiva 3
1.1 Estratégia Ótimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 O Algoritmo Minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Propriedades do Algoritmo Minimax . . . . . . . . . . . . . . . . . . . 6
1.3 A Poda Alfa-Beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Decisões Imperfeitas em Tempo Real . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Notas Bibliográ�cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
1 Busca Competitiva
1 Busca Competitiva
O cenário em que o agente precisa considerar as ações de outros agentes e a forma como essas
ações afetam o seu próprio bem-estar introduz muitas contingências no processo de resolução
de problemas do agente. Em ambientes competitivos, em que os objetivos dos agentes estão em
con�ito, temos a origem dos problemas de busca competitiva — frequentemente conhecidos
como jogos.
A teoria de jogos, um ramo da economia, visualiza qualquer ambiente multiagente como um
jogo. Em IA, os “jogos” mais comuns são de um tipo bastante especializado — que os teóricos de
jogos denominam jogos determinísticos de revezamento de dois jogadores de soma zero com
informações perfeitas (como o xadrez).
Os jogos costumam ser desa�adores, por exemplo, o xadrez possui um fator de rami�cação de
cerca de 35, e as partidas chegam até 50 movimentos por jogador. Assim, a árvore de busca tem
aproximadamente 35100 ou 10154 nós (embora o grafo de busca tenha “apenas” cerca de 1040 nós
distintos).
Falaremos da de�nição de movimento ótimo e um algoritmo para descobri-lo. Depois aborda-
remos situações em que o tempo é limitado. A poda nos permite ignorar partes da árvore de
busca que não fazem diferença para a escolha �nal, e as funções de avaliação de heurísticas nos
oferecem a oportunidade de fazer uma aproximação da verdadeira utilidade de um estado sem
realizar uma busca completa.
Consideraremos jogo com dois jogadores, que denominaremos MIN e MAX. O jogador MAX faz
o movimento primeiro, e depois eles se revezam até o jogo terminar. No �nal do jogo, os pontos
�cam com o vencedor e as penalidades são aplicadas ao perdedor. O jogo pode ser de�nido
como:
• B0: o estado inicial que especi�ca o início do jogo.
• JOGADORES(s): de�ne qual o jogador deve se movimentar em um estado.
• AÇÕES(s): retornam o conjunto de movimentos válidos em um estado.
• RESULTADO(s,a): o modelo de transição que de�ne o resultado de um movimento.
• TESTE DE TÉRMINO(s): verdadeiro quando o jogo termina e, do contrário, falso. Os
estados em que o jogo é encerrado são chamados estados terminais.
• UTILIDADE(s,p): de�ne o valor numérico para um jogo que termina no estado terminal
B por um jogador ? . Por exemplo, em xadrez usamos +1, −1 ou 1/2 para vitória, derrota e
empate, respectivamente. Alguns jogos possuem maior gama de resultados possíveis.
3
1 Busca Competitiva
Figura 1.1: Uma parte da árvore de busca do jogo da velha.
Vamos ver uma árvore parcial de busca para um jogo da velha, �gura 1.1, que exibe no nó raiz o
estado inicial, e mostra o jogador MAX colocando um X em um quadrado vazio. Nessa árvore
parcial, é mostrada a alternância de movimentos entre MIN(O) e MAX(X) até os nós terminas
serem atingidos. Estes nós terminais possuem o valor de utilidade conforme a regra do jogo.
Não é difícil perceber que á árvore do jogo da velha não é grande, contendo menos de 9! = 362.880
nós terminais. Já o xadrez apresenta cerca de 1040 nós terminais.
1.1 Estratégia Ótimas
Em um problema de busca normal, a solução ótima seria uma sequência de ações que levasse
a um objetivo. No entanto, em jogos temos um agente de comportamento imprevisível que
precisamos considerar.
A estratégia de contingência de MAX deve especi�car o movimento de MAX no estado inicial e
nos demais movimentos nos estados resultantes de cada possível resposta de MIN. Em seguida
especi�car os movimentos de MAX nos estados resultantes de cada possível resposta de MIN, e
assim por diante. Grosseiramente falando, uma ótima estratégia leva a resultados pelo menos
tão bons como qualquer outra estratégia quando se está jogando com um adversário infalível.
Faremos uma análise de um jogo simples, de árvore bem reduzida (�gura 1.2), para compreen-
dermos os conceitos de uma estratégia ótima. Os movimentos possíveis para MAX no nó raiz
são identi�cados por �1, �2 e �3. As respostas possíveis para �1 correspondentes a MIN são
�11, �12 e �13, e assim sucessivamente. Este jogo termina após um movimento de MAX e MIN.
4
1 Busca Competitiva
As utilidades são indicadas nos nós terminais e variam de 2 a 14.
Figura 1.2: O melhor movimento de MAX na raiz é �1 porque leva a um estado com o mais alto
valor minimax, e a melhor resposta de MIN é �11 porque leva a um estado com o
mais baixo valor minimax.
A estratégia ótima pode ser determinada pelo valor minimax de cada nó, que de�nimos como
VALOR-MINIMAX(=). Este valor é a utilidade, segundo a visão do jogador MAX, de se encontrar
no estado correspondente. O valor minimax de um estado terminal é a própria utilidade deste
estado. Assim temos uma condição que implementa a determinação do VALOR-MINIMAX(=):
Algorithm 1: Valor Minimax(s)
Result: Calcula o valor minimax de todos nós
if TESTE DE TERMINO(s) then
VALOR-MINIMAX(s) = UTILIDADE(s) ;
else
if JOGADOR(s) = MAX then
VALOR-MINIMAX(s) = "0G0∈��$�( (B) MINIMAX(RESULTADO(s,a)) ;
else
if JOGADOR(s) = MIN then
VALOR-MINIMAX(s) = "8=0∈��$�( (B) MINIMAX(RESULTADO(s,a)) ;
else
end
end
Essa de�nição de jogo ótimo para MAX supõe que MIN também jogue de forma ótima - ela
maximiza o resultado para MAX no pior caso. Caso MIN não jogar de forma ótima, MAX terá
um desempenho ainda melhor. Pode haver outras estratégias contra oponentes não ótimos que
poderão funcionar melhor que a estratégia de minimax; porém, essas estratégias necessariamente
têm um desempenho pior contra oponentes ótimos.
5
1 Busca Competitiva
1.2 O Algoritmo Minimax
Este algoritmo calcula a decisão minimax a partir do estado corrente. Ele faz uso de uma
computação recursiva simples dos valores minimax de cada estado sucessor, implementando
diretamente as equações da de�nição. A recursão percorre todo o caminho descendente até as
folhas da árvore e, depois, os valores minimax são propagados de volta pela árvore, à medida
que a recursão retorna.
Figura 1.3: Este algoritmo retorna a ação correspondente ao melhor movimento possível, isto é,
o movimento que leva ao resultado com a melhor utilidade, sob a suposição de que o
oponente joga para minimizar a utilidade.
O algoritmo retorna a ação correspondente ao melhor movimento possível, isto é, o movimento
que leva ao resultado com a melhor utilidade, sob a suposição de que o oponente joga para
minimizar a utilidade. A notação arg<0G0∈��$�( (B) 5 (0) calcula o elemento 0 do conjunto B
que possui o valor máximo de 5 (0). O algoritmo faz uma exploração em profundidade completa
da árvore de busca.
1.2.1 Propriedades do Algoritmo Minimax
• Completo: Sim, se a árvore for �nita.
• Ótimo: Sim, contra um oponente ótimo.
• Complexidade de Tempo: $ (1<)
• Complexidade de Espaço: $ (1<)
Isto torna custosa a busca pela solução em jogos de tamanho razoáveis. Veja, como exemplo, o
xadrez: 1 ≈ 35 e< ≈ 100. Impossível se analisar uma solução exata para este caso, mas esse
algoritmo serve como base para a análise matemática de jogos e para algoritmos mais práticos.
6
1 Busca Competitiva
1.3 A Poda Alfa-Beta
O problema do algoritmo minimax é o aumento da quantidade de estados que precisam ser
examinados em relação à quantidade de movimentos, que cresceexponencialmente. Apesar de
não se conseguir transformar em busca de complexidade exponencial em uma complexidade
linear, é possível usar de artifícios para reduzir o espaço de busca.
Mas como fazer isso? Há meios para se eliminar alguns nós da árvore do jogo por meio do
princípio de poda, que desconsidera algumas partes da árvore sem afetar sua solução �nal obtida
pela busca minimax. Essa técnica é conhecida como poda alfa-beta. Para compreender, vamos
considerar o mesmo exemplo da �gura 1.2, mas agora desconsiderando alternativas. Veja a
�gura 1.4
Figura 1.4: A poda alfa-beta deixou de examinar 2 nós da árvore de busca, sem comprometer o
resultado �nal do algoritmo minimax. Ambos retornam a mesma solução.
A �gura 1.4 mostra que foram examinados todos os nós da subárvore mais à esquerda, obtendo
o valor MIN = 3 para o nó raiz. Na subárvore do meio, encontrou-se o valor MIN = 2 e isso nos
permite descartar os demais nós dessa subárvore, pois o nó pai (MAX) não escolherá nenhum
outro nó desta subárvore, pois seu MAX já é maior que o MIN atual. Na subárvore mais à direita
foi necessário examinar todos os nós. Como pode ser facilmente percebido, a efetividade da poda
alfa-beta depende da ordem em que os nós sucessores são examinados. Com a melhor ordem
possível, a complexidade de tempo do algoritmo torna-se $ (1</2). Isso dobra a profundidade
de busca que conseguimos fazer.
O nome do algoritmo é dado a partir de dois parâmetros que descrevem os limites sobre os
valores propagados de volta que aparecem em qualquer lugar ao longo do caminho:
• Alfa (U): o valor da melhor escolha (isto é, a de valor mais alto) que encontramos até o
momento em qualquer ponto de escolha ao longo do caminho para MAX.
• Beta (V): o valor da melhor escolha (isto é, a de valor mais baixo) que encontramos até
agora em qualquer ponto de escolha ao longo do caminho para MIN.
A poda alfa-beta pode ser aplicada a árvores de qualquer profundidade e frequentemente é
possível podar subárvores inteiras em lugar de podar apenas folhas. O princípio geral é este:
considere um nó + em algum lugar na árvore, tal que o Jogador tenha a escolha de movimento
7
1 Busca Competitiva
até esse nó. Se o Jogador tiver uma escolha melhor U no nó pai de + ou em qualquer ponto de
escolha adicional acima dele, então + nunca será alcançado em um jogo real. Assim, uma vez que
descobrimos o su�ciente sobre + (examinando alguns de seus descendentes) para chegar a essa
conclusão, poderemos podá-lo.
Figura 1.5: Princípio geral da poda alfa-beta. O U é o valor da melhor escolha (valor mais alto)
encontrado até então para qualquer ponto de escolha de MAX. Se + é pior do que U ,
MAX não percorrerá este caminho (irá podar este ramo de busca). O V é de�nido de
maneira análoga. Em resumo, se U é melhor que+ para o jogador, nunca chegaremos
a + em um jogo.
1.4 Decisões Imperfeitas em Tempo Real
Em jogos, mesmo a poda alfa-beta faz com que a árvore seja examinada até sua profundidade em
algum momento. Na prática isso não é razoável pois movimentos precisam ser feitos em poucos
minutos. Uma proposta para cortar a busca mais cedo é a aplicação de funções de avaliação
heurística aos estados da busca, transformando os nós não terminais em nós terminais. Assim,
uma função de avaliação heurística (AVAL) substituirá a função de utilidade, e o teste de término
por um teste de corte que decide quando aplicar AVAL.
Algorithm 2: Minimax Heuristica
if TESTE DE CORTE(s,d) then
AVAL(s)
else if JOGADOR(s) = MAX then
<0G0∈��$�( (B) H-MINIMAX(RESULTADO(s,a), d+1)
else if JOGADOR(s) = MIN then
<8=0∈��$�( (B) H-MINIMAX(RESULTADO(s,a), d+1)
8
1 Busca Competitiva
Figura 1.6: Algoritmo de busca alfa-beta.
Para ajudar na compreensão faremos uma avaliação usando o jogo de xadrez, onde durante
anos os a�cionados desenvolveram meios para julgar o valor de uma posição. Um programa de
jogos é fortemente dependente da qualidade de sua função de avaliação.
A função de avaliação deve ordenar os estados terminais do mesmo modo que a verdadeira
função de utilidade: estados que são vitórias devem ser avaliados melhores que empates, que
por sua vez devem ser melhores que perdas. Caso contrário, um agente que utilizasse a função
de avaliação poderia errar, mesmo que pudesse antecipar todos os movimentos até o �m do
jogo. Em segundo lugar, a computação não deve demorar tempo demais! Em terceiro lugar, no
caso de estados não terminais, a função de avaliação deve estar fortemente relacionada com as
chances reais de vitória.
Quando falamos de chances, não quer dizer que o jogo não possui informações completas, mas
que ele possui limitações computacionais e precisa �nalizar a busca em nós não terminais. Isso
insere, sem dúvidas, uma incerteza sobre o resultado.
A maioria das funções de avaliação atua calculando diversas características do estado. Conside-
radas em conjunto, as características de�nem diversas categorias ou classes de equivalência de
estados: os estados de cada categoria têm os mesmos valores para todas as características. Por
exemplo, ao �nal do jogo, uma categoria contém ao todo dois peões versus um peão. Qualquer
9
1 Busca Competitiva
Figura 1.7: Dois estados onde a função de avaliação nos mostra um cenário favorável às peças
pretas (a) e um cenário que favorece as peças brancas (b). No cenário (a), as peças
pretas capturaram 1 cavalo e 2 bispos a mais que as brancas, tornando o estado
favorável para o time preto. No cenário (b), com a torre branca colocada em uma
posição diferente, irá capturar a rainha preta e tornará as chances do time branco
maiores de vitória.
categoria especí�ca, em termos gerais, conterá alguns estados que levam a vitórias, alguns que
levam a empates e alguns que levam a derrotas. A função de avaliação não tem como saber quais
são os estados de cada grupo, mas pode retornar um único valor capaz de re�etir a proporção
de estados que conduzem a cada resultado. Matematicamente, podemos fazer uma função linear
ponderada que expresse uma probabilidade de sucesso.
�+�!(B) = F1 51(B) +F2 52(B) + · +F= 5= (B) =
=∑
8=1
F8 58 (B) (1.1)
onde cadaF8 é um peso e cada 58 é uma característica da posição. No caso do xadrez, 58 poderia
representar os números de cada tipo de peça no tabuleiro,F8 poderia corresponder aos valores
das peças (1 para peão, 3 para bispo etc.).
Esta suposição é muito forte e jogos mais modernos de xadrez fazem avaliações mais completas
do que essa. Isso é fruto da experiência de anos dos humanos jogando xadrez. Porém, é possível
utilizar técnicas de aprendizagem de máquina para estimar esses pesosF para uma função de
avaliação heurística.
1.5 Notas Bibliográficas
Consulte o livro "Inteligência Arti�cial"de Stuart Russel e Peter Norvig, capítulo 05 para
complementar sua leitura desta nota de aula. Pois ela foi baseada nesse capítulo.
10
1 Busca Competitiva
Figura 1.8: Jogo do Exercício 02.
1.6 Resumo
O estudo de jogos em IA é fascinante e amplo, de modo a demandar um tempo maior para fazer
um aprofundamento devido. Nesta nota de aula, nosso foco �cou na descrição do problema de
jogos de 2 jogadores com informações completas. O algoritmo minimax, a poda alfa-beta e a
abordagem de funções de avaliação heurística são su�cientes para um ponto de partida neste
interessante campo de estudo da IA.
1.7 Exercícios
1. Faça uma breve revisão histórica sobre o jogo de xadrez e os programas inteligentes
desenvolvidos para ele. Iniciando com o trabalho de Claude Shannon, Programming a
Computer for Playing Chess, em 1950.
2. Considere o jogo, representado na �gura 1.8, de 2 jogadores descrito a seguir: Posição
inicial de um jogo simples. O jogador A joga primeiro. Os dois jogadores se revezam na
movimentação e cada jogador deve mover sua �cha para um espaço adjacente aberto em
qualquer sentido. Se o oponente ocupar um espaço adjacente, um jogador pode saltar sobre
um oponente até o próximo espaço aberto, se houver (por exemplo, se A estiver em 3 e B
estiver em 2, A poderá voltar a 1). O jogo termina quando um jogador chegarà extremidade
oposta do tabuleiro. Se o jogador A alcançar o espaço 4 primeiro, o valor do jogo para A será
+1; se o jogador B alcançar o espaço 1 primeiro, o valor do jogo para A será -1.
• a Desenhe a árvore do jogo completa, usando as convenções a seguir:
– Escreva cada estado como ((�, (�), onde (� e (� denotam as posições das �chas.
– Coloque cada estado terminal em um quadrado e escreva o valor de seu jogo
em um círculo.
– Insira os estados de ciclo (estados que já aparecem no caminho para a raiz) em
quadrados duplos. Tendo em vista que o valor não está claro, identi�que cada
um com um símbolo “?”
• b Agora marque cada nó com seu valor minimax propagado de volta (também em
um círculo). Explique como você tratou os valores “?” e por quê.
3. Usando o jogo da velha como exemplo. Nós de�nimos -= como o número de linhas,
colunas ou diagonais com exatamente = - e não $ . Da mesma forma, $= é o número de
linhas, colunas ou diagonais com apenas = $ . A função utilidade atribui +1 a qualquer
11
1 Busca Competitiva
posição com -3 = 1 e −1 em qualquer posição com $3 = 1. Todas as outras posições
terminais têm utilidade 0. Para posições não terminais, utilizamos uma função linear de
avaliação de�nida como �E0; (B) = 3-2(B) + -1(B) − (3$2(B) +$1(B)).
a) Existem cerca de quantos jogos da velha possíveis?
b) Mostre toda a árvore de jogo começando de um tabuleiro vazio até a profundidade 2
(isto é, um X e um O na tabuleiro), levando a simetria em conta.
c) Marque em sua árvore as avaliações de todas as posições com profundidade 2.
d) Utilizando o algoritmo minimax, marque em sua árvore os valores propagados para
as posições à profundidade 1 e 0, e utilize esses valores para escolher a melhor jogada
da partida.
e) Circule os nós à profundidade 2 que não seriam avaliados se a poda alfa-beta fosse
aplicada, assumindo que os nós são gerados na ordem ótima para a poda alfa-beta.
12
	Busca Competitiva
	Estratégia Ótimas
	O Algoritmo Minimax
	Propriedades do Algoritmo Minimax
	A Poda Alfa-Beta
	Decisões Imperfeitas em Tempo Real
	Notas Bibliográficas
	Resumo
	Exercícios

Mais conteúdos dessa disciplina