Você está na página 1de 17

Inteligncia Artificial

Mecanismos de Busca II

Um algoritmo de subida de encosta que nunca faz movimentos encosta abaixo


abaixo
em direcao a estados com valor mais baixo (custo mais alto) sem duvida eh
incompleto, porque pode ficar paralisado em um maximo local. Em contraste,
um percurso puramente aleatorio, isto eh, a movimentacao ateh um sucessor
escolhido uniformemente ao acaso a partir do conjunto de sucessores,
sucessores, eh
completo mas extremamente ineficiente...
ineficiente... (Russel and Norvig, 2004)

Hah um trade-
trade-off EFECIENCIA versus COMPLETEZA?

Inteligncia Artificial

Busca T
Tmpera Simulada
n Problemas da Busca Subida da Encosta:
Encosta:
Falha quando encontra um mximo-
ximo-local ou um plat
plat

n Solu
Soluo
o: dar flexibilidade ao processo de busca
Esta a id
idia do Tmpera Simulada (Simulated Annealing)

TEMPERA (annealing): processo de aquecimento+resfriamento de metais


(envolve temperatura, tempo e energia)
Distribuio de Boltzman: p(x)=eE(x)/kT
Idia: quando quente, a energia dos tomos est alta e eles
podem se movimentar bastante (permite ir para estados de pior
valor heurstico) e conforme vai esfriando, eles se movimentam
menos (no mais permitido ir para estados de pior valor)
Inteligncia Artificial
Algoritmo do T
Tmpera Simulada
(ou subida da encosta estocastica)

nCONCEITO: Busca heurstica  o nvel de energia


n Para cada passo, temperatura (T) decresce conforme um cronograma
n Um estado pode ir para um estado pior dependendo da probabilidade

p = e-E/T

Ideia: Quanto mais prximo o estado X est do objetivo, maior o VALOR do estado X. Movimentos
ruins tem maior probabilidade de serem permitidos no inicio, quando a temperatura eh alta.

Inicio da busca -> passo = 0;


T=cronograma(passo);
Se T=0  Falha (no encontrou a soluo)
Seno: escolha um sucessor do estado corrente aleatoriamente
E Valor (Sucessor) - Valor(estado corrente)
Se E >0 ento estado corrente sucessor
Seno: p escolhe valor aleatorio [0,1]
Se p < e-E/T ento estado corrente sucessor;
passo = passo + 1;
T=cronograma(passo);
repita

Inteligncia Artificial

Caracter
Caractersticas T
Tmpera Simulada
A deciso do algoritmo:
Se estado sucessor for melhor que o n-pai, ento escolhe ele como o
prximo estado a ser expandido (como o Subida da Encosta)
Se o estado sucessor for pior, ento escolhe ele como prximo estado
se, ao escolher o numero aleatrio entre 0 e 1, este for menor que e- E/T

completo ? Sim (encontra a soluo se existir)


Soluo tima ? Encontra se T esfriar muito lentamente.
n Com o tempo (esfriamento), este algoritmo passa a funcionar como
o Subida da Encosta.
n Algoritmo utilizado nos anos 80 em layouts de VLSI

n Desvantagens:
n Como determinar o cronograma de tmpera ?
Testar diversos cronogramas e escolher o melhor !
Inteligncia Artificial

Heur
Heurstica Admiss
Admissvel
n Considere:
n h(n)  heurstica (estimativa)
n h*(n)  custo real do objetivo (meta) a partir de n

n heurstica admissvel:
h no deve superestimar o custo real h* para se alcanar uma soluo.
Ou seja: deve ser otimista -> h(n) h*(n)

n Caso contrrio a heurstica ser no-admissvel

Inteligncia Artificial

Heur
Heursticas Admiss
Admissveis

5 4 1 2 3
6 1 8 8 4
7 3 2 7 6 5

Estado Inicial Objetivo (meta)


n Heur
Heur stica 1:
1: Nmero de pastilhas que esto fora de lugar: h = 8 (inclui
espa
espao)
n Heur
Heur stica 2: Distncia de Manhattan: distncia horizontal + vertical de cada
pastilha para o seu lugar correto: h = 20 (inclui espa
espao)

n As duas heur
heursticas s
s o admiss
admissveis para o problema do jogo dos oito.

DICA:
heurstica, geralmente relaxa-
Para se encontrar uma boa heur relaxa-se o problema
Inteligncia Artificial

Heur
Heurstica Admiss
Admissvel
n Qual melhor, h1 ou h2 ?
n sempre melhor usar uma fun
funo o heur
heurstica com valores mais altos,
contanto que ela seja admiss
admissvel.
ex. h2 melhor que h1

n hi domina hk hi(n) hk(n) n no espa


espao de estados
h2 domina h1 no exemplo anterior

n Caso existam muitas fun


funes
es heur
heursticas para o mesmo problema, e
nenhuma delas domine as outras, usa- usa-se uma heur
heurstica composta:
h (n) = max (h1 (n), h2 (n),
(n),,hm(n))
Assim definida, h admiss
admissvel e domina cada funo hi individualmente
funo

Inteligncia Artificial

Qualidade da Heur
Heurstica
n Qualidade da fun
funo
o heur
heurstica:
stica: medida atrav
atravs do fator de
expanso efetivo (b*).
expans
b* o fator de expans
expanso de uma rvore uniforme com N ns e
nvel de profundidade d
N = 1 + b* + (b*)2 + ... + (b*)d , onde
N = total de n
ns expandidos para uma inst
instncia de problema
d = profundidade da solu
soluo;
o;
n Mede-se empiricamente a qualidade de h a partir do conjunto de
Mede-
valores experimentais de N e d.
uma boa fun
funo
o heur ter o b* muito pr
heurstica ter prximo de 1.
n Se o custo de execu
execuoo da fun
funoo heur
heurstica for maior do que
expandir n ento ela no deve ser usada.
ns, ent
uma boa fun
funo heurstica deve ser eficiente e econ
o heur econmica, no que se
refere ao custo computacional
Inteligncia Artificial

Fun
Funo
o de Avalia
Avaliao
o
n Al
Alm da heur
heurstica, pode-
pode-se ter o custo de cada ramo da rvore de
busca. Exemplo:
Suponha que o seu sistema de IA deva lidar com:
n Planejamento de rotas (ir de um ponto a outro na cidade)
n Cada rota gasta combust
combustvel de forma diferente
n Quero, portanto, atingir meu objetivo (heur
(heurstica) e minimizar o gasto de
combust
combustvel (custo)

n Fun
Funo
o de avalia
avaliao:
o:
f (n) = g (n) + h (n)
g (n) = fun o de custo de n ao n
funo n inicial
h (n) = fun
funo
o heur
heurstica
n Se f(n) = h(n), ento a busca, guiada pela funo de avaliao,
depende nica e exclusivamente da funo heurstica

Inteligncia Artificial

Busca A*
n A busca A* a busca Melhor-
Melhor-Escolha guiada pela fun
funo
o
de avalia
avaliao
o
Ou seja, a diferen
diferena entre A* e Melhor-
Melhor-Escolha que o A* usa o
custo de cada ramo

n n de menor valor de f na fronteira do


A* expande o n
espa
espao de estados.

n Interessante:
Se h admiss
admissvel, f (n) nunca ir
ir superestimar o custo
real da melhor solu
soluo atravs de n. Logo, o A*
o atrav
encontrar
encontrar a solu
soluoo tima em termos de custo.
Inteligncia Artificial

Buscas A*
n Exemplo considerando cada ramo custo=1

A A A

(f(n)=g(n)+h(n))

B C D B C D
(3+1) (5+1) (1+1) (3+1) (5+1)
A
(6+2)
A
E (4+2) F

B C D

(5+1) B C D
(6+2)
G (6+2) E F
(4+2)
G E F
(6+2)
(6+2) (4+2)

Inteligncia Artificial

An
Anlise Busca A*
n Semelhante busca Melhor-
Melhor-Escolha por
porm levando em considera
considerao
o o custo
de cada ramo
completa: Sim.
tima: Sim, com rela
relao
o ao custo, i.e., minimiza o custo quando a
heurstica admiss
heur admissvel.
Fator de Ramifica
Ramificao: o: no pior caso todos os n ns gerados a partir
de um n
n (b)
Custo de Tempo: no pior caso O (bd).
Custo de Mem
Memria: no pior caso O (bd).

Embora seja um algoritmo caro computacionalmente, o melhor


algoritmo para encontrar solu
solues
es timas com rela
relao
o ao custo.
Inteligncia Artificial

Compara
Comparao
o das Heur
Heursticas no A*
n Resolvendo o problema do jogo-
jogo-dos-
dos-oito usando A* e duas heur
heursticas:
h1:
h1: Nmero de pastilhas fora de lugar e h2: Distncia de Manhattan

Profundidade da Soluo Nmero mdio de ns expandidos Fator de ramificao efetiva b*


d A*(h1) A*(h2) A*(h1) A*(h2)
2 6 6 1,79 1,79
4 13 12 1,48 1,45
6 20 18 1,34 1,30
8 39 25 1,33 1,24
10 93 39 1,38 1,22
12 227 73 1,42 1,24
14 539 113 1,44 1,23
16 1301 211 1,45 1,25
18 3056 363 1,46 1,26
20 7276 676 1,47 1,27
22 18094 1219 1,48 1,28
24 39135 1641 1,48 1,26

Inteligncia Artificial

Exerc
Exerccio
n Para a seguinte rvore:
A (9)

B
(8) (8) (7)
C D

(8) (6)
E F (7) (6)
G (8) I
H

(7) (6)
K L (6) (7) (9)
)
( M N
J O

)
( (4)
)
( (5)
P Q R S T
U
n Ache a sequ
sequncia de n
ns: GOAL GOAL
A* )
(
V
Considere cada ramo um custo = 1
Inteligncia Artificial

Resposta Exerc
Exerccio:
n Sequ
Sequncia de Expans
Expanso de N
Ns para:
A (9)

n Resposta: A*
B
(9) (9) (8)
C D

10 (8)
E F (9) (8)
G 10 I
H

10 9
K L (9) 10 12
)
( M N
J O

)
( (8)
)
( (9)
P Q R S T
n Sequ
Sequncia Gerada: U

GOAL GOAL
ABCDHIOEFKLGQR )
(
V

Inteligncia Artificial

Jogos (busca competitiva)


n Presen
Presena do Oponente (outros agentes existentes)
existentes)
introduz incerteza
estado alterado n
no somente em fun
funo
o das decis
decises tomadas -
problema da conting
contingncia
n Complexidade da rvore de Busca
nmero de estados a serem testados muito maior
normalmente nno h
h tempo suficiente para calcular todas as
poss
possveis consequ
consequncias de um movimento durante um jogo
n Quest
Questes
Como encontrar o suposto melhor movimento ?
Como agir quando o tempo de decis
deciso limitado ?
Inteligncia Artificial

Hist
Histrico de Jogos em IA
n XADREZ: Venceu Kasparov em jogos com rodadas de 5 a 25 minutos; em
campeonatos fica entre os 100 primeiros.
n 1970: programas complicados com truques de cortes (poda da rvore).
n Belle: primeiro computador dedicado ao jogo de xadrez.
Circuitos integrados implementam a gerao de movimentos
n Hitech: gera 104 posies por jogada
funo mais precisa de avaliao at hoje
Primeiro a vencer um campeo de xadrez (1987).
n Chinook: programa que joga damas. Se tornou campeo do mundo em 1994
Sistemas anteriores empregavam aprendizagem para descobrir a melhor funo de
avaliao
Emprega corte alfa-beta + um Banco de Dados com solues perfeitas
n Othello: muito melhor que humanos. Variao do xadrez com espao de
busca bem menor: 5 a 15 movimentos possveis.
n 2007: Jogos de Damas totalmente mapeados.

Inteligncia Artificial

Algoritmo MIN-
MIN-MAX (tipo em profundidade)
n MAXimizar sua jogada
n MINimizar a jogada do adversrio

n Algoritmo MINMAX (caractersticas):


Necessita de uma funo de utilidade (objetivo) que atribui valor
numerico aos estados terminais (p.e: xadrez (+1,-1,0) p/ (vitoria,
derrota, empate);
Escolher um passo que maximize sua chance e diminua a chance do
adversrio;
Considere que o adversrio seja muito inteligente  ir escolher a
melhor opo para ele e, consequentemente, pior para voc;
O adversrio no comete erros por distrao e no afetado
psicologicamente (superestima o adversrio);
Inteligncia Artificial

Algoritmo MIN-
MIN-MAX
Exemplo: Na jogada do seu adversrio (MIN) ele ir escolher a
pior situao para voc. Na sua jogada (MAX) voc
escolhe a melhor.

A A A

Fun
Funo
o de utilidade Sua
jogada

B C D B C D MAX

MIN
Adv.
F H I
jogada E G
A
(-6) (5) (-1)
(9) (-2)

B C D

(-6) (-2)
(-1)

Inteligncia Artificial

Algoritmo MIN-
MIN-MAX : Jogo da Velha
n Funo de utilidade:
(nmero de colunas abertas para X nmero de colunas abertas para O)

-2 1
-1

4-6 = -2 5-5 = 0 5-6 = -1 5-6 = -1

6-4 = 2 5-4 = 1
4-5 = -1 5-5 = 0 6-5 = 1 5-5 = 0
Inteligncia Artificial

Exerc
Exerccio MINMAX
n Qual a melhor jogada, B, C ou D ?

B C D

E F G H I J

M N O P Q R S T U V
L
K (5) (7) (3)
(-6) (-2) (4) (-2) (2) (1) (0)
(-1) (9)

Inteligncia Artificial

Exerc
Exerccio MINMAX
n Solu
Soluo:
o:
A

MAX
B (-2) C (5) (1) D

MIN
E (9) F G H I J
(-2) (5) (7) (3) (1)

MAX
M N O P Q R S T U V
L
K
(-6) (-2) (5) (4) (7) (-2) (2) (3) (1) (0)
(9)
(-1)
Inteligncia Artificial

Melhorando o MINMAX
n Cortes Alfa-
Alfa-Beta
Diminuir o espao de busca, nao examinando todos os nos
da arvore
Corte Alfa  Baseia-se no maior valor para a maximizao
no pode diminuir (n
(no pode ser menor que um ancestral)

Corte Beta  Baseia-se no menor valor de minimizao


no pode aumentar (n
(no pode ser maior que um ancestral)

n No precisamos percorrer toda a rvore para saber qual a


melhor opo para nossa jogada

n Id
Idia: no vale a pena piorar, se j
j achou algo melhor

Inteligncia Artificial

Cortes Alfa-
Alfa-Beta
n Corte Beta
A

MAX
B (-2) C (5) (1) D

MIN
E (9) F G H I J
(-2) (5) 7)
( (3) (1)

MAX
M N O P Q R S T U V
L
K
(-6) (-2) (5) (4) (7) (2) (3) (1) (0)
(9)
(-1)
Inteligncia Artificial

Cortes Alfa-
Alfa-Beta
n Corte Alfa

-2 1
-1

4-6 = -2 5-5 = 0 5-6 = -1 5-6 = -1

6-4 = 2 5-4 = 1
4-5 = -1 5-5 = 0 6-5 = 1 5-5 = 0

Inteligncia Artificial

MINMAX com Busca Secund


Secundria
n Podemos melhorar ainda mais o MinMax:
Qual o grande problema do MinMax ?
n A profundidade de busca (d) causa uma complexidade O(bd)
Como resolver o problema ?
n Fazer uma an
anlise com uma profundidade pequena...
n ... E depois de escolher a jogada, fazer uma an
anlise com uma
profundidade maior apenas do ramo escolhido (Busca Secund
Secundria)
para verificar se a escolha realmente boa...
Inteligncia Artificial

Curiosidades de Jogos em IA
n Jogo de Xadrez  b 35 (fator de ramificao)
Profundidade de uma soluo: 50 para cada jogador (100 p/ dois)
Espao de busca da ordem de 35100

n Alguns sistemas que jogam xadrez:


n Deep Thought 2 (IBM + pesquisadores do CMU)
funo simples de avaliao e poda alfa-beta
10 processadores com capacidade para examinar 1/2 bilho de posies por
jogada: atinge profundidade de 10 a 11 jogadas (j chegou a profundidade 37
com casos identificados)

n Deep Blue: Ganhou algumas partidas do Kasparov em 1996 e 1997 e


perdeu outras.

n X3D Fritz (software alemo) empatou com Kasparov no


final de 2003 numa melhor de 4 jogos. Rodou em um
computador Intel Pentium 4 Xeon 2.8GHz

Inteligncia Artificial

Curiosidades de Jogos em IA
n Uma Funo de Utilidade para Xadrez
Atribuir um valor material para cada pea:

Peo = 1
Cavalo ou bispo = 3
Torre = 5
Rainha = 9

n Jogador possui um valor material de peas.


n O lado com uma vantagem segura de valor material de um
peo ou mais, provavelmente ser o vencedor
Inteligncia Artificial

Jogos com mais de 2 jogadores


n Existem jogos com mais de dois jogadores
n Como adaptar o MINMAX para esses jogos ?
n Caracter
Caractersticas:
Ao inv
invs de um valor, teremos um VETOR de valores
Um valor para cada jogador
Jogadores A, B e C  [Va, Vb,Vc]
Cada passo na rvore ser
ser de um jogador
A ra
raz continua sendo a jogada do computador
n A fun
funoo de utilidade dever
dever retornar o vetor de valores
n Permite implementar alian
alianas ou jogos entre parceiros.
n Lembre-
Lembre-se: funciona apenas para jogos onde se conhece todos os
valores de todos os jogadores.

Inteligncia Artificial

Exemplo jogo com 3 jogadores

A
[9,6,8]
Jog A - Computador

B [2,5,6] C [9,6,8] D [5,3,8]


Jog B

E F G H I J
[2,4,5] [9,6,8] [2,2,9]
[2,5,6] [4,5,2] [5,3,8]
Jog C

M N O P Q R S T U V
L
K
[2,4,5] [9,6,8] [1,7,4] [4,5,2] [2,3,1] [2,2,3] [5,3,8] [2,2,9] [3,2,5]
[2,5,6] [0,2,4]
[1,2,3]
Inteligncia Artificial

Curiosidades Jogos em IA
n Xadrez
n O que o Kasparov disse ap
aps sua derrota para o Deep
Blue:
...A m
mquina se recusou a efetuar um movimento para uma
posi
posio
o que teria uma vantagem decisiva a curto prazo
mostrando um sentido de perigo muito humano
n Deep Blue ?
30 processadores IBM RS/6000 em paralelo
480 processadores VLSI especializados em xadrez
126 milh
milhes de n
ns por segundo

Inteligncia Artificial

Conclus
Concluses
PROBLEMAS ENTRE:
Qualidade Solu
Soluo
o X Tempo X Mem
Memria

n Nenhuma busca garante os tr


trs de forma tima. Isto pois
so NP-
muitas vezes os problemas s NP-Hard

n Importante: Entender o problema e o dom


domnio de modo a
escolher melhor uma heur
heurstica e, assim, decidir que tipo
de busca se adapta melhor as suas necessidades
Inteligncia Artificial

Bibliografia desta Aula


Para aprofundamento nos assuntos desta aula, segue a
seguinte refer
referncia bibliogr
bibliogrfica

n Rich, E. (Intelig
(Inteligncia Artificial)
Cap
Captulo 3 e Capitulo 12 (jogos)
n Russel & Norvig (Artificial Intelligence)
Cap
Captulos 4 e 6

n Alguns slides desta aula foram baseados no slides:


n Anna Reali Costa: Busca Informada
Informada em Aula5e6-
Aula5e6-
BuscaInformada.pdf Poli-
Poli-USP
n Geber Ramalho: Busca 2 e Busca 3, Cin-
Cin-UFPE.

Você também pode gostar